基于单片机的数字钟设计.doc

上传人:夺命阿水 文档编号:56493 上传时间:2025-07-09 格式:DOC 页数:21 大小:255.50KB
下载 相关 举报
基于单片机的数字钟设计.doc_第1页
第1页 / 共21页
基于单片机的数字钟设计.doc_第2页
第2页 / 共21页
基于单片机的数字钟设计.doc_第3页
第3页 / 共21页
基于单片机的数字钟设计.doc_第4页
第4页 / 共21页
基于单片机的数字钟设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、泰山职业技术学院毕业设计论文题 目:基于单片机的数字时钟系 部:汽车电子工程系专 业:应用电子技术学 号: 201103010103 学生:于 学 成指导教师:宋 丽 玲 职 称:讲 师 二O一四年六月 二十五日泰山职业技术学院毕业论文设计任务书课题名称:基于单片机的数字时钟系 部:汽 车 电 子 工 程 系专业:应 用 电 子 技术*:于学成*:指导教师:宋丽玲二一四年六月二十五日一、 毕业论文设计的目的与要求:要求:采用单片机实现数字钟的根本功能,要求采用4位数码管,高两位显示小时,低两位显示秒;采用开关控制数字钟的启动、停顿、复位和调整时间;时间显示采用24小时制二、毕业论文设计的容:

2、容:1方案总体设计2控制系统硬件电路设计显示采用四位数码管3软件流程图设计,汇编程序编写4电气原理图的绘制三、毕业论文设计进程的安排序 号论文设计各阶段名称日期备注第一章论文背景及设计任务.第二章系统方案设计.第三章硬件电路设计.第四章软件系统设计.第五章电路调试.第六章总结.四、任务执行日期:自年月日起,至年月日止。学生签字_指导教师签字_系主任签字_目录摘要错误!未定义书签。第一章论文背景及设计任务81.1论文背景81.2课程设计题目描述和任务8第二章系统方案设计92.1整体设计92.2方案设计与论证9第三章硬件电路设计103.1 AT89C51的单片机简介103.2 LED显示电路123

3、3 键盘控制电路12第四章软件系统设计134.1程序编写设计流程图134.2绘制数字时钟电路Protues仿真原理图14启动ISIS 7 Professional软件14仿真电路绘制14电路检测144.3软件设计14运行keil软件编写程序并编译、连接错误!未定义书签。将程序烧入单片机并运行错误!未定义书签。运行程序错误!未定义书签。第五章电路调试155.1软件与硬件调试155.2仿真结果分析15第六章总结17附录:18数字时钟原理图18数字时钟源程序19参考文献:29摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的开展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗

4、低,价格廉价,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件构造,以及针对具体应用对象特点的软件结合,以作完善本次做的数字钟是以单片机AT89C51为核心,结合相关的元器件3个2位共阳数码管,一个发光二极管和一个蜂鸣器和应用程序proteus软件和KEIL编译软件,构成相应的应用系统。关键词:单片机 AT89C51 共阳数码管 发光二极管 蜂鸣器proteus软件 KEIL编译软件摘要翻译:Inrecentyearsalongwiththeput

5、erinthesocialfieldofpermeabilityandlargescaleintegratedcircuitofdevelopment,theapplicationofsinglechipmicroputer,iscontinuouslytofurther,becauseithasastrongfunction,smallvolume,lowpowerconsumption,thepriceischeap,reliablework,useconvenientwaitforacharacteristic,thereforeparticularlysuitableforrelate

6、dcontrolandsystem,moreandmorewidelyusedinautomaticcontrol,intelligentinstrument,instrument,datacollection,militaryproductsandhouseholdelectricalappliances,andotherfields,microcontrollerisoftenasacoreponenttouse,inaccordingtothespecifichardwarestructure,andtheviewofthespecificapplicationofthecharacte

