《基于单片机的电子时钟设计-毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子时钟设计-毕业论文.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 10722学号学校代码公开密级TH714分类号本科毕业论文基于单片机的电子时钟设计题 目(中、英文)The Design of Electronic Clock Based on MCU作者电气工程及其自动化专业名称工 科学科门类郝海燕 成绩评定提交论文日期指导教师 二一三年五月 学习文档 仅供参考摘 要单片机是一种数字集成电路芯片,是指集成在一块芯片上的微型电脑。一个比较完整的单片机应该包括微处理器CPU、存储器RAM和ROM、并行输入/输出接口I/O接口电路、可编程全双工串行口、定时/计数器、中断系统以及复位电路。由于它具有小巧灵活,成本低,可靠性好,控制功能强,易扩展等一系列优点,所以
2、被越来越广泛地应用于各个领域。而51系列的单片机就是最为典型和具有代表性的一种单片机。本设计是基于单片机的简单电子时钟的设计,系统主要以单片机AT89C51为核心,结合按键模块来显示相应的时间,并可以对时、分、秒进行单独校对,使其到达标准时间。本次设计以软件控制硬件以及软硬件结合为指导思想,充分发挥单片机功能。同时,该系统的诸多优点使其具有很强的实用性,由于该系统实现的功能简单,因此具有很好的可扩展性。关键词: AT89C51;电子时钟;按键控制 AbstractThat the microcontroller is integrated on a single chip microcompu
3、ter is a digital integrated circuit chip. Should be a more complete include single-chip microprocessor (CPU), memory (RAM and ROM), parallel input / output interface (I / O interface) circuit, a programmable full-duplex serial port, timer / counter, interrupt system, and reset circuit. Because of it
4、s compact and flexible, low cost, reliability, and control functions, easy to expand a series of advantages, it is more and more widely used in various fields. The 51 series is the most typical and representative of a single-chip microcontroller.The project is the design of simple electronic clock b
5、ased on microcontroller. It is as the core of AT89C51 microcontroller, with key module to display relative time and make hour, minutes, seconds separate proofreading to make it up to standard time. The design control hardware and software combination of hardware and software as the guiding ideology,
6、 give full play to the microcontroller features. Meanwhile, the system has so many advantages that it has a strong practicability, because of its simple function, and therefore it has good scalability. Key words: AT89C51 ; Electronic clock ;Key control目 录1引言1单片机的发展历程1设计任务1设计意义12.电子时钟的设计原理2电子时钟的特点2电子
7、时钟的应用2电子钟的工作原理2电子时钟的设计流程33.设计方案3硬件电路的设计方案3硬件电路的原理图4硬件电路说明5主控制模块5按键模块7复位电路8振荡电路8发声模块9时间显示模块94.控制系统的软件设计114.1 KEIL集成开发环境的应用与操作114.1.1 KEIL集成开发环境简介114.1.2 KEIL集成开发环境的基本仿真流程11 Proteus软件简介12程序流程图12仿真结果13仿真结果分析135.总结13参考文献15附录I程序16附录II实物26谢 辞27学习文档 仅供参考学习文档 仅供参考1引言单片机的发展历程单片机是电脑技术、大规模集成电路技术和控制技术的综合产物。经过30
8、多年的发展历程,单片机应用已广泛深入人们生活中的方方面面。根据Motorola公司的统计,1990年,平均每辆汽车使用12个单片机,而到了2000年就增加到35个。所以可以毫不夸张的说,任何设备和产品的自动化、数字化和智能化都离不开单片机。现在,但凡电脑控制的设备和产品,必有单片机嵌入在其中。这一切说明,单片机已经成为人们生活中必不可少的助手。单片机有两种基本结构:一种是在通用电脑中广泛应用的,程序和数据存储器共用一个存储器空间的结构,称为Von Neumann结构。另一种是将程序存储器和数据存储器分开,分别寻址的结构,称为Harvard结构,目前的单片机多采用这种结构1。本文设计的单片机电子
9、时钟系统的核心是当前应用很广泛的51系列单片机,配置了外围设备,构成了一个简单的计时系统,它具有体积小,可靠性比较高的特点,不仅能满足要求而且还可以扩展很多功能,在实际生活中应用很广泛。本设计采用AT89C51单片机对电子时钟进行开发,通过Proteus软件来实现电子时钟系统的设计与仿真,并应用LED显示相应的时间。设计意义在日常生活和工作中,我们常常用到定时控制。早期常用的一些时间控制单元都是使用模拟电路设计而成的,它的定时准确性和重复精度都不很理想,而现在基本上都是一些基于数字技术的新型产品,随着单片机性本身价比的不断提高,新型产品的应用也越来越广泛。有的可以运用于大工业里的过程控制系统,
10、具有强大的控制功能;有的可以运用于智能家居控制,甚至可以用于小孩的电子玩具中。它功能强大、体积小、质量轻、灵活好用,给它连接各种不同的控制芯片,就可以实现各种不同的功能2。根据这些情况,设计了一个单片机电子时钟系统,它有基本的时间显示功能,还有定时功能,可扩展多种功能用来方便人们的生活。2.电子时钟的设计原理随着电子工业的发展,电子产品日新月异。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的功能。诸如数字钟、万年历、电子表、定时自动报警、定时启闭电路、通断动力设备,甚至各种定时电气的自动启用、通信、网络等众多领域,所有这些都是以钟表数字化为基础的。由于其功能的不断增加,
11、使用方便性不断提高,很多产品已经成为人类日常生活中不可或缺的助手。现在许多高精度的计时工具都使用了石英晶体振荡器,由于电子钟,电子表,石英表都采用了石英技术,因此工作时精度高,稳定性能好,用起来方便,不需要经常调试,数字电子时钟用集成电路计时时,译码代替机械式传动,用LED显示代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示的功能,还可以进行时和分的校对,片选的灵活性好3。 电子时钟除了在城市的主要营业场所、车站、码头等公共场所使用,还可以改装在摩托车和汽车上,LCD显示,带蓝色背光,白天在太阳光下也能非常清楚的看到显示时间,关钥匙可以关闭蓝色背光,时间还能显示也不会清零,因
12、LCD的显示耗电量很省的,所以工作时也不用担忧耗电问题。在行路上,如果司机看时间可能会很麻烦甚至影响其他人的生命安危。现在车上改装了一个蓝色的液晶电子钟,不管白天还是黑夜,随时可以看时间,非常方便4。本设计的电子时钟是由AT89C51,八段数码管等构成,采用晶振电路作为驱动电路,由计时程序和循环程序产生的一秒定时,到达时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。电路中的四个控制键拥有多种不同的功能,按下又松开,可以实现校对时间以及定时的功能,还可以到达省电的目的。2.4 电子时钟的设计流程Proteus电路设计源程序设计生成目标代码基于proteus仿真图1 设计流程图
13、3.设计方案3.1 硬件电路的设计方案 本设计的硬件电路设计框图如图2所示:AT89C51 时间显示按键电路振荡电路复位电路蜂鸣器图2 总体结构框图由图2可以看出:本设计电路的硬件部分共由五部分组成,分别为按键模块、复位电路模块、振荡电路模块、发声模块、时间显示模块。振荡电路模块负责给单片机提供时钟周期。复位电路模块负责上电后自动复位,或按键后强制复位。上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。与此同时,按键扫描函数一直扫描按键引脚状态,一旦扫描按键被按下,即进入相应的功能函数。如果检测到定时时间到,则驱动蜂鸣器发生提示。3.2硬件电路的原理图由上面的设计
14、框图可以进一步得出本系统的电路原理图。原理图如图3所示: 图3 电路原理图本设计是采用晶振电路作为驱动电路,由计时程序和循环程序产生的一秒定时,到达时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。电路中的四个控制键拥有多种不同的功能,按下又松开,可以实现校对时间以及定时的功能。3.3硬件电路说明3.3.1主控制模块AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机5。AT89C51单片机引脚介绍:Vcc:电源Vss:地线P0口:P0口地址为80H,位地址为80H87H。各位口线是有完全相同但又相互独立的逻辑电路。P0口的
15、逻辑电路主要由D触发器构成的锁存器,FET(场效应管)构成的输出驱动电路,用于引脚数据输入缓冲的缓冲器,一个多路转接开关MUX构成。8位口线的锁存器位构成一个口的锁存器,所谓的口地址就是锁存器的地址。锁存器的功能是使数据在口中保留一段时间。MUX的一个输入来自锁存器,另一个输入为“数据/地址” 。输入转接由控制信号控制,设置多路转接开关的原因是P0口既可以作为通用I/O口进行数据输入/输出,又可以作为单片机系统的地址/数据线使用。设置多路转接开关可以方便的实现转换。 P1口:P1是一个带有内部上拉电阻的8位双向I/O口。P1口地址为90H,位地址为90H97H。P1口只能作为通用数据I/O口使
16、用所以在电路结构上与P0口有些不同。第一, 因为它只能传送数据,所以不再需要多路转接开关MUX;第二, 驱动电路中有上拉电阻。其上拉电阻并不是真正的电阻,而是一个能起到上拉电阻作用的由两个场效应管构成的电路。 P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2口地址为A0H,位地址为A0HA7H。P2口既可作为系统高位地址线使用,也可作为通用I/O口使用,所以P2口的电路逻辑与P0口类似,也有一个多路转接开关。但多路转接开关的一个输入端不再是地址/数据,而是单一的地址,因为在构造系统总线时,P2口只能作为高位地址而不能作为数据线使用。当P2口作为高位地址线使用时,多了开关倒向地址端;而
17、当通用I/O口使用时,多路开关倒向锁存器的Q端。 图4 AT89C51引脚排列图P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口的地址为B0H,位地址为BOHB7H。虽然P3口可以作为通用I/O口使用,但在实际应用中我们更多的使用的是他的第二功能信号。P3.0 RXD串行数据接收 P3.1 TXD串行数据发送 P3.2 INT0外部中断0申请 P3.3 INT1外部中断1申请 P3.4 T0定时器/计时器0计数输入 P3.5 T1定时器/计时器1计数输入 P3.6 /WR外部RAM写选通 P3.7 /RD外部RAM读选通 RST:复位信号。当输入的复位信号延续2个机器周期以上的高
18、电平时即为有效,用于单片机的复位操作。 ALE:地址锁存控制信号。在系统扩展时,ALE用于把P0口输出的低八位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此时由于ALE是以1/6晶振频率的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用:外部程序存储器读选通信号。在读外部ROM是/PSEN有效,以实现外部ROM单元的读操作。 :访问程序存储器控制信号。当/EA信号为低电平时,对ROM的读操作是针对外部程序存储器的;而当/EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。 XTAL1和XTAL2:外部晶体引线端。当使用芯片内部时钟时,X
19、TAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。3.3.2按键模块 图5 按键模块在该模块中,采用四个按键作为对电子时钟的控制输入,通过按键来实现时钟的时间设置、定时功能。电路中将四个按键的一端接地,而单片机的P2口默认为高电平,一旦按键被按下,则该按键对应的管脚被拉低,通过软件扫描按键即可知道用户所要实现的功能,调用相应的按键子程序来完成该操作6。本设计中,四个按键K1、K2、K3、K4分别与AT89C51单片机的引脚P1.0、P1.1、P1.2、P1.3连接。当按下K1时,开始进行“时”的校对,再次按下K1时,则切换到“分”的校对,第三次按
20、下则切换到“秒”的校正,第四次按下则返回到正常时间显示。当按下K2时,切换到闹钟模式,连续按下K2键时依次进行定时。K3和K4键是实现加一和减一功能。3.3.3复位电路 图6 复位电路 单片机在上电以后内部的电路处于一种随机状态,这时如果开始工作则会出现混乱。对单片机而言,复位也就是在做准备工作,是使单片机回到初始化状态的一种操作。单片机系统上电后,从何处开始执行第一条指令是由系统复位后的状态决定的7。RESET引脚是复位信号的输入端,高电平有效,低电平工作。常用的复位电路有上电复位电路、按键电平复位电路、按键脉冲复位电路。本设计中采用按键电平复位电路,如图6所示。3.3.4振荡电路 图7 振
21、荡电路AT89C51单片机内部有一个高增益反相放大器,它的作用就是用来构成振荡器,但要形成时钟,还需要一些附加的电路8。AT89C51单片机的时钟产生有以下两种方法:1.内部时钟方式。利用单片机内部的振荡器,然后在引脚XTAL1和XTAL2两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30pF左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHZ-12MHZ之间选择。2.外部时钟方式。此方式是利用外部振荡脉冲接入XTAL1和XTAL2。 本设计采用内部时钟方式。振荡电路由两个皆为30PF的C1,C2及振荡频率为12MHZ
22、的晶振组成,并配合单片机定时器0实现准确计时。如图7所示。3.3.5发声模块 图8 发声模块 发声模块由电源,蜂鸣器两部分组成。正常情况下,不发声,一旦按键按下,或定时时间到,蜂鸣器发声9。3.3.6时间显示模块LED是Light Emiting Diode 发光二极管的缩写,发光二极管是能将电信号转换为光信号的电致发光器件。由条形发光二极管组成“8”字形的LED显示器,也称数码管10。通过数码管中发光二极管的亮暗组合,可以显示多种数字、字母以及其他符号。数码管有7段数码管和8段数码管之分。7段数码管由7个发光二极管组成,而8段数码管则是在7段发光二极管的基础上再加一个圆点型发光二极管,用以显
23、示小数点。8段数码管中发光二极管的排列形状以及数字显示的段组合如图9所示:图9 八段数字显示器及发光段组合图在使用中,为了给发光二极管加驱动电压,它们有一个公共引脚,公共引脚共有两种连接方法,如图10所示,分别为共阴极接法与共阳极接法11。1.共阴极接法。把发光二极管的阴极连在一起构成阴极公共引脚,如图a所示。使用时阴极公共引脚接地,这样阴极引脚上加高电平的发光二极管就导通点亮,而加低电平的则不点亮。2.共阳极接法。把发光二极管的阳极连在一起构成阳极公共引脚,如图b所示。使用时阳极公共引脚接+5V。这样阴极引脚上加低电平的发光二极管即可导通点亮,而加高电平的则不点亮。a 共阳极接法 b 共阴极
24、接法 图10 LED显示器接法 本设计中采用共阴极LED数码管显示方式,电路图如图11所示:图11 时间显示模块4.控制系统的软件设计 KEIL集成开发环境的应用与操作 KEIL集成开发环境简介Keil C51是Keil Software公司出品的51系列兼容单片机C语言软件开发系统。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。在Keil中使用C语言编程,在功能上、结构性、可读性、可维护性上有明显的优势12。 KEIL集成开发环境的基本仿真流程1313第一步:双击KEIL uVisi
25、on3的桌面快捷方式,启动KEIL集成开发软件。第二步:新建文本编辑界面或加入原有的程序文件。选择“File(文件)”“New”命令或菜单栏的“新建文本”命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为“Text1”。第三步:在“Text1”中输入C语言源程序。第四步:保存源程序。保存文件时必须加上文件的扩展名并选择路径和文件名进行保存,C语言程序文件的扩展名为“.C”。第五步:新建KEIL工程。选择“Project(工程)” “New Project(新建工程)”命令,将出现保存对话框。在保存工程对话框中输入工程文件名,工程名称不用输入扩展名。输入名称后保存,将出现“Sele
26、ct Device for Target ”对话框。第六步:选择CPU型号。在对话框中选择“公司Atmel” “CPU型号”,单击“确定”按钮返回主界面。4.2 Proteus软件简介Proteus软件是目前世界上最先进的嵌入式系统设计与仿真平台,可以实现模拟电路、数字电路及各种电路系统的仿真和PCB设计等功能,是目前唯一一个能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择Keil 5 软件。该软件支持许多芯片,集编辑、编译和程序仿真于一体,同时还支持汇编和C语言的程序设计。它的界面简单易学,在调试程序、软件仿真方面有很强大的功能14。
27、其最关键的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如LED、开关等,实时看到运行后的输入、输出的结果, Proteus为我们建立了比较完整的电子设计开发环境15。4.3程序流程图 图12 主程序流程图 本设计的主程序是一个循环的过程,其流程是:开始运行显示正常时间,如果扫描过程中,发现有键按下,则进行时间和闹钟模式的切换,再次按下,进行时分秒的校正;如果没有键按下,则正常显示时间;在正常时间显示过程中,假设定时时间到,则闹钟自动响起,否则时间正常显示。4.4仿真结果 仿真结果如下列图13所示。 图13 仿真结果4.5
28、 仿真结果分析本设计实现了时分秒的显示,设计简单,对时间的调节感觉不是很好,在闹钟定时方面还是比较满意。在测试过程中,有很多小问题,通过多次的修改程序并在Proteus软件中进行仿真,最终解决可了这些问题,同时也反映出我在单片机设计和程序设计方面的不足16。仿真效果到达了预期的效果,能通过调节控制键来矫正时间,是本人比较满意。5.总结 首先,我觉得这次的单片机设计非常必要,通过这次的设计使我们学到了更多的关于单片机的实际应用知识,以前在课堂上只是简单的掌握了一些基础知识和简单指令,对于实际的应用还很陌生。刚开始设计时,脑子里一片空白,不知道从哪开始下手,学过的知识不知道怎么运用。设计,编程,仿
29、真,每一步都感觉很难,尤其是编程这一块,老是有错误,后来我发现,应该把程序分开来,一块一块的进行编程,不能混在一起,否则程序太大了,容易混淆,很难发现里面存在的问题。于是我把程序按照实现的功能不同分成几部分,然后进行逐一分析,进行编程,把每一部分实现的功能都实现后再对整个的程序进行整理。这次设计让我深有感触的是做什么事都要细心,并且一定要有耐心,不然只会半途而废,而且思路很重要,当有了明确的思路之后再按照思路一步一步的按照步骤来走,注意细节,这样会大大提高效率,而且会节省很多时间和精力。以上这些就是我在这次设计中学到的东西,而且将这些东西运用到以后的学习中。 参考文献1.李广弟,朱月秀,冷祖祁
30、.单片机基础第三版M.北京:航空航天大学出版社,20072.李朝青.单片机原理及接口技术简明修订版M.北京:北京航空航天大学出版社,19983.THKACM-1型单片机实验系统实验指导书、KEIL软件、WAVE软件4.数字控制与PLC实验室“THKSCM-1型单片机实验系统” 5.李光才.单片机课程设计实例指导M.北京:北京航空航天大学出版社 20046.耿永刚.单片机C51应用技术M.北京:电子工业出版社 20117.周润景,徐宏伟,丁莉.单片机电路设计、分析与制作M.北京:机械工业出版社 20108.林志琦,郎建军,李会杰,佟大鹏.基于Proteus的单片机可视化软硬件仿真M.北京:北京航
31、空航天大学出版社 20069.李海滨,片春媛,许瑞雪.单片机技术课程设计与项目实例M.北京:中国电力出版社 200910.张鹏,王雪瑞.单片机原理与应用实例教程M.北京:海洋出版社 200811.戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲M.北京:电子工业出版社 200612.兰吉昌.51单片机应用设计实例M.北京:化学工业出版社 200813.杜立,张俊亮.单片机原理及应用-基于Proteus和KeilC第二版M.北京:电子工业出版社 201314.周润景,张丽娜,刘映群.Proteus入门实用教程M.北京:机械工业出版社 200715.朱清慧.Proteus电子技术虚拟实验室M.北
32、京:中国水利水电出版社 201016.周润景,蔡雨恬.Proteus入门实例教程第二版M.北京:机械工业出版社 2011附录I程序#include#define tl 0xba;#define th 0x3c;sbit time=P10;/时间设置sbit timer=P11;/闹钟设置sbit add=P12;/加sbit dec=P13;/减sbit speaker=P35;/闹钟输出bit disp_sd;/数码管闪动显示标志位bit disp_ms;/数码管显示时间/闹钟标志位bit disp_sdt;/数码管闪动间隔反转标志位bit zhengdian=0;/整点报时标志位unsig
33、ned char code led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /数字0-9的编码/unsigned char code led=0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7,; /数字0-9的编码unsigned char code moth=0x01,0x3,0x04,0x05,0x06,0x07,0x08,0x09,0x010,0x11,0x12; /数字0-9的编码unsigned char time_cc,timer_cc,ml;/调时计数器unsigned
34、 char count0,com,count1,second,minit,hour;/时间时分秒unsigned int second1,minit1,hour1,yers,yers2,Months,days,ryears,daydata,Mothdata,dsfl,dsfg;/闹钟时分秒unsigned char hour_zd;/整点小时记录unsigned char timenum1,timenum2,timenum3,f1,f2,st;unsigned int dsflg,timeval,timerval,addval, adcval,dayfl;void delay(void)uns
35、igned int i;for(i=0;i100;i+);void delay1(unsigned int k) unsigned int x,y;for(x=0;xk;x+) for(y=0;y23) /限位hour=0;P0=ledhour/10;/显示小时函数P2=0xFE;delay();P2=0xFF;P0=ledhour%10; /显示小时函数P2=0xFD;delay();P2=0xFF;if(timenum1=2) /如果timenum1=2 调分 /以下也是和调时一样的方法dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while
36、(!add);minit+;if(dec=0)delay();delay();if(dec=0)while(!dec);minit-;if(minit60)minit=0;P0=ledminit/10;P2=0xF7;delay();P2=0xFF;P0=ledminit%10;P2=0xEF;delay();P2=0xFF;if(timenum1=3)/如果timenum1=3 调秒dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);second+;if(dec=0)delay();delay();if(dec=0)while
37、(!dec);second-;if(second60)second=0;P0=ledsecond/10;P2=0xBF;delay();P2=0xFF;P0=ledsecond%10;P2=0x7F;delay();P2=0xFF;if(timenum1=4) /如果timenum1=4 退出 TR1=1;timenum1=0;dsflg=1;f2=1; st=1;void almset()timenum1=0;if(timer=0) /键盘上的闹钟键按下 delay();delay();if(timer=0)while(!timer); /松手timenum2+; /标记+f1=0;if(t
38、imenum2=1)/如果timenum2=1设定脑钟的小时dsflg=0;st=0;if(add=0) /加键按下delay();delay();if(add=0)while(!add);/松手hour1+;/小时+if(dec=0) /减键按下delay();delay();if(dec=0)while(!dec)/松手hour1-; /小时-if(hour123) /限位hour1=0;P0=ledhour1/10;/小时显示P2=0xFE;delay();P2=0xFF;P0=ledhour1%10;P2=0xFD;delay();P2=0xFF;P0=0x77; /显示 一P2=0xBF;delay();P2=0xFF; /显示 一P0=0x38;P2=0x7F;delay();P2=0xFF;if(timenum2=2) /如果timenum2=1设定脑钟的分钟 和上面小时一 dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);minit1+;if(dec=0)delay();delay();if(dec=0)while(!dec);minit1-;