51单片机做数字电子钟

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机做数字电子钟

悬赏分:10 -解决时间:2009-7-517:42

设计一个数字电子钟,要求可以进行时、分、秒显示,最大显示时间为23:59:59,并且可以通过按键进行时、分调整。"

画出硬件连接电路图,说明各个控制信号的作用。"

画出程序流程图,编写程序,硬件连接调试,直至正确。"

编写课程设计报告。"

3、给定条件

在Dais-52PH+单片机实验箱中,有一片8155芯片用于扩展3×3键盘,还具有6位LED数码显示器,可分别用于按键和显示控制。

在PC机上调试可使用MCS51仿真开发系统。

数字电子钟的工作过程为:从00:00:00(时:分:秒)开始计时,以24小时为一循环,最大计时时间为23:59:59。当需要校正时间时,按下调整键,小时的十位闪烁,等待键入新值,若需调整则按下加1按键,数值以秒为单位自动加1,当十位调整好后,按下确认键确认,然后小时的个位闪烁,等待键入新值,按照十位的调整步骤调整时间,并按下确认键确认,当确认后,分钟的十位开始闪烁,等待键入新值,分钟的十位和个位调整过程与小时调整一样,只是当分的个位调整好后,按下确认键即启动计时。

数字电子钟是以1s为最小定时单位的,51单片机自身具有两个16位定时/计数器,当晶振频率为6MHz时,最大定时时间为0.13s。而具有时、分和秒的数字电子钟只能以1s定时,所以要实现实现1s定时,必须采用软件计数和定时器定时相结合的方法。每1s定时到,修改显示值,送6位LED显示。

本课题需用6个LED数码管显示时间值,并且需调整键、加1键、确认键等控制键。在Dais-52PH+单片机实验箱中,6位LED数码显示器的字形口地址为0FFDCH,字位口地址为0FFDDH,字形表和字位表见附录一。可通过8155可编程接口芯片驱动的3×3键盘实现按键控制(具体电路参考课题一数字秒表)。8155的PC0~PC2为3×3键盘的行扫线,PB0~PB2为3×3键盘的列扫线,键盘工作过程为:单片机从8155的PB0~PB2送出全零,并从PC0~PC2读入数据,当PC0~PC2≠000时,表明有键按下,则逐行从PB0~PB2送出零,再从PC0~PC2口读入,最终确定按键位置和键值,此后,转入相应的按键处理程序,修改显示缓冲区内容。

提问者:wangalong211- 一级

最佳答案

源程序如下:ORG 0000H;程序开始入口

LJMPSTART

ORG0003H ;外中断0中断程序入口

RETI

ORG 000BH ;定时器T0中断程序入口

LJMP INTT0 ;跳至INTTO执行

ORG0013H;外中断1中断程序入口

RETI

ORG 001BH ;定时器T1中断程序入口

LJMPINTT1

ORG0023H ;串行中断程序入口地址

RETI

;---------------主程序----------------------;

START:MOV R0,#70H ;70给R0,清70-7FH显示内存

MOV R7,#0FH

CLEARDISP:MOV @R0,#00H;0给R0中的数为地址的内存中存放(70H)

INCR0

DJNZ R7,CLEARDISP

MOV78H,#2;默认时间为12:00,闹钟5:00

MOV 79H,#1

MOV74H,#2;防止上电时数码管显示00小时

MOV75H,#1

MOV 66H,#1;中断退出时66H为1时,分、时计时单元数据移入显存标志

MOV68H,#1;上电默认闹钟开状态

MOV 7DH,#6 ;闹钟时十位

MOV7CH,#3

MOV 69H,#0

MOV 7AH,#0AH;放入"熄灭符"数据

MOV TMOD,#11H;设T0、T1为16位定时器

MOV TL0,#0B0H ;50MS定时初值(T0计时用)

MOVTH0,#3CH

SETB EA ;总中断开放

SETB ET0;允许T0中断

SETB TR0 ;T0定时器开始计时

MOV R4,#14H;1秒定时用初值(50MS×20)

START1:LCALL DISPLAY ;显示子程序

LCALLBEEP;闹钟查询

JNBP1.7,SETTIME ;P1.7口为0时转时间调整程序

JMP START1 ;P1.7口为1时跳回START1

;-----------------------时间闹钟调整系统--------------------------;

NFLAG:MOV A,68H;设置闹钟开关状态

CJNEA,#1,BEE68

MOV 68H,#0

JMP E6

BEE68:MOV68H,#1

E6:MOV 66H,#8 ;中断退出66H不为1时分、时计时单元数据移入显存标志

MOV 72H,7BH

MOV 73H,7CH

MOV 74H,7DH

MOV 75H,7EH

LCALL DDL

LCALLDDL

MOV 72H,68H

MOV 73H,69H

MOV 74H,7AH

MOV75H,7AH

LCALL DDL

LCALL DDL

MOV66H,#1

LJMP START1

SETTIME:LCALL DDL

JB P1.7,NFLAG ;键按下时间小于1秒,设置闹钟开关状态并查看闹钟时间,不关走时,确保准确,大于1秒调时

MOV TL1,#0B0H ;T1闪烁定时初值

MOV TH1,#3CH

MOV R2,#06H ;进入调时状态,赋闪烁定时初值

MOV 66H,#8 ;调闹钟时保持走时,关闭时钟显示数据

SETB ET1 ;允许T1中断

SETBTR1 ;开启定时器T1

SET1:LCALL DISPLAY;调用显示,防止键按下无显示

JNB P1.7,SET1 ;P1.7口为0等待键释放

MOV R5,#00H;清设置类型闪烁标志

SETN1:INC R5;闹钟分调整

SET5:LCALL DISPLAY

JB P1.7,SET5

SEETN1:LCALLDDL;有键按下大于1秒分时间连续加(0.5秒加1),小于1秒转调时状态

JBP1.7,SET6 ;键释放查询,键释放自动转调时

MOV R0,#7CH

LCALLADD1

MOV A,R3

相关文档
最新文档