《单片机技术》课程设计说明书数字电子钟

上传人:仙*** 文档编号:32743842 上传时间:2021-10-15 格式:DOC 页数:36 大小:1.24MB
收藏 版权申诉 举报 下载
《单片机技术》课程设计说明书数字电子钟_第1页
第1页 / 共36页
《单片机技术》课程设计说明书数字电子钟_第2页
第2页 / 共36页
《单片机技术》课程设计说明书数字电子钟_第3页
第3页 / 共36页
资源描述:

《《单片机技术》课程设计说明书数字电子钟》由会员分享,可在线阅读,更多相关《《单片机技术》课程设计说明书数字电子钟(36页珍藏版)》请在装配图网上搜索。

1、 单片机技术课程设计说明书 数字电子钟 系 、 部: 电气与信息工程系 学生姓名: 指导教师: 职称 专 业: 电子信息工程 班 级: 完成时间: 2010.12.29 摘 要电子钟现如今已非常普遍而且也早已成为人生日常生活中必不可少的必需品,广泛应用于家庭、学校、车站、剧院、商店、办公室等场所。几乎走到哪都我们都离不开对时间的控制,甚至有的场合对其精确度有着很高的要求。因而电子钟给人们的生活、学习、工作带来了极大的方便。本课题中采用单片机技术设计电子钟。采用AT89S52单片机为主控芯片,实现了时间的显示、调整及整点报时功能。根据时钟时、分和秒之间的关系通过软件编程的方法实现电子钟的运行。用

2、8位7段LED数码管(两个四位一体数码管)显示。具有走时准确、显示直观、精度、稳定等优点。更具有推广应用价值。关键词 电子钟;单片机;硬件系统;软件系统ABSTRACTElectric clock has now very common but also has already become life daily life essential necessities, widely used in family, school, station, theatres, stores, offices and other places. Almost go where are we all is

3、inseparable from the time of control and even some occasions with high accuracy of the request. Thus electric clock to the life of people, study, work brought great convenience. This topic in the one-chip computer technology design electric clock. Adopt AT89S52 SCM as the controller chip, has realiz

4、ed the time display, adjustment and integral point to announce the function. According to the clock, minutes, and seconds when the relationship between through programming method of realization electric clock operation. The 8-bit seven sections LED digital tube (two four-in-one digital tube) display

5、s. With traveltime accurate, show intuitional, precision, stability, etc. The more has higher application value.Keywords electric clock; microcontroller; hardware system;software system目 录1 设计课题任务、功能要求说明及总体方案介绍41.1 设计课题任务41.2 功能要求说明41.3 设计课题总体方案介绍及工作原理说明42 设计课题硬件系统的设计62.1 设计课题硬件系统各模块功能62.2 设计课题相关图纸6

6、2.3 设计课题元器件清单63 设计课题软件系统的设计73.1 设计课题使用单片机资源的情况73.2 设计课题软件系统各模块功能73.3 设计课题软件系统程序流程框图73.4 设计课题软件系统程序清单114 设计结论及教学建议124.1 设计课题的设计结论及使用说明124.2 设计课题的仿真结果124.3 设计课题的误差分析134.4 设计心得及教学建议13参考文献14致 谢15附 录16附录一16附录二19附录三20 1 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。1.2 功能要求说明该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时

7、钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.3 设计课题总体方案介绍及工作原理说明本课题中的电子钟主要由单片机、独立式键盘、数码管显示电路和复位电路、晶振电路及蜂鸣器构成,设计课题的总体方案硬件结构图如图1.1所示。图1.1 电子钟设计总体方案硬件结构图本次设计电子钟,采用了AT89S52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用蜂鸣器来进

