文档库 最新最全的文档下载
当前位置:文档库 › 汇编-七段码电子表显示程序

汇编-七段码电子表显示程序

汇编-七段码电子表显示程序
汇编-七段码电子表显示程序

攀枝花学院

学生课程设计(论文)

题目:七段码电子表显示程序

学生姓名:蒋志勇

学号:201010801035

所在院(系):计算机学院

专业:计算机科学与技术

班级:10级计本1班

指导教师:李艳华职称:讲师

2011年12月31日

攀枝花学院教务处制

攀枝花学院本科学生课程设计任务书

注:任务书由指导教师填写。

摘要

七段码电子表是我们日常生活中最常见的一种表。它的显示格式为“时:分:秒”,数字0~9中的每一个数字用“|”和“—”字符组成的“七段”码图形表示。在我们生活的各个领域都能看到它的身影,因此学习如何用汇编语言编写七段码电子表程序对我们学习汇编语言至关重要。在经过了自己这几天的上网搜索,图书馆寻找后,我在本文介绍了汇编语言源程序的编辑以及编译,对于七段码电子表显示程序程序设计思想和设计流程也做出了全面的叙述,经过错误的分析、修改、调试,实现了七段码电子表的程序显示。

关键词:七段码,程序设计,电子表,汇编语言

一、课程设计题目描述和要求

1.1问题提出及功能要求

用电子表的形式显示系统时间。以“时:分:秒”的形式显示时间。不停地读取系统时间并保存在寄存器中,将每次取出的时间显示并与前一次比较,先比较“秒”值,在不同的情况下(系统时间发生了增1的变化),则调用相应的图形字符显示,在不超过60秒的情况下,重复比较秒,然后再比较和显示“分”值与“小时”值。

1.2 运行环境

1.2.1硬件环境

微型计算机(Intel x86系列CPU)一台

1.2.2软件环境

Windows98/2000/XP操作系统。文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用调试调试程序建议使用调试程序建议使用调试程序建议使用这DDEBUG.EXE。

1.3本课题涉及的知识点

以“时:分:秒”的形式显示时间。这些字符预先定义在数据段的字符图形里,利用BIOS INT 1AH的2号系统功能调用,读出计算机系统的时间(为BCD 码),置换成字符图形标中的图形字符显示。

本程序设计的关键是随着系统时间的变化,用字符组成的图形数字如何进行相应的变化。方法是:不停地读取系统时间并保存在寄存器中,将每次取出的时间显示并与前一次比较,先比较“秒”值,在不同的情况下(系统时间发生了增1的变化),则调用相应的图形字符显示,在不超过60秒的情况下,重复比较秒,然后再比较和显示“分”值与“小时”值。

二、算法设计

2.1设计思路

数字0~9中的每一个数字用“|”和“—”字符组成的“七段”码图形表示,时与分、分与秒之间的两点用“▼”字符表示。这些字符预先定义在数据段的字符图形里,利用BIOS INT 1AH的2号系统功能调用,读出计算机系统的时间(为

BCD码)

构思流程

图所示。

图2.1构思流程图

2.2主要流程图

如图2.2和2.3显示了对于调用各子函数的方法以及显示了对应算法的构思。

图2.2 流程图

图2.3.

三、代码设计

Data segment

;*****定义please等提示信息***** str db 20

db 50h,7,0,0

db 6ch,7,0,1

db 65h,7,0,1

db 61h,7,0,1

db 73h,7,0,1

db 65h, 7,0,1

db 70h,7,1,-10

db 72h,7,0,1

db 65h,7,0,1

db 73h,7,0,1

db 73h,7,0,1

db 53h,7,0,2

db 6bh,7,0,2

db 65h,7,0,1

db 79h,7,0,1

db 65h,7,0,2

db 78h,7,0,1

db 69h,7,0,1

db 74h,7,0,1

db 21h,7,0,1

;*****定义0-9十个图形数字***** s0 db 6 ;对S0进行定义

db 5fh,7,0,0

db 7ch,7,1,-1

db 7ch,7,1,0

db 5fh,7,0,1

db 7ch,7,0,1

db 7ch,7,-1,0

sy db 2 ;对Sy进行定义

db 7ch,7,1,0 db 7ch,7,1,0

s2 db 5 ;对S2进行定义 db 5fh,7,0,0

db 7ch,7,1,1

db 5fh,7,0,-1

db 7ch,7,1,-1

db 5fh,7,0,1

s3 db 5 ;对S3进行定义 db 5fh,7,0,0

db 7ch,7,1,1

db 5fh,7,0,-1

db 7ch,7,1,1

db 5fh,7,0,-1

s4 db 4 ;对S4进行定义 db 7ch,7,1,0

db 5fh,7,0,1

db 7ch,7,1,1

db 7ch,7,-1,0

s5 db 5 ;对S5进行定义 db 5fh,7,0,0

db 7ch,7,1,-1

db 5fh,7,0,1

db 7ch,7,1,1

db 5fh,7,0,-1

s6 db 6 ;对S6进行定义 db 5fh,7,0,0

db 7ch,7,1,-1

db 5fh,7,0,1

db 7ch,7,1,1

db 5fh,7,0,-1

db 7ch,7,0,-1

s7 db 3 ;对S7进行定义 db 5fh,7,0,0

db 7ch,7,1,1

db 7ch,7,1,0

s8 db 7 ;对S8进行定义

