单片机数字钟课程设计_第1页
单片机数字钟课程设计_第2页
单片机数字钟课程设计_第3页
单片机数字钟课程设计_第4页
单片机数字钟课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告书题目: 数 字 钟 课 程: 专 业: 班 级:学 号: 学生姓名:指导教师:年 月 日 课程设计任务书学 号学生姓名专业(班级)设计题目 可 调 式 的 数 字 钟设计技术参数设计要求 要求时钟能正常的显示时间,并且可以调节时间,同时可以设置闹钟,到设定的时间闹钟要能响,达到目的要求。参考资料张毅刚,彭喜元,彭宇. 单片机原理及应用(第二版)高建国. proteus仿真软件应用N.武汉:华中科技大学出版社郭天祥. 51单片机C语言教程康华光.电子技术基础数字部分(第五版) 2013年12 月 24日 学生姓名: 学号: 专业(班级): 课程设计题目: 可 调 式 的 数 字 钟

2、 成绩: 指导教师: 年 月 日信息工程系课程设计成绩评定表摘 要数字钟是现在运用非常广泛的一类电子器件,掌握电子钟的设计对学习电子技术专业的人来说意义重大。本设计以AT89C51单片机为核心控制元件,用八段数码管和和按键结合,在应用C语言来实现可调节的电子时钟。本次设计运用了KEIL和protues仿真软件来进行调试,并给出了完整的设计电路和KEIL程序代码,并画出了编程的逻辑流程图。通过调试和运行,最终完成了一个完整的电路仿真,其功能是实现时间并且都能进行相应的调整,同时还能进行闹铃的设置并在达到预定的时间时闹铃。关键词: AT89C51单片机 、 数码管 、时钟 28目 录摘 要51 任

3、务提出与方案论证71.1 时钟电路71.2 论证82 总体设计82.1 硬件电路92.2 程序流程图103 详细设计及仿真103.1器件原理结构111、AT89C51单片机112、LED数码管143、独立键盘154、蜂鸣器165、74H573163.2硬件电路171复位电路172时钟电路183按键电路184数码管显示193.3仿真电路204 总结28参考文献29 1 任务提出与方案论证在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价

4、格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。 随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的

5、产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。数字钟是现在运用非常广泛的一类生活实用工具,同时数字钟又是一种非常基本的电子器件,对其熟练的掌握是电子技术专业的基本要求。时钟的设计有许多种方法,有模拟电路的时钟,有数字时钟,由于数字时钟的简洁性与实用性,本设计采用数字电路设计的时钟。单片机是电子器件中使用非常广泛的一种芯片,由于单片机体积小,很容易嵌入到系统之中,以实现各种方法的检测、计算或控制等优点,因此以单片机为核心的嵌入式控制系统在许多领域中得到了广泛的应用。本设计以单片机为核心,运用KILL软件来写入时钟的程序,并在仿真proteus平台上进行检测。在显示时钟时间方面有

6、LED、LCD显示,由于时钟显示时间的特点,采用LED较为简洁,实验程序也相对较为简单,便于我们设计操作,减少了一定的程序量。LED数码管显示时间,有六段数码管,八段数码管都可以达到设计的要求与目的,但从生活中便于观看时间来说,八段数码管效果更好,故采用八段数码管来显示时间。1.1 时钟电路通过分析时钟电路的特点与结合自己的单片机编写程序的水平,决定采用用一块51单片机两块74HC573锁存器加一个八段数码管构成主要的时钟显示电路,再用三个按钮连接在51单片机上作为调节时钟的按键,接一个蜂鸣器作为闹钟,如此就构成了简要的时钟电路,此时单片机没有外接晶振产生时钟脉冲,而是利用其内部的定时器/计数

7、器来此功能,可以减少电路的复杂性。通过学习与查找相关的资料得出的时钟电路大致就是如此,可以完成实验要求。1.2 论证在实际过程中论证的方法很多,但是实践是论证的最好途径,本次设计中由于时间有限,没能做出真正的实物电子钟,但是通过仿真proteus平台同样可以达到论证此次方案正确与错误的目的,在kill上编写单片机时钟程序并不断调试并在仿真中显示来观看效果,通过不断地调试与修改,直到达到了最佳的效果时,才保存程序。此时方案就得到了有效的论证,在仿真平台上准确无误时,再做出实物也应该不会出现一些大的问题,当然实物与仿真是有一定的差别的,但是仿真为实物操作提供了保障。2 总体设计选用AT89C5单片

