1、河南城建学院毕业(论文) 第一章 绪论目录目录I摘 要I第一章 绪论11.1 智能定时插座的发展概况11.2 本设计研究的主要内容2第二章 智能定时开关插座的控制方案321智能定时开关插座的控制方案32.1.1 智能定时开关插座的总体框图32.2 智能定时开关插座的框图原理32.2.1 智能定时开关插座的工作过程3第三章 智能定时开关插座的硬件电路设计53.1 智能定时开关插座的电源电路53.2 单片机AT89S51芯片概述53.3 智能定时开关插座的复位及时钟电路63.4 智能定时开关插座的显示电路73.5 智能定时开关插座的继电器电路83.6 智能定时开关插座的器件选择83.6.1 智能定
2、时开关插座的外观质量检查83.6.2 智能定时开关插座的电气性能的筛选93.6.3 智能定时开关插座的元器件的检测93.7 智能定时开关插座的元件清单10第四章 智能定时开关插座的软件设计124.1 智能定时开关插座的的软件设计124.1.1智能定时开关插座的主程序流程图124.1.2智能定时开关插座的按键流程图124.1.3 智能定时开关插座的定时流程图134.1.4 智能定时开关插座的时间显示流程图14第五章 智能定时开关插座的仿真设计165.1 智能定时开关插座的仿真165.1.1 KEIL工程的建立165.2.2源文件的输入17参考文献21致 谢22附录23附录1 智能定时开关插座的程
3、序设计23附录2 智能定时开关插座的设计成品35摘 要 本设计研究的是智能定时开关插座,它可以在没有人参与的情况下,能够自动的切断或通电,给日常生活中带来许多的方便。本设计首先进行了硬件电路的设计,设计的主要内容是利用AT89S51芯片通过驱动芯片74LS244一路通过数码管显示时间,另一路通过驱动芯片74LS244到继电器吸合电路,定时时间到后,继电器能够吸合动作从而驱动开关插座,切断或通电电源。然后设计了软件部分,并对程序进行仿真,最后进行了制作和调试。关键词:单片机 定时 开关SummaryThe design of the intelligent time switch socket,
4、 it can participate in no circumstances, be able to automatically cut off or the power to bring a lot of convenience in daily life. This design was first hardware circuit design,design of the main content is to use AT89S51 chip all the way through the drive through the 74LS244 chip digital display t
5、ime,another wany to relay through the driver IC 74LS244 pull circuit,time to time,the relay can pull action to drive switch socket, cut off or power supply. And then design the software part, and process simulation, and finally to the production and debugging.Keywords: Chip Timer Switch第一章 绪论1.1 智能定
6、时开关插座的发展概况随着科学技术的进步,我国的电力电子技术和电子器件都有了很大的发展.智能开关插座技术的发展,从根本上解决了传统电器启动的额定电流高,使传统电器易造成过热引起高温而加速绝缘老化、电压降过大而影响正常运转以及大的冲击力缩短设备的使用寿命等各种弊端。为此充分利用现有的技术、人才和资源优势,加强国际合作和技术交流,争取国内外各方面的有利因素,提高家庭的生活质量,减少不必要的人生伤害,增强人类的节能意识,为我们子孙后代保留一点资源。为大家以后的生活更美好。因此,论述了定时开关插座的功能、特点及应用,为家庭、企业创造给美好的环境。定时开关插座在国内外都已经成熟,给生活中带来许多的方便,比
7、如家中的鱼缸你可以设置供养的时间、或者对家中的饮水机也可以进行设置时间,以免长时间的滚水造成饮水不健康等;全面集成远程控制、定时控制等智能和家电控制功能;即插即用,轻松实现家庭智能,质量可靠,性能稳定,无需再担心家的安全,财产的安全,生命的安全。您可以放心地工作,安心地生活,开心地游玩,有品质,所以有信心。定时开关插座以服务为本、影响生活、改变生活、创造新的生活方式的最直观体现,也是众多智能家居厂商由产品让人们享受到的现实,只有更加贴近实用、易用和人性化的智能家居概念,真正体现智能家居的价值,这也是现代科技价值的核心所在。定时开关插座在国外已经十分普及,基于方便便捷的开关理念,2006年引进中
8、国,有了定时开关插座,可实现24小时之内任何时段的定时开启及关闭功能,从根本上解决了不需要太多的关注,即使在你上班的时候也不用太过的麻烦,并且定时开关插座通过OEM等方式已经成功的在海外市场销售了13年,出口量始终维持在每年500万件以上的水平。并且定时开关插座在国外发展已经成熟,自动控制开关插座去年就出口了600多万件,所以这种好产品全部出口国外销售,定时开关插座充分的利用了以节能为最终目的给生活到来的便捷,加快生活节奏,几年内出口到了70多个国家和地区。即使在金融危机这样的恶劣市场环境下,自动开关插座的在国际市场的销售额比去年同期还是增长了55%。在国外节能已经成为生活中的一部分,所以定时
9、开关插座在其中也起到了不可抹灭的作用。 1.2 本设计研究的主要内容本设计研究的主要内容是智能定时开关插座,本设计首先进行了硬件电路的设计,设计的主要内容是利用AT89S51芯片通过驱动芯片74LS244一路通过数码管显示时间,另一路通过驱动芯片74LS244到继电器吸合电路,定时时间到后,继电器能够吸合动作从而驱动开关插座,切断或通电电源。然后设计了软件部分,并对程序进行仿真,最后进行了制作和调试,这就是本次设计的主要内容。36河南城建学院毕业(论文) 第二章 智能定时开关插座的控制方案第二章 智能定时开关插座的控制方案21智能定时开关插座的控制方案本设计采用的是AT89S51单片机芯片,将
10、交流220V的电压经过变压、整流、三端稳压器7805稳压后得到的+5V电源送给单片机供电,利用单片机的外围电路进行扩展,单片机芯片的引脚端口一端接驱动芯片74LS244到数码管上并起到显示电路的作用,单片机的另一个端口接驱动芯片与继电器相接,一定的时间继电器吸合去驱动开关插座,及时通断达到节能的目的,同时通过PROTEL画出硬件电路图,并通过PROTEUS进行电路仿真,最会一步就是根据设计做出相应的实物。这就是开关插座基本的控制方案。2.1.1 智能定时开关插座的总体框图 图2-1 智能定时开关插座的总体框图2.2 智能定时开关插座的框图原理2.2.1 智能定时开关插座的工作过程 主要是利用A
11、T89S51单片机实现的,通过键盘控制,当按下S1时,系统可进行时间调整的小时设置,当再按下S1时,可进行时间调整的分钟设置,再按下S1时,可进行时间调整的秒钟设计,再按下S1时,恢复正常的时间。当按下S2时,系统可进行定时时间的小时设置,此时S1为选择键再按下S2时,可进行定时时间的分钟设置,此时也可以用S1作为选择键,再按下S2时,系统恢复正常时间显示,此时S1恢复为时间调整按键,设置时间时通过加时S3和减时S4进行控制。一定的时间后,驱动芯片驱动数码管显示电路显示时间,显示时间到,驱动继电器吸合驱动开关插座,达到通断的目的。河南城建学院毕业(论文) 第三章 智能定时开关插座的硬件电路第三
12、章 智能定时开关插座的硬件电路设计3.1 智能定时开关插座的电源电路本电路采用7805稳压器,7805三端其标称最大输出电流均为1.5A,利用插头接上电源插头后,接上220V交流电源通电,经变压器降压,桥式整流电路整流。通过滤波电容滤波。然后通过7805三段稳压器稳压之后得到+5V的直流电源供给系统的其他模块。其电路图如3-1所示:图3-1 +5V电源3.2 单片机AT89S51芯片概述AT89S51是一个低功耗,高性能CMOS 8位单片机,片内4kBytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、
13、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,4个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,内部集成看门狗计时器片内时钟振荡器。如图3-2所示:图3-2 AT89S51单片机芯片其工作电压在4.55V,一般我们选用5V电压
14、。3.3 智能定时开关插座的复位及时钟电路复位电路产生复位信号,复位信号送入RST后还要送至片内的施密特触发器,由片内复位电路在每个机器周器的S5P2时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号。一般的复位电路可分为上电自动复位和按键复位,我们在此选用的是按键复位。:上电自动复位原理:RST引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机上电复位位信号无效。按键复位在此不在作过多的介绍,其原理和上电复位是相同的。但其采用的是脉冲复位电路和电平复位电路两种。图中的C3、C4电容起着系统时钟频率微调和稳定的作用。设计中一定要注意正确选
15、择参数(30PF),并保证电力的对称性。如图3-3所示:图3-3 智能定时开关插座的外围电路3.4 智能定时开关插座的显示电路本电路采用数码管,因为对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差,对于具有驱动电路和微处理器接口的液晶显示模块,一般多采用并行接口,对微处理器的接口要求较多,占用资源多,另外,89S51本身无专门的液晶驱动接口,因此,本设计采用数码管显示方式,数码管作为一种主动的显示器件,具有亮度高,价格便宜等优点。下图3-4为数码管显示电路:图3-4 智能定时开关插座的显示器电路3.5 智能定时开关插座的继电器电路本电路采用5V继电器,配合
16、设计驱动开关插座,继电器的要求:良好的驱动电路使电力电子器件工作在开关状态,缩短开关时间,减少开关损耗,继电器是一种电子控制器件,它有输入回路和输出回路,通常应用到自动系统中,在电路中起着自动调节,安全保护,转化电路等作用。如图3-5所示:图3-5 智能定时开关插座的继电器电路3.6 智能定时开关插座的器件选择动手准备元器件之前,最好对照电路原理图列出所需元器件的清单。为了保证在试制的过程中不浪费时间,减少差错,同时也保证制成后的装置能长期稳定地工作,待所有元器件都备齐后,还必须对其筛选检测。在正规的工业化生产中,都设有专门的元器件筛选检测车间,备有许多通用和专用的筛选检测装备和仪器,但对于业
17、余电子爱好者来说,不可能具备这些条件,即使如此,也绝不可以放弃对元器件的筛选和检测工作,因为许多电子爱好者所用的电子元器件是邮购来的,其中有正品,也有次品,更多的是业余品或利用品,如在安装之前不对它们进行筛选检测,一旦焊入印刷电路板上,发现电路不能正常工作,再去检查,不仅浪费很多时间和精力,而且拆来拆去很容易损坏元件及印刷电路板。3.6.1 智能定时开关插座的外观质量检查拿到一个电子元器件之后,应看其外观有无明显损坏。如变压器,看其所有引线有否折断,外表有无锈蚀,线包、骨架有无破损等。如三极管,看其外表有无破损,引脚有无折断或锈蚀,还要检查一下器件上的型号是否清晰可辨。对于电位器、可变电容器之
18、类的可调元件,还要检查在调节范围内,其活动是否平滑、灵活,松紧是否合适,应无机械噪声,手感好,并保证各触点接触良好。各种不同的电子元器件都有自身的特点和要求,各位爱好者平时应多了解一些有关各元件的性能和参数、特点,积累经验。3.6.2 智能定时开关插座的电气性能的筛选要保证试制的电子装置能够长期稳定地通电工作,并且经得起应用环境和其它可能因素的考验,对电子元器件的筛选是必不可少的一道工序。所谓筛选,就是对电子元器件施加一种应力或多种应力试验,暴露元器件的固有缺陷而不破坏它的完整性。筛选的理论是:如果试验及应力等级选择适当,劣质品会失效,而优良品则会通过。3.6.3 智能定时开关插座的元器件的检
19、测经过外观检查以及老化处理后的电子元器件,还必须通过对其电气性能与技术参数地测量,以确定其优劣,剔除那些已经失效的元器件。下面例举几种基本元器件的检测。1.电阻器。它是所有电子装置中应用最为广泛的一种元件,也是最便宜的电子元件之一。它是一种线性元件,在电路中的主要用途有:限流、降压、分压、分流、匹配、负载、阻尼、取样等。检测该元件时,主要看它的标称阻值与实际测量阻值的偏差程度。工程上按照使用的需要,给出了允许偏差值,如5%、10%、20%。再加上万用电表检测电阻器时的误差,一般要求其误差不超过允许偏差的10%即认为合格。2.晶体二极管。晶体二极管是一种非线性器件,它的正、反两个方向的电阻值相差
20、悬殊,这就是二极管的单向导电性。在电路中,利用这一特性,可以作整流、检波、箝位、限幅、阻尼、隔离等。用万用电表测量二极管时,可选用欧姆档R1k。由于二极管具有单向导电性,它的正、反向电阻是不相等的,两者阻值相差越大越好。对于常用的小功率二极管,反向电阻应比正向电阻大数百倍以上。用红表棒接二极管的正极,黑表棒接它的负极,测得的是反向电阻。反之,红表棒接二极管的负极,黑表棒接它的正极,测得的是正向电阻。锗二极管的正向电阻一般在1001k左右;硅二极管的正向电阻一般在几百欧至几千欧。如果测得它的正、反向电阻都是无穷大,说明该二极管内部已开路;如果它的正、反向电阻均为0,说明二极管内部已短路;如果它的
21、正、反向电阻相差无几,说明二极管的性能变差失效。出现以上三种情况的二极管均不能使用。3.继电器选用:条件:(1)控制电路的电源电压,能提供最大电流。(2)被控制电路中的电压电流(3)被控电路需要几组,什么形式的触点选用继电器时,一般控制电路的电源电压可作为选用依据,控制电路应能给继电器提供足够的工作电流,否则继电器吸合不稳定的。4.其它电子元器件。如常用的各种开关、接插件、发光二极管、扬声器、耳机等,主要用万用电表检测它们的通断情况。对于发光二极管和扬声器、耳机,也可用电池组来试验其发光或发声程序,以此来判断其优劣。3.7 智能定时开关插座的元件清单 元器件清单如表3-1所示:名称器件数AT8
22、9S51单片机芯片1个74LS244驱动芯片2个LED数码管6个熔断器1个6V变压器1个普通整流器1个7805三端稳压器1个0.1UF电容2个33PF电容2个100PF电容1个12MHZ晶振电容1个复位开关5个1K电阻2个100欧电阻13个4.7K电阻1个8550三极管1个C1815三极管6个5V继电器1个表3-1 智能定时开关插座的元件清单河南城建学院毕业(论文) 第四章 智能定时开关插座的软件设计第四章 智能定时开关插座的软件设计4.1 智能定时开关插座的的软件设计4.1.1智能定时开关插座的主程序流程图 主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后就可以显示时间。
23、如下图4-1所示:开始系统初始化时间显示扫描键盘时间显示图4-1 智能定时开关插座的主程序流程图4.1.2智能定时开关插座的按键流程图按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。 如下图4-2所示:NYNYNY时加1显示时间结束开始秒按键按下?秒加1分按键按下?分加1时按键按下? 图4-2 按键处理流程图4.1.3 智能定时开关插座的定时流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否
24、到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。如下图4-3所示:N24小时到?分单元清零,时单元加1NNNYY时单元清零时间显示中断返回开始一秒时间到?60秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1YY图4-3 定时流程图4.1.4 智能定时开关插座的时间显示流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。如图4-4所示:时十位计算显示结束开始秒个位计算显示秒十位计算显示分个位计算显示分十位计算显示时个位计算显示 图4-4 显示流
25、程图河南城建学院毕业(论文) 第五章 智能定时开关插座的仿真设计第五章 智能定时开关插座的仿真设计5.1 智能定时开关插座的仿真5.1.1 KEIL工程的建立Keil单片机模拟调试软件对MCS51单片机应用系统的软件开发过程采用工程(Project)管理。工程保存着程序编辑的信息和程序调试的环境。在开始编写程序之前首先应该建立一个工程。新建一个工程之前通常还需要建立一个文件夹,后面产生的工程文件和源程序文件等都将存储在这个文件夹之中。在如图所示的集成开发环境的窗口中选择ProjectNew Project命令将打开建立新工程的对话框,如图5-1所示。图5-1 KEIL工程的建立在“保存在”下拉
26、列表框中选择新建工程将要存储的文件夹名,在“文件名”文本框中输入工程的名称,注意对于工程不要添加扩展名,单击“保存”按钮即可完成一个工程的创建。单击“保存”按钮在完成一个工程创建的同时也打开了单片机芯片型号选择对话框。如图5-2所示的对话框已经完成了芯片型号的选择。图5-2 芯片的选择Keil单片机模拟调试软件支持许多公司生产的MCS51单片机兼容产品。如前所述,本书应用电路中采用Atmel公司的AT89S51芯片,下面以这款芯片为例介绍如何实现选择。在图所示的对话框中的Data base列表框中首先选择生产芯片的公司名称Atmel,双击这个公司名称即可打开Atmel公司目前生产的所有芯片型号
27、。接着在列出的产品清单中选择将使用的AT89S51芯片,如图5-2所示。最后单击“确定”按钮即可完成芯片的选择。完成芯片的选择后又回到如图所示的集成开发环境的窗口,但是这时该窗口中的工程管理窗口不再是空白,在它的文件选项卡中出现目录列表Target 1和它的子目录Source Group 1。集成开发环境中的菜单Project内还包含Open Project和Close Project等选项。Open Project选项用来以后再次进入已经建立的工程,选择ProjectOpenProject命令将打开选择工程的对话框。在“查找范围”下拉列表框中选择欲打开的工程所在的文件夹,列表框中将出现该文件
28、夹中的所有工程,选择将要打开的工程,单击“打开”按钮即可打开一个工程。选择ProjectClose Project命令将关闭当前的工程。5.2.2源文件的输入Keil单片机模拟调试软件内集成了一个文本编辑器,用该文本编辑器可以编辑源程序。如图5-3所示。在图5-3中已经完成了汇编语言源文件的输入,并且完成了源程序向当前工程的添加。如图5-3所示:图5-3 源文件输入完成汇编语言源文件的输入后,在集成开发环境中选择FileSave As命令可以完成文件的第一次存储。注意,汇编语言源文件的扩展名应该是ASM,它应该与工程文件存储在同一文件夹内。在完成文件的第一次存储后,当对汇编语言源文件又进行了修
29、改,再次存储文件时则应该选择FileSave命令、单击保存工具按钮或者按快捷键Ctrl+S实现文件的保存。需要注意的是,当把汇编语言源文件加入工程但还没有关闭加入文件对话框时,有可能被误认为文件没有成功地加入工程而再次进行加入操作,系统将显示所需的文件已经加入的提示。在这种情况下,单击提示框中的“确定”按钮,再单击Close按钮可以关闭加入文件对话框。工程建立好后,还可对对工程进行进一步的设置,一满足要求。首先点击左边的Project窗口的Target1,然后使用菜单“Project中的Option for Target1”即出现对工程设置的对话框,如图5-4所示:图5-4 调试对话框的设置对
30、上图进行相应的设置,用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。在设置好工程后就可以进行编译、连接。选择Project中的Build target,对当前工程进行连接,编译过程中会出现很多语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复新盖之后,最终会得到如图所示的结果,提示获得了名为Hex的文件,该文件即可被编程器读入写到芯片中,同时还会产生一些其它的相关文件。如图5-5所示: 图5-5 调试后的结果 写到芯片中的程序,可以用Proteus中进行仿真,仿真结果如下图5-6所示:图 5-6 智能定时开关插座的仿真图仿真过程中出现很多的错误,仿真
31、部分采用protus 7 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。首先打开protus 7 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。河南城建学院毕业(论文) 致谢参考文献致 谢通过本次设计,让我认识并了解到了基本的设计开发过程,在这过程中,我的身边的同学给了我很多的启示和帮助,而且我觉的对以前不了解的单片机知识有了一个更高更深的了解。我相信我所学的东西在以后
32、的工作学习中会起更大的作用。在本次设计中得到了指导老师葛广军老师的大力支持,同学王士景、尹海生在此表示感谢!在设计的过程中,本系的各位老师和领导也给予了诸多帮助和支持,在此作者也表示感谢!感谢各位老师多年来的教诲与帮助,也感谢各位同学在学习上的帮助!河南城建学院毕业(论文) 附录附录附录1 智能定时开关插座的程序设计ORG 0000HLJMP MAINORG 000BHLJMP TIMEORG 1000HHOUR1 EQU 10hHOUR2 EQU 12hMIN1 EQU 14hMIN2 EQU 16hSEC1 EQu 18HCOUNT EQU 20HNUM1 EQU 22HNUM2 EQU
33、24HLL4 EQU 26Hs1 bit P1.0s2 bit P1.1s3 bit P1.2s4 bit P1.3A1 EQU 36HA2 EQU 38HB1 EQU 40HB2 EQU 42HWELA bit P1.6DULA bit P1.7C1 EQU 48HC2 EQU 50HD1 EQU 52HD2 EQU 54HF1 EQU 56HE1 EQU 58HTIMEEPRO EQU 60HMAIN: MOV SP,#50H ;SP初始化MOV P3,#0FFH ;端口初始化START: MOV HOUR1,#00H ;初始化的时间变量MOV MIN1,#00HMOV SEC1,#00H
34、MOV HOUR2,#01H ;初始化定时变量MOV MIN2,#00HMOV COUNT,#00H ;初始化计时变量MOV NUM1,#00H ;初始化按键计数变量MOV NUM2,#00HMOV TMOD,#01H ;16位计数器MOV TH0,#0D8H ;赋初值MOV TL0,#0EFHSETB ET0 ;中断允许SETB EASETB TR0 ;启动T0LOOP: MOV A,NUM2JNZ LOOP1 ;A不为0时转移LCALL DISPLAY1 ;显示当前时间LCALL KEYTIME ;调用时间调整子程序LCALL SETTIME ;调用定时设置子程序LJMP LOOPLOOP
35、1: LCALL DISPLAY2 ;显示定时时间LCALL KEYTIME ;调用时间调整子程序LCALL SETTIME ;调用定时设置子程序LJMP LOOP;SETTIME PROGRAMSETTIME: ;定时设置子程序LL1: JB S2,LL3 ;P1.1=1时转移LCALL DELAY5 ;延时5mSMSTOP1: JB S2,LL3 ;P1.1=0时转移MOV C,S2JNC MSTOP1 ;P1.1=0时转移INC NUM2 ;按键计数变量加1MOV A,NUM2CJNE A,#1H,LL2 ;判断按键计数是否为1CLR TR0 ;定时器中断关闭LL2: CJNE A,#3
36、,LL ;判断按键计数是否为3MOV NUM2,#0 ;按键计数变量清0SETB TR0 ;定时器中断打开LL: LCALL DISPLAY2 ;显示定时时间LL3: MOV A,NUM2 ;A为0时转移JZ LL5JB S3,KK2 ;P1.2=1时转移LCALL DELAY5 ;延时5MSKK1: JB S3,KK2 ;P1.2=1时转移MOV C,S3JNC KK1 ;P1.2=0时转移MOV A,NUM2CJNE A,#1,MM1 ;判断按键计数是否为1INC HOUR2 ;小时定时变量加1MOV A,HOUR2CJNE A,#24,MM1 ;判断小时定时变量是否为24MOV HOUR
37、2,#0 ;小时定时变量为24则复位0LCALL DISPLAY2 ;显示定时时间MM1: LCALL DISPLAY2 ;显示定时时间MOV A,NUM2CJNE A,#2,kk2 ;判断按键计数是否为2INC MIN2MOV A,MIN2CJNE A,#60,KK2 ;分钟定时变量是否为60MOV MIN2,#0 ;分钟定时变量为60复位0LCALL DISPLAY2 ;显示定时时间KK2: LCALL DISPLAY2JB S4,LL5 ;P1.3=1时转移LCALL DELAY5 ;延时5MSKK3: JB S4,LL5;P1.3=1时转移MOV C,S4JNC KK3 ;P1.3=0
38、时转移MOV A,NUM2CJNE A,#1,MM2 ;判断按键计数是否为1DEC HOUR2 ;小时定时变量减1MOV A, HOUR2CJNE A,#0,MM2MOV HOUR2,#24LCALL DISPLAY2MM2: LCALL DISPLAY2MOV A,NUM2CJNE A,#2,LL5 ;判断按键计数是否为2DEC MIN2MOV A,MIN2CJNE A,#0,LL5MOV MIN2,#60 ;显示定时时间LL5: LCALL DISPLAY2RET;KEYTIME PROGRAMKEYTIME: ;时间调整子程序L1: JB S2,L3 ;P1.0=1时转移LCALL DE
39、LAY5 ;延时5MSMSTOP2: JB S2,L3 ;P1.0=1时转移MOV C,S2JNC MSTOP2 ;P1.0=0时转移INC NUM1MOV A,NUM1CJNE A,#1,L2 ;判断按键计数是否为1CLR TR0 ;定时器中断关闭L2: CJNE A,#4,L3 ;判断按键计数是否为4MOV NUM1,#0SETB TR0 ;定时器中断打开L3: MOV A,NUM1JNZ FF ;A不为0时转移LJMP L5FF: JB S3,K2 ;P1.2=1时转移LCALL DELAY5 ;延时5MSK1: JB S3,K2 ;P1.2=1时转移MOV C,S3JNC K1 ;P1
40、.2=0时转移MOV A,NUM1CJNE A,#1,M1 ;判断按键计数是否为1INC HOUR1 ;小时设置加1MOV A,HOUR1CJNE A,#24,M1MOV HOUR1,#0LCALL DISPLAY1 ;显示调整时间M1: LCALL DISPLAY1MOV A,NUM1CJNE A,#2,M2;判断按键计数是否为2INC MIN1CJNE A,#60,M2MOV MIN1,#0LCALL DISPLAY1;显示调整时间M2: LCALL DISPLAY1MOV A,NUM1CJNE A,#3,K2 ;判断按键计数是否为3INC SEC1MOV A,SEC1CJNE A,#60,K2