db 7ch,7,1,0

db 5fh,7,-1,1

db 7ch,7,1,1

db 5fh,7,0,-1

db 7ch,7,1,1

db 5fh,7,0,-1

db 7ch,7,0,-1

s9 db 6 ;对S9进行定义

db 7ch,7,1,0

db 5fh,7,-1,1

db 7ch,7,1,1

db 5fh,7,0,-1

db 7ch,7,1,1

db 5fh,7,0,-1

s11 db 2 ;对S11进行定义

db 03h,7,1,0

db 03h,7,1,0

data ends

;定义以上量对后面的函数进行说明与符合汇编语言的语法相匹配

stack segment

db 200 dup (0)

stack ends

code segment

assume cs:code,ss:stack,ds:data start:

mov ax,data

mov ds,ax

mov ah,0 ;设置显示方式

mov al,4

int 10h mov ah,0bh ;置彩色调板

mov bh,0

mov bl,1

int 10h

mov ah,0bh ;置彩色调板

mov bh,1

mov bl,4

int 10h

mov ah,2 ;取系统时间

int 1ah

mov ax,0

mov bx,0

mov ah,ch ;取系统时间

mov al,cl ;保存分钟

mov bh,dh ;保存秒

mov bl,dl ;保存百分之一秒;取系统时间,并且保存1秒对后面程序的调用以及时间周期起到决定性的作用

tt:

push ax

push bx

mov ah,0

mov al,4

int 10h

mov ah,0bh

mov bh,0

mov bl,1

int 10h

mov ah,0bh

mov bh,1

mov bl,4

int 10h

MOV AH,1 ;读键盘缓冲区字符

INT 16h

JZ ww

MOV AH,8 ;从键盘输入字符

INT 21h

CMP AL,'s' ;输入s,结束程序JE tu

;构建子函数,即对键盘的输入以及使调用信息与调用函数相结合使用

ww: pop bx

pop ax

call xian ;调用显示子程序

push ax

qu: mov ah,2 ;取系统时间

int 1ah

cmp bh,dh

je qu

pop ax

inc bh ;对时间进行加1

cmp bh,100

jl tt

mov bh,0

inc al

call beep

cmp al,100

jl tt

mov al,0

inc ah

cmp ah,24

jl tt

mov ah,0

jmp tt

tu: mov ah,4ch

int 21h

Ret

xian proc ;对时间值进行处理并显示的子程序

push si

push di

push dx

push cx

push bx

push ax

pop ax

push ax

mov bx,ax

mov ax,0

mov al,bh

mov cl,4

shr al,cl

mov bl,al

mov dh,10

mov dl,2

call ff

pop ax

push ax

mov bx,ax

mov ax,0

mov al, bh

and al,0fh

mov bl,al

mov dh,10

mov dl,6

call ff

mov dh,10

mov dl,10

mov bl,10

call ff

pop ax

push ax

mov cl,4

shr al,cl

mov bl,al

mov dh,10 mov dl,14

call ff

pop ax

push ax

and al ,0fh mov bl,al

mov dh,10 mov dl,18

call ff

mov dh,10

mov dl,22

mov bl,10

call ff

pop ax

pop bx

push bx

push ax

mov ax,0

mov al,bh

mov cl,4

shr al,cl

mov bl,al

mov dh,10

mov dl,26 call ff

pop ax

pop bx

push bx push ax

mov al,bh

and al,0fh

mov bl,al

mov dh,10

mov dl,30

call ff

mov dh,0

mov dl,15

mov bl,22

call ff

pop ax

pop bx

pop cx

pop dx

pop di

pop si

Ret

xian endp

;调用函数,实现思路图中构想的对函数调用,即主函数对整个程序算法的控制与调用子函数实现的主要部分ff proc ;显示具体数值

push ax

push bx

push cx

push dx

cmp bl,0

je l0

cmp bl,1

je l1

cmp bl,2

je l2

cmp bl,3

je l3

cmp bl,4

je l4

cmp bl,5

je l5

cmp bl,6

je l6

cmp bl,7

je l7

cmp bl,8

je l8

cmp bl,9

je l9

cmp bl,10

je l10

cmp bl,22

je ld

l0: lea di,s0 jmp ty

l1 : lea di,sy jmp ty

l2: lea di,s2 jmp ty

l3: lea di,s3 jmp ty

l4: lea di,s4 jmp ty

l5: lea di,s5 jmp ty

l6: lea di,s6 jmp ty

l7: lea di,s7 jmp ty

l8: lea di,s8 jmp ty

l9: lea di,s9

jmp ty

l10: lea di,s11

jmp ty

ld : lea di,str

ty: mov ah,0fh ;示方式 int 10h

sub cx,cx

mov cl,[di]

inc di

plot_next:

add dh,[di+2]

add dl,[di+3]

mov ah,2

int 10h

mov al,[di]

mov bl,[di+1]

push cx

mov cx,1

mov ah,09

int 10h

pop cx

add di,4

loop plot_next

pop dx

pop cx

pop bx

pop ax

mov cx,100

gg: dec cx

loop gg

ret

ff endp

clear proc

push ax

push bx

push cx

push dx

mov ah,6

mov al,0

mov bh,1

int 10h

pop dx

pop cx

pop bx

pop ax

re t

clear endp

beep proc

push ax

push bx

push cx

push dx

mov al ,10110110b out 43h,al

mov ax,533h