8、机与LED八位数码管与独立键盘、蜂鸣器等构成硬件电路组成可调式的时钟。总体设计电路图如下所示2.1 硬件电路硬件电路中是以51单片机为核心来搭建的电路,其余各个部件都需要接入51单片机中,单片机对其实现综合控制。51单片机数码管按键蜂鸣器图2-1 控制电路如图2-1所示,单片机为核心。硬件电路所需使用的器件如下表所示表2-1 单片机蜂鸣器数码管锁存器排阻、按键AT89C51有源电压式蜂鸣器八段共阴极数码管74HC5732.2 程序流程图根据所设计的硬件电路构造了程序流程图,便于编程实现时钟电路的相关功能,其程序流程图如下所示。 3 详细设计及仿真对硬件电路中的一些器件进行说明,阐述其结构原理及

9、工作特点。运用proteus仿真软件做出设计电路的仿真,并检测是否达到要求。3.1器件原理结构1、AT89C51单片机单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。 单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称

10、为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。 本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。 20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。这些厂家生产的芯片是MCS-51系列的

11、兼容产品,准确地说是与MCS-51指令系统兼容的单片机。这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。其功能和市场竞争力更强,不该把它们直接称呼为MCS-51系列单片机,因为MCS只是Intel公司专用的单片机系列型号。MCS-51系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。本设计采用 A

12、tmel公司生产的单片机AT89C51实现主要功能, AT89C51 的引脚图如2-1所示: 图2-1 单片机的引脚 各引脚功能情况为:(1) Vcc:供电电压。 (2) GND:接地。 (3) P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。(4) P1口:P1口是一个内部提供的上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。(5) P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器

13、可接收,输出4TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。(6) P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口功能引脚简介: P3.0:RXD(串行口输入) P3.1:TXD(串行口输出) P3.

