基于51单片机的数字钟毕业设计
基于MCS51单片机的数字钟设计...

毕业设计(论文)题目:基于MCS-51单片机的数字钟设计系别:电子与信息工程系专业:电子信息工程班级:电子0204班学生姓名:导师姓名:__起止时间: 3.21 至 6.10年6月5日[摘要]........................................................................................ I II [ABSTRACT] .. (IV)引言 (1)1绪论 (2)1.1集成电路 (2)1.2 主要技术的背景 (2)1.2.1发展历史 (2)1.2.2现状 (3)1.2.3 发展趋势 (3)2器件简介 (4)2.1LED显示器 (4)2.1.1 LED显示器的结构 (4)2.1.2 LED的接线形式 (5)2.2A T89C52简介 (5)2.2.1 A T89C52主要性能参数: (5)2.2.2 AT89C52单片机的功能特性概述: (6)2.3DS1302芯片 (9)2.3.1 DS1302的性能特性: (9)2.3.2 DS1302数据操作原理 (10)2.474LS164-八位移位寄存器 (14)2.4.1 74LS64简介 (14)2.4.2 74LS164逻辑介绍: (15)3硬件电路 (17)3.1线路的设计 (17)3.1.1 电源转换模块 (18)3.1.2 主控制模块 (18)3.1.3 显示模块 (19)3.1.4 键盘接口设计 (20)3.2电路图的绘制 (20)3.3电路板的焊接 (20)3.4打开电源前应注意的问题 (20)4软件设计部分 (21)4.1阳历程序的设计 (21)4.2时间调整程序设计 (21)4.3阴历程序设计 (23)5调试 (28)6小结 (29)7致谢 (30)8参考文献 (31)9附录 (32)[摘要]该课题研究用经济的手段使人们能方便地得知当前的年历时间,以及安全生产累计天数,提高生产人员的警惕性,达到减少事故的目的。
基于51单片机的小屏幕数字钟

.学生XX:学号:专业:电子信息工程论文题目:基于51单片机的小屏幕数字钟设计与制作指导教师:年 3 月 5 日毕业设计(论文)开题报告毕业设计(论文)开题报告毕业设计(论文)开题报告毕业设计(论文)开题报告毕业设计(论文)开题报告2.本课题要研究或解决的问题和拟采用的研究手段(途径)●研究方法及步骤1 了解和掌握汇编语言的编程规律和各种指令。
2 设计出以AT89S51单片机为核心的带秒显示的小屏幕数字钟。
3 设计出采用小功率三极管推动1英寸共阳数码管显示的电路。
4 具有时、分和秒的校调功能。
5 设计出编程的流程图。
6 根据流程图,用汇编语言设计出带秒显示的数字钟的程序。
7 用Prtoel 99SE 软件设计出以AT89S51单片机为核心的用1英寸共阳数码管显示的大屏幕带秒显示的数字钟原理图。
8 根据原理图用Protel 99SE 软件设计出PCB底板。
9 选取元器件,焊接线路板焊接完以后进行调试,组装。
●主要参考文献:1 肖来胜冯建兰夏术兰主编单片机实用教程华中科技大学2006年2月。
2 韩建国冯静编著单片机原理及应用中国计量2006年。
3 喻宗泉喻晗李建民编著单片机原理及应用技术XX电子科技大学2006年4月。
4 杨将新李华军X东骏编著单片机程序设计及应用基础电子工业2006年3月。
5 杨西明朱琪主编单片机编程与应用入门机械工业2004年月1月。
6 X文涛编著单片机语言C51典型应用设计人民邮电2005年4月。
7 X凤强兰丽编著单片机语言C51应用实战集绵电子工业2005年3月。
8 X洪润X秀英X亚凡等编著单片机应用设计200例上册、下册航空航天大学2005年6月。
9 孟贵华编著电子元器件选用、使用、检测一本通中国电力2006年月1月。
10 杜刚主编电路设计与与制板Protel 应用教程清华大学2006年3月。
毕业设计(论文)开题报告指导教师意见:1.对“文献综述”的评语:对设计课题综述详细,对所涉及到的专业知识掌握的比较好,设计步骤明确、清楚。
基于-51单片机可调数字钟的设计

师学院单片机技术课程实践——基于89C51单片机可调数字钟的仿真设计班级::学号:辅导老师:设计时间:1. 设计目的1.1设计目的(1)掌握51系列部定时/计数器的原理和基本应用;(2)掌握使用单片机处理复杂逻辑的方法;(3)掌握多位数码管动态显示的方法;(4)掌握独立式(和矩阵)键盘的编程方法;(5)掌握利用汇编语言编写单片机系统的应用软件的方法;(6) 巩固,加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(7) 培养针对课题需要,选择和查阅有关手册,图表及文献资料的自学能力,提高组成系统,编程,调试的动手能力;(8) 熟悉单片机用系统开发,研制的过程,软硬件设计方法,容及步骤.(9) 了解数字钟的组成及工作原理.1.2设计性能(1)用51单片机的定时/计数器TMR0产生一秒的定时时间,作为秒计数时间;(2)当一秒产生时,秒计数加1;(3)开机时,显示00.00.00,并开始连续计时;(4)计时满23.29.59时,返回00.00.00重新开始计时;(5)在以上设计基础上,在单片机的I/O口上分别接入四个按键:K0—控制“秒”的调整,每按一次加1秒;K1—控制“分”的调整,每按一次加1分;K2—控制“时”的调整,每按一次加1小时;K3—时间复位按键。
2.系统电路的方案2.1实现时钟计时的基本方法用AT89C51单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1开机时。
显示00-00-00的时间,开始计时;计时满23-59-59时,返回00-00-00重新计时AT89C51单片机的部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。
只要通过设置特殊功能寄存器TMOD,即可完成。
定时/计数器何时工作也是通过TCON特殊功能寄存器来设置的。
在此设计中,选择16位定时工作方式。
基于51单片机的数字时钟设计_毕业设计

基于51单片机的数字时钟设计目录摘要 (1)Abstract (2)第一章绪论 (3)1.1 数字时钟设计的背景 (3)第二章AT89C51单片机简介 (3)2.1 单片机介绍 (3)2.2 单片机的应用特点 (4)2.3 单片机的应用领域 (4)2.4 单片机的中断与定时系统 (4)2.4.1 MCS-51单片机中断系统 (4)2.4.2 MCS-51 单片机的定时器/计数器 (6)2.4.3 MCS-51定时器/计数器的四种工作方式 (6)2.5 AT89C51引脚功能介绍 (7)第三章设计方案 (8)3.1 主程序 (8)3.2 数码管显示模块 (9)3.3 定时器计数器T0中断服务程序 (9)3.4按键处理模块 (10)第四章硬件电路设计 (10)4.1 复位电路 (10)4.2 时钟电路 (11)4.3 按键电路 (12)4.4 数码管显示电路 (13)4.5 电源电路设计 (13)第五章软件设计与程序代码 (14)5.1 软件选择与介绍 (14)5.1.1 软件介绍 (14)5.1.2 Proteus7.8的特点 (15)5.2 软件仿真电路全图 (15)5.3 源程序代码 (16)第六章结论 (20)参考文献 (21)致谢 (22)摘要近几年,单片机在各个领域得到广泛的应用。
从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。
在它问世之前,自动控制设备得不到广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。
在第一台微处理器成功研制不久,第一个单片机就问世了。
因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。
本设计利用Atmel公司的AT89C52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用C语言进行软件编程,并用Proteus软件进行演示、验证。
主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机80C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。
基于51单片机的数字钟设计与制作

一.基于52单片机制作的数字钟1.设计任务⑴时间显示: 上电后,系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间.⑵时间调整:按下k1,k2,k3键可以顺序设置秒、分、时,并在相应数码管上显示设置值,直至6位设置完毕。
2.系统基本方案选择和论证本时钟的设计具体有两种方法。
一是通过单纯的数字电路来实现;二是使用单片机来控制实现。
本次设计选取了较为简单的单片机控制;而选择这一方法后还要进行各个芯片的选择。
以下是我在这次设计中所用的方案。
2.1 芯片的选择方案一:采用AT89C51芯片,其为高性能CMOS 8位单片机,该芯片内含有4k bytes的可反复擦写的只读程序存储器(PEROM)、128 bytes的随机存取数据存储器(RAM)、 32位可编程I/O口线、2个16位定时/计数器、6个中断源、可编程串行UART通道及低功耗空闲和掉电模式,但是由于AT89C51芯片可擦写的空间不够大,且中断源提供的较小,为防止运行过程中出现不必要的问题,我们不选用AT89C51。
方案二:采用AT89C52芯片,它除了具备AT89C51的所有功能与部件外,其最大的优势就是AT89C52提供了8K字节可擦写Flash闪速存储器空间、8个中断源、及256*8字节内部存储器(RAM),解决了我们对可反复擦写的Flash闪速存储器空间大小与中断源的不够问题的担心。
2.2显示模块选择方案和论证方案一:采用LCD,电路比较简单,且在软件设计上也相对简单,具有低功耗功能。
价格贵。
方案二:采用LED数码管显示,显示较为清楚。
价格便宜。
所以本方案采用LED数码管显示。
2.3 时钟信号的选择方案和论证直接采用单片机定时计数器提供的秒信号,使用程序实现年、月、日、周、时、分、秒计数。
采用此种方案可减少芯片的使用,节约成本,实现的时间误差较小。
2.4 电路设计最终方案决定综上各方案所述,对此次数字时钟的方案选定为: 采用AT89C52作为主控制系统; 并由其定时计数器提供时钟; LED作为显示电路来实现功能。
基于51单片机的可调数码日历钟的设计与制作毕业设计论文