7、risticsoftheobjectsoftwarebinestomakeperfectThisdodigitalclockisasinglechipmicroputer(AT89C51)asthecore,binedwithrelatedponents(3twomonYangdigitaltube,alightemittingdiodeandabuzzer)andapplications(proteussoftwareandKEILpilersoftware),constitutescorrespondingapplicationsystem. Keyword: A single-chip

8、microputer, AT89C51, total Yang digital tube, light emitting diode, buzzer, proteus software, KEIL piler software基于单片机的数字时钟第一章 论文背景及设计任务1.1论文背景数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机STC89C51在Proteus软件中实现数字时钟的定时、时间调整、闹正设置等功能。具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域

9、普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的根底。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。本文主要介绍用单片机部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片和3个两位一体的共阳极的数码管为核心,辅以必要的电路,构成了一个单片机数字时钟。单片机AT89S51可调数字钟系统设计的核

10、心是目前应用极为广泛的51系列单片机,可调数字钟配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。1.2课程设计题目描述和任务单片机控制的数字钟的硬件构造与软件设计,给出了汇编语言源程序。此数字钟是一个将时、分、秒显示于人的视觉器官的计时装置。显示器件选用LED七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。使用动态数码显示的方法,运用独立式按键识别过程,按时,分,秒数据送出显示处理方法。1具有时、分、秒计数

11、显示功能,以24小时循环2LED数码管显示时、分、秒的个位和十位3可以在任意时刻校准时间4能够完成时间的显示、定时闹钟、复位等功能第二章 系统方案设计2.1整体设计此次设计主要是应用单片机来设计电子时钟,硬件局部主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期年份,小时、分钟月份和秒日,通过动态扫描进展显示,从而防止了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计整体设计框图如图2-1所示:图2-1 数字时钟整体电路2.2方案设计与论证方案一:采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理

12、解实现。缺点:各个模块功能已定不能进展智能化调整,整体电路太庞大。方案二:采用 FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:本钱高,大材小用。方案三:采用单片机最小系统实现功能。优点:电路简单,能通过程序进展随机调整并扩展功能,本钱低,易于实现。缺点:走时有一定的误差。经过综合考虑本钱问题以及电路实现问题,选择第三种方案实现设计要求。第三章 硬件电路设计3.1 AT89C51的单片机简介一AT89C51的介绍AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O接口电路等一台计算机所需要的根本功能部件,AT89C51单

13、片机包含以下几个部件:1 一个8位CPU;2一个片振荡器及时钟电路;34K字节ROM程序存储器;4128字节RAM数据存储器;5两个16位定时器/计数器;6可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;732条可编程的I/O线四个8位并行I/O端口;8一个可编程全双工串行口;9具有五个中断源、两个优先级嵌套中断构造。二 AT89C51单片机的局部管脚说明:AT89C51单片机采用40条引脚双列直插式器件,引脚除5V 40脚和电源地 20脚外,其功能分为时钟电路、控制信号、输入/输出三大局部,引脚图如以下图:图3-1 AT89C51引脚图 Vcc40 电源端;GND20 接地端

14、工作电压为5V 。 外接晶振引脚图3-2 外接晶振引脚图*TAL119 、*TAL218 :*TAL1是片振荡器的反相放大器输入端,*TAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到*TAL1,而*TAL2悬空。部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz选择。电容取30PF左右。系统的时钟电路设计是采用的部方式,即利用芯片部的振荡电路。复位RST9图3-3 常用复位电路图在振荡器运行时,有两个机器周期24个振荡周期以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P

15、0P3口均置1引脚表现为高电平,程序计数器和特殊功能存放器SFR全部清零。/EA=1 31脚当/EA=1时,部程序存储器,当PC值超过ROM围时,自动转执行外部程序存储器的程序;当/EA=0时,只外部程序存储器。三另外介绍一下输入输出引脚本系统只用到P0、P1、P2口:(1) P0端口P0.0-P0.7 是一个8位漏极开路型双向I/O端口,端口置1对端口写1时作高阻抗输入端。作为输出口时能驱动8个TTL。对部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,期间部的上拉电阻起作用。(2)

