课程设计报告按键秒表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按键秒表
第三章
一、实验内容及要求
1、实验内容
用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00.0-59.9秒,每秒自动加一。另设计一个“开始”按键和一个“复位”按键。按键说明:按
“开始”按键,开始计数,数码管显示从00.0开始每秒自动加一;按“复位”
按键,系统清零,数码管显示00.0。
2、实验要求
了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行
显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒
表起动、清零功能,精确到0.1秒。要求选用定时器的工作方式,画出使用单
片机控制LED数码管显示的电路图,并在实验箱实现其硬件电路,并编程完成
软件部分,最后调试秒表起动、停止、清零功能。
二、课题研究目的和意义及介绍
1、目的意义
1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课
程的应用进一步的了解。
2)掌握定时器、外部中断的设置和编程原理。
3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系
统,拥有正确的计时、清零功能,并同时可以用数码管显示,在现实生活
中应用广泛,具有现实意义
3、实验仪器
集成电路芯片8032,七段数码管,AT89C51实验箱,按键,DVCC系列单
片机微机仿真实验系统中的软件(WAVE 6000)
三、设计思路及描述
该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89S51,其管脚功能也和AT89C51的管脚功能类似)中的P1.6管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P1.5做为外部中断1的入口地址,并实现“清零”按键的功能。其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;
“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
四、硬件设计
1、接口电路
利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。
五、软件设计
1、数字秒表工作流程图
2、用51单片机实现数字秒表工作源程序
ORG0000H ;初始化
SJMP MM
ORG000BH
SJMP CC
MM:MOV DPTR,#TAB
SETB EA
SETB ET0
MOV R1,#0
MOV R2,#0
MOV R3,#0
MOV R0,#16
MOV TMOD,#01H
MOV TH0,#(65536-5000)/ 256
MOV TL0,#(65536-5000)MOD256
AA:ACALL EE
MOV P1,#0FFH
CLR P1.6;送第1 行,判断第1行有键按下?
MOV A,P1
ANL A,#01H
XRL A,#01H; 判断第1行有没按键按下的功能。
JZ HH;没有列没键按下,转PP,查暂停键
SETB TR0
LCALL EE
HH:MOV P1,#0FFH
CLR P1.5;送第1 行,判断第1行有键按下?
MOV A,P1
ANL A,#01H
XRL A,#01H; 判断第1行有没按键按下的功能。
JZ AA ;没有键按下去,继续返回
CLR TR0
MOV R1,#0
MOV R2,#0
MOV R3,#0
LJMP AA
CC:DJNZ R0,FF
MOV R0,#16
INC R1
CJNE R1,#10,FF
MOV R1,#0
INC R2
CJNE R2,#10,FF
MOV R2,#0
INC R3
CJNE R3,#6,FF
MOV R3,#0
FF:MOV TH0,#(65536-5000)/ 256
MOV TL0,#(65536-5000)MOD256
RETI ;定时返回
EE: MOV P2,#02H ;显示程序
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
ACALL D0
MOV P2,#04H
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
SETB P0.1
ACALL D0
MOV P2,#06H
MOV A,R3
MOVC A,@A+DPTR
MOV P0,A
ACALL D0
RET
TAB:DB0EDH,88H,0B5H,0B9H,0D8H,79H,7DH,0A8H,0FDH,0F9H D0:MOV R5,#20;延时程序
DL1:MOV R6,#50
DL2:DJNZ R6,DL2
DJNZ R5,DL1
RET
END