




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文时钟计时器的设计论文(定稿) 单片机的时钟计时器论文目录一内容摘要二关键词和引言三时钟计时器设计1方案设计2原理分析四实验器材五利用protel99设计电路原理图1原理图2PCB图六调试及性能分析七心得体会八参考文献九时钟计时器使用说明书1.产品概述2.技术参数3.工作原理4.结构特征5.使用和维护十.时钟计时器技术说明书1.产品概述2.技术参数4.结构特征 十一、附录时钟计时器汇编程序清单一内容摘要时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。 怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 本文利用单片机实现数字时钟计时功能的主要内容,其中AT89C52是核心元件同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。 与传统机械表相比,它具有走时精确,显示直观等特点。 它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。 本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C52芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟二关键词单片机、数码管、端口、时钟、动态显示。 引言:单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。 单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。 由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面。 这次设计通过对它的学习、应用,以AT89S52芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。 本系统是基于AT89C52单片机设计的一个具有六位LED显示的数字时实时钟,采用独立式按键进行时间调整,同时引入一个内部充电电源在停止外部供电时,仍具有内部计时的功能。 该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点三.时钟计时器设计 一、方案设计1我们采用了动态显示的方法来实现LED显示器的数字显示即时钟的6位显示。 2单片机采用了AT89C52系列,这种单片机具有足够的空余硬件资源,可以实现其他的扩充功能。 3、AT89C52提供以下标准功能8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。 同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。 空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。 掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。 AT89C52的功能与C51的功能基本上是相同的。 (1)、中断源MCS51单片机是一个多中断源的单片机,有五个中断源外部中断 0、定时器0中断、外部中断 1、定时器1中断和串行接收或发送中断。 各中断源的中断处理程序入口地址如下表1所示表1中断向量表中断源入口地址外部中断00003H定时器0000BH外部中断10013H定时器1001BH串行口0023H (2)、中断控制A、中断的开放或禁止是由中断允许寄存器IE控制的。 IE的格式如下EA ESET1EX1ET0EX0EA中断总允许位。 EA1,开放总中断,而各个中断源的中断请求是允许还是禁止,分别由各自的中断允许位确定;EA=0,禁止一切中断。 ES串行口中断允许位。 ET1和ET0分别是定时器T1和T0的中断允许位。 EX1和EX0分别是外部中断1(INT1)和外部中断0(INT0)的中断允许位。 以上五个中断允许位的意义是0为禁止中断,1为允许中断。 B、中断源优先级控制中断优先级寄存器IP。 MCS51单片机有高、低两个中断优先级,5个中断源可由程序设置为高优先级中断或低优先级中断,实现二级中断嵌套。 一个正在执行的低优先级中断源的中断服务程序,能被高优先级中断源所中断,但不能被同级别的另一个中断源所中断。 MCS51单片机的5个中断源的优先级由中断优先级寄存器IP的相应位设定。 IP格式如下PS PT1PX1PT0PX03时钟计时器电路系统的总体设计框图如图1所示。 图1 二、原理分析;1采用了AT89C52单片机最化应用设计;采用共阳7段LED显示器;P0口输出段码数据;P2.0-P2.5口作列扫描输出;P1. 0、P1. 1、P1. 2、和P1.3口接4个按钮开关,用于调时及功能设置;为了提供共阳LED数码管的列扫描驱动电压,用三极管9012作电源驱动输出;采用12MHz晶振,来提高秒计时的精确性。 2计时采用了定时器T0中断来实现。 秒表使用定时器T1中断来完成。 主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。 程序的设计主程序执行流程如图3图3;3显示子程序;时间显示子程序每次显示6个连续内存单元的十进制BCD码数据,首地址在地址在调用显示程序先指定。 内存中50H-55H为闹钟定时单元,60H-65H为秒表计时单元,70H-75H为时钟显示单元。 由于采用7段共阳LED数码管动态扫描实现数据显示,所以显示用十进制BCD码数据的对应段码存放在在ROM表中。 显示时,先取出内存地址中的数据,然后查得对应的显示用段码从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。 为了显示小数点及“-”、“A”等特殊字符,在显示班级和计时时应采用不同的显示子程序。 4定时器T0中断服务程序;定时器T0用于时间计时,定时溢出中断周期为50ms,中断进入先进行定时中断初值校正,当中断累计20次时,对秒计数单元进行加1操作。 时钟计数单元地址分别在70H71H(秒),76H-77H(分),78H-79(时)中,最大计时值为23时59分59秒。 7AH单元内存放“熄灯符”数据(#0AH),用于时间调整时的闪烁功能。 在计数单元中,采用十进制BCD码计数,满10进位。 T0中断计时程序流程如图4;图4;5定时器T0中断服务程序;T1中断程序用于批示时间调整单元的闪亮或秒表计数,在时间时间状态下,每过0。 3S左右,将对应应单元的显示数据换成“熄灭符”数据(#AH)。 这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。 在作秒表计时时,每10MS中断1次,计数单元加1,每100次为1S。 秒表计计数单元地址在60H61H(10毫秒)、62H63H(秒)、64H-65H(分)中,最大计数值为99分59.99秒。 T1中断服务程序如图5;图56调时功能程序;1.按下P1.0口按键,若按下时间小于1S则进入省电状态;否则进入调分状态,等待操作,此时计时器停止走动。 当再按下P1.0口按键时,若按下时间小于0.5S,则时间加1分钟;若按下时间大于0.5要,则进入小时调整状态。 按下P1.1按键时,可进行减1调整。 在小时调整状态下,当按键按下的时间大于0.5S时,退出时间调整状态,时钟从0S开始计时。 2.秒表功能程序;在正常时钟状态下,若按下P1.1口按键,则进行时钟/秒表显示功能的转换,秒表中断计时程序启动,显示首地址改为60H,LED将显示秒表计时单元60H-65H中的数据。 按下P1.2口的按键开关,可实现秒表清0,秒表启动,秒表计时暂停功能;当再按下P1.1口按键时,关闭T1秒表中断计时,显示首地址又改为70H,恢复正常时间的显示功能。 四.实验器材器件名称规格型号数量电阻510?8电阻4.7k6电阻10k5电解电容47uF25V1电解电容10u16V1电解电容2200uf|25v1电解电容33uf/25V1陶瓷电容1031陶瓷电容302芯片AT89C521芯片插座40脚3芯片插座20脚1三极管90126二极管IN40074数码管共阳型6晶振12MHz1单面覆铜板16cm*12cm1五.利用protel99设计电路原理图1原理图2.PCB图六调试及性能分析1硬件调试1.硬件调试时可先检查印制板及焊接的质量情况,在检查无误后可通电检查LED显示器的点亮状况。 若亮度不理想,可以调整P0口的电阻大小,一般情况下取200欧姆电阻即可获得满意的亮度效果。 2.软件调试3.性能分析按照设计程序分析,LED显示器动态扫描的频率约为167Hz,实际使用观察时完全没有闪烁。 上电时具有一个滚动显示子程序,可以方便的显示制作日期等信息。 七、心得体会在这次的课程设计中我遇到了些问题,如数码管一直显示00而不跳动,原因就是少了返回指令SJMP;电路焊接短路时会导致数码管全亮,而不显示数字。 在解决这些问题时也是一个再次学习的过程。 从开始接到论文要求到时钟的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。 在这段时间里,我学到了很多知识也有很多感受,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。 这次论文的经历也会使我终身受益,我感受到做论文是要用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。 通过设计,我在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。 在此,忠心感谢老师以及许多同学的指导和支持。 八、参考文献; 1、单片机课程设计指导楼然苗、李光飞,北京北京航空航天大学出版社,xx.72单片机原理及应用何桥,北京中国铁道出版社,xx. 123、单片机教程习题与解答张俊谟,张迎新北京北京航空航天大学出版社xx.34单片机控制工程实践技术付家才北京化学工业出版社xx.3九时钟计时器使用说明书 一、概述由芯片AT89C52构成的时钟计时器,具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。 它广泛应用于各种继电器、电磁开关,控制器、廷时器、定时器等的时间测试。 目前所使用的电秒表大多是指针式或集成电路型的,结构相对复杂、测试功能单一。 本仪器还具有实时时钟、手动计时的功能。 (正常工作电压5V) 二、技术参数1兼容MCS51指令系统8k可反复擦写(1000次)Flash ROM232个双向I/O口256x8bit内部RAM33个16位可编程定时/计数器中断时钟频率0-12MHz42个串行中断可编程UART串行通道52个外部中断源共6个中断源62个读写中断口线3级加密位7低功耗空闲和掉电模式软件设置睡眠和唤醒功 三、工作原理系统硬件设计时钟计时器采用AT89C52单片机最小化应用设计;P1口输出段码数据;P2.0P2.5作列扫描输出;P1. 1、P1.1,P1.2和P1.3接按钮开关,用于调时及功能设置;采用12MHZ的晶振AT89C52作为主控芯片,定期的读取时钟芯片DS1302中的时间并把小时和肥以示在6位LED中,显示时间。 四、结构特征它体积小,外形尺寸16cm*12cm、无外观修饰,完全裸露内部元件、操作方便,便于安装、拆卸与维修。 五、使用和维护 1、使用 (1)与输入信号端连接,接5V直流电。 (2)调时功能按下P1.0口按键,若按下时间小于1s,则进入省电状态;否则进入调分状态,等待操作,此时计时器停止走动。 当再按下P1.0口按键时,若按下时间小于0.5s,则时间加1分;若按下时间大于0.5s,则进入时调整状态。 按下P1.1时。 在时调整状态下,当按键按下的时间大于0.5s时,退出时间调整状态,时钟从0s开始计时。 (3)在正常时钟状态下,若按下P1.1口按键,则进行时钟/秒表显示功能的转换,秒表中断计时程序启动,显示首址改为60H,LED将显示秒表计时单元60H-65H中的数据。 按下P1.2口说我按键开关,可实现秒表清 0、秒表启动、暂停功能;再按下P1.1口时,关闭T1秒表中断计时,显示首址又改为70H,恢复正常时间的显示功能。 2、维护 (1)断电情况下,用万用表检是否有元器件松动,有松动则进行烙牢; (2)用万用表检测元器件是否接触良好; (3)检测输入电压是否是5V。 (4)不使用时断开电源,确保电路安全; (5)尽量保持元件清洁、牢固.十时钟计时器技术说明书 一、产品概述由芯片AT89C52构成的时钟计时器,这种单片机具有足够的空余硬件资源,可以实现其他的扩充功能。 考虑使用电池供电,时钟显示有6位。 采用动态扫描法实现数码管的显示。 电源电压为5V。 单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。 它广泛应用于各种继电器、电磁开关,控制器、廷时器、定时器等的时间测试。 目前所使用的电秒表大多是指针式或集成电路型的,结构相对复杂、测试功能单一。 本仪器还具有实时时钟、手动计时的功能。 二、技术参数1芯片AT89C52图2兼容MCS51指令系统8k可反复擦写(1000次)Flash ROM332个双向I/O口256x8bit内部RAM43个16位可编程定时/计数器中断时钟频率0-24MHz52个串行中断可编程UART串行通道62个外部中断源共6个中断源72个读写中断口线3级加密位8低功耗空闲和掉电模式软件设置睡眠和唤醒功 三、工作原理时钟计时器采用AT89C52单片机最小化应用设计;P1口输出段码数据;P2.0P2.5作列扫描输出;P1. 1、P1.1,P1.2和P1.3接按钮开关,用于调时及功能设置;采用12MHZ的晶振AT89C52作为主控芯片,用于产生时钟信号。 四、结构特征它体积小,外形尺寸16cm*12cm、无外观修饰,完全裸露内部元件、操作方便,便于安装、拆卸与维修。 时钟正面图时钟反面附录AT89C52时钟程序;*;以下程序能用于24小时计时,能作为秒表使用,能定时闹铃1分钟(也可关).;使用方法:开机后在00:00:00起开始计时, (1)长按P1.0进入调分状态:分单元闪烁;按P1.0加1,按P1.1减1.再长按P1.0进入时调整状态,时单元闪烁,加减调整同调分.;按长按退出调整状态. (2)按下P1.1进入秒表状态:按P1.2暂停,再按P1.2秒表清零,再按;P1.2秒表又启动,按P1.1退出秒表回到时钟状态. (3)按P1.3进入设定闹时状态:00:00:-,可进;行分设定,按P1.2分加1,再按P1.3为时调整,00:00:-,按P1.2时加1,按P1.1闹铃有效,显示为00:00:-0,再按;P1.1闹铃无效(显示00:00:-,),按P1.3调闹钟结束.在闹铃时可按P1.3停闹,不按闹铃1分钟.;定时器T 0、T1溢出周期为50MS,T0为秒计数用,T1为调整时闪烁及秒表定时用,;P1. 0、P1. 1、P1. 2、P1.3为调整按钮,P0口为字符输出口,P2为扫描口,P1.7为蜂呜器口,采用共阳显示管。 ;50H-55H为闹钟定时单元,60H-65H为秒表计时单元,70H-75H为显示时间单元,76H-79H为分时计时单元。 ;03H标志=0时钟闪烁,=1秒表,05H=0,不闹铃,=1要闹铃.07H每秒改变一次,用作间隔呜叫.;*;DISPFIRST EQU30H;显示首址存放单元BELL EQUP1.7;小喇叭CONBS EQU2FH;存放报时次数;*;中断入口程序;*;ORG0000H;程序执行开始地址LJMP START;跳到标号START执行ORG0003H;外中断0中断程序入口RETI;外中断0中断返回ORG000BH;定时器T0中断程序入口LJMP INTT0;跳至INTTO执行ORG0013H;外中断1中断程序入口RETI;外中断1中断返回ORG001BH;定时器T1中断程序入口LJMP INTT1;跳至INTT1执行ORG0023H;串行中断程序入口地址RETI;串行中断程序返回;*;以下程序开始;*;整点报时用QQQQ:MOV A,#10H MOVB,79H MULAB ADD A,78H MOVCONBS,A BSLOOP:LCALL DS20MS LCALL DL1S LCALL DL1S LCALLDL1S DJNZCONBS,BSLOOP CLR08H;清整点报时标志AJMP START1;*;主程序开始;*;START:LCALL ST;上电显示年月日及班级学号MOV R0,#00H;清00H-7FH内存单元MOV R7,#80H;CLEARDISP:MOVR0,#00H;INC R0;DJNZ R7,CLEARDISP;MOV20H,#00H;清20H(标志用)MOV7AH,#0AH;放入熄灭符数据MOV TMOD,#11H;设T 0、T1为16位定时器MOV TL0,#0B0H;50MS定时初值(T0计时用)MOV TH0,#3CH;50MS定时初值MOV TL1,#0B0H;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH;50MS定时初值SETB EA;总中断开放SETB ET0;允许T0中断SETB TR0;开启T0定时器MOV R4,#14H;1秒定时用计数值(50MS20)MOV DISPFIRST,#70H;显示单元为70-75H;以下主程序循环START1:LCALL DISPLAY;调用显示子程序JNB P1.0,SETMM1;P1.0口为0时转时间调整程序JNB P1.1,FUNSS;秒表功能,P1.1按键调时时作减1加能JNB P1.2,FUNPT;秒表STOP,PUSE,CLR JNB P1.3,TSFUN;定时闹铃设定JB08H,QQQQ AJMP START1;P1.0口为1时跳回START1;FUNPT:LJMP FUNPTT;以下闹铃时间设定程序,按P1.3进入设定TSFUN:LCALL DS20MS JB P1.3,START1;WAIT113:JNB P1.3,WAIT113;等待键释放JB05H,CLOSESP;闹铃已开的话,关闹铃MOV DISPFIRST,#50H;进入闹铃设定程序,显示50-55H闹钟定时单元MOV50H,#0CH;-闹铃设定时显示格式00:00:-MOV51H,#0AH;黑;DSWAIT:SETB EALCALL DISPLAYJNB P1.2,DSFINC;分加1JNB P1.0,DSDEC;分减1JNB P1.3,DSSFU;进入时调整AJMP DSWAIT;CLOSESP:CLR05H;关闹铃标志CLR BELLAJMP START1DSSFU:LCALL DS20MS;消抖JB P1.3,DSWAIT LJMPDSSFUNN;进入时调整;SETMM1:LJMP SETMM;转到时间调整程序SETMM;DSFINC:LCALL DS20MS;消抖JB P1.2,DSWAIT DSWAIT12:LCALL DISPLAY;等键释放JNB P1.2,DSWAIT12CLR EA MOV R0,#53H;LCALL ADD1;闹铃设定分加1MOV A,R3;分数据放入A CLR C;清进位标志CJNE A,#60H,ADDHH22;ADDHH22:JC DSWAIT;小于60分时返回ACALL CLR0;大于或等于60分时分计时单元清0AJMP DSWAITDSDEC:LCALL DS20MS;消抖JB P1.0,DSWAIT DSWAITEE:LCALL DISPLAY;等键释放JNB P1.0,DSWAITEE CLREAMOV R0,#53H;LCALL sub1;闹铃设定分减1LJMP DSWAIT;以下秒表功能/时钟转换程序;按下P1.1可进行功能转换FUNSS:LCALL DS20MS JB P1.1,START11WAIT11:JNB P1.1,WAIT11CPL03H JNB03H,TIMFUN MOV DISPFIRST,#60H;显示秒表数据单元MOV60H,#00H MOV61H,#00H MOV62H,#00H MOV63H,#00H MOV64H,#00H MOV65H,#00H MOV TL1,#0F0H;10MS定时初值()MOV TH1,#0D8H;10MS定时初值SETB TR1SETB ET1START11:LJMP START1TIMFUN:MOVDISPFIRST,#70H;显示时钟数据单元CLR ET1CLR TR1START12:LJMP START1;以下秒表暂停清零功能程序;按下P1.2暂停或清0,按下P1.1退出秒表回到时钟计时FUNPTT:LCALL DS20MS JB P1.2,START12WAIT22:JNB P1.2,WAIT21CLR ET1CLR TR1WAIT33:JNB P1.1,FUNSS JB P1.2,WAIT31LCALL DS20MS JBP1.2,WAIT33WAIT66:JNB P1.2,WAIT61MOV60H,#00H MOV61H,#00H MOV62H,#00H MOV63H,#00H MOV64H,#00H MOV65H,#00H WAIT44:JNB P1.1,FUNSS JBP1.2,WAIT41LCALL DS20MS JBP1.2,WAIT44WAIT55:JNB P1.2,WAIT51SETB ET1SETB TR1AJMPSTART1;以下键等待释放时显示不会熄灭用WAIT21:LCALL DISPLAYAJMP WAIT22WAIT31:LCALL DISPLAYAJMP WAIT33WAIT41:LCALL DISPLAYAJMP WAIT44WAIT51:LCALL DISPLAYAJMP WAIT55WAIT61:LCALL DISPLAYAJMP WAIT66;1秒计时程序;T0中断服务程序INTT0:PUSH ACC;累加器入栈保护PUSH PSW;状态字入栈保护CLR ET0;关T0中断允许CLR TR0;关闭定时器T0MOV A,#0B7H;中断响应时间同步修正ADD A,TL0;低8位初值修正MOV TL0,A;重装初值(低8位修正值)MOV A,#3CH;高8位初值修正ADDC A,TH0;MOV TH0,A;重装初值(高8位修正值)SETB TR0;开启定时器T0DJNZ R4,OUTT0;20次中断未到中断退出ADDSS:MOV R4,#14H;20次中断到(1秒)重赋初值CPL07H;闹铃时间隔呜叫用MOV R0,#71H;指向秒计时单元(71H-72H)ACALL ADD1;调用加1程序(加1秒操作)MOV A,R3;秒数据放入A(R3为2位十进制数组合)CLR C;清进位标志CJNE A,#60H,ADDMM;ADDMM:JC OUTT0;小于60秒时中断退出ACALL CLR0;大于或等于60秒时对秒计时单元清0MOV R0,#77H;指向分计时单元(76H-77H)ACALL ADD1;分计时单元加1分钟MOV A,R3;分数据放入A CLR C;清进位标志CJNE A,#60H,ADDHH;ADDHH:JC OUTT0;小于60分时中断退出ACALL CLR0;大于或等于60分时分计时单元清0LCALL DS20MS;正点报时SETB08H MOV R0,#79H;指向小时计时单元(78H-79H)ACALL ADD1;小时计时单元加1小时MOV A,R3;时数据放入A CLR C;清进位标志CJNE A,#24H,HOUR;HOUR:JC OUTT0;小于24小时中断退出ACALL CLR0;大于或等于24小时小时计时单元清0OUTT0:MOV72H,76H;中断退出时将分、时计时单元数据移MOV73H,77H;入对应显示单元MOV74H,78H;MOV75H,79H;LCALL BAOJPOP PSW;恢复状态字(出栈)POP ACC;恢复累加器SETB ET0;开放T0中断RETI;中断返回;*;闪动调时程序秒表功能程序;*;T1中断服务程序,用作时间调整时调整单元闪烁指示或秒表计时INTT1:PUSH ACC;中断现场保护PUSH PSW;JB03H,MMFUN;=1时秒表MOV TL1,#0B0H;装定时器T1定时初值MOV TH1,#3CH;DJNZ R2,INTT1OUT;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H;重装0.3秒定时用初值CPL02H;0.3秒定时到对闪烁标志取反JB02H,FLASH1;02H位为1时显示单元熄灭MOV72H,76H;02H位为0时正常显示MOV73H,77H;MOV74H,78H;MOV75H,79H;INTT1OUT:POP PSW;恢复现场POP ACC;RETI;中断退出FLASH1:JB01H,FLASH2;01H位为1时,转小时熄灭控制MOV72H,7AH;01H位为0时,熄灭符数据放入分MOV73H,7AH;显示单元(72H-73H),将不显示分数据MOV74H,78H;MOV75H,79H;AJMP INTT1OUT;转中断退出FLASH2:MOV72H,76H;01H位为1时,熄灭符数据放入小时MOV73H,77H;显示单元(74H-75H),小时数据将不显示MOV74H,7AH;MOV75H,7AH;AJMP INTT1OUT;转中断退出;MMFUN:CLR TR1MOV A,#0F7H;中断响应时间同步修正,重装初值(10ms)ADD A,TL1;低8位初值修正MOVTL1,A;重装初值(低8位修正值)MOV A,#0D8H;高8位初值修正ADDC A,TH1;MOV TH1,A;重装初值(高8位修正值)SETB TR1;开启定时器T0MOV R0,#61H;指向秒计时单元(71H-72H)ACALL ADD1;调用加1程序(加1秒操作)CLR C;MOV A,R3;JZ FSS1;加1后为00,C=0AJMP OUTT01;加1后不为00,C=1FSS1:ACALL CLR0;大于或等于60秒时对秒计时单元清0MOV R0,#63H;指向分计时单元(76H-77H)ACALL ADD1;分计时单元加1分钟MOV A,R3;分数据放入A CLR C;清进位标志CJNE A,#60H,ADDHH1;ADDHH1:JC OUTT01;小于60分时中断退出LCALL CLR0;大于或等于60分时分计时单元清0MOV R0,#65H;指向小时计时单元(78H-79H)ACALL ADD1;小时计时单元加1小时OUTT01:POP PSW;恢复状态字(出栈)POP ACC;恢复累加器RETI;中断返回;*;加1子程序;*;ADD1:MOV A,R0;取当前计时单元数据到A DEC R0;指向前一地址SWAP A;A中数据高四位与低四位交换ORL A,R0;前一地址中数据放入A中低四位ADDA,#01H;A加1操作DA A;十进制调整MOV R3,A;移入R3寄存器ANL A,#0FH;高四位变0MOVR0,A;放回前一地址单元MOV A,R3;取回R3中暂存数据INC R0;指向当前地址单元SWAP A;A中数据高四位与低四位交换ANL A,#0FH;高四位变0MOVR0,A;数据放入当削地址单元中RET;子程序返回;*;分减1子程序;*;SUB1:MOV A,R0;取当前计时单元数据到A DECR0;指向前一地址SWAP A;A中数据高四位与低四位交换ORL A,R0;前一地址中数据放入A中低四位JZ SUB11DEC A;A减1操作SUB111:MOV R3,A;移入R3寄存器ANL A,#0FH;高四位变0CLRC;清进位标志SUBB A,#0AH SUB1111:JC SUB1110MOVR0,#09H;大于等于0AH,为9SUB110:MOV A,R3;取回R3中暂存数据INC R0;指向当前地址单元SWAP A;A中数据高四位与低四位交换ANL A,#0FH;高四位变0MOVR0,A;数据放入当削地址单元中RET;子程序返回;SUB11:MOV A,#59H AJMPSUB111SUB1110:MOV A,R3;移入R3寄存器ANL A,#0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 后张法预应力管道压浆工艺优化方案
- 大学毕业论文致谢词范文7篇
- 大学毕业论文致谢词合集8篇
- Unit 4 Natural Disasters The Night the Earth Didnt sleep 教学设计 -2024-2025学年高中英语人教版(2019)必修第一册
- 保温层与防腐层界面处理技术方案
- 2025年放射科影像诊断能力测验答案及解析
- 人美版高中美术鉴赏教案:第5课 美术作品可以什么都不像吗?- 走进抽象艺术
- 既有建筑拆除前管线探测方案
- 2025年康复治疗康复治疗常见理疗方法试卷答案及解析
- 2024年曲靖市宣威市杨柳镇中心学校招聘真题
- 静脉治疗知识培训课件
- 《机械制图(多学时)》中职全套教学课件
- 新教科版小学1-6年级科学需做实验目录
- 2024过敏性休克抢救指南(2024)课件干货分享
- DL-T-5759-2017配电系统电气装置安装工程施工及验收规范
- 部编教材九年级历史(上)全册教案
- 矿山开采设计用计算公式
- 医院输血科技术人员绩效考核指标
- 酒店管理有限公司薪酬体系
- 冲击式水轮机演示
- 杰美康机电伺服调试软件使用说明书
评论
0/150
提交评论