16、 P1端口P1.0P1.7是一个带有部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,部上拉电阻将端口拉到高电平,作输入用。对部Flash程序存储器编程时,接收低8位地址信息。(3) P2端口P2.0P2.7是一个带有部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,部上拉电阻将端口拉到高电平,作输入用。对部Flash程序存储器编程时,接收高8位地址和控制信息。在外部程序和16位外部数据存储器时,P2口送出高8位地址。而在8位地址的外部数据存储器时其引脚上的容在此期间不会改变。3.2 LED显示电路本课程设计用到共阳极数码管通过其引脚图,便可顺利完成其连接。

17、 图3-4 共阳数码管部构造图3.3 键盘控制电路通过S1、S2、S3和S4四个按键,对时间进展修改和闹钟的设置,S0控制闹钟的启动和停顿。按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整完毕后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整完毕后按下S1恢复正常显示。当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引

18、起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,再读入键盘码。第四章 软件系统设计4.1程序编写设计流程图开场初始化主程序YS0闭合NN响铃判断Y显示时间时间调整响铃YS4按下NY闹钟调整S3按下NNS1按下Y显示闹钟图4-1 程序编写流程图4.2绘制数字时钟电路Protues仿真原理图启动ISIS 7 Professional软件元件的加载:找到原件后双击原件即可完成加载原件。如图4-2所示:图 4-2 Protues加载原件图仿真电路绘制放置元件调整原布局连线最后得到的原理图如下:图4-3 Protues仿真图通过S1、S2、S3和S4四

19、个按键,对时间进展修改和闹钟的设置,S0控制闹钟的启动和停顿。按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整完毕后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整完毕后按下S1恢复正常显示。电路检测电路连接完毕后,单击运行按钮如以下图检测电路是否有误, 如果电路如果无误进展软件检测。4.3软件设计图4-6 仿真结果图第五章 电路调试5.1软件与硬件调试单片机应用系统的调试包括硬件和软件两局部,但是它们并不能完全分开。一般的方法是排除明显的硬件故障,再进展综合调试,排除可能的软/硬件故障。软件

20、调试是指用仿真软件进展仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至AT89C51芯片中,用焊接好的电路来进展各项功能的验证与检测。需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的5.2仿真结果分析按键问题我的设计中,很多功能选择是通过按键开关实现的。在仿真中发现,调整数值时,有时按键反响太快,按一次,跳了几下,使设置时间,日期很不方便。但是仿真多了之后,找到了按键实际上是按鼠标的节奏,对按键的掌控力提高了不少,不怎么会出现跳变的情况了。有些开关我采用了长按键的方式来防抖,效果不错,但是每次都要长按键,调整效率太低,我没有普及。本来

21、想把所有的按键都加延时防抖电路,但仿真中感觉对键盘的控制力没提高多少,有时还是会出问题。 P0口开关问题P0口比拟特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。中断冲突问题为了实现秒表,我在T0中断嵌套了秒表相关进位程序,由于秒表要求精度0.01秒,故我的T0中断定时为就刚好0.01秒,中断100次,刚好1秒。秒表确实实现了,但是我的闹铃音质变差了。一开场以为是闹铃程序存太多冗余环节,影响了T1的音乐输出中断,但是检查程序后,发现没什么多余的,裁剪无从下手。在仿真中,添加T0中断效劳程序,但是将中断进入的间隔变大,即0.05秒进入一次中断,发现音质有所下降

