基于单片机的数字钟设计.doc_第1页
基于单片机的数字钟设计.doc_第2页
基于单片机的数字钟设计.doc_第3页
基于单片机的数字钟设计.doc_第4页
基于单片机的数字钟设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

泰山职业技术学院毕业设计(论文)题 目:基于单片机的数字时钟系 部: 汽车电子工程系专 业: 应用电子技术 学 号: 201103010103 学生姓名: 于 学 成指导教师: 宋 丽 玲 职 称: 讲 师 二O一四 年 六月 二十五 日泰山职业技术学院毕业论文(设计)任务书课题名称:基于单片机的数字时钟系 部:汽 车 电 子 工 程 系专 业:应 用 电 子 技术姓 名:于学成学 号: 指导老师:宋丽玲 二一四 年 六 月二十五日一、 毕业论文(设计)的目的与要求:要求:采用单片机实现数字钟的基本功能,要求采用4位数码管,高两位显示小时,低两位显示秒;采用开关控制数字钟的启动、停止、复位和调整时间;时间显示采用24小时制二、毕业论文(设计)的内容:内容:1方案总体设计2控制系统硬件电路设计(显示采用四位数码管)3软件流程图设计,汇编程序编写4电气原理图的绘制三、毕业论文(设计)进程的安排序 号论文(设计)各阶段名称日 期备 注第一章 论文背景及设计任务.第二章 系统方案设计.第三章 硬件电路设计.第四章 软件系统设计.第五章 电路调试.第六章 总结.四、任务执行日期:自年月日起,至年月日止。学 生(签字)_指导教师(签字)_系主任(签字)_目录摘 要错误!未定义书签。第一章 论文背景及设计任务81.1论文背景81.2课程设计题目描述和任务8第二章 系统方案设计92.1整体设计92.2方案设计与论证9第三章 硬件电路设计103.1 AT89C51的单片机简介103.2 LED显示电路123.3 键盘控制电路12第四章 软件系统设计134.1程序编写设计流程图134.2绘制数字时钟电路Protues仿真原理图144.2.1启动ISIS 7 Professional软件144.2.2仿真电路绘制144.2.3电路检测144.3软件设计144.3.1运行keil软件编写程序并编译、连接错误!未定义书签。4.3.2将程序烧入单片机并运行错误!未定义书签。4.3.3运行程序错误!未定义书签。第五章 电路调试155.1软件与硬件调试155.2仿真结果分析15第六章 总结17附录:18数字时钟原理图18数字时钟源程序19参考文献:29 摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(3个2位共阳数码管,一个发光二极管和一个蜂鸣器)和应用程序(proteus软件和KEIL编译软件),构成相应的应用系统。关键词:单片机 AT89C51 共阳数码管 发光二极管 蜂鸣器 proteus软件 KEIL编译软件摘要翻译:Inrecentyearsalongwiththecomputerinthesocialfieldofpermeabilityandlargescaleintegratedcircuitofdevelopment,theapplicationofsinglechipmicrocomputer,iscontinuouslytofurther,becauseithasastrongfunction,smallvolume,lowpowerconsumption,thepriceischeap,reliablework,useconvenientwaitforacharacteristic,thereforeparticularlysuitableforrelatedcontrolandsystem,moreandmorewidelyusedinautomaticcontrol,intelligentinstrument,instrument,datacollection,militaryproductsandhouseholdelectricalappliances,andotherfields,microcontrollerisoftenasacorecomponenttouse,inaccordingtothespecifichardwarestructure,andtheviewofthespecificapplicationofthecharacteristicsoftheobjectsoftwarecombinestomakeperfectThisdodigitalclockisasinglechipmicrocomputer(AT89C51)asthecore,combinedwithrelatedcomponents(3twocommonYangdigitaltube,alightemittingdiodeandabuzzer)andapplications(proteussoftwareandKEILcompilersoftware),constitutescorrespondingapplicationsystem. Keyword: A single-chip microcomputer, AT89C51, total Yang digital tube, light emitting diode, buzzer, proteus software, KEIL compiler software基于单片机的数字时钟第一章 论文背景及设计任务1.1论文背景数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机STC89C51在Proteus软件中实现数字时钟的定时、时间调整、闹正设置等功能。具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片和3个两位一体的共阳极的数码管为核心,辅以必要的电路,构成了一个单片机数字时钟。单片机AT89S51可调数字钟系统设计的核心是目前应用极为广泛的51系列单片机,可调数字钟配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。1.2课程设计题目描述和任务单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。显示器件选用LED七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。使用动态数码显示的方法,运用独立式按键识别过程,按“时”,“分”,“秒”数据送出显示处理方法。(1)具有时、分、秒计数显示功能,以24小时循环(2)LED数码管显示时、分、秒的个位和十位(3)可以在任意时刻校准时间(4)能够完成时间的显示、定时闹钟、复位等功能第二章 系统方案设计2.1整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计整体设计框图如图2-1所示:图2-1 数字时钟整体电路2.2方案设计与论证方案一:采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。方案二:采用 FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。方案三:采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。经过综合考虑成本问题以及电路实现问题,选择第三种方案实现设计要求。第三章 硬件电路设计3.1 AT89C51的单片机简介(一)AT89C51的介绍AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O接口电路等一台计算机所需要的基本功能部件,AT89C51单片机内包含下列几个部件:(1) 一个8位CPU;(2)一个片内振荡器及时钟电路;(3)4K字节ROM程序存储器;(4)128字节RAM数据存储器;(5)两个16位定时器/计数器;(6)可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;(7)32条可编程的I/O线(四个8位并行I/O端口);(8)一个可编程全双工串行口;(9)具有五个中断源、两个优先级嵌套中断结构。(二) AT89C51单片机的部分管脚说明:AT89C51单片机采用40条引脚双列直插式器件,引脚除5V( 40脚)和电源地( 20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,引脚图如下图:图3-1 AT89C51引脚图 Vcc40 电源端;GND20 接地端。工作电压为5V 。 外接晶振引脚图3-2 外接晶振引脚图XTAL119 、XTAL218 :XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。复位RST9图3-3 常用复位电路图在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置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) 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显示电路本课程设计用到共阳极数码管通过其引脚图,便可顺利完成其连接。 图3-4 共阳数码管内部结构图3.3 键盘控制电路通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,再读入键盘码。第四章 软件系统设计4.1程序编写设计流程图开始初始化 主程序YS0闭合NN响铃判断Y显示时间时间调整响铃YS4按下NY闹钟调整S3按下NNS1按下Y显示闹钟图4-1 程序编写流程图4.2绘制数字时钟电路Protues仿真原理图4.2.1启动ISIS 7 Professional软件元件的加载:找到原件后双击原件即可完成加载原件。如图4-2所示:图 4-2 Protues加载原件图4.2.2仿真电路绘制 放置元件调整原布局连线最后得到的原理图如下:图4-3 Protues仿真图通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。4.2.3电路检测电路连接完毕后,单击运行按钮(如下图)检测电路是否有误, 如果电路如果无误进行软件检测。4.3软件设计图4-6 仿真结果图第五章 电路调试5.1软件与硬件调试单片机应用系统的调试包括硬件和软件两部分,但是它们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。软件调试是指用仿真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至AT89C51芯片中,用焊接好的电路来进行各项功能的验证与检测。需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的5.2仿真结果分析按键问题我的设计中,很多功能选择是通过按键开关实现的。在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间,日期很不方便。但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提高了不少,不怎么会出现跳变的情况了。有些开关我采用了长按键的方式来防抖,效果不错,但是每次都要长按键,调整效率太低,我没有普及。本来想把所有的按键都加延时防抖电路,但仿真中感觉对键盘的控制力没提高多少,有时还是会出问题。 P0口开关问题P0口比较特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。中断冲突问题为了实现秒表,我在T0中断嵌套了秒表相关进位程序,由于秒表要求精度0.01秒,故我的T0中断定时为就刚好0.01秒,中断100次,刚好1秒。秒表确实实现了,但是我的闹铃音质变差了。一开始以为是闹铃程序存太多冗余环节,影响了T1的音乐输出中断,但是检查程序后,发现没什么多余的,裁剪无从下手。在仿真中,添加T0中断服务程序,但是将中断进入的间隔变大,即0.05秒进入一次中断,发现音质有所下降,有滋滋声,但比原来的好。最后认定应该是T0中断过于频繁,T1音乐频率发生中断被打破,当单位时间内被打破的次数达到一定程度时,音符和节拍的对应发生紊乱,最终音质变差。定时功能的实现过程定时功能运用了一个内存地址3CH为标志位,只有3CH中所存值非0时,在主程序中才判断定时是否已到。3CH值初始化为0,程序开始运行时并不判断定时是否已到。当通过按键进入定时初值设置,并开始倒计时,3CH的值被赋为1,当倒计时显示到0时,进入闪烁提示,提示结束后3CH又被赋值为0,程序回到主程序后,不必判断定时是否已到。但当倒计时未完,按返回键回到主程序时,3CH的值为1,故在主程序判断未完成的定时任务,倒计时到0时调用同一个提示程序,最后仍可保证在主程序不再定时开启时去判断定时,从而节约资源。软件消抖消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一,定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。二,在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是:中断不能连续执行,两次之间有一定的时间间隔。第六章 总结 首先,我要感谢宋丽玲老师在此次设计中给于我的帮助。我深刻地感受单片机不单是一门文化课程,更是一门科学技术。单片机课程设计则是人生课程,我们学到了很多课堂上无法学到的东西。从新奇好玩到失败后的痛苦无助,从失败中爬起,哪怕再失败,也永不放弃。这就是单片机课程设计教会我们的最宝贵的知识。一分耕耘,一分收获。经过这次课程设计,让我获得了很多知识,进一步加深了我对AT89C51单片机的掌握,另外也巩固了我的编程思想和焊接技术。 本次的数字时钟设计,让我对自己在大学三年的知识的到了回顾,例如模电和数电以及做PCB的软件。它也让我充分发挥了对所学知识的理解和设计的书面表达能力。这为今后自己进一步深化学习,积累了一定的宝贵经验。撰写报告的过程是对专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。 本次的课程设计,让我发现理论必须用于实践,否则只是一张白纸。此外只有理论水平提高了,才能更好的运用于实践。另外,本次课程设计也考验了我的认真的态度。只有做事拥有认真的态度与科学的方法,才能成功。 我认为课程设计非常有必要,它能让我们主动去寻找遇到问题的解决方法,同时也是对我们严谨认真工作态度的考验与锻炼,为以后我们进入社会参加工作是一个很好的培训与历练。附录:图7-1 数字时钟原理图数字时钟源程序 使用keil软件编写源程序ORG 0000HLJMP STARTORG 000BHLJMP TIME;*初始化*START: MOV SP, #50H MOV 20H,#00H ;定义秒 MOV 21H,#00H ;定义分 MOV 22H,#00H ;定义时 MOV 23H,#01H ;定义闹钟分钟 MOV 24H,#01H ;定义闹钟小时 MOV 25H,#00H MOV 26H,#01H MOV 30H,#00H ;BCD SECOND MOV 31H,#00H MOV 32H,#00H ;BCD MINUTE MOV 33H,#00H MOV 34H,#00H ;BCD HOUR MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV 50H,#00H ;按键次数 MOV TMOD,#01H ;16位计数器 MOV TH0, #03CH ;赋初值 MOV TL0, #0B0H MOV IE, #87H ;中断允许 SETB TR0 ;启动T0 MOV R2,#14H MOV P2,#0FFH;*主程序*MAIN: JB P1.4,GB LCALL TIMEPRO ;调用闹钟判断GB: LCALL DISPLAY1;调用时间显示 JB P1.3,M1 ;P1.3=1时转移 S4没有按下 LCALL SETTIME ;调用SETTIME调时子程序 LJMP MAINM1: JB P1.2,M2 ;P1 g.2=1时转移S3 LCALL SETATIME ;调用SETATIME子程序 LJMP MAINM2: JB P1.0,M4 ;P1.01时转移 S1 LCALL LOOKATIME ;调用LOOKATIME显示闹钟子程序M4: LJMP MAIN;*延时子程序*DELAY: MOV R4,#030HDL00: MOV R5,#0FFHDL11: MOV R6,#9HDL12: DJNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00 RET;*时间调整*SETTIME: ;设置时间L0: LCALL DISPLAY1MM1: JB P1.3,L1 ;P1.3=1时转移 MOV C,P1.3 JC MM1 LCALL DELAY1 ;延时 JC MM1MSTOP1: MOV C,P1.3 ;P1.3为0时转移 JNC MSTOP1 LCALL DELAY1 ;延时 MOV A,50H INC 50H CJNE A,#00H,HJ1 LJMP L0HJ1: MOV C,P1.3 JNC MSTOP1 INC 22H ;小时自加一 MOV A,22H CJNE A,#18H,GO12 ;小时计数循环 MOV 22H,#00H ;复位 MOV 34H,#00H MOV 35H,#00H LJMP L0L1: JB P1.1,L2 ;P1.1=1时转移 MOV C,P1.1 JC L1 LCALL DELAY1 ;延时 JC L1MSTOP2: MOV C,P1.1 ;P1.10时转移 JNC MSTOP2 LCALL DELAY1 ;延时 MOV C,P1.1 JNC MSTOP2 INC 21H ;分钟加一 MOV A,21H CJNE A,#3CH,GO11 ;分钟计数循环 MOV 21H,#00H ; 复位 MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11: MOV B,#0AH DIV AB MOV 32H,B ; 将A的低4位存入32单元 MOV 33H,A ; 将A的高4位存入33单元 LJMP L0GO12: MOV B,#0AH DIV AB MOV 34H,B ;将A的低4位存入34单元 MOV 35H,A ; 将A的高4位存入35单元 LJMP L0L2: JB P1.0,L0 ; P1.01时转移 MOV C,P1.0 JC L2 LCALL DELAY1 ;延时 MOV C,P1.0 JC L2STOP1: MOV C,P1.0 ; P1.00时转移 JNC STOP1 LCALL DELAY1 ;延时 MOV C,P1.0 JNC STOP1 MOV 50H,#00H LJMP MAIN;*设置闹钟*SETATIME:LCALL DISPLAY2 ; 调用DISPLAY2显示闹钟N0: LCALL DISPLAY2MM2: JB P1.2,N1 ;P1.2=1时转移 MOV C,P1.2 JC MM2 LCALL DELAY1 ; 延时 JC MM2MSTOP3: MOV C,P1.2 ; P1.20时转移 JNC MSTOP3 LCALL DELAY1 ; 延时 MOV A,50H INC 50H CJNE A,#00H,HJ2 LJMP N0HJ2: MOV C,P1.2 JNC MSTOP3 INC 24H ;小时加一 MOV A,24H CJNE A,#24,GO22 ;小时计数循环 MOV 24H,#00H ;复位 MOV 38H,#00H MOV 39H,#00H LJMP N0N1: JB P1.1,N2 ;P1.11时转移 MOV C,P1.1 JC N1 LCALL DELAY1 ;延时 JC N1MSTOP4: MOV C,P1.1 ;P1.10时转移 JNC MSTOP4 LCALL DELAY1 ;延时 MOV C,P1.1 JNC MSTOP4 INC 23H ;分钟加一 MOV A,23H CJNE A,#60,GO21 ;分钟计数循环 MOV 23H,#00H ;复位 MOV 36H,#00H MOV 37H,#00H LJMP N0GO21: MOV B,#0AH DIV AB MOV 36H,B ;将A的低4位存入36单元 MOV 37H,A ;将A的高4位存入37单元 LJMP N0GO22: MOV B,#0AH DIV AB MOV 38H,B ;将A的低4位存入38单元 MOV 39H,A ;将A的高4位存入39单元 LJMP N0N2: JB P1.0 ,N0 ;P1.01时转移 MOV C,P1.0 JC N2 LCALL DELAY1 ;延时 MOV C,P1.0 JC N2STOP2: MOV C,P1.0 JNC STOP2 LCALL DELAY1 MOV C,P1.0 JNC STOP2 MOV 50H,#00H LJMP MAIN;*闹钟判断*TIMEPRO: MOV A,21H MOV B,23H CJNE A,B,BK ;判断定时闹钟的分钟 MOV A,22H MOV B,24H CJNE A,B,BK ;判断定时闹钟的小时 SETB 25H.0 MOV C,25H.0 LCALL TIMEOUT ;调用TIMEOUT BK:RET;*喇叭报警*TIMEOUT: X1: LCALL BZ ;调用喇叭响应程序 CLR 25H.0 ;调用喇叭响应程序结束 LCALL DELAY ;延时 CLR 25H.0 LJMP DISPLAY1 BZ:MOV C,25H.1 MOV P1.6,C CLR P1.7 MOV R7,#0FFH ;喇叭响应时间 T2: MOV R6,#0FFH T3: DJNZ R6,T3 DJNZ R7,T2 SETB P1.7 RET;*显示闹钟时间*LOOKATIME:LCALL DISPLAY2 MM: JNB P1.0,LOOKATIME LCALL DELAY1 LJMP MAINDELAY1: MOV R4,#14H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET;*定时*TIME: PUSH ACC ;保护现场 PUSH PSW MOVTH0,#03CH ;初值 MOVTL0,#0B0H DJNZ R2,RET0 MOVR2,#14H MOV A,20H CPL 25H.1 CLR C INC A ;秒自加一 CJNE A,#3CH,GO1 ;秒计数循环 MOV 20H,#0 ;复位 MOV 30H,#0 MOV 31H,#0 MOV A,21H INC A ;分钟自加一 CJNE A,#3CH,GO2 ;分钟计数循环 MOV 21H,#0H ;复位 MOV 32H,#0 MOV 33H,#0 MOV A,22H INC A ;小时自加一 CJNE A,#18H,GO3 ;小时计数循环 MOV 22H,#00H ;复位 MOV 34H,#0 MOV 35H,#0 AJMP RET0GO1:MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A ;将A的低4位存入31单元 MOV 30H,B ;将A的高4位存入30单元 AJMP RET0GO2: MOV 21H,A MOV B,#0AH DIV AB MOV 33H,A ;将A的低4位存入33单元 MOV 32H,B ;将A的高4位存入32单元 AJM

温馨提示

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

评论

0/150

提交评论