专科毕业设计(论文)题目基于51单片机的可调数码日历钟的设计与制作摘要单片机以其体积小、编程灵活、控制功能强大、价格低廉等特点被广泛应用在各种电子电器产品中。
单片机技术的出现和发展带来了电子技术和控制领域的一场革命。
单片机课程作为职业院校电子信息类专业一门重要的基础课程,它既是一门很有实用价值、实践性很强且很有趣味性的课程,同时它又是一门集硬件电路设计与软件编程于一体的学科,既要求我们有较好的电工电子技术基础知识,又要求有一定的逻辑思维和软件开发(编程)能力。
通过近几年对单片机的学习,我已掌握单片机的基本知识,并具备了单片机应用系统的初步开发能力。
即将毕业之际,我运用我所掌握的单片机知识设计和制作了一个基于51单片机的可调数码日历钟,这既是对我所学知识的总结与高度概括,同时也将自己所掌握的知识与实际应用结合起来,进一步提高工程实践能力。
数码日历钟是实际生活中应用较多的一个电子计时装置,可供人们查询日期、星期及掌握时间。
本文首先从数码日历钟的功能要求入手,对设计任务进行了分析,并将任务分解为若干个模块,提出在设计与制作过程中要用到的相关知识点,给出了本设计的硬件电路及软件流程,还给出了部分模块的源程序代码。
本设计经过多次调试运行无误,最终提交出一个完整的应用系统产品。
本次毕业设计的数码日历钟能在12864液晶屏上显示出年月日时分秒以及星期几,还能显示当前环境温度,并能通过按键调整日期和时间,在调整日期的同时通过相应算法自动实现星期几的调整,而且无论是否闰年、任何月份,当日期调整时都保证不会出现非法日期。
数码日历钟是一个非常实用的设计与制作,成本低廉,如能进一步完善,具有一定的推广使用价值。
本设计任务比较复杂,要考虑的问题很多,C语言的模块化程序设计思想较好地解决了这个问题,故本设计任务采用C语言编程。
关键词:51单片机,C语言,数码日历钟,毕业设计,制作I河南理工大学毕业设计论文目录摘要 (Ⅰ)1概述 (1)1.1 毕业设计的选题背景及制作意义 (1)1.1.1毕业设计的选题背景 (1)1.1.2毕业设计的制作意义 (1)1.2 数码日历钟的功能要求 (1)1.3 本设计制作的主要内容 (2)2数码日历钟的设计与制作任务分析 (3)2.1数码日历钟的设计与制作任务分析与分解 (3)2.2设计方案的论证及选择 (3)3 相关知识链接 (6)3.1 51单片机简介 (6)3.1.1 51单片机简介 (6)3.1.2 51单片机引脚功能介绍 (8)3.2由已知日期推算星期几 (11)3.2.1如何判断一个年份是否闰年 (11)3.2.2由已知日期如何推算星期几 (11)3.3 12864图形液晶的使用 (13)3.3.1 液晶概述 (13)3.3.2 LCM引脚功能介绍 (14)3.3.3 LCD12864图形液晶显示模块指令集 (15)3.3.4 LCD12864图形液晶显示模块与单片机的接口 (17)3.3.5 LCD12864图形液晶显示模块的基础函数 (17)3.4 51单片机中的中断与定时 (19)3.4.1 51单片机中的中断 (19)3.4.2 51单片机中的定时/计数器 (22)3.5数字温度传感器DS18B20的使用 (28)3.5.1 DS18B20概述 (28)3.5.2 DS18B20的内部结构 (29)3.5.3 DS18B20与单片机的接口电路 (32)3.5.4 DS18B20的操作命令 (32)-1-3.5.5 DS18B20的时序 (33)3.6 矩阵式按键的检测 (36)4系统设计与调试 (44)4.1 硬件系统设计与调试 (44)4.1.1硬件系统设计原理图 (44)4.1.2硬件系统元器件清单 (44)4.1.3硬件系统组装与调试 (45)4.2 软件系统设计与调试 (45)4.2.1软件系统设计 (45)4.2.2软件系统调试与仿真 (47)5结束语 (49)参考文献 (50)致谢 (51)-2-河南理工大学毕业设计论文 1 概述1、概述1.1 毕业设计的选题背景及制作意义1.1.1毕业设计的选题背景单片机以其体积小、编程灵活、控制功能强大、价格低廉等特点被广泛地应用在各种电子电器产品中。
(完整版)基于51单片机的电子时钟设计与实现毕业设计

摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。
电子时钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
电子时钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz 的晶振产生振荡脉冲,定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
电子时钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
关键词:单片机;AT89S51ABSTRACTSince the 1970 s chip since the advent, with its high cost performance and attention by people and attention, it is widely used and fast development. SCM small volume, light weight, strong anti-jamming capability, environmental demand is not high, low cost, high reliability, flexibility is good, development more easy. Because of the above features, in our country, the microcontroller is widely used in industrial automation control, automatic detection, intelligent instrument and apparatus, household appliances, power electronics, mechanical and electrical equipment, and other aspects, and 51 SCM is the most typical chip and most representative one. The graduation design through to its study, application to AT89S51 chips as the core, with the necessary circuit, design of a simple electronic clock, it by 4.5 V dc power supply, through the electronic tube can show time, adjust the time, thus to learning, the design, the development of software and hardware in the ability.Electronic Clock is a electronic circuit implementation of the "when", "sub", "seconds" The figures show the timing device. Electronic clock precision, stability, far more than the old mechanical clock. In this design, we use LED electronic display hours, minutes, seconds, to 24-hour time mode, according to electronic control theory to dynamic display to display, use the 12MHz crystal oscillation pulse, the timer count. In this design, the circuit has a display time of the this function, you can also realize the time adjustment. Electronic clock is its compact, low cost, travel time and high precision, easy to use, features and more, easy integration and loved by the general consumer, so widely used.Key words:Single-chip microcomputer ; AT89S51独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。
基于51单片机数字时钟 毕业设计(论文)