out 42h,al mov al,ah

out 42h,al

in al,61h

mov ah,al

or al,03

out 61h,al

sub cx,cx

mov bl,28h

g7: loop g7

dec bl

jnz g7

mov al,ah

out 61h,al

pop dx

pop cx

pop bx

pop ax

ret

beep endpcode ends

end start ;主函数的调用结束之后就要进行输出,所以这部分实现的就是对屏幕的设计和输出显示,以及屏幕动态的显示出计时器

四、调试与运行

4.1进入调试环境

将设计好的程序文件改为.asm格式的文件。在DOS环境下输入才cd c:\masm命令进入调试环境。再在子环境下输入masm命令。然后输入以改为.asm的文件名。

4.2提示信息

如图显示的有四个警告一个错误:

图4.1 调试程序

4.3修正错误

修改程序后再次按照4.1中步骤运行程序

图4.2 修正程序图

4.4生成.exe文件

输入LINK命令以及文件名字,形成可执行文件.

图4.3 链接程序图

4.5运行程序

在masm环境中输入可执行文件名运行文件,显示结果如图所示:

图4.4 程序实现图

图示显示时间正确,经过自己的努力终于课程设计完成。

五、总结

汇编语言程序设计是计算机及电子信息类有关专业一门重要的基础课程,是培养我们直接使用计算机硬件资源能力的一门课程。这次的程序设计给了我很大的启发,让我学到了很多在课堂中学不到的东西,在这期间,调整思路、编辑代码、分析程序都得到了提高。

这次汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。

参考文献

[1]《汇编语言程序设计》,吴向军等,高等教育出版社,2002

[2]《IBM-PC汇编语言及程序设计》(第2版), 沈美明等,清华大学出版社,2001

[3]《IBM-PC汇编语言及程序设计实验教程》,沈美明等,清华大学出版社,2001

[4]《汇编语言程序设计》, 钱晓捷等,电子工业出版社,2000

[5]《汇编语言程序设计》, 张志明等,重庆大学出版社,1997

七段码数字钟课程设计讲解

目录 1 系统概述 (2) 1.1 数字钟的设计目的 (2) 1.2 基本内容及目标 (2) 2 方案论证 (3) 2.1 数字钟设计方案论证 (3) 2.2 数码管显示原理 (3) 2.3 控制任务要求 (4) 3 硬件设计 (4) 3.1 系统的原理方框图(略) (4) 3.2 主电路设计 (4) 3.3 I/O接点地址分配 (5) 3.4 编程元器件选型及地址分配 (6) 4 软件设计 (7) 4.1 主流程图 (7) 4.2 PLC梯形图 (8) 5 系统调试结果分析 (19) 设计心得 (20) 参考文献 (21)

1 系统概述 本设计共分五大章:第一章是系统概述,介绍了PLC系统概述和设计目的、设计内容以及实现的目标。第二章是方案论证,即数码管数字电子钟设计方案与工作原理介绍及应用。第三章是硬件设计,即数字电子钟的主电路设计及元器件的选型,进一步清楚的了解其内部结果和工作原理。第四章是软件设计,即数字电子钟的主流程及梯形图程序,第五章是系统调试,即硬件软件调试结果及结果分析等。设计心得即是本设计所取得的成果及其设计意义。针对本设计在制作过程所参考文献及资料的统一说明及介绍。 1.1 数字钟的设计目的 本系统采用计数器、显示器和校时电路组成。由LED数码管来显示PLC所输出的信号。总体方案设计由主体电路和扩展电路两大部分组成,其中主体电路完成数字钟的基本功能,扩展电路完成数字钟的扩展功能。 1.2 基本内容及目标 1.1.1 PLC控制系统的基本内容包括如下几点 (1) 选择用户输入、输出设备以及输出设备驱动的控制对象,这些设备属于一般的电气元件,选择方法请参考其他有关资料。 (2) PLC的选择:PLC是控制系统的核心部件,对于保证整个控制系统的技术经济性能指标起着重要作用。选择PLC,应包括机型、容量、I/O点数、电源模块以及特殊功能模块的选择等。 (3) 设计控制程序:主电路、梯形图、控制系统流程图等。控制程序是控制整个系统工作的软件,是保证系统工作正常、安全可靠的关键,因此控制程序的设计必须经过反复调试、修改,直到符合要求为止。 (4) 编制系统的技术文件:包括说明书、电气图及电气元件明细表等。传统的电气图,一般包括电气原理图、电器布置图及电气安装接线图。 1.1.2 设计的实现目标 本设计运用SIMEINS S7—200软件控制系统为基础,设计了PLC电子时钟的梯形图。学习PLC的最终目的是能把它应用到实际控制系统中去,若遇到实际的工业控制项目,需用PLC进行控制,应如何着手去设计一个控制系统。

智能电表异常显示代码解决方案

智能电表异常显示代码解决方案 本文档对电表需要通过显示提示的以下4类异常代码做出原因分析以及解决措施。下面对各类异常的提示代码进行定义。所有异常提示的均以Err-作为前缀,代码为两位BCD数字。对于已经在液晶屏上有提示符号的将不再定义,按照型式规范中相关说明执行。 一、电表故障类异常提示 此类异常一旦发生需要将显示的循环显示功能暂停,液晶屏固定显示该异常代码。 异常名称异常类型异常代码处理方法 控制回路错 电表故障Err-01 返厂处理 误 ESAM错误电表故障Err-02 返厂处理 电表故障Err-03 返厂处理 内卡初始化 错误 时钟电池电 电表故障Err-04 返厂处理 压低 电表故障Err-05 返厂处理 内部程序错 误 存储器故障 电表故障Err-06 返厂处理 或损坏 时钟故障电表故障Err-07 返厂处理