8、行整点时间提醒,通过四个模块:单片机、键盘、显示器及蜂鸣器即可满足设计要求。利用单片机定时器中断的方法使电子钟以秒运行。通过按键控制电子钟的启动和调整状态,并通过按键选择调整秒、分、时,选择完后可进行加一或者减一的操作。电路中最重要部分即单片机系统,单片机系统是在单片机芯片的基础上扩展其它电路或芯片构成的具有一定应用功能的计算机系统。在单片机系统中,单片机是控制核心,是构成单片机系统的硬件和软件基础。在后面章节将具体介绍本课题中单片机硬件及软件系统的个模块的功能。此外,本次课程设计用到最重要的一部分就是单片机的定时器中断功能,其中定时器的工作方式由控制寄存器TMOD控制,其高半字节用于控制T1

9、,也就是本课题中用到的定时器。另外TMOD中的M1和M0是定时器的工作方式选择位,由于定时需要达到1秒,所以选择其工作方式1工作。定时器在模式1工作时为16位计数器,记到65535才溢出,最长计时65.535ms。可以每隔50ms中断一次,中断20次为1秒。计算初值由公式得X=15536=3CB0H。因此TH1=3CH,TL1=0B0H。 2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能本课题设计的硬件系统主要由以下几个模块来实现,控制模块、输入模块、输出模块、电源模块。控制模块即单片机系统,主要用于对按键信号的接受和处理以及处理完后控制显示器的显示。输入模块主要是指独立式键盘,用

10、于向控制模块输入各种信息。在本课题中可按键控制时间的调整。输出模块主要是指显示器,用于实时的显示各种信息。在本课中用以显示时间。电源模块主要用于向整个硬件系统供电。2.2 设计课题相关图纸设计课题电路原理图、PCB图、元器件布局图见附录一。2.3 设计课题元器件清单设计课题元器件清单见附录二。3 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况设计课题使用单片机资源情况如下:AT89S52单片机的P0口通过上拉电阻作为输出数码管段控信号, P2口作为输出数码管位控信号,P1口接八个独立式键盘,作为控制键。利用定时器中断的方法实现电子钟的运行。P3.1接蜂鸣器以达到整点报时的功能。复位

11、电路及晶振电路的使用。78H-7FH字节单元用于显示缓存区。各寄存器用于暂存数据,堆栈栈底5FH。3.2 设计课题软件系统各模块功能本课题设计中的软件系统主要采用以下各模块来实现:系统监控程序、中断服务程序、键功能程序和子程序。系统监控程序即主程序,用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。中断服务程序主要用于实现电子钟的准确运行及整点报时功能。键功能程序即实现各个按键不同功能的程序,本设计中有四个键功能程序,包括:启动/调整键、选择调整键、加一键及减一键。子程序包括键盘扫描子程序、数码管显示子程序和延时程序。键盘扫描子程序用于确定按键并进行相应的键值处理;数码管

12、显示子程序则用于控制数码管的显示,以准确的显示时间;延时程序即是数码管动态显示中必要的一部分,因此我们才能看到时间稳稳地显示在数码管上。3.3 设计课题软件系统程序流程框图系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程序转变成十六进制程序语言,接着使用Proteus 进行仿真,读出显示数据。中断服务程序流程图如图3.1所示。监控程序流程图如图3.2所示。调整键的键功能程序流程图如图3.3所示。加一键的键功能程序流程图如图3.4所示。减一键的键功能程序流程图如图3.5所示。键盘扫描子程序流程图如图3.6所示。数码管显示子程序流程图如图3.7所示。图3.1 中断服务程序

13、流程图图3.2 监控程序流程图图3.3 调整键的键功能程序流程图图3.4 加一键的键功能程序流程图图3.5 减一键的键功能程序流程图图3.6 键盘扫描子程序流程图图3.7 数码管显示子程序流程图3.4 设计课题软件系统程序清单设计课题软件系统程序清单,详见附录三。4 设计结论及教学建议4.1 设计课题的设计结论及使用说明本课题采用单片机技术设计,用独立式键盘控制时钟的显示,上电数码管最左端显示“P.”。按下启动/调整键时钟从0时0分0秒开始运行,再按启动/调整键时钟则进入准备调整状态,此时按下调整选择键可选择调整秒、分或时位数,被选择的位数会闪烁。选择好调整的位数后,可控制加一键对任意位进行加