本科毕业设计(论文)题目:基于51单片机的数字时钟系统软件设计基于51单片机的数字时钟系统软件设计摘要本文介绍了一款多功能数字时钟系统的软件设计。
该系统能够显示当前日期、时间,并且具有日期、时间设置以及闹钟等功能。
该系统采用51系列STC 公司生产的STC89C51单片机,以及DALLAS公司生产的数字时钟芯片DS1302,利用液晶显示器LCD1602显示数字时钟的结果。
本系统的软件设计使用C语言进行编程,利用目前流行的Keil软件编程环境对源程序进行编译。
系统的软件程序主要包括主程序、DS1302初始化程序、读DS1302程序、写DS1302程序、LCD1602显示程序、日期时间调整、定时报警等子程序的设计。
该系统具有友好的用户界面、操作简单、性能稳定。
该数字时钟系统能够长期、连续、可靠、稳定地工作,同时系统还具有体积小、功耗低等特点,便于携带、使用方便。
关键词:DS1302数字时钟芯片;STC89C51单片机;LCD1602液晶显示器;软件设计Software Design of Digital Clock System Based on 51 MCUAbstractThis article describes the multi-functional digital clock system software design. The system can display the current date, time, and has the date and time settings and the alarm clock functions.What is introduced in this article is about the software design of a digital clock system which is multifunctional. This system can display the present time and date, it also has function such as setting time and date or being used as an alarm clock. The system uses a STC89C51 microcontroller of the 51 series produced by the STC corporation and a DS1302 digital clock chip produced by the DALLAS corporation. It shows people how the digital clock goes with a liquid crystal display LCD1602.The software design of this system is programmed with the C programming language and the program is compiled with the Keil software programming environment which is quite popular now. The software programs of the system mainly include the designs of some subroutines such as the DS1302 initialization program、the DS1302 program of reading、the DS1302 program of writing、the LCD1602 display program、adjustment of the date and time, timing alarm and so on.The system is provided with a friendly user interface、simple operation and stable function. The digital clock system can work long、continuously、reliably and stable while it also has characteristics like small volume and low power consumption which allow people to use conveniently and take it with themselves easily.Key words:DS1302 digital clock chip;STC89C51 Microcontroller; LCD1602 liquid crystal displayer; software design.目录1 绪论 (1)1.1 课题研究的背景 (1)1.2 课题研究的意义 (2)1.3 数字时钟的应用及发展前景 (2)1.4 课题的研究内容及技术要求 (3)2 设计要求与方案论证 (4)2.1 设计基本要求 (4)2.2 编程语言方案论证 (4)2.2.1 汇编语言 (4)2.2.2 C语言 (5)2.3 显示方式方案论证 (5)2.3.1 利用LED数码管显示结果 (5)2.3.2 利用LCD液晶显示结果 (6)2.4 系统仿真方式方案论证 (6)2.4.1 利用Protues软件仿真实现 (6)2.4.2 手工焊接电路板 (7)3 系统主要器件的工作原理 (8)3.1 单片机STC89C51的工作原理 (8)3.1.1 单片机主要性能参数及引脚功能 (8)3.1.2 单片机存储器结构及复位电路与时钟电路 (11)3.2 时钟芯片DS1302的原理及应用 (12)3.2.1 时钟芯片DS1302的结构原理及控制字节 (12)3.2.2 DS1302数据输入输出(I/O)与寄存器 (14)3.3 LCD1602的结构及工作原理 (15)4 系统软件设计 (17)4.1 系统硬件组成及结构框图 (17)4.2 系统软件设计概述 (17)4.3 系统主程序设计 (18)4.4 时钟芯片DS1302子程序设计 (19)4.4.1 DS1302初始化程序设计 (19)4.4.2 CPU读DS1302程序设计 (19)4.4.3 CPU写DS1302程序设计 (21)4.5 时间调整子程序设计 (22)4.6 定时报警子程序设计 (24)5 系统调试 (25)5.1 系统硬件调试 (25)5.2 软件调试 (26)5.2.1 软件编程环境keil介绍 (26)5.2.2 软件调试 (29)5.2.3 利用下载编程软件STC-ISP下载程序 (29)5.3 系统调试结果 (32)6 结论 (33)参考文献 (35)致谢............................................................................................................错误!未定义书签。
基于51单片机设计的多功能数字时钟毕业设计

基于51单片机多功能数字时钟1系统设计1.1设计要求设计制作一个24小时制多功能数字钟。
1.1.1主要性能指标1、数字显示年、月、周、日、时、分、秒。
1.1.2创意部分要求准确的进行年、月、周、日、时、分、秒的转换,切换两种显示模式。
1.2总体设计方案1.2.1概述及设计思路该设计方案是以MC51单片机为核心,采用LCD液晶屏幕显示系统,温度采集模块、日期提醒、键盘时间调整预设置等模块,所构建的数字时钟系统,能动态显示实时时钟的时、分、秒,数据显示(误差限制在30每天)。
1.2.2方案论证(1)时钟模块【方案一】采用单片机内置定时/计数器。
它的处理过程主要是先设定单片机内部定时/计数器的工作方式,对机器周期计数确定基准时间,然后用另外一个定时器软件计数的方法对基准时间形成秒,秒计60次形成分,分计60次形成小时。
依此类推,获取日期也是采用相同的方法。
该方案在具体实现过程中,计时存在较大的误差。
如果晶振受到其他外界信号干扰,或者基准时间计算不准确,都会导致时间显示错误。
【方案二】采用555多谐振荡器。
由555定时器组成一个多谐振荡器,产生周期为100HZ的脉冲,然后经过两个74LS160组成的分频器得到1HZ的秒脉冲。
多谐振荡器的稳定度及频率的准确度决定了数字钟计时的准确程度,通常选用成品晶振构成振荡器电路。
计时精度取决于振荡器的频率,振荡器频率越高计时精度越高。
【方案三】采用DS1302时钟芯片。
DS1302是一种高性能、超低功耗的实时时钟芯片,附加31字节静态RAM,可以通过串行接口与单片机进行通信。
实时时钟提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。
芯片内部集成备用电源,当外围电路电路有电源供应的时候,备用电源充电储能。
当外围电路掉电时,DS1302芯片工作在休眠状态,以备用电源供电。
当外围电路再次供电,即可唤醒休眠进入正常工作状态,显示时间无任何异常。
基于51单片机的数字钟设计

基于51单片机的数字钟设计一、实验要求设计一个数字钟,采用六个数码管,高两位显示小时,中间两位显示分钟,低两位显示秒,时间显示采用24小时制。
并且设计的数字钟应当满足以下要求:(1)能够实现数字钟的基本功能;(2)能通过开关控制数字钟的启动、停止、复位和调整时间。
二、实验内容(一)时钟计时设置使用80c51的定时/计数器来实现时钟计时。
(1)计算计数初值,时钟计时的关键问题是秒的产生,使用80c51的定时/计数器来进行定时,即按照工作方式1,其最大定时能达到131ms。
因此,要把秒计时用硬件定时和软件计数相结合的方法实现。
吧定时设为125ms,这样计数溢出8 次就可以的到1秒,而8次计数可用软件方法实现。
(2)采用中断方式,即通过中断服务程序进行计数器溢出次数的累计,计满8次记得到秒计时。
(3)通过程序中的数值累加和数值比较来实现从秒到分和从分到时的计时。
(4)设置停止、复位、调时功能模块。
(5)设置时钟显示缓冲区。
在内部RAM中设置6 个单元的显示缓冲区,从左到右依次存放时、分秒的数值。
显示单元与LED显示位的对应。
(二)流程框图1、时钟计数主程序2、中断服务程序3、加1程序图1 时钟计数主程序流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元个位就加1,秒单元个位到9时,秒单元十位加1。
秒单元十位到5,个位到9时,分单元个位加1,秒单元清零。
分单元个位到9时,分单元十位加1。
分单元十位到5,个位到9时,时单元个位加1,分单元清零。
时单元十位到2,个位到4时,时单元、分单元、秒单元都清零。
图2 中断服务程序流程图图3 加1程序流程图三、实验分析与体会(一)实验分析我们通过软硬结合的方法调试系统。
在电脑上使用星研编译器,进行程序的编程和编译,发现很多语法和逻辑的错误。
通过这个编译器可以很好的发现并解决问题,程序调试完毕,编译没问题后,进行测试,并分析程序,直到完成要求为止。
本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率,定时器溢出误差、延迟误差。
基于51单片机的数字时钟的设计毕业论文

基于51单片机的数字时钟的设计毕业论文基于51单片机的数字时钟的设计毕业论文目录摘要: (1)ABSTRACT (1)1 绪论 (1)2 硬件总体设计方案 (2)2.1系统功能实现总体设计思路 (2)2.2各部分功能实现 (2)2.3系统工作原理 (2)2.4电路功能使用说明 (3)2.5系统的设计方案 (4)2.5.1 系统的电路图和原理图 (4)2.5.2 单片机概述 (6)2.5.3 键盘电路 (9)2.5.4 显示电路 (10)2.6硬件焊接准备 (12)2.6.1电路板的布线 (12)2.6.2 硬件电路元件明细表 (13)3 软件总体设计方案 (14)3.1程序流程图 (14)3.1.1主程序流程图 (14)3.1.2 按键处理流程图 (14)3.1.3 定时器中断流程图 (14)3.1.4 时间显示流程图 (15)3.2调试结果说明 (16)4总结 (18)致谢 (19)参考文献 (1)附录 (21)基于51单片机的数字时钟的设计电子信息科学与技术专业彬指导教师车晓岩摘要: 自诞生以来,单片机的应用日趋广泛,应用领域日趋扩展,而MCS-51系列单片机是各单片机中最为典型的一种。
这次毕业设计,以AT89C51芯片为核心,通过必要的电路,构成简单的电子时钟。
数字时钟系统的主要任务是:采用单片机为核心器件产生24h(24小时)时间,并用LED显示器将他显示出来。
另外本设计具有闹铃的功能,通过拉蜂鸣器来做提醒。
这样简单的设计,直观反映单片机的应用。
软件和硬件的开发是这次设计必不可少的。
关键词:AT89C51;数字时钟;LED数码显示管;C语言Design of Digital Clock System Based on MSC-51SinglechipElectronic Information Science and Technology SunBinTutor CheXiaoYanAbstract: The applications of single-chip have been spread widely,and the areas of its application have been expanding increasingly since its inception. and MCS-51 series single-chip microcontroller is the most typical one. In the graduation-design , AT89C51 chip is the core of the necessary circuitry to form a simple electronic clock. Here are the main tasks of the digital clock system : as the core device ,Single-chip creates 24h (24 hour) time which will he displayed by the LED .In addition ,this design has the function of alarm by making the buzzer to do as a reminder. This simple design can reflect the intuitive applications of the microcontroller. Software and hardware development is essential to this design .Keywords: SCM; The LED display; A digital clock; Assemblylanguage1 绪论数字时钟作为人们日常生活中的必需品,给人们的学习、工作、生活带来极大的便利。
基于51单片机的多功能数字时钟设计毕业论文设计