二、事件类异常提示 此类异常一旦发生需要在显示的循环显示的第一屏插入显示该异常代码。 异常名称异常类型异常代码处理方法 过载事件类异常Err-51 须告知该表 用户减少负 荷 电流严重不平衡事件类异常Err-52 检查并调整 线路各相电 流 过压事件类异常Err-53 检查电压过 高原因 功率因数超限Err-54 检查线损是 否正常 超有功需量报警事件事件类异常Err-55 提醒用户减 少用电负荷 有功电能方向改变(双向计量除外)事件类异常Err-56 检查接线是 否正确 三、电表状态提示

此类异常一旦发生需要在显示的循环显示的第一屏插入显 示该异常代码。目前此类异常只有停电显示电池欠压、透支 状态两种,但是目前这两种异常均有液晶提示符号,因此 不另外定义。 四、IC卡相关提示 此类异常为IC卡处理过程中发生异常需要在卡处理结束后 进行提示。 异常名称异常类型异常代码处理方法 认证错误IC卡相关提示Err-10 插入密钥下装卡,待提示 成功后才能进行开户购电ESAM验证失败IC卡相关提示Err-11 返厂处理 客户编号不匹配IC卡相关提示Err-12 由售电大厅检查该用户卡 内表号或户号设置是否与 现场安装的电表表号或户 号相同,如不相同,首先 检查是否有装错表或插错 卡等现象。如果的确因为 制卡有误,可通过售电系 对卡内表号或户号进行更 改。

汇编与微机原理课程设计报告

微机接口课程设计报告 (题目:模拟自动门) 指导老师郭兰英 班级2015240204

目录 一概述 (1) 1.1 课程设计名称 (1) 1.2 课程设计要求 (1) 1.3 课程设计目的 (1) 二设计思想 (1) 三实施方案 (2) 3.1 获得传感器和“门”的状态 (2) 3.2 驱动步进电机和点阵模块 (2) 3.3 实现硬件延时 (3) 四硬件原理 (3) 4.1 中断控制器8259 (4) 4.2并行接口8255 (4) 4.3 定时/计数器8254 (5) 4.4 点阵LED显示屏 (5) 4.5 步进电机 (6) 4.6 红外距离传感器 (7) 五软件流程 (8) 六程序运行结果及分析 (11) 6.1 开门状态 (11) 6.2 关门状态 (12) 6.3 关门操作进行时中断到开门操作 (14)

6.4特殊状态 (15) 七个人感想 (16) 八附录 (18)

一、概述 1.1课程设计名称 模拟自动门 1.2课程设计要求 1)用汇编语言编程完成硬件接口功能设计。 2)硬件电路基于80x86微机接口。 3)程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。 4)传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。 1.3课程设计目的 通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,编写设计程序及程序流程图。 二、设计思想 本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。 为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能: 1、当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。 2、当“门”完全打开后一段时间后,传感器范围内检测不到物体时,立即“关闭门”, 用一系列的硬件动作模拟自动门关闭的动作和状态。

基于AT89C51单片机的多音阶电子琴的设计

重庆三峡学院 单片机课程设计报告书 学院: 年级专业: 学号: 学生姓名: 指导教师: 教师职称: 成绩: 制作日期2012年11月29日

基于AT89C51单片机的多音阶电子琴的设计 重庆三峡学院 摘要 单片机是电子、计算机及机电专业的一门重要的必修课程。要求我们掌握单片机的基本组成和工作原理、会变程序的一般编写方法、常用接口电路的软硬件设计方法,具备基本的单片机系统应用与开发能力。 随着科技的快速发展,单片机的应用日益普遍。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本单片机系统设计应用单片机控制技术,用AT89C51单片机为核心控制元件根据本学期所学的单片机知识结合设计了一套单片机控制的电子琴系统。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演着重要的角色。 本次设计首先对单片机设计简易电子琴仔细分析,接着制作硬件电路和编写软件的程序,最后进行软硬件的调试运行。并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。利用单片机产生不同频率来获得我们要求的音阶,实现高、中、低共21个音符的发音和显示和音乐播放时的控制显示,并且能自动播放程序中编排的音乐。系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。 关键词:单片机、电子琴、AT89C51、独立键盘、

目录 第 1 章引言......................................................................................................................... 1. 1. 1 设计背景 (1) 1.2 设计任务 (1) 1.3 设计目的 (1) 1.4 设计思路 (1) 第 2 章方案论证 (1) 2.1 方案论证 (1) 第 3 章硬件系统设计 (2) 3.1时钟电路 (2) 3.2 复位电路 (3) 3.3 原理框图 (3) 3. 4 显示部分设计 (3) 3.5 按键部分设计 (4) 3.6 发音部分设计 (5) 第 4 章软件系统设计 (5) 4.1 系统分析 (5) 4.2 参数计算 (7) 4.3 程序设计 (8) 第 5 章实验结果 (10) 5.1硬件调试 (10) 5.2 软件调试 (10) 5.3 仿真结果 (10) 5.4 结果分析 (11) 第 6 章总结 (11) 附录一:系统整体电路图 (12) 附录二:元器件清单 (12) 附录三:源程序代码 (13) 参考文献 (19)

