99秒表设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
00~99秒表设计报告
一、设计题目和要求:
题目三:秒表
应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。
二、设计目的:
1.进一步掌握AT89C51单片机的结构和工作原理;
2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;
3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;
4.掌握PROTEUS仿真软件的使用方法;
5.掌握LED数码管原理及使用方法。
6.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
7.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。
三、系统总体设计框图
四、器件介绍
1.AT89C51
AT89C51单片机的主要工作特性:
·内含4KB的FLASH存储器,擦写次数1000次;
·内含28字节的RAM;
·具有32根可编程I/O线;
·具有2个16位可编程定时器;
·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;
·具有一个数据指针DPTR;
·两种低功耗工作模式,即空闲模式和掉电模式;
·具有可编程的3级程序锁定定位;
2.共阳极7段数码管
LED数码管根据LED的接法不同分为共阴和共阳两类,图1是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。
以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同。
3.74LS47译码器
译码器的逻辑功能是将每个输入的二进制代码译成对应的输出的高、低电平信号。常用的译码器电路有二进制译码器、二--十进制译码器和显示译码器。译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,
五、程序(汇编语言)
ORG 00H
START:
MOV P0,#00H
MOV R1,#99
JNB P3.4,PRESS
JNB P3.5,CLEAR
AJMP START
CLEAR: MOV p0,#00H
JNB P3.4,PRESS
AJMP CLEAR
PRESS: MOV A,#00H; 从0开始
PRES: MOV P0,A; 送显
MOV R5,#10; 为延时1秒设定的寄存器初始值
JNB P3.5,CLEAR
ADD_1: CALL DELAY
DJNZ R5,ADD_1; 循环一次完成一秒延时
ADD A,#01H; 计时值加一
DA A ; 十进制调整
DJNZ R1,PRES; 判断是不是到99秒
AJMP CLEAR; 计时到99后跳转到CLEAR持续显示00 DELAY: MOV R6,#200 ; 0.10秒延时子程序
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
END
六、课程设计心得体会
本文主要从软硬件两方面说明设计的总体思路和设计的实现过程,预期的设计目的是:能够实现时钟的基本功能,正常显示秒.在设计过程中,曾经遇到很多的障碍,设计图经过许多次的修改最后才定下来,但在调试的过程中又出现了问题,需要修改原理图;比如硬件的布局,要作到使连接的线路最短,并不没有想象中的那么容易;并且对汇编语言有了进一步的了解。
不足之处是追求简单,未用到计时器,中断的知识,导致复位反应时间长短不一。
七、Protues软件仿真截图