目录摘要 (1)ABSTRACT (2)1.概述 (3)1.1本课题研究目的及意义 (3)1.2国内外研究背景 (3)1.3本课题的研究方法及预期到达的目的 (4)2总体控制方案设计 (5)2.1数字时钟的工作原理 (5)2.2单片机的选型 (5)2.3 AT89C51单片机介绍 (7)2.4总体方案设计 (8)3 硬件设计 (9)3.1键盘模块 (9)3.2显示模块 (9)3.3复位电路 (12)3.4蜂鸣器驱动电路 (13)4 软件设计 (15)4.1总体软件设计 (15)4.2中断效劳函数 (15)4.3计时子函数 (16)4.4闹钟子函数流程图 (17)4.5键盘扫描子函数 (18)4.6 时间和闹钟的设置 (19)4.7 软件设计总结 (20)5 总结 (22)6 参考文献 (23)7致谢 (23)附录...................................................................................... 错误!未定义书签。
摘要近年来,电子技术获得了飞速的开展,在其推动下,现代电子产品几乎浸透了社会的各个领域,有力地推动了社会消费力的开展和社会信息化程度的进步,同时也使现代电子产品性能进一步进步。
数字时钟是采用数字电路实现对“时〞、“分〞、“秒〞数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用8位8段LED数码管显示,根据数码管动态显示原理来进展显示,用12MHz的晶振产生振荡脉冲,定时器计数,并采用外置喇叭作为响铃。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字时钟因外形小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广阔消费的喜欢,因此得到了广泛的使用。
关键字:单片机数字时钟ABSTRACTIn recent years, electronic technology has gained rapid development, modern electronic products has been used in almost all spheres of society, It’s a strong impetus to the development of social productivity and improvement in the level of social information. The performance of modern electronic products also has been further improved.The digital clock timing is a digital circuit which displays "hour", "minute", "second". The accuracy, stability of digital clock is far more than the old-fashioned mechanical clock. In this design, we use 8-segment LED digital display, and displayed according to digital dynamic display principle with a 12MHz crystal oscillator pulse and the timer count, and an external speaker is used as the ring. In this design, the circuit has the function to display time and the time can be adjusted. Because digital clock has the advantage of low prices, high precision, easy to use, multi-function, easy integration, it is loved by the majority of consumption, so it has been widely used.Keywords: single-chip machine digital clock1.概述20世纪末,电子技术获得了飞速的开展,在其推动下,现代电子产品几乎浸透了社会的各个领域,有力地推动了社会消费力的开展和社会信息化程度的进步,同时也使现代电子产品性能进一步进步,产品更新换代的节奏也越来越快。
毕设-基于C51单片机的电子时钟的设计

3.3 时钟电路
• DS12C887时钟芯片能
自动产生世纪、年、月
、日、星期、时、分、 秒等时间信息,具有闰
年补偿。
• DS12C887中自带锂电 池,外部掉电时,其内 部信息还能保持十年之 久。
3.4 液晶1602显示电路
• 本次设计将LCD1602芯片的 AD0~AD07与单片机的P0 口相连,由于P0口没有上拉 电阻固外接上拉电阻。
• 本设计的硬件电路主要是采用了专用的时钟芯片
DS12C887,其内部自带锂电池,一旦设置好时间,即使 系统的主电源掉电,该时钟芯片仍然可以靠它内部集成的 锂电池走数年,当系统重新上电时,又可为锂电池重新充 电,这样一来可以非常有效地保持时间的连续性,使用非 常方便。同时本设计的显示电路采用了LCD1602液晶显示 ,与传统的数码管显示电路相比,电路连接简单了很多。 同时本系统主要通过80C51单片机来进行控制,具有可调 性,通过按键来调节时间,并带有闹钟功能,闹铃时发出 铃声。
主程序流程图
开始
初始化
是否闹钟 N
Y
响铃
Y
是否有按键按下
N
时间显示
按键检测设计流程图
开始
时间显示
本次设
计就是以延
时函数为主 来消除抖动。
按键是否按下
N
Y
检测哪个按键按下
复 位 键
闹 钟 键
调 大 键
调 小 键
功能 选择 键
5 仿真与调试
• 图
6 总结
• 单片机是一种集成电路芯片,是采用超大规模集成电路技术 把具有数据处理能力的中央处理器CPU随机存储器RAM、只 读存储器ROM、多种I/O口和中断系统、定时器/计时器等功
基于51单片机的数字钟毕业论文

基于51单片机的数字钟毕业论文化工配料与控制论文论文题目:基于51单片机的数字钟设计专业:自动化姓名:冉茂林班级:1001学号:2010401931.论文主要概述本文介绍的设计是针对多功能定时器。
该定时器操作简单,功能齐全,是单片机智能化的一种应用。
电路可以执行两个时间表,即正常作息时间表和考试时间表。
本文主要采用了51系列的单片机实现的。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。
根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。
它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。
这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可我阅读后,主要是三个方面,片外硬件电路的设计,即按键电路的设计,控制打铃电路,时间显示,电源的设计,最后就是软件的设计。
2.论文优点按键电路:(1)按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。
(2) P1.0口表示功能移位键,按键选择要调整的时十位、时个位、分十位或分个位。
(3) P1.1口表示数字“+“键,按一下则对应的数字加1。
(4) P1.2口表示数字“-”键,按一下则对应的数字减1。
(5) P1.3口表示时间表的切换,程序默认为日常时间表,当按下该开关,使输入为低电平时,表示当前执行的是考试时间表,并有绿发光二极管显示。
基于51单片机的数字钟设计-毕业设计论文(可编辑)

武汉大学电子信息学院电子系统综合设计课程论文基于51单片机的数字钟设计目录1 作品的背景与意义 12 功能指标设计 13 作品方案设计 13.1总体方案的选择 13.1.1方案一:基于单片机的数字钟设计 23.1.1方案二:基于数电实验的数字钟设计 33.1.2两种方案的比较................................................................... . (3)3.2控制方案比较 33.3显示方案比较 33.4单片机理论知识介绍 43.4.1单片机型号................................................................... . (5)3.4.2硬件电路平台................................................................... (6)3.4.3内部时钟电路................................................................... .. (7)3.4.4复位电路................................................................... .. (7)3.4.5按键部分................................................................... . (8)4 硬件设计94.1显示模块电路图95 软件设计115.1主程序流程图115.2中断服务以及显示 126 系统测试136.1测试环境136.2测试步骤136.2.1硬件测试6.2.2软件测试1.连接单片机和计算机串接................................................................... ................13 6.2.3实施过程................................................................... ..................................................................... . (14)6.3测试结果187 实验总结 (18)7.1代码编写过程中出现问题................................................................... . (18)7.2整个实验过程的体会................................................................... (19)7.3实验误差分析。
基于51单片机的数字时钟设计的毕业设计解读

摘要 (2)Abstract .......................................................................................................................... 错误!未定义书签。
第一章绪论 .. (2)1.1多功能数字钟设计的背景 (2)第二章AT89C51单片机简介 (2)2.1 单片机介绍 (2)2.2 单片机的应用特点 (3)2.3 单片机的应用领域 (3)2.4 单片机的中断与定时系统.............................................................................. 错误!未定义书签。
2.4.1 MCS-51单片机中断系统................................................................... 错误!未定义书签。
2.4.2 MCS-51 单片机的定时器/计数器.................................................... 错误!未定义书签。
2.4.3 MCS-51定时器/计数器的四种工作方式........................................... 错误!未定义书签。
2.5 AT89C51引脚功能介绍 (3)第三章设计方案 (4)3.1 主程序 (4)3.2 数码管显示模块 (5)3.3 定时器计数器T0中断服务程序.................................................................... 错误!未定义书签。
3.4按键处理模块 (5)第四章硬件电路设计 (5)4.1 复位电路 (5)4.2 时钟电路 (6)4.3 按键电路 (6)4.4 数码管显示电路 (7)4.5 电源电路设计.................................................................................................. 错误!未定义书签。
基于51单片机的电子钟设计-毕业论文