七段数码管译码扫描显示实验指导书

实验四 七段数码管译码扫描显示 一、实验目的: 通过对译码和串行扫描电路的设计,理解多位数码管串行扫描输出的工作原理以及七段数码管的译码以及串行扫描输出的设计方法。 二、实验条件: 1. 安装WindowsXP 系统的PC 机; 2. 安装QuartusII6.0 EDA 软件; 3. GW48型SOPC 开发平台; 三、实验要求: 通过VHDL 编程,实现7段数码管的译码输出,并通过所设计的串行扫描控制,对8个7段数码管扫描输出,要求8个数码管从左到右分别显示“1”、“2” 、“3” 、“4” 、“5” 、“6” 、“7” 、“8”,并且每一位都对应有一个显示控制端,当控制端为高电平时,对应数码管点亮,否则熄灭。具体接口如下所示: clk :时钟输入端,此信号是 串行扫描的同步信号。 data_control[7..0]:8个分别控制数码管显示的输入信号; led_addr[7..0]:对8个数码管进行串行扫描的输出控制信号; seg7_data[6..0]:驱动7段数码管各显示段的输出信号; 首先在QuartusII 上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC 开发平台中。在硬件实现中,要求: 1. 用实验平台的8个数码管输出显示(共阴接法),并且用其下方的8个按键分别控制对应数码管的显示与否。 注:采用I/O 模式5实现输入控制和输出显示方式。为了实现数码管的串行扫描,必须把数码管连接成串行控制输出电路,我们可以通过I/O 板上的跳线实现此操作,如右图所示,把模式数码管右方的跳线(JP24)向下连接即可。 此跳线必须下置,以实现数码管的串行扫描接法,具体电路如附录所示

汇编课程设计报告

四川大学计算机学院 学生实验报告 实验名称:汇编课程设计报告 指导教师:唐宁九 姓名:廖偲 学号:0943111209 班级:软件09级一班 日期:20101114

实验报告 班级______________姓名_______________学号_________ 一、实验一:DEBUG基本命令与数据传输指令 二、实验的目的和要求: ? 1.熟练掌握DEBUG的基本调试命令,能够使用DEBUG编写、调试汇编语言程序片段。 ? 2.在理解数据传输指令的基础上按照实验内容中指定的程序片段对程序进行调试和记录; 三、实验的环境: 1.硬件环境:cpu 2.26gHZ、内存2G、显存1G、64位总线笔记本电脑 2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具。 四、源程序清单: ?MOV AL, 01H ?MOV SI, 0002H ?LEA SI, [SI] ?MOV BYTE PTR [SI], 80H ?LAHF ?XCHG AL, AH ?SAHF ?XCHG AH, [SI] ?SAHF 五、操作内容: 1.从cmd在debug下进入用A命令进行汇编 格式: A [地址] 功能:从键盘输入汇编程序, 并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。如果不指定汇编地址, 则以CS:IP为地址 2. 反汇编命令U使用 格式: U [地址]/[地址范围] 功能: 将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。 注意: 反汇编时一定确认指令的起始地址, 否则得不到正确的结果。 3.寄存器查看/编辑命令r或r寄存器名称 功能: 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。

基于51单片机的电子琴设计

随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高,具有一定的实用和参考价值。 关键词:AT89C51单片机;数码管;电子琴

1 系统方案设计 (1) 1.1 设计指标 (1) 1.2 系统方案综述 (1) 1.3 系统设计思路 (1) 2 硬件设计 (2) 2.1 电路图 (2) 2.2 单片机AT89C51简介 (2) 2.3 单片机的工作过程 (4) 2.4 键盘电路 (5) 2.5 显示电路 (5) 2.6 声音电路 (7) 3 系统软件设计 (7) 3.1延时程序设计 (9) 3.2定时器初始化及其中断函数 (9) 3.3示例音乐播放程序 (10) 3.4单独按键中断处理函数 (10) 4 实验结果与分析 (10) 4.1 Proteus软件简介 (10) 4.2仿真调试 (12) 5 设计心得 (13) 6 参考文献 (14) 附录 (15) 附录A 元件清单、器件识别与检测 (15) 附录B 程序源代码 (16)

6位7段LED数码管显示

目录 1. 设计目的与要求..................................................... - 1 - 1.1 设计目的...................................................... - 1 - 1.2 设计环境...................................................... - 1 - 1.3 设计要求...................................................... - 1 - 2. 设计的方案与基本原理............................................... - 2 - 2.1 6 位 8 段数码管工作原理....................................... - 2 - 2.2 实验箱上 SPCE061A控制 6 位 8 段数码管的显示................... - 3 - 2.3 动态显示原理.................................................. - 4 - 2.4 unSP IDE2.0.0 简介............................................ - 6 - 2.5 系统硬件连接.................................................. - 7 - 3. 程序设计........................................................... - 8 - 3.1主程序......................................................... - 8 - 3.2 中断服务程序.................................................. - 9 - 4.调试............................................................... - 12 - 4.1 实验步骤..................................................... - 12 - 4.2 调试结果..................................................... - 12 - 5.总结............................................................... - 14 - 6.参考资料........................................................... - 15 - 附录设计程序汇总.................................................... - 16 -

智能电表错误代码详解