14、一操作,另外有减一键对任意位进行减一操作,以方便时钟的调整。调整完后按下启动/调整键时钟会重新进入运行状态。此外还利用蜂鸣器有整点报时功能,每到整点,蜂鸣器会叫一声以提醒时间。4.2 设计课题的仿真结果在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如图4.1与4.2所示。实现功能:可调整运行的电子钟具有三种工作状态:“P.”状态、运行状态、调整状态。“P.”状态,依靠上电或按复位键进入,在此状态下,按K1、K2、K3键均无效,按K0键有效,进入运行状态。运行状态,在此状态下,按K2、K3键均无效,按K0进入调整状态,再按K1键可选择调整的位数;按下K0键

15、推出调整状态,重新进入运行状态。调整状态,按K1键可选择进入时、分、秒的闪烁,在此状态下,按K2(+1键)、K3(-1键)键均有效;调整结束后必须按K0键,即可退出调整状态,重新进入运行状态。时间显示格式为:时-分-秒。图4.1 “P.”状态仿真结果图4.2 时钟运行状态仿真结果4.3 设计课题的误差分析该电子钟在运行中存在一定的误差,本课题最好方案应该采用计时器中断的方法编程,虽然已经采用此种方法,还是存在一些误差。存在误差是因为执行中断程序,这个过程是需要时间的。其次还有硬件系统也有一定的影响,因而实际运行时会慢一些,有需改进的地方。比如计数初值可稍微比计算的值设的大一些,但误差或多或少都

16、会有的,难以完全避免。4.4 设计心得及教学建议本次课程设计虽然功能已完成了老师的要求,但还存在很多不足之处。刚开始编程时没考虑比较各个方案就开始设计,因而没有选择好最佳方案,对电子钟的准确运行造成了不好的影响。并在最后还发现在按键不松的情况下时钟会停止运行通过本次设计,因而又重新设计过了程序。通过这次课程设计让我明白一点就是设计课题不要盲目开始,在开始前要有完整的思路,确定最佳方案,设计的过程中不要带有定势思维去思考,多动脑,多想方法以达到最佳的效果。但设计过程中还是受益匪浅的,最重要的是要吸取本次的教训。硬件方面的设计是在老师的监督安排下顺利完成的,动手从画原理图到PCB图,然后转印、腐蚀

17、以及焊元器件一路做过来收获很多,明白了制作实物的大概流程,自己从这一系列的实践操作中学到了很多书本上学不到的东西,这点非常感谢老师以及同学的帮助。通过一学期的单片机学习,会了很多,老师的教学方法是我喜欢的,一步步从硬件到软件教给了我们很多,不管是期间为我们布置的作业还是实验的要求都让我从实践中深刻的学到了很多东西,才使得课程设计进行的比较顺畅。最后,想说老师保持这种教学方法一直下去就好,认真负责的态度会让学生收获很多,循序渐进的教学方法能让学生比较轻易地接受所学内容并有兴趣一直学下去,这点真的做的很好。只是在引导学生思考的时候希望还能多给出些方法上的指导,不要一昧的叫学生自己思考,有的时候真的

18、会很难想到,虽然多思考也有好处。参考文献1李广弟,朱月秀,冷祖祁.单片机基础M.第3版.北京:北京航空航天大学出版社,2007.18156Li Guangdi. Zhu Yuexiu. Leng zuqi. Microcontroller based on M.3rd ed.Beijing: Beijing Aerospace University Press, 2007. 18156致 谢最开始当然是要谢谢指导老师了,因为老师的教学方法才让本次课程设计顺畅的完成,从学期刚开始没多久就叫我们画原理图、做实物,到后来学习程序的编写,一路过来如果不是老师的合理安排以及负责监督我们完成,恐怕到最后弄