22、有滋滋声,但比原来的好。最后认定应该是T0中断过于频繁,T1音乐频率发生中断被打破,当单位时间被打破的次数到达一定程度时,音符和节拍的对应发生紊乱,最终音质变差。定时功能的实现过程定时功能运用了一个存地址3CH为标志位,只有3CH中所存值非0时,在主程序中才判断定时是否已到。3CH值初始化为0,程序开场运行时并不判断定时是否已到。当通过按键进入定时初值设置,并开场倒计时,3CH的值被赋为1,当倒计时显示到0时,进入闪烁提示,提示完毕后3CH又被赋值为0,程序回到主程序后,不必判断定时是否已到。但当倒计时未完,按返回键回到主程序时,3CH的值为1,故在主程序判断未完成的定时任务,倒计时到0时调

23、用同一个提示程序,最后仍可保证在主程序不再定时开启时去判断定时,从而节约资源。软件消抖消抖可以采用硬件施密特触发器的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一,定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,则它就可以完全不影响时钟定时。二,在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于20毫

24、秒,如果采用定时器定时的方式,延时时间不影响时钟。如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是:中断不能连续执行,两次之间有一定的时间间隔。第六章 总结首先,我要感宋丽玲教师在此次设计中给于我的帮助。我深刻地感受单片机不单是一门文化课程,更是一门科学技术。单片机课程设计则是人生课程,我们学到了很多课堂上无法学到的东西。从新奇好玩到失败后的痛苦无助,从失败中爬起,哪怕再失败,也永不放弃。这就是单片机课程设计教会我们的最珍贵的知识。一分耕耘,一分收获。经过这次课程设计,让我获得了很多知识,进一步加深了我对AT89C51单片机的掌握,另外也稳固了我的编程思

25、想和焊接技术。 本次的数字时钟设计,让我对自己在大学三年的知识的到了回忆,例如模电和数电以及做PCB的软件。它也让我充分发挥了对所学知识的理解和设计的书面表达能力。这为今后自己进一步深化学习,积累了一定的珍贵经历。撰写报告的过程是对专业知识的学习过程,它使我运用已有的专业根底知识,对其进展设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。 本次的课程设计,让我发现理论必须用于实践,否则只是一白纸。此外只有理论水平提高了,才能更好的运用于实践。另外,本次课程设计也考验了我的认真的态度。只有做事拥有认真的态度与科学的方法,才能成功。 我认为课程设计非常有必要,它能让我们主动去寻找

26、遇到问题的解决方法,同时也是对我们严谨认真工作态度的考验与锻炼,为以后我们进入社会参加工作是一个很好的培训与历练。附录:图7-1 数字时钟原理图数字时钟源程序使用keil软件编写源程序ORG 0000HLJMP STARTORG 000BHLJMP TIME;*初始化*START: MOV SP, #50HMOV 20H,#00H ;定义秒MOV 21H,#00H ;定义分MOV 22H,#00H ;定义时MOV 23H,#01H ;定义闹钟分钟MOV 24H,#01H ;定义闹钟小时MOV 25H,#00HMOV 26H,#01HMOV 30H,#00H ;BCD SECONDMOV 31H

27、00HMOV 32H,#00H ;BCD MINUTEMOV 33H,#00HMOV 34H,#00H ;BCD HOURMOV 35H,#00HMOV 36H,#01HMOV 37H,#00HMOV 38H,#01HMOV 39H,#00HMOV 50H,#00H ;按键次数MOV TMOD,#01H ;16位计数器MOV TH0, #03CH ;赋初值MOV TL0, #0B0HMOV IE, #87H ;中断允许SETB TR0 ;启动T0MOV R2,#14HMOV P2,#0FFH;*主程序*MAIN: P1.4,GBLCALL TIMEPRO ;调用闹钟判断GB: LCALL

28、DISPLAY1;调用时间显示 P1.3,M1 ;P1.3=1时转移 S4没有按下LCALL SETTIME ;调用SETTIME调时子程序LJMP MAINM1: P1.2,M2 ;P1 g.2=1时转移S3LCALL SETATIME ;调用SETATIME子程序LJMP MAINM2: P1.0,M4 ;P1.01时转移 S1LCALL LOOKATIME ;调用LOOKATIME显示闹钟子程序M4: LJMP MAIN;*延时子程序*DELAY: MOV R4,#030HDL00: MOV R5,#0FFHDL11: MOV R6,#9HDL12: DJNZ R6,DL12DJNZ R