智能电表错误代码详解一、国网表故障代码说明: 故障提示显示方式如图所示:

”符号,电池电压低,液晶有电池显示“如果停电后,电表时间会丢失,此时需要更换电能表。无意义Err 电表故障内部程序错误- 05 06 存储器故障或损坏-Err电表故障时间错误,需要观察电表时间是否有问题。电表故障单相表规范已定义 Err -08 时钟故障倍的最大电流时,用户使用负荷大于的1.2事件类异常-Err过载 51 -51”Err电表轮显“ Err事件类异常电流严重不平衡-对单相表无意义52 Un Err过压-53 事件类异常 1.15电压大于倍Err“54 Err 功率因数超限-0.2,电表轮显用户环境功率因数小于 54”-超有功需量报警事件 Err事件类异常-55 进出线反了,会提示‘Err-Err-变向能功有电方改 56',液晶有56 事件类异常 (双向计量除外)“”闪烁。 没有加密成功或远程更新密钥失败。认证错误-Err10 IC卡相关提示单相表规范已定义 11 验证失败ESAM 卡相关提示ICErr- Err用户号错,客户编号不匹配会提示。- IC卡相关提示12 用户卡或远程下发参数,用户卡或远程下发参数时,购电次数错,会Err卡相关提示充值次数错误IC 13 - 提示。”为最大值,超购电囤有液晶提示符号购电超囤积卡相关提示IC14 -Err设置成“999999.99积(购电时如果:剩余金额+本次购电金额)金额限值,则出现该提示。>囤积进现场参数设置卡对本IC卡相关提示 Err-15 连着多次对一只表插一张现场参数卡则第2 先插入一张现场表已经失效或者次就会出现该提示参数设置卡版本号大的卡,再插入一张比上或者次的版本号小的卡,就会出现该提示

汇编课程设计报告

汇编课程设计报告

学 号: 课程设计 题目打印水仙花数 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师

武汉理工大学《汇编语言程序设计》课程设计 2012 年 6 月28 日 课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件: 理论:完成了《汇编语言程序设计》课程, 对微机系统结构和80系列指令系 统有了较深入的理解,已掌握了汇 编语言程序设计的基本方法和技 巧。 实践:完成了《汇编语言程序设计》的4 个实验,熟悉了汇编语言程序的设 计环境并掌握了汇编语言程序的 调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方 法,掌握子程序结构的设计和友好用户界 3

2.1简要分析 2.1.1原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。 在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。 2.1.2程序流程图

基于multisim的51单片机控制电子琴电路

基于multisim的51单片机控制电子琴电路 程序:#include sbit pf=P0^4; void scan_key() { if(P0==0xfe) key=1; if(P0==0xfd) key=2; if(P0==0xfb) key=3; if(P0==0xf7) key=4;