19、课程设计要做实物也要编程会弄的手忙脚乱。一学期下来真的是学到了很多。除了老师,还要感谢同学这一学期来的帮助,有星星之火的帮助在做实物的过程中才少走了很多的弯路也学到了很多。没有同学的帮助很多事也会无从做起。衷心的感谢他们。附 录附录一电路原理图:PCB图顶层:底层:元器件布局图:附录二元器件清单名称数量参数单片机1个AT89S52共阳数码管2个4位一体底座3个晶振1个12MHz发光二极管9个单排插1个40PIN蜂鸣器1个按键9个排阻2个10K三极管9个PNP下载口座子1个温度传感器1个18B20六脚按键开关1个USB电源线加接口1个电阻1个200电阻1个4.7K电阻3个1K电阻24个470电解

20、电容1个22f瓷片电容2个33pf短路帽3个PCB板子1块电源白色插座1个杜邦线1个铜柱 (带螺母)4个附录三;*;项目名称:数字电子钟的设计;设计者:余佳婵;设计日期:2010年12月26日;*;堆栈栈底:5FH;*;LED数码管显示器设定;P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;P2.7-P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);显示缓冲区设定从左至右依次为7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,

21、LED0);*;独立式键盘设定;8个按键S2至S9分别依次接在P1.0至P1.7口线; ;* ;子程序;DIR(数码管显示子程序);KEY(键盘扫描子程序);KEYCL(P1口数据处理子程序);DL(数码管显示子程序中所需的延时子程序);*;常数表格;BG(共阳数码管字型代码表);BG0(系统提示符P.字型代码序号表);BG1(电子钟显示0时0分0秒字符代码序号表);*;中断服务程序;定时器1中断TT;*;键功能程序;K0/K00:电子钟开始/调整键;K1/K10/K11:选择调整时钟的秒针数/分针数/时针数;K20/K21/K22:对时钟的秒针数/分针数/时针数进行加一操作;K30/K31/

22、K32:对时钟的秒针数/分针数/时针数进行减一操作;*;数据存储器变量及常量单元定义;20H字节单元:十六进制数键值;78H-7FH字节单元:显示缓存区;21H.1位单元:布尔量借以判断时十位数的状态;*;系统起始程序区ORG0000H START:LJMPMAINORG001BH ;定时器1的中断入口地址LJMPTT;*;系统监控程序区ORG0030HMAIN:MOVSP,#5FH ;确立堆栈区MOVPSW,#00H ;初始化PSW,通用寄存器组为第0组MOVR0,#20H ;RAM区首地址MOVR5,#96 ;RAM区单元个数QL:MOVR0,#00HINCR0DJNZR5,QLSETBE

23、A ;中断初始化SETBET1MOVTMOD,#10H ;TMOD初始化MOVTH1,#3CH ;计数初值初始化MOVTL1,#0B0H XP0:MOVDPTR,#BG0 ;提示符“P.”字符代码表首地址MOVR0,#78HMOVR2,#08HXP:CLRAMOVCA,A+DPTR MOVR0,AINCR0INCDPTRDJNZR2,XPLCALLDIR ;调显示子程序显示提示符“P.”LCALLKEY ;调键盘扫描子程序JB20H.0,K0LJMPXP0;*;键功能程序;电子钟进入启动/调整状态K0:MOVDPTR,#BG1 ;显示0时0分0秒字符代码表首地址MOVR0,#78HMOVR1,

24、#08HXK:CLRAMOVCA,A+DPTRMOVR0,AINCR0INCDPTRDJNZR1,XKMOVR2,#14H KA:SETBTR1 ;开启定时器,电子钟进入启动状态KA0:LCALLDIRLCALLKEYJB20H.0,K00LJMPKA0 K00:CLRTR1 ;关闭定时器电子钟进入准备调整状态LCALLDIRLCALLKEYJB20H.0,T01 ;重新进入时钟运行状态JB20H.1,K1 ;选择调整时钟的秒针数LJMPK00;*;选择调整时钟的秒针数K1:MOVR5,7EHMOVR6,7FHMF3:MOVR0,78HMOVR1,79H;保存缓冲区78H,79H中的内容SM:

25、MOV7EH,R5MOV7FH,R6MOV78H,#0AHMOV79H,#0AH;给78H,79H中送提示符“灭”字符代码MOVR2,#16HCL1:LCALLDIRLCALLKEYJB20H.0,MF0;重新进入时钟运行状态JB20H.1,K10;选择调整时钟的分针数JB20H.2,K20;对时钟的秒针数进行加一操作JB20H.3,T30DJNZR2,CL1MOV78H,R0MOV79H,R1;将78H,79H中原有的内容送回其中MOVR2,#16HCL2:LCALLDIRLCALLKEYJB20H.0,T01;重新进入时钟运行状态JB20H.1,K10;选择调整时钟的分针数JB20H.2,

26、K20;对时钟的秒针数进行加一操作JB20H.3,T30DJNZR2,CL2LJMPSMT30:LJMPK30;对时钟的秒针数进行减一操作MF0:MOV78H,R0MOV79H,R1T01:LJMPKA;*;选择调整时钟的分针数K10:MOVR3,7BHMOVR4,7CH;保存缓冲区7BH,7CH中的内容SF:MOV78H,R0MOV79H,R1MOV7BH,#0AHMOV7CH,#0AH;给7BH,7CH中送提示符“灭”字符代码MOVR2,#16HCL3:LCALLDIRLCALLKEYJB20H.0,MF1;重新进入时钟运行状态JB20H.1,T11JB20H.2,T21JB20H.3,T

27、31DJNZR2,CL3MOV7BH,R3MOV7CH,R4;将7BH,7CH中原有的内容送回其中MOVR2,#16HCL4:LCALLDIRLCALLKEY JB20H.0,T01;重新进入时钟运行状态JB20H.1,T11JB20H.2,T21JB20H.3,T31DJNZR2,CL4LJMPSFT11:LJMPK11;选择调整时钟的时针数T21:LJMPK21;对时钟的分针数进行加一操作T31:LJMPK31;对时钟的分针数进行减一操作;*;对时钟的秒针数进行加一操作K20:MOV78H,R0MOV79H,R1K200:CJNER0,#09H,IMGMOV78H,#00HINC79HMO

28、VR1,79HCJNER1,#06H,IMG0MOV79H,#00HLJMPIMG0IMG:INC78HIMG0:MOVR0,78HMOVR1,79HCL70:MOVR2,#26HCL7:LCALLDIRLCALLKEYJB20H.0,T02 ;重新进入时钟运行状态JB20H.1,K10 ;选择调整时钟的分针数JB20H.2,K200 ;对时钟的秒针数进行加一操作 JB20H.3,K30 ;对时钟的秒针数进行减一操作DJNZR2,CL7LJMPCL70MF1:MOV7BH,R3MOV7CH,R4LJMPKA;*;对时钟的秒针数进行减一操作K30:MOV78H,R0MOV79H,R1K300:C

29、JNER0,#00H,DMGMOV78H,#09HCJNER1,#00H,DMG1LJMPDMG2DMG1:DEC79HLJMPDMG0DMG2:MOV79H,#05HLJMPDMG0DMG:DEC78HDMG0:MOVR0,78HMOVR1,79HCD70:MOVR2,#26HCD7:LCALLDIRLCALLKEYJB20H.0,T02JB20H.1,T10JB20H.2,K20;对时钟的秒针数进行加一操作 JB20H.3,K300;对时钟的秒针数进行减一操作DJNZR2,CD7LJMPCD70T10:LJMPK10;选择调整时钟的分针数T02:LJMPKA ;重新进入时钟运行状态;*;选

