《单片机课程设计——电子时钟.doc》由会员分享,可在线阅读,更多相关《单片机课程设计——电子时钟.doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 烟 台 南 山 学 院 单片机课程设计题目: 简易电子时钟设计 姓 名: 乔东坡 所在学院: 自动化工程学院 所学专业:电气工程及其自动化 班 级: 08级02班 学 号: 202106709047 指导教师: 杨国庆 完成时间: 2010-12-22 单片机课程设计任务书一、根本情况 学时:2周 学分:2学分 适应班级:08电气工程二、课程设计的意义、性质、目标、要求1意义课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比拟零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程
2、设计是必不少的,是非常必要的。2性质课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。3目标通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。4要求(1)课程设计的根本要求单片机课程设计的主要内容包括:理论设计与撰写设计报告等。其中理论设计又包括选择总体方案,硬件系统设计、软件系统设计;硬件设计包括单元电路,选择元器件及计算参数等;软件设计包括模块化层次结构图,程序流程图。程序设计是课程设计的关键环节,通过进一步完善程序设计
3、,使之到达课题所要求的指标。课程设计的最后要求是写出设计总结报告,把设计内容进行全面的总结,假设有实践条件,把实践内容上升到理论高度。(2)课程设计的教学要求单片机课程设计的教学采用相对集中的方式进行,以班为单位全班学生集中到设计室进行。做到实训教学课堂化,严格考勤制度,在实训期间两周累计旷课到达6节以上,或者迟到、早退累计到达8次以上的学生,该课程考核按不及格处理。在实训期间需要外出查找资料,必须在指定的时间内方可外出。 课程设计的任务相对分散,每35名学生组成一个小组,完成一个课题的设计。小组成员既有分工、又要协作,同一小组的成员之间可以相互探讨、协商,可以互相借鉴或参考别人的设计方法和经
4、验。但每个学生必须单独完成设计任务,要有完整的设计资料,独立撰写设计报告,设计报告雷同率超过50%的课程设计考核按不及格处理。三、简易电子时钟设计设计要求:应用定时计数器实现秒定时,在此根底上实现时钟计时功能,要求通过数码管输出时分秒信息,并设计按键调时功能。(1) 硬件设计:1单片机建议选用AT89C51。可采用单片机直接控制的方案,也可采用实时时钟芯片进行设计。2LED显示系统:采用数码管显示当前时间,可采用动态数码管显示,显示格式为:时:分:秒。3调时系统:用两个功能按键来设置当前时间。功能键K1-K2功能如下:K1:设置小时K2:设置分钟4电源供电系统:系统采可用220V电源供电,应设
5、计相应的稳压电源电路。但课程设计受时间限制,也可采用现成的5V直流稳压电源供电,这样可以节约设计时间、简化设计过程。5软件设计根据设计要点,软件设计首先应对系统资源进行进行分配和说明。为了增加程序的可读性,理清程序的编写思路,建议程序采用模块化结构。摘要本设计是利用AT89C51和液晶显示管制作的实用电子钟,可完成计时,计分,计秒和校时,校分的功能。微处理器是单片机的核心,完成运算和控制的操作串行口数据存储器与复位电路,时钟电路,校时电路由微处理器控制完成各自的任务。最后通过液晶显示器显示时、分、秒。在振荡器正在运行时,复位是靠RST或在RST引脚上施加持续2个机器周期的高电平来实现,在RST
6、引脚上施加高电平的第2个周期执行内部复位,以后每个周期执行一次,直到RST变化。复位时,ALE和/RSEN输出高电平,机ALE=1和/RSEN=1,片内RAM不受复位的影响,复位后PC指向0000H使单片机从起始地址0000H开始执行程序。设计中采用内部时钟方式,在XTAL1和XTAL2两端接晶振,与内部反向器构成稳定的自激振荡器,其发出的时钟脉冲直接送入片内定时控制部件,该简易电子钟最后由6个液晶显示管显示,分、秒段式LCD显示采用七段显示,其结构除在上电极板上喷上a到g这七个笔画外,还在下电极板喷上与笔画相对应的“日字形的电极并接公共电极COM。另外时钟的校对采用与校对普通电子手表相同的操
7、作方式来完成,只需按K1、K2两个键来校时、校分。AT85C51的XTAL1和XTAL2分别为反向器的输入和输出,RST为复位输入,由它再接一个上拉电阻,引脚被拉高,P1口作为电子钟的位选,P3口局部作为电子钟的输出端。SummaryThis design is the use of AT89C51 and LCD clock made from the practical, to be completed by time, scoring, the seconds and the school, school hours functions. The microprocessor is th
8、e core of the microcontroller to complete the operation and control the operation of serial port data memory and the reset circuit, clock circuit, the circuit by the microprocessor control of the school to complete their tasks. Finally, LCD display hours, minutes and seconds. When the oscillator is
9、running, reset by the RST, or RST is applied to pin for 2 machine cycles to achieve high, the RST pin high applied to the first 2 cycles of implementation of the internal reset for every subsequent Cycle once, until the RST change. Reset, ALE and / RSEN output high level, machine ALE = 1 and / RSEN
10、= 1, on-chip RAM from the impact of reset, reset microcontroller after the PC from starting point to address 0000H to 0000H start the program. Internal clock used in the design mode, then both ends of the XTAL1 and XTAL2 crystal, and the stability of the internal inverter constitute self-excited osc
11、illator clock pulses emitted directly into the on-chip timing control parts, the last by a simple clock 6 LCD display tube display, minutes, seconds Segment LCD display with seven-segment display, and its structure except in a spray on the electrode to the g-board the seven strokes, but also with th
12、e lower electrode plate sprayed with the corresponding strokes Day -shaped electrode and common electrode connection COM. Another clock proofreading and proofreading ordinary electronic watches using the same mode of operation to complete, simply press the K1, K2 are two keys to the school, the scho
13、ol points. The XTAL1 and XTAL2 AT85C51 were reverse input and output, RST as a reset input, which it followed by a pull-up resistor, the pin is pulled high, P1 port as the clocks choice, P3 mouth part as clock output.目录1 绪论11.1 电子钟的设计要求和内容22 系统总体方案及硬件设计22.1 系统总体方案22.2 硬件设计32.2.1 时钟电路32.2.2 复位电路32.2.
14、3 LCD数码显示电路42.2.4 AT89C51单片机芯片63 软件设计73.1 流程图84 PROTEUS软件下的仿真9 软件介绍94.2 仿真过程104.2.1 任一时间的时钟显示104.2.2 按下K1键进行校时,小时加一后的时间显示114.2.3 按下K2键进行校分,分钟加一后的时间显示115 设计心得12参考文献13附1 源程序代码14附2 简易电子时钟系统电路图17 1 绪论单片机即微处理器,自1976年Inter公司推出MCS-48,迄今已有20 多年了。由于单片机具有集成度高,功能强,体积小,功耗低,使用方便,价格低廉等一系列优点,目前已经应用到人们工作和生活的各个领域,单片
15、机的应用已经从面向工业控制,通信,交通,智能仪表等迅速开展到家用消费产品,办公自动化,汽车电子,PC机外围以及网络通信等广阔领域,目前最具有代表性的是MC-51系列单片机,MC-51虽然是8位的单片机,但是它比MCS-48功能强大,此外还具有品种全,兼容性强,软硬件丰富等优点。时钟,自从它创造的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断开展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民效劳,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走
16、时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很
17、高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。 电子钟的设计要求和内容1、任选一款51系列单片机2、能完成时分秒的显示3、能完成校时校分4、要求用Proteus软件进行仿真2 系统总体方案及硬件设计 系统总体方案采用AT89C51来设计电子钟。按照功能要求确定系统方案,如下列图所示。从图中可以看出该设计有微处理器模块,串行口通信模块,时钟模块,数据存储模块以及显示模块等组成。图 1 控制器功能框图 硬件设计 时钟电路本设计的时钟电路的设计如图2。对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。但由于图
18、中的C1、C2电容起着系统时钟频率微调和稳定的作用,因此,在本闹钟系统的实际应用中一定要注意正确选择参数3010 PF,并保证对称性尽可能匹配,选用正牌厂家生产的瓷片或云母电容,如果可能的话,温度系数要尽可能低。实验说明,这2个电容元件对闹钟的走时误差有较大关系。 图 2系统时钟电路 复位电路随着微电子技术的飞速开展,单片机的性能迅速提高,在运算、逻辑控制、智能化方面显示出非凡的优势,在很大程度上取代了原来由数字逻辑电路、运算放大电路组成的检测、控制电路,应用非常广泛。但由于它存在着死机、程序跑飞等致命缺陷,使它在许多重要场合的应用受到限制。在抗干扰方面的许多技术,比方设软件陷阱、加硬件看门狗
19、电路等,可使这一问题有较好的解决,但仍然存在问题:看门狗动作时,意味着已经出现了错误,且运行了一段时间,这在有些场合是不允许的;有时程序出现死循环错误,但是刚好把看门狗控制环节包含进去,对于这样的错误采用看门狗无法识别;在检测控制周期比拟长的系统中,单片机花大量时间等待外设,执行等待命令时同样会受到干扰。针对这些情况,我们在实践中尝试了主动复位的方法,采用等间隔的脉冲或根据外部条件对单片机进行复位唤醒。每次复位后,单片机执行相应的程序,执行完任务后及时进入休眠,等待下次复位。用此方法较好地解决了上述问题,并在农用变压器综合保护器实验中得到了较好的效果。下面以51系列单片机为例探讨具体原理与实现
20、方法,复位信号为高电平。本设计采用的是上电复位方式。RC复位电路的实质是一阶充放电电路,现结合图 3说明这种复位电路的特点。系统上电时该电路提供有效的复位信号RST高电平直至系统电源稳定后撤销复位信号低电平。理论上说,系列单片机复位引脚只要外加2个机器周期的有效信号即可复位,即只要保证 tRC2M机器周期便可,但实际设计中,通常取C1为10以上,R1通常取10K左右。实践发现R1如果取值太小,例如1,那么会导致RST信号驱动能力变差而无法使系统可靠复位。图3 中的虚线所接的续流二极管D1对于改善复位性能,起到了重要作用,它的作用是在电源电压瞬间下降时使电容迅速放电,因此一定宽度的电源毛刺如波形
21、中A点也可令系统可靠复位。图 3RC复位电路 LCD数码显示电路本设计采用的LCD液晶显示器来显示时钟的时间。液晶显示器是采用了液晶控制透光度技术来实现色彩的显示器。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。对于画面稳定、无闪烁感的液晶显示器,刷新率不高但图像也很稳定。LCD显示器还通过液晶控制透光度的技术原理让底板整体发光,所以它做到了真正的完全平面。一些高档的数字LCD显示器采用了数字方式传输数据、显示图像,这样就不会产生由于显卡造成的色彩偏差或损失。完全没有辐射的优点,即使长时间观看LCD显示器屏幕也不会对眼睛造成很大伤害。 LCD显示器
22、的工作原理: LCD由两块玻璃板构成,厚约1mm,其间由包含有液晶材料的5m均匀间隔隔开。因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液晶显示屏反面有一块背光板或称匀光板和反光膜,背光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。 背光板发出的光线在穿过第一层偏振过滤层之后进入包含成千上万液晶液滴的液晶层。液晶层中的液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。在玻璃板与液晶材料之间是透明的电极,电极分为行和列,在行与列的交叉点上,通过改变电压而改变液晶的旋光状态,液晶材料的作用类似于一个个小的光阀。在液晶材料周边是控制电路
23、局部和驱动电路局部。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规那么的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。图 4 LCD液晶显示 AT89C51单片机芯片本设计采用的AT89C51单片机芯片来实现电子钟的设计的。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图片见图5: 图 5 AT89C51芯片AT89C51单片机芯片的主要特性有:与MCS-51 兼容,4K字节可编程闪烁存储,数据保存时间长达10年,内含有128*
24、8位内部RAM,32可编程I/O线,两个16位定时器/计数器, 5个中断源 ,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路 AT89C51单片机芯片还具有振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度。AT89C51单片机芯片管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1
25、口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口。3 软件设计本设计采用中断方式进行设计程序的,在中断中应注意的问题:采用中断的方式,最好将定时器中断的优先级设置为最高级,关于程序数据的稳定性应注意两个问
26、题:一,在低优先级中断响应时,应在入栈保护数据时禁止高优先级的中断响应。二,在入栈保护有关数据后,对中断程序执行有影响的状态位,存放器,必须恢复为复位状态的值。例如,在以下程序中,由于用到了十进制调整,所以在中断进入时,将PSW中的AC,CY位清零,否那么,十进制调整出错。定时准确性的讨论:程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中断程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的误差。如果在前述定时器
27、不关的情况下,在中断程序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1秒,误差712个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为最高级,那就要视中断程序的大小,在定时值设置时,扣除相应的时间值。 流程图 图6流程图该流程图,先对电路进行初始化,然后程序从伪指令ORG开始顺序执行,进入主程序,在主程序中调用各个子程序,在各个子程序中利用数据传送,循环移位指令等和中断方式,以及各个子程序,始终开
28、始运行,在运行是可对时钟进行调整,K1键是进行校时,K2键是进行校分,利用中断进行校时,校分,最终实现了电子钟的设计。4 proteus软件下的仿真4.1 软件介绍WAVE6000软件是在窗口管理、工程管理和源文件编辑工具上工作的,在WAVE6000环境下的所有窗口均可以放在窗口的同一块区域,各窗口可以直接切换,节省了窗口的面积,使窗口管理更有效。WAVE6000中工程管理和源文件编辑方面的功能,使得工程、文件切换更方便,有效地后退、前进功能使得修改程序更方便。新增加的书签窗口和断点窗口可以有效地管理断点和书签,使得程序员无需在众多的代码和断点中逐行查询,断点信息和书签信息在各自的窗口中显示一
29、目了然。工程窗口是用户和源程序文件、目标文件和用户设置等的桥梁,通过工程窗口可以建立工程、设置工程、添加源程序到工程、编译工程等工程操作,信息串口显示工程操作和文件操作后的详细信息,例如翻开工程、保存工程、工程编译过程以及出错信息等等。在一个工程调试之前,必须经过新建工程、设置工程、添加模块和包含文件、保存工程、编译工程,最后进入调试工程,其中的所有成功和错误信息都会在该窗口中显示,因此用户在调试工程前,需要观察此窗口是否有错误信息,待排除错误前方可正确调试工程。外设包括端口、定时器、串行口、中断菜单和相应的窗口是由SFR窗口寄生出来的外设菜单,专门用来显示外部设备的状态和相应的设置,可以通过
30、该窗口生成用户修改设置后的汇编源码、C源码,用户可以脱离常用的手册直接修改各外设的工作方式,然后产生源码。外设包括端口、定时器、串行口、中断菜单和相应的窗口是由SFR窗口寄生出来的外设菜单,专门用来显示外部设备的状态和相应的设置,可以通过该窗口生成用户修改设置后的汇编源码、C源码,用户可以脱离常用的手册直接修改各外设的工作方式,然后产生源码。 仿真过程1)在计算机上翻开“WAVE6000”集成调试环.2)建立新程序选择菜单文件|保存文件或文件|另存为功能。3)建立新的工程,选择菜单文件|新建工程功能。新建工程分三步走,首先,参加模块文件。在参加模块文件的对话框中选择刚刚保存的文件,按翻开键。如
31、果你是模块工程,可以同时选择多个文件再翻开。然后,参加包含文件。在参加包含文件对话框中,选择所要参加的包含文件。如果没有那么按取消键。最后,保存工程。在保存工程对话框中输入工程名称,按保存键将工程保存在与你的源文件相同的文件夹下。4)然后再设置工程。选择菜单栏的编译功能编译工程。在编译过程中如果有错误可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译只到正确为止。5)在编译没有错误后,就可以执行、调试程序了。软件仿真的时间显示图: 任一时间的时钟显示图7 任意时间时钟显示 按下K1键进行校时,小时加一后的时间显示图8 时钟时间显示 按下K2键进行校分,分钟加
32、一后的时间显示图9分钟时间显示5 设计心得作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业根底课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在梦想的世界里翱翔,而我们一切都要有据可依,有
33、理可寻,不切实际的设想永远只能是设想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:Keil、汇编语言ISIS制图等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改良是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,
34、这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。另外,这次课程设计让我感到了团队合作的重要性。在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师杨国庆老师在我们遇到困难时,给予我们的建议与鼓励。 2周的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。参考文献1 余发山.?单片机原理及应用技术?.北京:中国矿业大学出版社,2007.2 张毅刚.?单片机
35、应用设计?.哈尔滨:哈尔滨工业大学出版社,1997.3 李刚.?51系列单片机系统设计与应用技巧?.天津:天津大学出版社,2004.4 房小翠、王金凤.? 单片微型计算机与机电接口技术?.北京:国防工业出版社,2005.5 李珍.?单片机原理与控制技术?.北京:清华大学出版社,2006.6 范立南.?单片微机接口与控制技术?.沈阳:辽宁大学出版社,2004.7 张友德.? 单片微型机原理应用与实践?.上海:复旦大学出版社,2001.8 李华.?MCS-51系列单片机实用接口技术?.北京:北京航空航天大学出版社,2000.附1 源程序代码DB0_DB7 EQU P1DI_DA DATA 20HS
36、EC DATA 21HMIN DATA 22HHOUR DATA 23HORG 0000HLJMP MAINORG 000BHLJMP CLOCKORG 0030HMAIN: MOV TMOD, #01H MOV TL0, #0B0H /50ms MOV TH0, #3CH SETB ET0 SETB TR0 MOV DI_DA, #00H MOV SEC, #00H MOV MIN, #00H MOV HOUR, #00H SETB EA MOV SP, #60H LCALL INITIAL LCALL CLSMOV A, #10000000B /第一行LCALL WRITE_COMMOV
37、DPTR, #LINE0LCALL DISPMOV A, #11000000B /第二行 c0-LCALL WRITE_COMMOV DPTR, #LINE1LCALL DISP;*MOV A, #11001100B /ccLCALL WRITE_COMMOV DPTR, #LINE1LCALL DISP;* START TIME* /按键 JNB P3.0, MIN_ADJ JNB P3.1, HOUR_ADJ ACALL CONV ACALL DIS AJMP BEGIN;* SCAN KEYBOARD* MIN_ADJ: ACALL DEL10MS CLR C MOV A, MIN IN
38、C A DA A CJNE A, #60H, X1 CLR AX1: MOV MIN, A ACALL DIS ACALL DEL200MS JNB P3.0, MIN_ADJ AJMP BEGINHOUR_ADJ: ACALL DEL10MS CLR C MOV A,HOUR INC A DA A CJNE A, #24H, X3 CLR AX3: MOV HOUR, A ACALL DIS ACALL DEL200MS JNB P3.1, HOUR_ADJ AJMP BEGIN;*CONVERT*CONV: MOV A, DI_DA CJNE A, #14H, DONE MOV DI_DA
39、, #00H MOV A, SEC ADD A, #01H DA A MOV SEC, A CJNE A, #60H, DONE MOV SEC, #00H MOV A, MIN ADD A, #01H DA A MOV MIN,A CJNE A, #60H, DONE MOV MIN, #00H MOV A, HOUR ADD A, #01H DA A MOV HOUR, A CJNE A, #24H, DONE MOV HOUR, #00HDONE: RET;* *DISPLAY TIME*DIS: MOV A, #11000100B LCALL WRITE_COM MOV A, HOUR
40、 SWAP A ANL A, #0FH ADD A, #30H LCALL WRITE_DATA MOV A,HOUR ANL A, #0FH ADD A, #30H LCALL WRITE_DATA MOV A, #3AH LCALL WRITE_DATA MOV A,MIN SWAP A ANL A, #0FH ADD A, #30H LCALL WRITE_DATA MOV A, MIN ANL A, #0FH ADD A, #30H LCALL WRITE_DATA MOV A, #3AH LCALL WRITE_DATA MOV A, SEC SWAP A ANL A, #0FH A
41、DD A, #30H LCALL WRITE_DATA MOV A, SEC ANL A, #0FH ADD A, #30H LCALL WRITE_DATA RET;* * 50MS INTERUPPT*CLOCK: MOV TL0, #0B0H MOV TH0, #3CH INC DI_DA RETI;* * DISPLAY IN LCM *DISP: PUSH ACCDISP_LOOP: CLR A MOVC A, A+DPTR JZ END_DISP LCALL WRITE_DATA INC DPTR SJMP DISP_LOOPEND_DISP: POP ACC RET;* * START LCM *INITIAL: MOV A, #00111000B /1602初始化 LCALL WRITE_COM MOV A, #00001100B LCALL WRITE_COM MOV A, #00000110B LCALL WRITE_COM RET;* * BF *CHECK_BUSY: PUSH ACCBUSY_LOOP: CLR E SETB R_W CLR RS SETB E MOV A, DB0_DB7 CLR E