29、5,DL11DJNZ R4,DL00RET;*时间调整*SETTIME: ;设置时间L0: LCALL DISPLAY1MM1: P1.3,L1 ;P1.3=1时转移MOV C,P1.3JC MM1LCALL DELAY1 ;延时JC MM1MSTOP1: MOV C,P1.3 ;P1.3为0时转移JNC MSTOP1LCALL DELAY1 ;延时MOV A,50HINC 50HCJNE A,#00H,HJ1LJMP L0HJ1: MOV C,P1.3JNC MSTOP1INC 22H ;小时自加一MOV A,22HCJNE A,#18H,GO12 ;小时计数循环MOV 22H,#00H ;

30、复位MOV 34H,#00HMOV 35H,#00HLJMP L0L1: P1.1,L2 ;P1.1=1时转移MOV C,P1.1JC L1LCALL DELAY1 ;延时JC L1MSTOP2: MOV C,P1.1 ;P1.10时转移JNC MSTOP2LCALL DELAY1 ;延时MOV C,P1.1JNC MSTOP2INC 21H ;分钟加一MOV A,21HCJNE A,#3CH,GO11 ;分钟计数循环MOV 21H,#00H ; 复位MOV 32H,#00HMOV 33H,#00HLJMP L0GO11: MOV B,#0AHDIV ABMOV 32H,B ; 将A的低4位存

31、入32单元MOV 33H,A ; 将A的高4位存入33单元LJMP L0GO12: MOV B,#0AHDIV ABMOV 34H,B ;将A的低4位存入34单元MOV 35H,A ; 将A的高4位存入35单元LJMP L0L2: P1.0,L0 ; P1.01时转移MOV C,P1.0JC L2LCALL DELAY1 ;延时MOV C,P1.0JC L2STOP1: MOV C,P1.0 ; P1.00时转移JNC STOP1LCALL DELAY1 ;延时MOV C,P1.0JNC STOP1MOV 50H,#00HLJMP MAIN;*设置闹钟*SETATIME:LCALL DISPL

32、AY2 ; 调用DISPLAY2显示闹钟N0: LCALL DISPLAY2MM2: P1.2,N1 ;P1.2=1时转移MOV C,P1.2JC MM2LCALL DELAY1 ; 延时JC MM2MSTOP3: MOV C,P1.2 ; P1.20时转移JNC MSTOP3LCALL DELAY1 ; 延时MOV A,50HINC 50HCJNE A,#00H,HJ2LJMP N0HJ2: MOV C,P1.2JNC MSTOP3INC 24H ;小时加一MOV A,24HCJNE A,#24,GO22 ;小时计数循环MOV 24H,#00H ;复位MOV 38H,#00HMOV 39H,

33、00HLJMP N0N1: P1.1,N2 ;P1.11时转移MOV C,P1.1JC N1LCALL DELAY1 ;延时JC N1MSTOP4: MOV C,P1.1 ;P1.10时转移JNC MSTOP4LCALL DELAY1 ;延时MOV C,P1.1JNC MSTOP4INC 23H ;分钟加一MOV A,23HCJNE A,#60,GO21 ;分钟计数循环MOV 23H,#00H ;复位MOV 36H,#00HMOV 37H,#00HLJMP N0GO21: MOV B,#0AHDIV ABMOV 36H,B ;将A的低4位存入36单元MOV 37H,A ;将A的高4位存入37