30、择调整时钟的时针数K11:MOVR5,7EHMOVR6,7FH;保存缓冲区7EH,7FH中的内容SS:MOV7BH,R3MOV7CH,R4MOV7EH,#0AHMOV7FH,#0AH;给7EH,7FH中送提示符“灭”字符代码MOVR2,#16HCL5:LCALLDIRLCALLKEYJB20H.0,MF2;重新进入时钟运行状态JB20H.1,Y1;选择调整时钟的秒针数JB20H.2,T22 JB20H.3,T32DJNZR2,CL5MOV7EH,R5MOV7FH,R6;将7EH,7FH中原有的内容送回其中MOVR2,#16HCL6:LCALLDIRLCALLKEYJB20H.0,T02;重新进

31、入时钟运行状态JB20H.1,Y1;选择调整时钟的秒针数JB20H.2,T22 JB20H.3,T32DJNZR2,CL6LJMPSST22:LJMPK22;对时钟的时针数进行加一操作T32:LJMPK32;对时钟的时针数进行减一操作MF2:MOV7EH,R5MOV7FH,R6LJMPKA;*;对时钟的分针数进行加一操作K21:MOV7BH,R3MOV7CH,R4K210:CJNER3,#09H,IFGMOV7BH,#00HINC7CHMOVR4,7CHCJNER4,#06H,IFG0MOV7CH,#00HLJMPIFG0IFG:INC7BHIFG0:MOVR3,7BHMOVR4,7CHCL8

32、0:MOVR2,#26HCL8:LCALLDIRLCALLKEYJB20H.0,T02;重新进入时钟运行状态JB20H.1,K11;选择调整时钟的时针数JB20H.2,K210;对时钟的分针数进行加一操作JB20H.3,K31;对时钟的分针数进行减一操作DJNZR2,CL8LJMPCL80Y1:LJMPMF3;*;对时钟的分针数进行减一操作K31:MOV7BH,R3MOV7CH,R4K310:CJNER3,#00H,DFGMOV7BH,#09HCJNER4,#00H,DFG1LJMPDFG2DFG1:DEC7CHLJMPDFG0DFG2:MOV7CH,#05HLJMPDFG0DFG:DEC7B

33、HDFG0:MOVR3,7BHMOVR4,7CHCD80:MOVR2,#26HCD8:LCALLDIRLCALLKEYJB20H.0,T03 ;重新进入时钟运行状态JB20H.1,Y11 ;选择调整时钟的时针数JB20H.2,K21 ;对时钟的分针数进行加一操作JB20H.3,K310 ;对时钟的分针数进行减一操作DJNZR2,CD8LJMPCD80Y11:LJMPK11 ;选择调整时钟的时针数;*;对时钟的时针数进行加一操作K22:MOV7EH,R5MOV7FH,R6K220:MOV21H,7FHJB21H.1,I1CJNER5,#09H,ISGMOV7EH,#00HINC7FHMOVR6,

34、7FHCJNER6,#03H,ISG0MOV7FH,#00HLJMPISG0I1:CJNER5,#03H,ISGMOV7EH,#00HMOV7FH,#00HLJMPISG0ISG:INC7EHISG0:MOVR5,7EHMOVR6,7FHCL90:MOVR2,#26HCL9:LCALLDIRLCALLKEYJB20H.0,T03JB20H.1,Y1;选择调整时钟的秒针数JB20H.2,K220;对时钟的时针数进行加一操作JB20H.3,K32;对时钟的时针数进行减一操作DJNZR2,CL9LJMPCL90T03:LJMPKA ;重新进入时钟运行状态;*;对时钟的时针数进行减一操作K32:MOV

35、7EH,R5MOV7FH,R6K320:MOVA,7FHJZD1CJNER5,#00H,DSGMOV7EH,#09HCJNER6,#00H,DSG1LJMPDSG2D1:CJNER5,#00H,DSGDSG2:MOV7EH,#03HMOV7FH,#02HLJMPDSG0DSG1:DEC7FHLJMPDSG0DSG:DEC7EHDSG0:MOVR5,7EHMOVR6,7FHCD90:MOVR2,#26HCD9:LCALLDIRLCALLKEYJB20H.0,T03;重新进入时钟运行状态JB20H.1,Y2;选择调整时钟的秒针数JB20H.2,Y22;对时钟的时针数进行加一操作JB20H.3,K3

