1、编码2015-JXLW专业代码080701本科毕业论文(设计)多功能电子钟的设计与实现学 院信息与电子工程专 业电子信息工程学 号6111040102学生姓名王娜指导教师徐忠根提交日期年 月 日诚 信 承 诺 书本人郑重承诺和声明:我承诺在毕业论文撰写过程中遵守学校有关规定,恪守学术规范,此毕业论文(设计)中均系本人在指导教师指导下独立完成,没有剽窃、抄袭他人的学术观点、思想和成果,没有篡改研究数据,凡涉及其他作者的观点和材料,均作了注释,如有违规行为发生,我愿承担一切责任,接受学校的处理,并承担相应的法律责任。毕业论文(设计)作者签名:年 月 日摘 要20世纪末,电子技术获得了飞速的发展,在
2、其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管显示的时间简单明了而且读数快、时间准确显示到秒。而机械式的依赖于晶体震荡器,可能会导致误差。数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,我们采用
3、LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。关键字:数字电子钟;单片机;数码管显示器ABSTRACTThe late 20th century, electronic technology has been rapid development in its promotion, penetration of modern electronic
4、 products will almost Fields, a strong impetus to the development of social productive forces and social improvement in the level of information, while also further improve the performance of modern electronic products, replacement products have become increasingly fast pace. Growing emphasis on mod
5、ern life from the time the concept of time and money can be said to draw the equal sign. For those who are very strict and accurate grasp of time and things, time will not exactly bring a very big trouble, so as to control the display of digital clock than the clock pointer showed a big advantage. D
6、igital display of time reading simple and fast, accurate display of time to seconds. The mechanical oscillator depends on the crystal may lead to errors. Digital Clock is a digital circuit implementation of the “when”,“sub”,“seconds”.The figures show the timing device.Digital clock precision, stabil
7、ity, far more than the old mechanical clock. In this design, we use LED digital display hours, minutes, seconds, to 24-hour time mode, according to digital control theory to dynamic display to display, use the 12MHz crystal oscillation pulse, the timer count. In this design, the circuit has a displa
8、y time of the this function, you can also realize the time adjustment. Digital 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:digital electronic clock;SCM;LED目 录1绪论11.1数字电子钟
9、的背景11.2数字电子钟的意义11.3数字电子钟的应用12设计任务和方案22.1设计任务22.2功能要求说明22.3设计课题总体方案及工作原理说明23数字电子钟的硬件设计33.1硬件系统各模块功能设计33.2 电路原理图及工作原理 33.3元器件清单54数字电子钟的软件设计64.1使用的单片机资源情况64.2各模块功能简要介绍64.3系统软件设计流程图65.系统仿真105.1PROTUES软件介绍105.2电子钟系统PROTUES仿真106调试与功能说明116.1硬盘调试 116.2系统性能测试与功能说明 116.3 系统时钟误差分析 116.4 软件调试问题及解决 12结束语13致谢14附录
10、15程序设计161 绪 论1.1 数字电子钟的背景 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋
11、势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。1.2 数字电子钟的意义数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路
12、的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。1.3 数字电子钟的应用 数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走
13、时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。2设计任务和方案2.1 设计任务 (一)设计题目:多功能电子钟的设计与实现(二)设计目的与任务: 通过制作实物与具体理论知识结合解决相应的实际问题,巩固与运用单片机技术,掌握单片机应用系统中的一般具体设计方法,为今后在电子电路设计中做出必要准备,研究开发电子产品打下坚实基础。2.2 功能要求说明此多功能数字电子钟采用三个两位一体共阳极LED数码管显示时分秒。电子钟一上电即可显示。用三个按键调整时间和闹铃,分别为K1、K2、K3,其中K1键为功能选择键,按一下调节小时,两下是调节分钟,三下是调节闹钟小时,四下是调节闹钟
14、分钟,按五下时钟开始工作。K2为数值加一键,K3为数值减一键。2.3 设计课题总体方案及工作原理说明此设计采用STC89C52芯片及LED显示器,独立式按键组成的多功能电子钟。设计中是采用单片机的内部定时器定时,程序框图如图2.1所示: 6位LED显示STC89C52单片机单片机晶振电路单片机复位电路数码管显示驱动按键电路 图2.1程序框图3 数字电子钟的硬件设计3.1硬件系统各模块功能设计 该多功能数字电子钟单片机由最小系统、键盘模块、LED显示电路模块、USB接口电路模块组成,各模块的功能如下:(1) 单片机最小系统由STC89C52单片机、复位电路和时钟电路组成。STC89C52是一种低
15、电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。时钟电路由一个12MHZ石英晶体振荡器和两个33pF的电容组成振荡电路和分频电路,为单片机提供内部时钟。复位电路采用上电复位和按键复位结合的方式对电路进行复位,主要是通过RST引脚送入单片机。(2) 键盘模块采用独立式键盘接法,共有三个按键来对电路进行控制,分
16、别接在单片机的P3.2、P3.3、P3.3口线上。一个键控制时分秒闹钟之间的转换,一个键负责数字加一,一个键负责数字减一。(3) LED显示电路采用3个两位一体共阳极数码管显示器进行显示,加上一个PNP型8550三极管作为驱动和8个470欧姆的电阻起限流的作用。(4)USB接口电路接上一个电容组成的滤波电路和电源显示灯组成一个电源接口,为单片机工作供电。3.2 电路原理图及工作原理 采用Protel软件,Protel99SE是Protel公司近10年来致力于Windows平台开发的最新结晶,能实现从电学概念设计到输出物理生产数据,能够形象的画出我们所需要设计的产品。数字电子钟的电路原理图如图3
17、.1所示: 图3.1数字电子钟的电路原理图工作原理 : 数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被
18、送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。 3.3元器件清单名称型号数量名称型号数量洞洞板9cm*7cm1电阻47K7单片机STC89C521电阻4708按键轻触型3电阻10K1单片机插槽DIP401晶振12M1数码管共阳两位3瓷片电容30pF2LED3mm4电解电容10uF1蜂鸣器有源型1开关自锁型1三极管PNP85507USB母口usb14数字电子钟的软件设计4.1 使用的单片机资源情况单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又
19、称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。该多功能数字电子钟用的是单片机的定时器的功能,此外用到了单片机的中断功能,在数据显示时所采用的是查表的方法,因此需要将表格数据存到单片机的程序存储器中。由于电子钟需要可以进行调节,因此,需要在单片机的PI口上加上按键,本设计把独立式键盘直接接在P1口上并且其结果存储在
20、单片机的内部数据存储器里。用到的LED显示器接到了单片机的P0口线上和P3口线上。4.2 各模块功能简要介绍该数字电子钟所有软件模块组成是定时器模块、按键模块、LED显示模块。(1) 定时器模块选择定时器0,设置定时方式为方式1,把定时时间设置为50mS.(2) 按键模式采用三个独立式按键对电路进行控制和调整操作,分别为K1、K2、K3。(3) LED显示模块该电子钟一通电就能显示时间,结合键盘操作可以对时间进行。4.3 系统软件设计流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。如图4.1所
21、示:开始启动定时器按键检测时间显示图4.1 主程序流程图NYNYNY时加1显示时间结束开始秒按键按下?秒加1分按键按下?分加1时按键按下?按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。如图4.2所示: 图4.2 按键处理流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。如图4.3
22、所示:N24小时到?分单元清零,时单元加1NNNYY时单元清零时间显示中断返回开始一秒时间到?60秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1YY 图4.3 定时器中断流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。如图4.4所示:时十位计算显示结束开始秒个位计算显示秒十位计算显示分个位计算显示分十位计算显示时个位计算显示图4.4 时间显示流程图5 系统仿真5.1 PROTUES软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、AR
23、ES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.2 电子钟系统PROTUES仿真用PROTUES软件,根据数字电子钟的原理图,画出仿真图,得到的图5.1所示。图5.1 数字钟的PROTES仿真6调试与功能说明单片机应用系统的调试包括硬件和软件两部分,但是他们并不能
24、完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。6.1 硬盘调试拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。6.2 系统性能测试与功能说明(1)本设计采用STC89c52控制芯片.(2)用三个2位一体共阳红色数码管作为显示, PNP 型85
25、50三极管驱动,限流电阻起限流作用。(3)把4个3mm的红色发光二极管作为时间数字之间冒号。(4)P3.2、P3.3、P3.4 口作为按键 S1S3 使用 S1:功能选择键 S2:数值加一按键(调节时间时相应光标闪烁) S3:数值减一按键(调节时间时相应光标闪烁) 初始钟表显示的时间是12:00:00(5)闹铃电路由有源蜂鸣器和 PNP 型三极管组成,初化闹钟时间为06:30:00,铃时间到时蜂鸣器间隔1分钟,关闭铃声按任意键。6.3 系统时钟误差分析时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合
26、时间概念和误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒;S2表示客观时间的标准秒。S0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S0表示秒单元数值的刷新超前,即走时误差为“快”。本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间 误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。6.4 软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调
27、试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,Keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用protus 6 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。首先打开protus 6 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。结束语通过这次设计我发现,
28、只有理论水平提高了;才能够将课本知识与实践相结合,理论知识服务于教学实践,以增强自己的动手能力。这个设计十分有意义,我获得很深刻的经验。通过这次设计,我知道了理论和实际的距离,也知道了理论和实际相结合的重要性,也从中获得了很多书本上无法得知的知识。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和
29、解决问题的能力。致 谢此设计是在我敬爱的徐忠根老师的精心指导下完成的。徐老师严谨的教学作风和孜孜不倦的工作态度一直激励着我,使我在学习中遇到困难时能尽最大努力克服,不断进步,在理论和实践方面的能力都获得了很大的提高。在此谨向我的导师徐忠根老师致以崇高的敬意和衷心的感谢。四年大学生活中,老师们给了我很多指导和支持。他们严谨的治学,优良的作风和敬业的态度,为我树立了为人师表的典范。在此,我对所有的信电学院的老师表示感谢,祝你们身体健康,工作顺利!参考文献1 牛昱光. 单片机原理与接口技术M. 北京:电子工业出版社,2008. 2 蒋力培. 单片机微机系统实用教程M.北京:机械工业出版社, 2007
30、. 3 孙逸洁,巩恩福,万琰.单片机实验演练箱的设计J.漯河职业技术学院学报,2007. 4 俞时.单片机集成仿真系统的开发.中国纺织大学学报J.Vol.25,No.6:3337 5 赵克刚,易帝文,张治强,万为.单片机仿真实验平台设计实践J.科技咨询导报.2007. 6 王为青,程国钢.单片机KeilCx5应用开发技术M.北京:人民邮电出版社,2007. 7 徐玮.经济型51仿真器J.电子制作2004年第8期.8 贾巍.单片机仿真开发软件的应用M.中国水运,2007. 9 林益平.基于SST89E54RD单片机的MONITOR-51仿真器设计J. 肇庆学院学报.2008. 10荣霞, 谭宝成
31、,倪原,张荷芳.MCS 51 /96 单片机教学实验装置的研制J.西安工业学院.2006.附录程序设计硬件连接:数码管:段码为:P1 位码分别为:P2.5P2.0蜂鸣器:P2.7功能键k1:P3.4加建k2:P3.5减键k3:P3.6 */#include /51头文件sbit smg1=P25;/位码1声明sbit smg2=P24;/位码2声明sbit smg3=P23;/位码3声明sbit smg4=P22;/位码4声明sbit smg5=P21;/位码5声明sbit smg6=P20;/位码6声明sbit k1=P34; /按键k1的声明sbit k2=P35; /按键k2的声明sbi
32、t k3=P36; /按键k3的声明sbit beep=P27;/蜂鸣器声明/*定义一些变量*/char d=0,e=0,a=0,b=0,n=0,shi=12,fen=0,miao=0,b_shi=6,b_fen=30,b_miao=0;char code table=/共阳级数码管码表0-90xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void init();/初始化函数声明void delay(int z); /带参数延时函数声明void display(char s,f,m);/带参数显示函数声明void key();/按键控制函数声
33、明void main()/主函数init();/调用初始化函数while(1)/主函数内大循环if(d=0)key(); /如果d=0则扫描按键函数if(shi=b_shi&fen=b_fen)/如果闹铃时间到 就蜂鸣器响if(d=1&!(k1&k2&k3)/ 任意按键按下关闭铃声e=1; /关闭闹铃标志位ed=0; /屏蔽按键函数标志位dif(e=0)/关闭铃声d=1; /屏蔽按键函数beep=0;/蜂鸣器鸣叫delay(10); /延时一会beep=1;/关闭蜂鸣器if(n=0|n=1|n=2)/如果处在功能键的0、1、2三个中的某个状态display(shi,fen,miao);/调用显
34、示时钟if(n=3|n=4)/如果处在功能键的3、4中的某个状态display(b_shi,b_fen,b_miao);/调用显示闹铃时间void init()/初始化函数IE=0X8a;/1000 1010TMOD=0X01; /0001 0001选择定时器0的工作方式1选择定时器1的工作方式1TH0=(65536-50000)/256;/初值15536TL0=(65536-50000)%256;TR0=1; /开启定时器0TH1=(65536-50000)/256;/初值15536TL1=(65536-50000)%256;TR1=1; /开启定时器1void timer0() inter
35、rupt1 /定时器0中断服务程序TH0=(65536-50000)/256;/进入中断重新赋初值15536TL0=(65536-50000)%256;/计数5万次(50毫秒)a+;/每进一次中断a加一if(a=20) /如果进入20次中断,正好一秒a=0; /a到20 就清零miao+;/a每计20次,秒加一if(miao=60) /秒到达60秒后清零,分加一miao=0;fen+;e=0;/闹铃标志位清零if(fen=60)/分到达60后清零,时加一fen=0;shi+;if(shi=24) /时到达24后清零shi=0;void timer1() interrupt3 /定时器1中断服务
36、程序,用来设置光标闪烁频率TH1=(65536-50000)/256;/进入中断重新赋初值15536TL1=(65536-50000)%256;/计数5万次(50毫秒)b+; /标志位b,用来确定光标闪烁频率if(b=20) b=0;/b=20 时被清零void display(char s,f,m)/带参数的显示函数,参数为s f msmg1=0;/打开数码管1位选P1=tables/10;/给数码管1赋值,值为小时的十位delay(1); /延时smg1=1; /关闭数码管1位选P1=0Xff; /关闭数码管1段选if(b10&(n=1|n=3)/在1,3状态下,b10时,关闭数码管2 s
37、mg2=1; P1=0Xff;else /其他状态下,数码管2正常显示smg2=0;/打开数码管2位选P1=tables%10;/给数码管2赋值,值为小时的个位delay(1);/延时smg2=1; /关闭数码管2位选P1=0Xff; /关闭数码管2段选smg3=0;/打开数码管3位选P1=tablef/10;/给数码管3赋值,值为分钟的十位delay(1); /延时smg3=1; /关闭数码管3位选P1=0Xff;/关闭数码管3段选if(b10&(n=2|n=4) /在2,4状态下,b0;x-) /循环110*z次空函数for(y=110;y0;y-);void key() /按键控制函数i
38、f(k1=0) /功能键k1被按下delay(5);/消抖延时if(k1=0)n+;/n记录功能键状态if(n4) n=0; /n清零while(k1=0);/等待松手if(n=0)/状态0,TR0=1;/定时器打开状态if(n=1)/状态1TR0=0;/关闭定时器0if(k2=0) /k2被按下delay(5);/消抖延时if(k2=0)shi+;/小时加一if(shi=24)shi=0;/达到24清零while(k2=0);/等待松手if(k3=0) /k3被按下delay(5); /消抖延时if(k3=0)shi-; /小时减一if(shi0)shi=23;/小于0,重新复制while(
39、k3=0);/等待松手if(n=2)/状态2TR0=0; /关闭定时器0 if(k2=0) /k2被按下delay(5);/消抖延时if(k2=0)fen+;/分加一if(fen=60)fen=0;/分到达60 分清零while(k2=0);/等待松手if(k3=0) /k3被按下delay(5);/消抖延时if(k3=0)fen-;/分减一if(fen0)fen=59;/分小于0,分重新赋值59while(k3=0);/等待松手if(n=3)/状态三TR0=1;/开启定时器if(k2=0) /k2被按下delay(5);/消抖延时if(k2=0)b_shi+;/闹铃时间加一if(b_shi=24)b_shi=0;/闹铃时间while(k2=0);/等待松手if(k3=0) /k3被按下delay(5);/消抖延时if(k3=0)b_shi-;/闹铃时间减一if(b_shi0)b_shi=23;/闹铃时间while(k3=0);/等待松手if(n=4)/状态四TR0=1;/关闭定时器0if(k2=0) /k2被按下delay(5);/消抖延时if(k2=0)b_fen+;/闹铃时间分加一if(b