34、单元LJMP N0GO22: MOV B,#0AHDIV ABMOV 38H,B ;将A的低4位存入38单元MOV 39H,A ;将A的高4位存入39单元LJMP N0N2: P1.0 ,N0 ;P1.01时转移MOV C,P1.0JC N2LCALL DELAY1 ;延时MOV C,P1.0JC N2STOP2: MOV C,P1.0JNC STOP2LCALL DELAY1MOV C,P1.0JNC STOP2MOV 50H,#00HLJMP MAIN;*闹钟判断*TIMEPRO: MOV A,21HMOV B,23HCJNE A,B,BK ;判断定时闹钟的分钟MOV A,22HMOV B

35、24HCJNE A,B,BK ;判断定时闹钟的小时SETB 25H.0MOV C,25H.0LCALL TIMEOUT ;调用TIMEOUTBK:RET;*喇叭报警*TIMEOUT:*1: LCALL BZ ;调用喇叭响应程序CLR 25H.0 ;调用喇叭响应程序完毕LCALL DELAY ;延时CLR 25H.0LJMP DISPLAY1BZ:MOV C,25H.1MOV P1.6,CCLR P1.7MOV R7,#0FFH ;喇叭响应时间T2: MOV R6,#0FFHT3: DJNZ R6,T3DJNZ R7,T2SETB P1.7RET;*显示闹钟时间*LOOKATIME:LCALL

36、 DISPLAY2MM: JNB P1.0,LOOKATIMELCALL DELAY1LJMP MAINDELAY1: MOV R4,#14H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111DJNZ R4,DL001RET;*定时*TIME: PUSH ACC ;保护现场PUSH PSWMOVTH0,#03CH ;初值MOVTL0,#0B0HDJNZ R2,RET0MOVR2,#14HMOV A,20HCPL 25H.1CLR CINC A ;秒自加一CJNE A,#3CH,GO1 ;秒计数循环MOV 20H,#0 ;复位MOV 30H,#0MOV 3

37、1H,#0MOV A,21HINC A ;分钟自加一CJNE A,#3CH,GO2 ;分钟计数循环MOV 21H,#0H ;复位MOV 32H,#0MOV 33H,#0MOV A,22HINC A ;小时自加一CJNE A,#18H,GO3 ;小时计数循环MOV 22H,#00H ;复位MOV 34H,#0MOV 35H,#0AJMP RET0GO1:MOV 20H,AMOV B,#0AHDIV ABMOV 31H,A ;将A的低4位存入31单元MOV 30H,B ;将A的高4位存入30单元AJMP RET0GO2: MOV 21H,AMOV B,#0AHDIV ABMOV 33H,A ;将A

38、的低4位存入33单元MOV 32H,B ;将A的高4位存入32单元AJMPRET0GO3:MOV 22H,AMOV B,#0AHDIV ABMOV 35H,A ;将A的低4位存入35单元MOV 34H,B ;将A的高4位存入34单元AJMPRET0RET0: POP PSW ;恢复现场POP ACCRETI;*显示子程序*DISPLAY1:MOV R0,#30HMOV R3,#0FEHMOV A,R3PLAY1: MOV P2,AMOV A,R0 ;取要显示的数据MOV DPTR,#DSEG1 ;指向字形段码首地址MOVC A,A+DPTRCJNE R0,#34H,PAORL A,#80HPA

39、CJNE R0,#32H,PBORL A,#80HPB:CPL A ;查表取字形段码MOV P0,A ;指向P0口LCALL DL1MOV P2,#0FFHMOV A,R3 ;判断是否显示到最低位RL A ;左移一位JNB ACC.6,LD1INC R0 ;缓冲器地址加一MOV R3,ALJMP PLAY1LD1: RETDISPLAY2: PUSH ACC ;保护现场PUSH PSWMOV R0,#36HMOV R3,#0FBHMOV A,R3PLAY2: MOV P2,AMOV A,R0 ;取要显示的数据MOV DPTR,#DSEG1 ;指向字形段码首地址MOVC A,A+DPTRCJNE R0,#38H,PP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

宁ICP备18001539号-1