36、20;对时钟的时针数进行减一操作DJNZR2,CD9LJMPCD90Y2:LJMPMF3Y22:LJMPK22;*;中断服务程序:TT:MOVTH1,#3CH;重赋计数初值MOVTL1,#0B0HDJNZR2,QUIT;中断次数没满20次则跳出中断MOVR2,#14HSETBP3.1;关蜂鸣器INC78H;秒个位加一MOVA,#0AHXRLA,78HJNZQUIT;秒个位不等于10则跳出中断MOV78H,#00H;秒个位重赋0INC79H;秒十位加一MOVA,#06HXRLA,79HJNZQUIT;秒十位不等于6则跳出中断MOV79H,#00H;秒十位重赋0INC7BH;分个位加一MOVA,#

37、0AHXRLA,7BHJNZQUIT;分个位不等于10则跳出中断MOV7BH,#00H;分个位重赋0INC7CH;分十位加一MOVA,#06HXRLA,7CHJNZQUIT;分十位不等于6则跳出中断MOV7CH,#00H;分十位重赋0CLRP3.1;蜂鸣器整点报时MOV21H,7FH JB21H.1,X1;查时十位状态INC7EHMOVA,#0AHXRLA,7EHJNZQUIT;时个位不等于10则跳出中断MOV7EH,#00HLJMPX2X1:INC7EHMOVA,#04HXRLA,7EHJNZQUIT;时个位不等于4则跳出中断MOV7EH,#00HX2:INC7FHMOVA,#03HXRLA

38、,7FHJNZQUIT;时十位不等于3则跳出中断MOV7FH,#00HQUIT:RETI;中断返回;*;键盘扫描子程序:键值在内部RAM 20H单元中KEY:PUSHACCLCALLKEYCL ;调P1口数据处理子程序JZFH;判断键是否按下LCALLDIR;调显示子程序去抖动LCALLDIRJZFH;确认键是否真的按下MOVB,20H;保存取反后的键值KEYSF:LCALLKEYCL;调P1口数据处理子程序JZHF;判断键是否释放LCALLDIR;调显示子程序延时LJMPKEYSF;等待键释放HF:MOV20H,B;键值送20H保存FH:POPACCRET;*;P1口数据处理子程序KEYCL

39、:MOVA,P1;读P1口数据CPLA;P1口数据取反MOV20H,A;保存取反后的键值RET;*;数码管显示子程序入口:7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)DIR:PUSHDPH ;保护现场PUSHDPLPUSHACCPUSHPSWSETBRS0;改变当前寄存器组为组01组CLRRS1;显示缓冲存储单元首地址MOVR0,#78H;从右至左显示MOVR1,#0FEHMOVA,R1LED0:MOVP2,A ;送位控MOVDPTR,#BG;共阳数码管字型代码表首地址MOVA,R0MOVCA,

40、A+DPTRMOVP0,A;送段控LCALLDL;延时INCR0;获得新的显示缓冲单元地址MOVA,R1;位控码送AJNBACC.7,LED1;循环没有结束则继续RLA;获得新的位控码MOVR1,A;保存新的位控码LJMPLED0LED1:POPPSW;恢复现场POPACCPOPDPLPOPDPHRET;*;数码管显示子程序中所需的延时子程序DL:MOVR7, #02HDL1:MOVR6, #0FFHDL2:DJNZR6, DL2DJNZR7, DL1RET;*BG0:DB0AH,0AH,0AH,0AH,0AH,0AH,0AH,0BHBG1:DB00H,00H,0CH,00H,00H,0CH,

41、00H,00HBG:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0CH,0BFH;0-9,灭,P.ENDut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijd

42、LSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3f

43、whZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0ve

44、nqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO

45、2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lN

46、W2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDP

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!