14、2:INT0(外部中断0) P3.3:INT1(外部中断1) P3.4:T0(定时器0外部脉冲输入) P3.5:T1(定时器1外部脉冲输入) P3.6:WR(外部数据存储器写选通) P3.7:RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 (7) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 (8) ALE/RPOG:当访问外部存储器时,地址锁存允许的输出电平由于锁存地址的地位字节。 (9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的 /P

15、SEN信号将不出现。 (10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。(11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 (12)XTAL2:来自反向振荡器的输出。单片机硬件结构如下2、LED数码管数码管显示器内部由7个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见LED的管脚排列如图1中c所示。根据内部发光二极管的接线形式,可分成共阴极型和共阳极性,如图2-2中a、b所示。LED数码管

16、的g-a,dp8个发光二极管因不同亮暗的组合就能形成不同的字形,这种组合称为字形码。共阳极和共阴极的字形码是不同的。afbegcddp1 2 3 4 510 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置图 LED显示器图2-2 LED数码管显示器点亮LED显示器分为静态和动态两种显示方法,为了节省I/O口的使用,本设计采用的是动态显示,其工作原理为:采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象。将所有LED的段选线并联在一起,由一个八位IO口控制,而位选线分别由相应的IO口线控制。如:8位L

17、ED动态显示电路只需要两个八位IO口。其中一个控制段选码,另一个控制位选。动态显示器电路如图2-3所示。图2-3 八位LED动态显示电路本设计中采用八段共阴极数码管,3、独立键盘利用3个自复式常开按钮开关作为功能键,K1k3分别为设置、调时、闹铃。常见的键盘有两种结构:独立式键盘与矩阵式键盘。独立式键盘其特点是一键一线,各键相互独立,每个按键接一条I/O口线,通过检测I/O输入线的电平状态,可以很容易地判断那个按键被按下,一般来说设计的按键较少时采用独立式键盘比较好。矩阵式键盘也称行列式键盘,用于按键数目较多的场合。它由行线和列线组成,一组为行线,另一组为列线,按键位于行列的交叉点上。本实验中

18、由于所涉及的按键较少,所以采用独立式键盘较好。按键消除抖动一直是设计过程中需要注意的问题,如不能消除抖动问题,按键的效果会出现较大的问题。常采用的按键去抖动的方法有两种,一种是用软件延时来消除按键抖动,基本思想是:在检测到有按键按下时,该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有按键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10ms的子程序后,检测该行线为高电平,说明按键确实已经松开。另一种方法是采用专用的键盘/显示器接口芯片,这类芯片中都有自动去抖动的硬件电路。本设计中采用软件延时的方法,可减少硬件电路

19、的复杂性。4、蜂鸣器蜂鸣器是单片机设计中经常用到的一类发声器件,它是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中做发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两类。压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶

20、瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。本设计中采用压电式蜂鸣器,直接由单片机驱动来发声作为闹钟。5、74H573 74HC573是一款高速CMOS器件,74HC573引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC573包含八路D 型透明锁存器,每个锁存器具有独立的D 型输入,以及适用于面向总线的应用的三态输出。所有锁存器共用一个锁存使能(LE)端和一个输

21、出使能(OE)端。当LE为高时,数据从Dn输入到锁存器,在此条件下,锁存器进入透明模式,也就是说,锁存器的输出状态将会随着对应的D输入每次的变化而改变。当LE为低时,锁存器将存储D输入上的信息一段就绪时间,直到LE的下降沿来临。当OE为低时,8个锁存器的内容可被正常输出;当OE为高时,输出进入高阻态。OE端的操作不会影响锁存器的状态。 74HC573的引脚图如下图74HC573与74LS373原理一样,8数据锁存器。主要用于数码管、按键等的控制,只不过74HC573主要用于八段数码管的地址锁存,而74LS373则用于六段数码管的地址锁存。3.2硬件电路1复位电路51单片机的复位是由外部的复位电

22、路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。 上电复位:上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。 电路图如下: 上电自动复位是通过外部复

23、位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。2时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。 电路图如下: MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。 本设计采用的是单片机内部

24、的定时器/计数器来完成时钟电路的,所以外部没有接晶振来产生时钟脉冲。3按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。按键电路图如下: 这些常开开关组成了电子时钟的功能按键,硬件电路简单,在程序设

25、计上也不复杂,只要在程序中消除在按键过程中进行“消抖”就可以了。这里采用最常用的方法即延时法,其原理为:当单片机检测到有按键动静后再延时一段时间后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。4数码管显示数码管显示器成本低,配置灵活,与单片机接口简单,在单片机应用系统中广泛应用。 1.数码管的工作原理 数码管是由8个发光二极管构成的显示器件。在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。本文用到的8个数码管均是共阴极的。当发光二极管导通时,它就会发光。每个二极管就是一个笔划,若干个二极管发光时,就构成了一个显示字符。将单片机的I

26、/O口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由I/O口输出不同的代码,就可以控制数码管显示不同的字符。本文的6个数码管均采用动态显示方式,显示当前的时间。整个显示电路应用了2个164芯片,1个244芯片。第一个164芯片把从单片机传出的串行数据转换成并行数据。164只能存储8位数据,因此,当单片机输出第9-14位数据的时候,第一个164芯片中的8位数据就被传到第二个164芯片中,这8位数据就是段选信号,控制数码管将要显示的字符。第9-14位数据输出后,控制244芯片的单片机的P1.7口置为高电平,244芯片选通。这六位数据经过244芯片以后是片选信号,即控制动

27、态显示的是哪一位数码管。在片选信号和段选信号的控制下,数码管就正确的动态显示当前的时间。 数码管显示如下3.3仿真电路运用proteus仿真软件对设计的可调式的时钟进行仿真及测试。Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器

28、等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。仿真电路图如下。 仿真电路中K1为设置按钮,K2为调时按钮,K3为闹钟按钮。按

29、下K2显示时间时,再按K1可对时间进行设置。按下K3显示的是闹钟时间,再按下K1又可对闹钟时间进行设置。经过仿真测试表明此设计结果正确无误,能显示出时间并且可以调节,闹钟功能也能实现。仿真中用到的器件有AT89C51、74HC573、BUTTON 、7SEG-MPX8-CC-BLUE、SOUNDER、RES 、POWER、 GROUND。其中7SEG-MPX8-CC-BLUE为排阻,在数码管与单片机之间接入排阻作用有两点:1是因为单片机I/O口驱动能力有限,采用上拉排阻可以提高单片机的驱动能力;2是限流作用,由于数码管本质上是发光二极管,限流就是为了避免因电流过大而烧毁数码管。仿真程序如下:#

30、include <reg52.h>#define uint unsigned int#define uchar unsigned charuint numwe,tt,t,numdu,set,aclock,rili;unsigned long int time,time1=0;unsigned long int second,minute,hour,year=2012,month=12,day=31;uchar code du=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7

31、1;uchar code we=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar YMth13=0,2,9,2,1,2,1,2,2,1,2,1,2;sbit dula=P20;sbit wela=P21;sbit KEY0=P32;sbit KEY1=P31;sbit KEY2=P30;sbit KEY3=P33;sbit beep=P22;void Delay(uint del);void Display(uint sd,uint mm,uint hy);void add();/加一void alarmclock();void init();int

32、clock();void Calender();void main()P2=0xff;init();while(1)add();if(rili=1)Display(day,month,year);elseDisplay(second,minute,hour);alarmclock();void Display(uint sd,uint mm,uint hy)int y0,y1,y2;if(rili=1)y0=hy/1000,y1=hy%1000;y2=hy%100;for(numwe=0;numwe<8;numwe+)P0=0xff;wela=1;P0=wenumwe;wela=0;P0

33、=0xff;dula=1;switch(numwe)case 0:P0=(tt=1&set=1)?0x00:(rili=1)?duy0:duhy/10;break;case 1:P0=(tt=1&set=2)?0x00:(rili=1)?duy1/100:duhy%10;break;case 2:P0=(rili!=1)?0x40:(tt=1&set=3)?0x00:duy2/10;break;case 3:P0=(tt=1&set=4)?0x00:(rili=1)?duhy%10+0x80:dumm/10;break;case 4:P0=(tt=1&s

34、et=5)?0x00:(rili=1)?dumm/10:dumm%10;break;case 5:P0=(rili!=1)?0x40:(tt=1&set=6)?0x00:dumm%10+0x80;break;case 6:P0=(tt=1&set=7)?0x00:dusd/10;break;case 7:P0=(tt=1&set=8)?0x00:dusd%10;break;dula=0;Delay(5);void init()wela=0;dula=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;IE=0x

35、8f;TCON=0x15;int clock()if(t=10|t=20) tt=!tt;if(t=20)t=0;if(!(set!=0&aclock=0)time+;if(time>=time1&time<time1+60)beep=0;elsebeep=1;Calender();if(aclock=0)second=time%60;minute=(time%3600)/60;hour=time/3600;if(hour=24)time=0;hour=0;elsesecond=time1%60;minute=(time1%3600)/60;hour=time1/3

36、600;if(hour=24)time=0;hour=0;void Delay(uint del)uint i,j;for(i=0; i<del; i+)for(j=0; j<100; j+);void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;t+;clock();void settime() interrupt 0/it0if(KEY0=0)Delay(2);if(KEY0=0)if(rili!=1)if(set=2|set=5) set=set+2; else set+;elseset+;i

37、f(set=9)set=0;t=0;/while(!KEY0);void calendar() interrupt 2if(KEY3=0) Delay(2);if(KEY3=0)rili=!rili;set=0;aclock=0;void Calender()/if(time=86400)day+;if(year%4=0&year%100!=0)|(year%400=0) Mth2=29; else Mth2=28;if(day>Mthmonth)day=1;month+;if(month>12)month=1;year+;void add()int ge,ge1,ge2,

38、shi,shi1,shi2,bai2,qian2;if(rili=1)ge=day%10;ge1=month%10;ge2=year%10;shi=day/10;shi1=month/10;shi2=year%100/10;bai2=year%1000/100;qian2=year/1000;elsege=second%10;ge1=minute%10;ge2=hour%10;shi=second/10;shi1=minute/10;shi2=hour/10;if(KEY1=0)Delay(2);if(KEY1=0)if(rili=1)if(year%4=0&year%100!=0)|

39、(year%400=0) YMth2=10; else YMth2=9;switch(set)case 1:qian2=(qian2+1)%10;break;case 2:bai2=(bai2+1)%10;break;case 3:shi2=(shi2+1)%10;break;case 4:ge2=(ge2+1)%10;break;case 5:shi1=(shi1+1)%2;break;case 6:ge1=(shi1=1)?(ge1+1)%3:(ge1+1)%10;break;case 7:shi=(month=2)?(shi+1)%3:(shi+1)%4;break;case 8:ge=

40、(shi=3)?(ge+1)%YMthmonth:(month=2)?(ge+1)%YMth2:(ge+1)%10;break;year=qian2*1000+bai2*100+shi2*10+ge2;month=shi1*10+ge1;day=shi*10+ge;elseswitch(set)case 1: shi2=(shi2+1)%3;break;case 2: ge2=(ge2+1)%4;break;case 4: shi1=(shi1+1)%6;break;case 5: ge1=(ge1+1)%10;break;case 7: shi=(shi+1)%6;break;case 8: ge=(ge+1)%10;break;second=sh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论