if(P0==0xef) key=5; if(P0==0xdf) key=6; if(P0==0xbf) key=7; if(P0==0x7f) key=8; } void delay(unsigned char i) {unsigned int j; for(i;i>0;i--) for(j=250;j>0;j--); } void main() { scan_key(); if(key==1) { while(1) { pf=1; delay(100); pf=0; delay(100);

} } if(key==2) { while(1) { pf=1; delay(200); pf=0; delay(200); } } if(key==3) { while(1) { pf=1; delay(300); pf=0; delay(300); } } if(key==4) { while(1) { pf=1; delay(400); pf=0; delay(400); }

} if(key==5) { while(1) { pf=1; delay(500); pf=0; delay(500); } } if(key==6) { while(1) { pf=1; delay(600); pf=0; delay(600) } } if(key==7) { while(1) { pf=1; delay(700); pf=0;delay(700) } }

用七段数码管显示简单字符

用七段数码管显示简单字符——译码器及其应 用 一、实验目的 1、了解显示译码器的结构和理解其工作原理。 2、学习7段数码显示译码器设计。 3、学习用基逻辑门、3-8译码器、4-1选择器控制显示器的显示。 二、实验内容 1、了解逻辑门、3-8译码器、4-1选择器的工作原理,设计基本电路,实现以下功能: C2C1C0是译码器的3个输入,用C2C1C0的不同取值来选择在七段数码管上输出不同字符。七段数码管是共阳极的。 图1 七段译码器 C2C1C0的不同取值对应显示的字母如下: 图2 字符编码

三、实验仪器及设备: 一、PC 机 二、 Quartus Ⅱ 9.0 三、 DE2-70 四、显示器 四、实验步骤 1、列出真值表,计算要实现以上功能时数码管的0-7段对应的逻辑函数式。 真值表如下: 函数表达式如下: “0”=' 02C C + “1”=“2”=0'1'012C C C C C ++ “3”=(2C +1C +'0C )(2C +0C +'1C )(2C +' 1C +'0C ) “4”=“5”=2C “6”=2C +1C +02C C 2、新建一个 quartusII 工程,用以在DE2_70平台上实现所要求的电路。 建立一个BDF 文件,基于SSI ,实现七段译码器电路,用SW3_SW1作为输入C2C1C0, DE2_70平台上的的数码管分别为HEX0~HEX7,输出接HEX1。 参照de2_70_pin_assignments.csv 中的引脚分配表配置引脚。 新建仿真文件,给出输入信号,观察输出信号是否符合要求。 编译工程,完成后下载到FPGA 中。 拨动波段开关并观察七段数码管HEX0的显示,以验证设计的功能是否正确。 基于3-8译码器和4-1选择器重复上述2.、中的步骤完成设计。

(最新版)基于51单片机汇编语言的数字钟课程设计报告含有闹钟万毕业论文

单片微型计算机课程设计报告 多功能电子数字钟 姓 名 学

教师 许伟敏 电气二班 林卫

目录 一:概述 (1) 二:设计基本原理简介 (2) 三:设计要求及说明 (3) 四:整体设计方案 (4) 系统硬件电路设计 4 系统软件总流程设计模块划分及分析5 6 五:单模块流程设计 (8) 各模块设计概述、流程图模块源程序集合及注释8 13 六:单模块软件测试 (23) 七:系统检测调试 (24) 硬件电路调试 软件部分烧写调试 八:系统优化及拓展 (26) 九:心得体会 (28)

单片微型计算机课程设计 一、概述 基于汇编语言的电子数字钟概述 课程设计题目:电子数字钟 应用知识简介: ● 51 单片机 单片机又称单片微控制器,它不是完成某一个逻辑功能 的芯片,而是把一个计算机系统集成到一个芯片上。作为嵌 入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。51 系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51 系列单片机的发展又进入了一个新的阶段。在今后很长一段时间内51 系列单片机仍将占据嵌入式系统产品的中低端市场。 ●汇编语言 汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。汇编语言可以与高级语言配合使用,应用十分广泛。 ● ISP ISP(In-System Programming)在系统可编程, 是当今流行的单片机编程模式,指电路板上的空白元器 件可以编程写入最终用户代码,而不需要从电路板上取 下元器件。已经编程的器件也可以用ISP方式擦除或再 编程。本次课程设计便使用ISP方式,直接将编写好的 程序下载到连接好的单片机中进行调试。 选题 系统功能分析 硬件电路设计 整体流程设计 及模块划分 模块流程设计 模块编 码测试 系统合成调 试编译 下载调试(含硬件电路调试及软件烧写调试) 验收 完成总结报告课程设计流程图↑ 选题目的及设计思想简介: 课程设计是一次难得的对所学的知识进行实践的机会,我希望通过课程设计独立设计一个简单的系统从而达到强化课本知识并灵活运用的目的。电子数字钟是日常生活钟随处可见的简单系统。对电子数字钟的设计比较容易联系实际并进行拓展,在设计中我将力求尽可能跳出课本的样板,从现实生活中寻找设计原型和设计思路,争取有所突破。 如图所示便是我本次课程设计流程图,设计的整个过程运用自顶向下分析、自底向上实现的

七段数码管显示

七段数码管显示设计报告 目录 一、设计任务 二、题目分析与整体构思 三、硬件电路设计 四、程序设计 五、心得体会

一.设计任务 数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。 数码管动态扫描显示,是将所用数码管的相同段(a~g 和p)并联在一起,通过选位通 信号分时控制各个数码管的公共端,循环依次点亮各个数码管。当切换速度足够快时,由于人眼的“视觉暂留”现象,视觉效果将是数码管同时显示。 根据七段数码管的显示原理,设计一个带复位的七段数码管循环扫描程序,本程序需要着重实现两部分: 1. 显示数据的设置:程序设定4 位数码管从左至右分别显示1、2、3、4; 2. 动态扫描:实现动态扫描时序。 利用EXCD-1 开发板实现七段数码管的显示设计,使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接。 二.题目分析与整体构思 使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,呈“”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA 相应引脚。SEG_SEL1、SEG_SEL2、SEG_SEL3 和SEG_SEL4 为四位7 段数码管的位选择端。当其值为“1”时,相应的7 段数码管被选通。当输入到7 段数码管SEG_A~ SEG_G 和SEG_DP 管脚的数据为高电平时,该管脚对应的段变亮,当输入到7 段数码管 SEG_A~SEG_G 和SEG_DP 管脚的数据为低电平时,该管脚对应的段变灭。该四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接,当DIP 开关全部拨到上方时(板上标示为:7SEGLED),FPGA 的相应IO 引脚和四位7 段数码管连接,7 段数码管可以正常工作;当DIP 开关全部拨到下方时(板上标示为:EXPORT5),FPGA 的相应IO引脚与7 段数码管断开,相应的FPGA 引脚用于外部IO 扩展。 注意:无论拨码开关断开与否,FPGA 的相应IO 引脚都是与外部扩展接口连接的,所 以当正常使用数码管时,不允许在该外部扩展接口上安装任何功能模块板。 数码管选通控制信号分别对应4 个数码管的公共端,当某一位选通控制信号为高电平时,其对应的数码管被点亮,因此通过控制选通信号就可以控制数码管循环依次点亮。一个数码管稳定显示要求的切换频率要大于50Hz,那么4 个数码管则需要50×4=200Hz 以上的切换频率才能看到不闪烁并且持续稳定显示的字符。 三.硬件电路设计 设计结构图如下:

《汇编语言》课程设计任务书

学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 电话号码本编辑和查找程序的设计与实现 初始条件: 理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。 实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方法,掌握子程序结构的设计和友好用户界面的设计。具体的设计任务及要求: 1)建立一个可存放50项的电话号码表,每项包括人名及电话号码两部分; 2)程序可接受输入人名及相应的电话号码,并将他们加入电话号码表中; 3)凡有新的输入后,程序应按人名对电话号码表重新排序; 4)程序可接受需要查找电话号码的人名,并从电话号码表中查出其电话号码,并显示出来。 5)程序采用子程序结构,结构清晰; 6)友好清晰的用户界面,能识别输入错误并控制错误的修改。 在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。 阅读资料: 1)《IBM—PC汇编语言程序设计实验教程》实验2.4 2)《IBM—PC汇编语言程序设计(第2版)》例6.11 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试,和验收。 周5:撰写课程设计报告。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 乐曲程序的设计与实现 初始条件: 理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。 实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握程序直接控制I/O方式,掌握计算机发声程序的设计。具体的设计任务及要求:1.采用位触发方式编写程序,使计算机发出音响并演奏乐曲(例如《两只老虎》等)。 1)进一步理解程序直接控制I/O方式和位触发方式控制声音的工作原理。 2)一首乐曲是由不同频率和节拍的音调组成,因此控制脉冲的频率和持续时间是编写乐曲程序的关键。根据已知的音符频率对照表,设置乐曲的频率表和节拍时间表; 3)编写程序并调试通过。 2.了解定时器的工作原理,掌握利用定时器产生声音的方法,使计算机演奏乐曲(例如《两只老虎》等)。编写程序并调试通过。 在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。 阅读资料: 1)《IBM—PC汇编语言程序设计实验教程》3.1节 2)《IBM—PC汇编语言程序设计(第2版)》10.4节,10.5节 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试,和验收。 周5:撰写课程设计报告。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