摘要摘要多功能数字钟的应用非常普遍,由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行校时,定时等功能。
本系统利用单片机实现其具有计时,校时等功能的数字时钟,是以单片机STC89C52 为核心元件同时采用数码管同时显示“时,分,秒,星期,年,月,日”的现代计时装置。
显示极具人性化,另外具有校时功能,闹钟功能和节电保护功能。
利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点,如在电路板上预留有电源输出,温度传感插座等插座,便于功能扩展。
关键词:STC89C52 单片机 DS12887ABSTRACTABSTRACTMulti-functional digital clock was very common by the MCU as the core controller of the digital clock, the clock signal timing function, time data is output by the microcontroller, the display. Through the keyboard can be school, timing and other functions. This system uses the MCU with the timing, school functions such as digital clock is The microcontroller STC89C52 as the core component at the same time Led also shows "hours, minutes, seconds, week, year, month, day" timing device. Show a very humane, the other school functions, alarm clock function and the power saver function. MCU digital clock with programming flexibility, easy expansion of the function, etc., power output, temperature sensor socket outlet onthe circuit board is reserved for easy extensionsKeyword: STC89C52 MCU DS12887目录i目录第一章绪论 (1)1.1单片机(S INGLE C HIP M ICROSOFTCOMPUTER,)简介 (1)1.2单片机的发展历程 (1)1.2.151单片机的概况 (4)1.2.2单片机的应用及前景 (5)1.3电子钟 (5)1.3.1电子钟简介 (5)1.3.2电子钟的应用及发展 (6)第二章各个模块的特性及结构 (7)2.18051单片机模块 (7)2.2LED显示模块 (8)2.2.1LED数码管的原理 (8)2.2.2LED数码管驱动方式 (10)2.3电子钟的实现框图 (11)第三章硬件电路设计 (13)3.1复位电路 (13)3.2按键电路 (14)3.3时钟电路 (14)3.4显示控制电路 (15)3.5数码管显示电路 (15)3.6电源电路设计 (16)3.7时钟芯片模块 (16)3.8综合电路的实现 (16)3.9本章小结 (17)第四章系统软件的设计 (19)4.1调时功能 (19)4.2显示功能 (20)ii 目录4.3程序设计 (20)第五章电路仿真 (35)5.1P ROTEUS软件简介 (35)5.1.1Proteus的功能模块 (35)5.1.2Proteus的贡献 (37)5.2电路仿真设计 (38)第六章工作的总结与未来工作的展望 (41)6.1工作总结 (41)6.2未来展望 (41)致谢 (43)参考文献 (45)第一章绪论 1第一章绪论1.1单片机(Single Chip Microsoftcomputer,简称MCU)简介单片机又称为微控制器,在一块半导体芯片上集中了中央处理器(简称CPU),只读存储器(简称ROM),随机存储器(简称RAM),输出输出接口(简称I/O Interface),计时器(Timer/Counter),中断系统(Interrupt System)构成一台完整的数字计算机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大学电子信息学院电子系统综合设计课程论文基于51单片机的数字钟设计2010 年 6 月 20日目录1 作品的背景与意义 (1)2 功能指标设计 (1)3 作品方案设计 (2)4 软件设计 (3)附录1 系统电路图 (6)附录2 系统软件代码 (7)1 作品的背景与意义时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
现在我们利用单片机实现数字时钟计时功能的主要容,其中AT89C51是核心元件同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。
与传统机械表相比,它具有走时精确,显示直观等特点。
它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点,除此外还实现了万年历和闹钟等的功能。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。
单片计算机即单片微型计算机。
(Single-Chip Microcomputer ),是集CPU、RAM、ROM、定时、计数和多种接口于一体的微控制器。
他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。
而51单片机是各单片机中最为典型和最有代表性的一种。
所以综上所述,此次实验中所完成的数字钟有着强大的功能和良好的市场前景,复合电子类产品的发展趋势。
2 功能指标设计2.1 基本功能1.设计一个精确的1秒定时器;2.根据1秒定时器,设计一个带小时、分钟、秒的时钟,并将小时、分钟、秒显示在LED上;3.设计小时、分钟、秒的修改按键,可分别调整小时、分钟、秒(按键设计参考电子表);2.2 拓展功能1.增加小时、分钟、秒的键盘直接修改功能;2.设计闹钟功能,最多支持5个闹钟,可分别查看和修改闹钟时间,可分别设置闹钟开关。
3.增加万年历功能。
3 作品方案设计3.1设计要求基本设计1.设计一个精确的一秒定时器2.运用一秒的定时器设计出有时、分、秒的数字钟,并显示在LED数码管上3.设置按键,能够修改数字钟时间扩展设计:1. 设计闹钟功能,能够查看和修改闹钟时间及开关状态2. 设计万年历功能,实现日→月→年的正常进位,能够查看和修改年月日,能够自动区分大小月和平闰年3.2模块划分●初始化程序设定初值,中断初始化●主程序程序主要执行部分,对子程序(显示、按键设置,闹钟、万年历功能)进行调用●定时器中断服务中断走时:秒→分→时●显示程序刷新8位数码管来显示时间、日期及扩展功能设置界面●按键设置通过对按键的操作实现时间及扩展功能的设置。
●闹钟功能修改闹铃时间,闹铃开关的置换,修改位闪烁加以区分●万年历功能修改日期,同样的修改位闪烁加以区分3.3模块设计概述1.按键设置通过调整选择键SET_KEY选择调整位,选中位开始闪烁,此时再按增加键ADD_KEY 或减少键DEC_KEY调整选中位,如果长按ADD_KEY或DEC_KEY,系统识别后则进行调时快进,此时停止闪烁,方便人眼观察。
同时还增加了调秒功能:如果选中位是秒,则按增加键或减少键都是将秒清零。
3. 时间设置进入时间设置界面后,通过调整选择键SET_KEY选择调整位,选中位闪烁。
按增加键ADD_KEY或减少键DEC_KEY设置所需要的时间。
4. 闹钟设置进入闹钟设置界面后,通过调整选择键SET_KEY选择调整位,选中位闪烁。
按增加键ADD_KEY或减少键DEC_KEY设置所需要的时间。
与时间设置不同的是,闹钟设置里增加了开关设置。
5. 万年历设置进入万年历设置界面后,通过调整选择键SET_KEY选择调整位,选中位闪烁。
按增加键ADD_KEY或减少键DEC_KEY设置所需要的时间。
万年历设置里增加了大小月和平闰年的判别。
4 软件设计4.1 主程序流程图4.2闹钟程序流程4.3万年历程序流程4.4中断系统结构图附录一附录二/*********************************************************************** ******///初始化MOV SP,#60H;栈指针地址赋值MOV 3CH,#0CH;设置界面修改位的闪烁频率具体代码在SERVE 1秒中断服务中MOV 37H,#0FFH ;临时地址预留给39HMOV 39H,#0FFH ;段位标志 8位数据对应8个数码管为0的那位数码管始终暗MOV 3AH,#11111101B;界面转换标志******01为时间界面取反后 ******10为万年历界面 ******00为设置闹钟界面CLR A ;时间万年历初始化时间00:00:00 万年历2000。
01。
01MOV 23H,A;时MOV 22H,A ;分MOV 21H,A ;秒MOV 33H,#01H;日MOV 34H,#01H ;月MOV 35H,A;年只能显示2000-2099的时间MOV 3DH,A ;数码管闪烁开关初始化为关闭状态取反后 11111111 打开MOV 40H,A ;闹钟设置界面预留地址地址MOV 41H,AMOV 42H,AMOV 43H,AMOV 44H,AMOV 45H,AMOV 46H,AMOV 47H,AMOV 50H,A ;闹钟1 时MOV 51H,A ;闹钟1 分MOV 52H,A ;闹钟1 秒MOV 0AH,A ;闹钟1 开关 00000000为关闭状态取反后打开闹钟1MOV 53H,A ;同上MOV 54H,AMOV 55H,AMOV 0BH,AMOV 56H,AMOV 57H,A ;同上MOV 58H,AMOV 0CH,AMOV 59H,A ;同上MOV 5AH,AMOV 5BH,AMOV 0DH,AMOV 5CH,A ;同上MOV 5DH,AMOV 5EH,AMOV 0EH,A**************************************************************/ ORG 0000H ;程序入口地址LJMP STARTORG 000BH ;定时器0中断入口地址LJMP TIMER_0ORG 0300H/*****程序开始,初始化*****/START:SETB 48H ;使用一个bit位用于调时闪烁标志SETB 47H ;使用一个bit位用于产生脉冲用于调时快进时基MOV R1,#0 ;调整选择键功能标志:0正常走时、1调时、2调分、3调秒MOV 20H,#00H ;用于控制秒基准时钟源的产生MOV 21H,#00H ;清零秒寄存器MOV 22H,#00H ;清零分寄存器MOV 23H,#00H ;清零时寄存器MOV 24H,#00H ;用于控制调时闪烁的基准时钟的产生MOV IP,#02H ;IP,IE初始化MOV IE,#82HMOV TMOD,#01H ;设定定时器0工作方式1MOV TH0,#3CHMOV TL0,#0B0H ;赋定时初值,定时50msSETB TR0 ;启动定时器0MOV SP,#40H ;重设堆栈指针/*****主程序*****/MAIN:LCALL DISPLAY ;调用显示子程序LCALL KEY_SCAN ;调用按键检测子程序JZ MAIN ;无键按下则返回重新循环LCALL SET_KEY ;调用选择键处理子程序46H,MAIN ;如果已进行长按调整(调时快进),则不再执行下面的单步调整LCALL ADD_KEY ;调用增加键处理子程序,加一LCALL DEC_KEY ;调用减少键处理子程序,减一LJMP MAIN ;重新循环/*****定时器中断服务程序*****/TIMER_0:PUSH ACCPUSH PSW ;保护现场MOV TH0,#3CHMOV TL0,#0B0H ;重新赋定时初值CPL 47H ;产生脉冲用于调时快进时基INC 24HMOV A,24HCJNE A,#10,ADD_TIME ;产生0.5秒基准时钟,用于调时闪烁CPL 48H ;取反调时闪烁标志位MOV 24H,#00HADD_TIME: ;走时INC 20HMOV A,20HCJNE A,#20,RETI1 ;产生1秒基准时钟MOV 20H,#00H ;一秒钟时间到,清零20HMOV A,21HADD A,#01HDA A ;作十进制调整MOV 21H,ACJNE A,#60H,RETI1MOV 21H,#00H ;一分钟到MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#60H,RETI1MOV 22H,#00H ;一小时到MOV A,23HADD A,#01HDA AMOV 23H,ACJNE A,#24H,RETI1MOV 23H,#00H ;到24点,清零小时RETI1:POP PSWPOP ACC ;恢复现场RETI ;中断返回/*****显示处理*****/DISPLAY:MOV A,21H ;秒ANL A,#0FHMOV 2FH,A ;转换出秒个位,存入2FHMOV A,21HANL A,#0F0HSWAP AMOV 2EH,A ;转换出秒十位,存入2EH46H,MIN ;如果长按按键(调时快进),则跳过闪烁处理程序CJNE R1,#3,MIN ;如果R1为3,闪烁秒位待调整48H,MINMOV 2FH,#0AH ;使该位为10,查表得到使该位不显示的输出MOV 2EH,#0AHMIN:MOV A,22H ;分ANL A,#0FHMOV 2DH,A ;转换出分个位,存入2DHMOV A,22HANL A,#0F0HSWAP AMOV 2CH,A ;转换出分十位,存入2CH46H,HOUR ;如果长按按键(调时快进),则跳过闪烁处理程序CJNE R1,#2,HOUR ;如果R1为2,闪烁分位待调整48H,HOURMOV 2DH,#0AH ;使该位为10,查表得到使该位不显示的输出MOV 2CH,#0AHHOUR:MOV A,23H ;时ANL A,#0FHMOV 2BH,A ;转换出时个位,存入2BHMOV A,23HANL A,#0F0HSWAP AMOV 2AH,A ;转换出时十位,存入2AH46H,DISP ;如果长按按键(调时快进),则跳过闪烁处理程序CJNE R1,#1,DISP ;如果R1为1,闪烁时位待调整48H,DISPMOV 2BH,#0AH ;使该位为10,查表得到使该位不显示的输出MOV 2AH,#0AH/*****数码管动态扫描显示*****/DISP:MOV DPTR,#TABLEMOV A,2FHMOVC A,A+DPTRMOV P0,ACLR P2.7LCALL DELAYSETB P2.7 ;显示秒个位MOV A,2EHMOVC A,A+DPTRMOV P0,ACLR P2.6LCALL DELAYSETB P2.6 ;显示秒十位MOV A,#0BFHMOV P0,ACLR P2.5LCALL DELAYSETB P2.5 ;显示“-”MOV A,2DHMOVC A,A+DPTRMOV P0,ACLR P2.4LCALL DELAYSETB P2.4 ;显示分个位MOV A,2CHMOVC A,A+DPTRMOV P0,ACLR P2.3LCALL DELAYSETB P2.3 ;显示分十位MOV A,#0BFHMOV P0,ACLR P2.2LCALL DELAYSETB P2.2 ;显示“-”MOV A,2BHMOVC A,A+DPTRMOV P0,ACLR P2.1LCALL DELAYSETB P2.1 ;显示时个位MOV DPTR,#TABLE1 ;该位使用TABLE1以消除前置0 MOV A,2AHMOVC A,A+DPTRMOV P0,ACLR P2.0LCALL DELAYSETB P2.0 ;显示时十位RET/*****按键检测子程序*****/KEY_SCAN:CLR 46H ;关闭长按调整(调时快进)标志MOV P1,#0FFH ;将P1口设置成输入状态MOV A,P1CPL AANL A,#07H ;P1口低3位连接3个按键,只判断该3位JZ EXIT_KEY ;无键按下则返回LCALL DELAY ;延时去抖动MOV A,P1 ;重新判断CPL AANL A,#07HJZ EXIT_KEY ;键盘去抖动MOV R5,A ;临时将键值存入R5MOV R4,#00H ;用于控制调时快进速度;设置为00H是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进LOOP: ;进入长按处理LCALL DISPLAY ;使长按时显示正常MOV A,P1CPL AANL A,#07H47H,LOOP1INC R4 ;调时快进间隔时间基准加1LOOP1:CJNE R1,#03H,LOOP2 ;如果调秒时长按,则不处理LJMP LOOP3LOOP2:CJNE R4,#99H,LOOP3MOV R4,#70H ;确认用户长按后,重新设定起始值,加快调时快进速度SETB 46H ;长按调整(调时快进)标志LCALL ADD_KEYLCALL DEC_KEYLOOP3:JNZ LOOP ;等待键释放MOV A,R5 ;输出键值RETEXIT_KEY:RET/*****延时子程序*****/DELAY:MOV R7,#150DJNZ R7,$RET/*****选择键处理子程序*****/SET_KEY:CJNE R5,#01H,EXIT ;选择键键值INC R1 ;调整选择功能标志加一CJNE R1,#4,EXITMOV R1,#0MOV 24H,#00H ;调时闪烁基准清零RET/*****增加键处理子程序*****/ADD_KEY:CJNE R5,#02H,EXIT ;增加键键值CJNE R1,#01H,NEXT1 ;选择键功能标志为1,调时,否则跳出MOV A,23HADD A,#01HDA AMOV 23H,ACJNE A,#24H,EXITMOV 23H,#00HNEXT1:CJNE R1,#02H,NEXT2 ;选择键功能标志为2,调分,否则跳出MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#60H,EXITMOV 22H,#00HNEXT2:CJNE R1,#03H,EXIT ;选择键功能标志为3,调秒,否则跳出MOV 21H,#00H ;如增加键按下直接清零秒RET/*****减少键处理子程序*****/DEC_KEY:CJNE R5,#04H,EXIT ;减少键键值CJNE R1,#01H,NEXT3 ;选择键功能标志为1,调时,否则跳出MOV A,23HADD A,#99HDA AMOV 23H,ACJNE A,#99H,EXITMOV 23H,#23HNEXT3:CJNE R1,#02H,NEXT4 ;选择键功能标志为2,调分,否则跳出MOV A,22HADD A,#99HDA AMOV 22H,ACJNE A,#99H,EXITMOV 22H,#59HNEXT4:CJNE R1,#03H,EXIT ;选择键功能标志为3,调秒,否则跳出MOV 21H,#00H ;如较少键按下直接清零秒RET/*****万用返回子程序*****/EXIT:RET/*****数码管字形编码表*****/TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;字形显示编码TABLE1:DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;小时位的十位数编码,该位如果为0则不显示//闹钟检测MOV A,0AHJZ NAO2 ;检测闹钟开关若关检测下一个闹钟,否则检测时间是否为闹钟设定时间MOV A,30HCJNE A,50H,NAO2MOV A,31HCJNE A,51H,NAO2MOV A,32HCJNE A,52H,NAO2AJMP XIANG ;时间为闹钟设定时间吻合进入闹铃程序下同NAO2:MOV A,0BHJZ NAO3MOV A,30HCJNE A,53H,NAO3MOV A,31HCJNE A,54H,NAO3MOV A,32HCJNE A,55H,NAO3AJMP XIANGNAO3:MOV A,0CHJZ NAO4MOV A,30HCJNE A,56H,NAO4MOV A,31HCJNE A,57H,NAO4MOV A,32HCJNE A,58H,NAO4AJMP XIANGNAO4:MOV A,0DHJZ NAO5MOV A,30HCJNE A,59H,NAO5MOV A,31HCJNE A,5AH,NAO5MOV A,32HCJNE A,5BH,NAO5AJMP XIANGNAO5:MOV A,0EHJZ BUMOV A,30HCJNE A,5CH,BUMOV A,31HCJNE A,5DH,BUMOV A,32HCJNE A,5EH,BUAJMP XIANG//检测独立按键BU: T0,ZHU1 ;检测s19是否按下按下进入万年历界面,否则检测矩阵键盘MOV A,3AH ;界面转换标志取反即可使得时间和万年历界面相互转换CPL AMOV 3AH,A//检测矩阵键盘//检测到按键1,2,3,4,5时进入对应的闹钟设置界面检测到0BH(对应s11)进入时间设置界面检测到0CH(对应s12)进入万年历设置界面//若未检测到按键则跳回主程序继续下一个检测周期ZHU1:MOV R7,#0FHACALL JIANCEANJIAN ;矩阵键盘检测子程序将检测到的键值存入r7 CJNE R7,#0FH,ZHU2AJMP ZHUXUNHUANZHU2:CJNE R7,#0BH,ZHU3AJMP SHIJIANSHEZHIZHU3:CJNE R7,#0CH,ZHU4AJMP WANNIANLISHEZHIZHU4:CJNE R7,#01H,ZHU5AJMP NAOZHONGSHEZHIZHU5:CJNE R7,#02H,ZHU6AJMP NAOZHONGSHEZHIZHU6:CJNE R7,#03H,ZHU7AJMP NAOZHONGSHEZHIZHU7:CJNE R7,#04H,ZHU8AJMP NAOZHONGSHEZHIZHU8:CJNE R7,#05H,ZHUXUNHUAN0AJMP NAOZHONGSHEZHIZHUXUNHUAN0:AJMP ZHUXUNHUAN//年月日校正子程序用于万年历进位和万年历设置防止出现不存在的时间NYR:MOV A,33HCJNE A,#32,MONTH ;日为32时,月进位日置1MOV 33H,#01HAJMP MONTH0MONTH:CJNE A,#31,MONTH1 ;日为31时分辨大小月及2月MOV A,34HCJNE A,#4,MONTH2MOV 33H,#01HAJMP MONTH0MONTH2:CJNE A,#2,MONTH6MOV 33H,#01HAJMP MONTH0MONTH6:CJNE A,#6,MONTH9MOV 33H,#01HAJMP MONTH0MONTH9:CJNE A,#9,MONTH11MOV 33H,#01HAJMP MONTH0MONTH11:CJNE A,#11,RETURN0MOV 33H,#01HAJMP MONTH0MONTH1:CJNE A,#30,MONTH29 ;日为30时分辨2月MOV A,34HCJNE A,#02H,RETURN0MOV 33H,#01HAJMP MONTH0MONTH29:CJNE A,#29,RETURN0 ;日为29时分辨闰平年2月MOV A,34HCJNE A,#02H,RETURN0MOV A,35HMOV B,#04HDIV ABMOV A,BJNZ MONOAJMP RETURN0MONO:MOV 33H,#01HMONTH0:MOV A,#01H ;月进位ADD A,34HMOV 34H,ACJNE A,#0DH,RETURN0MOV 34H,#01HMOV A,#01HADD A,35HMOV 35H,ACJNE A,#100,RETURN0 ;年最多只能99MOV 35H,#00RETURN0: RET/******************************************************************/ //屏幕刷新中断XIANSHI:PUSH BPUSH DPHPUSH DPLPUSH PSWPUSH ACCMOV TH1,#0DFHMOV TL1,#0E0HMOV A,3AHJNB ACC.0,WANNIANLI ;界面显示判断//时间界面MOV A,21HMOV B,#0AHDIV ABMOV 10H,BMOV 11H,AMOV A,22HMOV B,#0AHDIV ABMOV 12H,BMOV 13H,AMOV A,23HMOV B,#0AHDIV ABMOV 14H,BMOV 15H,AMOV 16H,#0AH MOV 17H,#0AH AJMP LIANG//万年历界面WANNIANLI:JNB ACC.1,SHEZHI MOV A,33HMOV B,#0AHDIV ABMOV 10H,BMOV 11H,AMOV A,34HMOV B,#0AHDIV ABMOV 12H,BMOV 13H,AMOV A,35HMOV B,#0AHDIV ABMOV 14H,BMOV 15H,AMOV 16H,#00HMOV 17H,#02HAJMP LIANG//闹钟设置界面SHEZHI:MOV 10H,40HMOV 11H,41HMOV 12H,42HMOV 13H,43HMOV 14H,44HMOV 15H,45HMOV 16H,46HMOV 17H,47H//万年历设置WANNIANLISHEZHI:MOV 3AH,#0FEH ;转换设置界面MOV 39H,#11011111B ;设置闪烁位MOV 37H,39HMOV 3DH,#0FFH ;开闪烁开关WM:ACALL NYR ;校正万年历T1,WS1 ;s20 按下退出设置界面MOV 39H,#0FFH ;关闪烁MOV 3DH,#00H ;闪烁开关关MOV 3AH,#11111101B ;转换成时间设置界面AJMP ZHUXUNHUANWS1:INT0,WS2 ;修改位右移同上MOV A,37HCJNE A,#11111110B,WSS0RR ARR ARR AMOV 37H,AS20:JNB INT0,S20AJMP WMWSS0:RR AMOV 37H,AS21:JNB INT0,S21AJMP WMWS2:INT1,WM1 ;修改位左移MOV A,37HCJNE A,#11011111B,WSS1RL ARL ARL AMOV 37H,AS23:JNB INT1,S23AJMP WMWSS1:RL AMOV 37H,AS24:JNB INT1,S24AJMP WM//矩阵键盘检测修改万年历WM1:MOV R7,#0FHACALL JIANCEANJIANCJNE R7,#0FH,WSJSZ1AJMP WMWSJSZ1:MOV A,37H ;检测修改位 ACC.5,WSJSZ2//修改年十位MOV A,35HMOV B,#0AHDIV ABMOV 1FH,BMOV A,R7MOV B,#0AHMUL ABADD A,1FHMOV 35H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ2:ACC.4,WSJSZ3//修改年个位MOV A,35HMOV B,#0AHDIV ABMOV B,#0AHMUL ABADD A,R7MOV 35H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ3:ACC.3,WSJSZ4//修改月十位只能为0,1 但月个位不为0,1,2是不能修改为1 月个位为0时不能修改为0CJNE R7,#00H,WSJ1MOV A,34HMOV B,#0AHDIV ABMOV A,BCJNE A,#00H,WLED4AJMP WMMMWSJ1:CJNE R7,#01H,WMMMMOV A,34HMOV B,#0AHDIV ABMOV A,BCJNE A,#00H,L1AJMP WLED4L1: CJNE A,#01H,L2AJMP WLED4L2: CJNE A,#02H,WMMMAJMP WLED4WMMM:LJMP WMWLED4:MOV A,34HMOV B,#0AHDIV ABMOV 1FH,BMOV A,R7MOV B,#0AHMUL ABADD A,1FHMOV 34H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ4:ACC.2,WSJSZ5//修改月个位但月十位为1时只能修改为0,1,2 月十位为0时不能修改为0 MOV A,34HDIV ABCJNE A,#00H,WJ0CJNE R7,#00H,WLED3AJMP WWMWJ0:CJNE R7,#00H,WJ1AJMP WLED3WJ1: CJNE R7,#01H,WJ2AJMP WLED3WJ2: CJNE R7,#02H,WWMAJMP WLED3WLED3:MOV B,#0AHMUL ABADD A,R7MOV 34H,AMOV A,37HRR AMOV 37H,AWWM: AJMP WMWSJSZ5:ACC.1,WSJSZ6//修改日十位只能为0,1,2,3 日个位不为0,1时不能修改为3 CJNE R7,#00H,WSJ10AJMP WLED2WSJ10:CJNE R7,#01H,WSJ20AJMP WLED2WSJ20:CJNE R7,#02H,WSJ30AJMP WLED2WSJ30:CJNE R7,#03H,WWMMOV A,33HDIV ABMOV A,BCJNE A,#00H,L3AJMP WLED2L3: CJNE A,#01H,WWMAJMP WLED2WLED2:MOV A,33HMOV B,#0AHDIV ABMOV 1FH,BMOV A,R7MOV B,#0AHMUL ABADD A,1FHMOV 33H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ6://修改日个位日十位为3时只能修改为0,1 MOV A,33HMOV B,#0AHDIV ABCJNE A,#00H,LL4CJNE R7,#00H,WLED1AJMP WMLL4:CJNE A,#03H,WLED1CJNE R7,#00H,WJ4AJMP WLED1WJ4:CJNE R7,#01H,WWMAJMP WLED1WLED1:MOV B,#0AHMUL ABADD A,R7MOV 33H,AMOV 37H,#11011111BAJMP WM/***************************************************************/ //矩阵按键检测子程序JIANCEANJIAN:MOV DPTR,#8000HMOV A,#0F0HMOVX DPTR,AMOV DPTR,#8000HMOVX A,DPTRCPL AJNZ XIAODOURETXIAODOU://ACALL DELAYMOV A,#0F0HMOV DPTR,#8000HMOVX A,DPTRCPL AJNZ PANRETPAN:MOV DPTR,#8000HMOV A,#11111110BMOVX DPTR,AMOV DPTR,#8000HMOVX A,DPTRJNB ACC.0,KEY10 ;低电位说明按键在该位JNB ACC.1,KEY20JNB ACC.2,KEY30 JNB ACC.3,KEY40MOV DPTR,#8000H MOV A,#11111101B MOVX DPTR,AMOV DPTR,#8000H MOVX A,DPTRJNB ACC.0,KEY50 JNB ACC.1,KEY60 JNB ACC.2,KEY70 JNB ACC.3,KEY80MOV DPTR,#8000H MOV A,#11111011B MOVX DPTR,AMOV DPTR,#8000H MOVX A,DPTRJNB ACC.0,KEY90 JNB ACC.1,KEY00 JNB ACC.2,TUI JNB ACC.3,KEY0C0 RETKEY10:MOV R7,#01HRETKEY20:MOV R7,#02HRETKEY30:MOV R7,#03HRETKEY40:MOV R7,#04HRETKEY50:MOV R7,#05HRETKEY60:MOV R7,#06HRETKEY70:MOV R7,#07HRETKEY80:MOV R7,#08HRETKEY90:MOV R7,#09HRETKEY00:MOV R7,#00HRETTUI:MOV R7,#0BHRETKEY0C0:MOV R7,#0CHRET/****************************************************/ //闹铃响XIANG:CLR P1.0//ACALL MDELAY//SETB P1.0T1,XIANG ;s20 退出闹铃跳回主循环SETB P1.0AJMP ZHUXUNHUAN/****************************************************/ //闹钟设置NAOZHONGSHEZHI://检测是哪个闹钟并初始化闹钟设置CJNE R7,#01H,NZ2MOV A,50HMOV B,#0AHDIV ABMOV 45H,AMOV 44H,BMOV A,51HMOV B,#0AHDIV ABMOV 43H,AMOV 42H,BMOV A,52HMOV B,#0AHDIV ABMOV 41H,AMOV 40H,BMOV 09H,#50HMOV 47H,#01HMOV 08H,#0AHAJMP NANJIANNZ2:CJNE R7,#02H,NZ3MOV A,53HMOV B,#0AHDIV ABMOV 45H,AMOV 44H,BMOV A,54HMOV B,#0AHDIV ABMOV 43H,AMOV 42H,BMOV A,55HMOV B,#0AHDIV ABMOV 41H,AMOV 40H,BMOV 09H,#53H MOV 47H,#02H MOV 08H,#0BH AJMP NANJIANNZ3:CJNE R7,#03H,NZ4 MOV A,56HMOV B,#0AHDIV ABMOV 45H,AMOV 44H,BMOV A,57HMOV B,#0AHDIV ABMOV 43H,AMOV 42H,BMOV A,58HMOV B,#0AHDIV ABMOV 41H,AMOV 40H,BMOV 09H,#56H MOV 47H,#03H MOV 08H,#0CH AJMP NANJIANNZ4:CJNE R7,#04H,NZ5 MOV A,59HMOV B,#0AHDIV ABMOV 45H,A MOV 44H,B MOV A,5AH MOV B,#0AH DIV ABMOV 43H,A MOV 42H,B MOV A,5BH MOV B,#0AH DIV ABMOV 41H,A MOV 40H,B MOV 09H,#59H MOV 47H,#04H MOV 08H,#0DH AJMP NANJIAN NZ5:MOV A,5CH MOV B,#0AH DIV ABMOV 45H,A MOV 44H,B MOV A,5DH MOV B,#0AH DIV ABMOV 43H,A MOV 42H,B MOV A,5EH MOV B,#0AH DIV ABMOV 41H,A MOV 40H,B MOV 09H,#5CH MOV 47H,#05HMOV 08H,#0EHAJMP NANJIANNANJIAN:MOV 3AH,#11111100B ;界面转换成闹钟设置界面MOV 39H,#11011111BMOV 37H,39HMOV 3DH,#0FFH ;开闪烁NM: MOV R1,08HT0,XIA1 ;s19 闹钟开关MOV A,R1CPL AMOV R1,AXIA1:MOV A,R1JZ XIA2MOV 46H,#0BHJMP XIA3XIA2:MOV 46H,#0AHXIA3:T1,NS1 ;s20 退出闹钟设置跳回主程序//闹钟数据保存MOV 39H,#0FFHMOV 3DH,#00HMOV 3AH,#11111101BMOV R1,09HMOV A,45HMOV B,#0AHMUL ABADD A,44HMOV R1,AINC R1MOV A,43HMOV B,#0AHMUL ABADD A,42HMOV R1,AINC R1MOV A,41HMOV B,#0AHMUL ABADD A,40HMOV R1,AAJMP ZHUXUNHUANNS1:INT0,NS2 ;修改位右移同上MOV A,37HCJNE A,#11111110B,NSS0RR ARR ARR AMOV 37H,AS30:JNB INT0,S30AJMP NMNSS0:RR AMOV 37H,AS31:JNB INT0,S31AJMP NMNNM:AJMP NMNS2:INT1,NM1 ;修改位左移同上MOV A,37HCJNE A,#11011111B,NSS1RL ARL ARL AMOV 37H,AS32:JNB INT1,S32LJMP NMNSS1:RL AMOV 37H,AS33:JNB INT1,S33LJMP NMNM1://矩阵键盘检测修改闹钟同时间设置MOV R7,#0FHLCALL JIANCEANJIANCJNE R7,#0FH,NSJSZ1LJMP NMNSJSZ1:MOV A,37HACC.5,NSJSZ2CJNE R7,#00H,NSJS1LJMP NLED6NSJS1:CJNE R7,#01H,NSJS2LJMP NLED6NSJS2:CJNE R7,#02H,NMMAJMP NLED6NLED6:MOV 45H,R7MOV A,37HRR AMOV 37H,ALJMP NMNSJSZ2:ACC.4,NSJSZ3MOV A,45HCJNE A,#02H,NLED5 CJNE R7,#00H,NSJS4 AJMP NLED5NSJS4:CJNE R7,#01H,NSJS5 AJMP NLED5NSJS5:CJNE R7,#02H,NSJS6 AJMP NLED5NSJS6:CJNE R7,#03H,NMM1 AJMP NLED5NMM1:LJMP NNM NLED5:MOV 44H,R7MOV A,37HRR AMOV 37H,ALJMP NMNSJSZ3:ACC.3,NSJSZ4 CJNE R7,#00H,NSJ1 LJMP NLED4NSJ1:CJNE R7,#01H,NSJ2 AJMP NLED4NSJ2:CJNE R7,#02H,NSJ3 AJMP NLED4NSJ3:CJNE R7,#03H,NSJ4 AJMP NLED4NSJ4:CJNE R7,#04H,NSJ5 AJMP NLED4NSJ5:CJNE R7,#05H,NMM AJMP NLED4NMM:LJMP NMNLED4:MOV 43H,R7MOV A,37HRR AMOV 37H,ALJMP NMNSJSZ4:ACC.2,NSJSZ5 MOV 42H,R7MOV A,37HRR AMOV 37H,AAJMP NMM0NSJSZ5:ACC.1,NSJSZ6 CJNE R7,#00H,NSJ10 AJMP NLED2NSJ10:CJNE R7,#01H,NSJ20 AJMP NLED2NSJ20:CJNE R7,#02H,NSJ30 AJMP NLED2NSJ30:CJNE R7,#03H,NSJ40 AJMP NLED2NSJ40:CJNE R7,#04H,NSJ50 AJMP NLED2NSJ50:CJNE R7,#05H,NMM0AJMP NLED2NMM0:LJMP NM NLED2:MOV 41H,R7MOV A,37HRR AMOV 37H,ALJMP NMNSJSZ6:MOV 40H,R7MOV 37H,#11011111B LJMP NMEND页脚.。