汇编语言课程设计报告

课程设计报告 课程名称课题名称 汇编语言程序设计 1.显示彩色菱形 2.显示系统当前时间 专业 班级 学号 姓名 指导教师 年月日

课程设计任务书 课程名称汇编语言程序设计 课题 1.显示彩色菱形 2.显示系统当前时间专业班级 学生姓名 学号 指导老师 审批 任务书下达日期年月日 任务完成日期年月日

一、设计内容与设计要求 1.设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能 够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。 (1)、编制一计算比赛成绩的程序,要求完成以下功能: a、9 名评委,每个评委给分范围为 0~100(整数); b、9名评委给分中,去掉一个最高分和一个最低分,剩余7 名评委的平均分即为参赛者的得分(精确到小数点二位); c、将得分在光标位置处显示出来。 (2) 、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30 字的 grade 数组中,各数据的格式为: 学号,成绩 1,成绩 2,?,成绩 5 然后根据 grade 中的学生成绩,把学生名次填入rank 数据组中,并显示出来,格式为:学号,名次 (3)、利用 INT 1CH(大约每秒中断 18.2 次)编写一个中断驻留程序,要求在屏幕的右 上角显示计算机中当前系统时间,显示格式为 时:分: 秒:1/100 秒 (4)、输入一个菱形的两条对角线长,在屏幕上用‘ * ’号画出一个彩色的菱形。 (5)、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次, 一直到整个屏幕都显示出彩条 2.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一 些实际的问题,为将来编写软件积累一些典型的案例处理经验。 (1)、设计正确,方案合理。 (2)、界面友好,使用方便。 (3)、程序精炼,结构清晰。 (4)、设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 (5)、上机演示。 (6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编

(完整版)基于51单片机简易电子琴的设计

电子琴的设计 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。一. 任务要求与总体设计方案 1.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 1.2 设计方案 1.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率

七段共阴数码管电子钟PLC程序设计原理

七段共阴数码管电子钟PLC程序设计原理 控制要求: 1.用四个七段数码管分别显示“时十位”、“时个位”、“分十位”和“分个位”。 2.用两个发光二极管显示“秒闪烁”。 3.有“预置”和“校对”时间功能。 I/O分配: X0—运行开关,X1—预置按钮;Y0—A,Y1—B,Y2—C,Y3—D,Y4—E,Y5—F,Y6—G;Y7—“秒闪烁”指示;Y13—“时十位”显示,Y12—“时个位”显示,Y11—“分十位”显示,Y10—“分个位”显示。COM端接线:COM1和COM2(Y0—Y7所对应的公共端)接24V直流电源“+”极,COM3(Y10—Y13所对应的公共端)和COM接24V电源“-”极。 一、总体设计思想 为了减少输出点数和接线,可以将四个共阴数码管的阳极都用Y0—Y6来驱动,但让其依次轮班接通;四个数码管的阴极分别用Y10—Y13来同步控制其接通“-”极的时间,以期达到四个数码管轮番显示的目的。 二、具体设计过程 1.用两个定时器T0和T1产生秒脉冲,用Y7输出。 2.用计数器C0将秒脉冲变成分脉冲。 3.用位左移指令[SFTL]形成分个位左移码。 4.用位左移指令[SFTL]形成分十位左移码。 5.用位左移指令[SFTL]形成时个位左移码。 6.用位左移指令[SFTL]形成时十位左移码。 7.用位左移指令[SFTL]安排四个数码管轮番接通。 8.将四个位左移码分别译成七段数码管的字显示码,并考虑四个数码管轮番接通问题。 9.将字显示码用Y0—Y6输出。 个位编码表 由编码表可得逻辑表达式: M40=(M1+M3+M4+M6+M7+M8+M9+M10)M100 M41=(M1+M2+M3+M4+M5+M8+M9+M10)M100 M42=(M1+M2+M4+M5+M6+M7+M8+M9+M10)M100 M43=(M1+M3+M4+M6+M7+M9)M100

相关文档
相关文档 最新文档