多动能六位电子钟设计方案_第1页
多动能六位电子钟设计方案_第2页
多动能六位电子钟设计方案_第3页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、多动能六位电子钟设计方案第一章 数字电子钟的设计方案论证1.1 数字电子钟的应用意义数字电子钟是用数字电路实现“时” 、“分”、“秒”数字显示的计时装置,主要 由振荡器、分频器、计数器、译码显示器、校时电路、报时电路等六部分组成。这 些都是数字电路中应用最广的基本电路。数字电子钟具有计时准确的功能。1.2 数字电子钟设计的要求及技术指标1. 设计数字电子钟实现准确计时,由六位数码管分别显示时 、“分”、“秒”;附加 “星期”数码 1 位显示。2. 时与分与秒数字显示模块间各设置一对不同颜色发光二极管,时间单位数字变化 时闪烁一次。3计时误差不超过 0.05 秒。 4具有整点报时、手动设置修改时

2、间功能控制功能。1.3 设计方案论证石英晶体振荡器产生的时脉冲送到分频器,分频电路将时标信号分成每秒一次 的方波信号。秒脉冲发生器产生频率稳定很高的秒脉冲,秒脉冲被送到一个六十进 制秒计数器计数,将计数结果送至秒个位和十位译码器,译码结果分别由两只七段 半导体数码管以十进制数形式显示来。 当秒六十进制计数器累计到第 59 秒时,若再 来一个秒脉冲,秒计数器的进位输出就产生进位脉冲(分计数脉冲) ,同时,秒计数 器的十位和个位都复位到零。分计数脉冲又被送到分六十进制计数器计数,经译码 电路译码后数码管显示相应的分数。当计满 59分 59秒时,若再来一个秒脉冲,则 分计数器便向时计数器送出时计数脉

3、冲,同时,分、秒计数器均复位到零。时计数 器是一个二十四进制计数器,当计数显示 23时59分 59秒时,若再来一个秒脉冲, 则时、分、秒计数器都应回到零,并显示( 00 00 00 )表示已到达午夜零点,第二 天开始继续计数第二章设计任务2.1设计题目及要求AT89C205侈功能六位电子钟设计制作一个多功能六位电子钟。1、准时计时,数字形式显示时、分、秒的时间;2、小时的计时要求为12翻1”分和秒的计时要求为60秒进位;3、校正时间。2.2主体电路逻辑主体电路图C2R1 10KC1 10uFI - +5VU1RSTC3 12MHzL1 9GND原理方框图如图(2.2.1):AT89C2051(

4、RXD)P3.0 (TXD)P3.1 XTAL2XTAL1(INT0)P3.2(INT1)P3.3(T0)P3.4(T1)P3.5GND+ 5VVccR3R9 220P1.4P1.3P1.7P1.6P1.5P1.2 .1(AIN1) .0(AIN0)P3.7+ 5V+ 5V+5VR111KQ29012Q3 J9012+ 5VLED1 5小寸D1LEDLED2分钟D3LEDR14+5VQ69012Q79012LED3 5秒中R151Kf-e dc e d cpdp dpd e c b a f gMED2LEDfVbfTb ed ce d c p dp dp d e c b a f gD4LEDf

5、Tb f;b e dc e d cJ2GNDJ3oOUT6.1KQ19012U317KR182KJ1U278L05+ 5VECPOWERfc-C4I 104VinDNGVoutC5104C6100uFGND图()六位电子钟原理方框图显示电路原理显示部分主要器件为3只两位一体共阳极数码管,驱动采用PNP型三极管驱动,各端口配有限流电阻,驱动方式为动态扫描,占用P3.0P3.5端口,段码由P1.0P1.6 输出。冒号部分采用4个3.0的红色发光二极管,驱动方式为独立端口P1.7驱动。IIIUI亠 2Q8021A图(2.2.2-1)共阳极 LED数码管的内部结构原理图LED数码管要正常显示,就要用驱

6、动电路来驱动数码管的各个段码,从而显示出我 们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。1. 静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简 单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要 5X 8 = 40 根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必 须增加*驱动器进行驱动,增加了硬体电路的复杂性。2. 动态显示驱动:数码管动态显示介面是单片机中应用最为广泛的一种显示方式之

7、一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形, 取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通 控制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就 是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms由于人的视觉暂 留现象及发光二极体的余辉效应,尽管实际上各

8、位数码管并非同时点亮,但只要扫描的 速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和 静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。图数码管显示键盘原理:如下图;按键S1S3采用复用的方式与显示部分的 P3.5、P3.4、P3.2 口复用。其工 作方式为,在相应端口输出高电平时读取按键的状态并由单片机消除抖动并赋予相应的 键值。GNL图()键盘原理图计算:由于LED数码管典型静态电流为10mA左右,如果不接上拉电阻的话,电流将会过大烧坏数码管,所以要加上拉电阻,经计算电阻值需R=10V/10mA=100欧姆=1K迅响电路及输入、输出电路原理如下图示;迅响电

9、路由有源蜂鸣器和PNP型三极管组成。其工作原理是当PNP型三极管导通后有源蜂鸣器立即发出定频声响。驱动方式为独立端口驱动,占用P3.7 端口。输出电路是与迅响电路复合作用的,其电路结构为有源蜂鸣器,5.1K定值电图() 迅响电路及输入、输出电路原理阻R6,排针J3并联。当有源蜂鸣器无迅响时J3输出低电平,当有源蜂鸣器发出声响时 J3输出高电平,J3可接入数字电路等各种需要。驱动方式为迅响复合输出,不占端口。输入电路是与迅响电路复合作用的,其电路结构是在迅响电路的PNP型三极管的基极电路中接入排针J2。引脚排针可改变单片机I/O 口的电平状态,从而达到输入的 目的。驱动方式为复合端口驱动,占用

10、P3.7端口。本产品采用了单片机AT89C205伪核心器件,并配合所有的外围电路,具有上电 复位的功能,无手动复位功能。计算:蜂鸣器的驱动电流一般为20-42mA从IO 口输出接限流电阻R1,然后接 PNP三极管基极,集电极接蜂鸣器一端,另一端接地,发射结接 VCC如果电流不是很 大的话,R1取 1k,经计算,另一端可接一电阻5.1k1ST -21 20皿D) R3.0 一一 PL7(TO) R3.1 一一 PL6XIX2 -PL5XDL1 -AI89Q051一 PL40NIQ)P3l2 -PL30NIl)Ri3 -PL2(RM4 一 PL1(M)(n)ra.5 -ploM(N)-10 11P

11、!i7图(2.2.4-2)图(2.2.4-1)表()管脚功能P3 口引脚功能P3.0P3.1P3.2P3.3P3.4P3.5RXD串行输入端口)TXD(串行输出端口)INT0(外中断0)INT1(外中断1)TO(定时器0外部输入)T1(定时器1外部输入)AT89C2051是一带有2K字节闪速可编程可擦除只读存储体(EEPROM的低电压,高性 能8位CMO微型计算机。如图10.2所示。它采用ATMEL勺高密非易失存储技术制造并 和工业标准MC51指令集和引脚结构兼容。通过在单块芯片上组合通用的CPL1和闪速存储器,ATMEL AT89C205是一强劲的微型计算机,它对许多嵌入式控制应用提供一高

12、度灵活和成本低的解决办法。译码显示单元电路的介绍图()译码显示电路译码电路的功能是将秒、分、时计数器的输出代码进行翻译,变成相应的数字。用与驱动LED七段数码管的译码器常用的有 74LS4&74LS48是BCD-7段译码器/驱动器, 输出高电平有效,专用于驱动LED七段共阴极显示数码管。若将秒、分、时计数器的每 位输出分别送到相应七段译吗管的输入端,便可以进行不同数字的显示。在译码管输出 与数码管之间串联电阻R作为限流电阻。校时电路原理校时电路是数字钟不可缺少的部分,每当数字钟与实际时间不符时,需要根据标准时间进行校时。K1、K2分别是时校正、分校正开关。不校正时,K1、K2开关是闭和的。当校

13、正时位时,需要把K1开关打开,然后用手拨动K3开关,来回拨动一次,就能使时 位增加1,根据需要去拨动开关的次数,校正完毕后把K1开关闭上。校正分位时和校正 时位的方法一样。其电路图如下:至时个位计数器至分个位计数器JL&1&校时脉冲 1分十位 进位脉冲秒十位 进位脉冲3.3k+ 5V .S23图226(校时电路)第三章设计方案3.1总体设计方案说明AT89C2051是美国ATME公司生产的低电压、高性能 CM08位单片机,片内含2k bytes的可反复擦写的只读程序存储器 (PERO)和128bytes的随机数据存储器(RAM, 器件采用ATME公司的高密度、非易失性存储技术生产,兼容标准MC

14、S-51旨令系统,片内置通用8位中央处理器和Flash存储单元,AT89C2051单片机在电子类产品中有广泛的应用图(3.1 )总体设计说明数字电子钟是用数字电路实现“时” 、“分”、“秒”数字显示的计时装置,主要由振 荡器、分频器、计数器、译码显示器、校时电路等部分组成。而数字钟想准确的计时则 是由振荡器产生的时脉冲送到分频器,分频电路将时标信号分成每秒一次的方波信号。 秒脉冲发生器产生频率稳定很高的秒脉冲,秒脉冲被送到一个六十进制秒计数器计数, 将计数结果送至秒个位和十位译码器, 译码结果分别由两只七段数码管以十进制数形式 显示来。当秒六十进制计数器累计到第 59 秒时,若再来一个秒脉冲,

15、秒计数器的进位 输出就产生进位脉冲(分计数脉冲),同时,秒计数器的十位和个位都复位到零。分计 数脉冲又被送到分六十进制计数器计数,经译码电路译码后数码管显示相应的分数。当 计满 59分 59 秒时,若再来一个秒脉冲,则分计数器便向时计数器送出时计数脉冲,同 时,分、秒计数器均复位到零。时计数器是一个二十四进制计数器,当计数显示 23 时 59分59秒时,若再来一个秒脉冲, 则时、分、秒计数器都应回到零, 并显示(00:00:00 ) 表示已到达午夜零点,第二天开始继续计数。其主要的功能模块如图 2-1 所示。3.2 功能使用说明1 、功能按键说明:S1为功能选择按键,S2为功能扩展按键,S3为

16、数值加一按键。2、功能及操作说明:操作时,连续短时间(小于1秒)按动S1,即可在以上的6个功能中连续循环。 中途如果长按(大于2秒)S1,则立即回到时钟功能的状态。1)时钟功能:上电后即显示 1 0: 1 0:00 ,寓意十全十美。2)校时功能:短按一次 S1 ,即当前时间和冒号为闪烁状态,按动 S2 则小时位加 1,按动 S3 则分钟位加 1,秒时不可调。3 )闹钟功能:短按二次 S1,显示状态为22: 10: 00,冒号为长亮。按动S2刚小 时位加1,按动S3则分钟位加1,秒时不可调。当按动小时位超过 23时则会显示-: - : - ,这个表示关闭闹钟功能。闹铃声为蜂鸣器长鸣 3秒钟。4

17、)倒计时功能:短按三次 S1,显示状态为0,冒号为长灭。按动S2则从低位依此 显示高位,按动S3则相应位加1,当S2按到第6次时会在所设定的时间状态下开始倒 计时,再次按动S2将再次进入调整功能,并且停止倒计时。5 )秒表功能:短按四次S1,显示状态为00 : 00: 00,冒号为长亮。按动S2则开 始秒表计时,再次按动S2则停止计时,当停止计时的时候按动 S3则秒表清零。6 )计数器功能:短按五次 S1,显示状态为00: 00: 00,冒号为长灭,按动S2则计 数器加1,按动S3则计数器清零。3.3 模块结构与方框图如图(3.3)图(3.3 )软件系统结构方框图3.4复位电路原理AT89C2

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

19、 I图3.4复位电路电容充电时间的计算:设Vo为电容初始电压值,Vi为电容最终可充到或放到的电压值, Vt为t时刻电容上的 电压值。则 Vt VO (V, VO)?1 e tRC ,求充电到 90% Vcc 的时间(V。=0, Vi =Vcc,Vt 0.9Vcc):ttt/代入上式:0.9Vcc 0 Vcc? 1 e RC , 1 e RC 0.9, e RC 0.1, 1RC In(0.1) tRC In 10 , t 2.3RC,代入 R 10K,C 10uF 得:t 230ms, 12MHz的单片机的机器 周期为1us,所以能可靠复位。上电自动复位是通过外部复位电路的电容充电来实现的。只

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

21、构成一个稳定的自激振荡器。第四章软件设计与安装调试4.1软件任务与安装调试软件流程与任务软件任务分析软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了9软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大 类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出 控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在 系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设 计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模

22、块一一列出,并为每一个执行模块进行功能定义和 接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据 类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种 最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程 序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实 时性要求不是太高,延误几十 ms甚至几百ms也没关系,故通常将监控程序(键盘解释

23、 程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程 序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。软件流程图允许丁 CJ中斷、%/程序里先定义两个中断定时器 TO和T1, 一个作为秒记数用,另一个做为调整时闪烁 用。编程时先将P1和P3 口数据清零,然后P1和P3 口作动态扫描显示,由于人的眼睛有延迟性,当扫描频率非常高时人就感觉数码管一直亮着,而同时记数器在遵循时间的变化方式执行着秒到了60分加一,分到了 60小时加一,小时到了 24就归零。P3.7作为时

24、间调整按钮当长按按住 2秒以上进入校准时间状态及换档和退出,快速点触用于调节时间数值,归零是复位按钮。安装与调试安装、焊接元件到电路板上按照先低后高,先小后大,先卧式后立式的顺序,正确插入元件,其高低、极性要 符合规定。1. 先从最低元件安装。应先安装、焊接跳线机及电阻,用电阻多余的脚做跳线,电阻 引脚不分正负,焊接时间最好控制在 2-3秒。2. 安装、焊接瓷片电容。瓷片电容部分正负极。3. 安装、焊接轻触开关4. 安装、焊接三极管。三极管的外形基本一样,注意分青,且方向要和电路板上的方向一致。5. 安装、焊接12MHZ晶振。晶振没有正负极。6. 安装、焊接电解电容,装的时候要躺着安装,立着会

25、影响发光二极管的显示不整齐。7. 安装、焊接20脚IC插座,从用一小缺口或小圆点标记的地方以逆时针数依次为1-20脚,安装时要注意缺口和电路上的缺口相一致。20只引脚都插到位后,先用手指按住,固定对角两只引脚,防止插入的引脚掉出来,再把板放到桌面上把剩下的引脚焊好。焊好后不要急于插入单片机芯片,因为还有其他元件焊接,防止电烙铁带静电击坏单片机-H- UL心片。8. 安装、焊接蜂鸣器。9. 安装、焊接LED LED和普通二极管一样,有正负极之分,不能装错。 安装、焊接数码管。认识数码管内部结构。表()原件清单表序号名称规格位号数量序号名称规格位号数量单片机AT89C2051U1901211132

26、207三端集成稳U22压78L05红色0.4寸LED1 114三极管1KQ1 Q7733152K72位共阳数红色0 3LED3R3 R94D1 D4416电阻5.1KR2、R10-2码管5V有源5117按键10K16发光二极管 蜂鸣器U32186*6*5R15130PF电池盒C2、C3R17、R187瓷片电容0.1uF219DC插座4节538间距2.54C4、C5320R1612位排针电源线号9J1 J3121R11集成电路插20P电路板5.5*2.U1S1、S2、S310座10uFC1122说明书1双色2P带热缩管111电解电容100uFC6123112晶振12MHzY1124105*55A

27、4双面1第五章课程设计总结(心得体会)经过大量查找资料和老师的不断指点,我将所设计的六位数码管电子钟焊接成功,虽然 不是很稳定,但在这个过程中,我了解了各个元器件的识别与测量,也了解了 AT89C205单 片机及其引脚功能。同时明白了六位数码管电子钟的工作原理并实现了其功能。本程序设计时,只用了一个定时器T0,其他的中断全部关断,定时器工作在两个8位自 动加载初始值状态。简短的定时中断程序只负责时间的计数和进位功能,这是保证走时精确。 有三个轻触式按键:功能选择按键S1,功能扩展按键S2,数值加一按键S3,此数字钟采用了 一只NPN型的三极管及蜂鸣器为闹时讯响电路。通过这次的课程设计,我对自己

28、的动手能力有了信心。面临着就业,我将充分发挥我的 主观能动性和在学校学到的一切知识。为母校添砖加瓦,为自己的前程奋斗!这次课程设计 的顺利进行,我深刻明白了理论知识与社会实践相结合的道理,从中得到了以前书本知识所 不曾得到的知识。更加明白了如今信息时代电子技能知识的重要性。增强了我对实际工艺技 术、电子技术和设备技术等方面的认识,掌握了分析处理方法,调试、计算等基本技能的训 练,并具备了一定程度的实际工作能力。面对如此激烈的市场竞争体系, 只有努力掌握好电子技能知识方可在竞争中立于不败之地,我对从事电子产品的开发和研究充满了兴趣。本次课程设计是我的电子研发 之路的良好开端。我会以此为契机,在日

29、后的工作中深入学习、加深研究,在实际工作 中创造自己的价值。第六章参考文献实验电子技术李振声国防工业出版社电子技术基础课程设计任为民中央广播电视大学出版社电路基本分析石生高等教育出版社电路基础徐熙文高等教育出版社单片机原理与应用技术李全利高等教育出版社单片机应用技术刘守义西安电子科技大学出版社高级单片机教程何立民北航出版社程序#include code senen_seg10=0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0; /P1.7( 冒号) 口高电平bit key1_enter=0,key2_enter=0,key3_enter=0,c

30、ountdown_mark=0,stopwatch_mark=0,count_mark=0, bell_mark=0; / 状态标志unsigned char program=0,program_variable=0,count_bit=0,count=0;unsigned char hour=10,minute=10,second=0;/ 时间变量unsigned char delayed_hour=22,delayed_minute=10,delayed_second=0;/ 定时变量unsigned char count_hour=0,count_minute=0,count_secon

31、d=0;/ 计时计数变量unsigned char count_time=0,count_count=0;void delay(unsigned int t) unsigned int i,j;for(i=0;it;i+)for(j=0;j=199)count_time=0;second+;if(second=60)second=0;minute+;if(minute=60)minute=0;hour+;if(hour=24)hour=0;if(delayed_hour=hour & delayed_minute=minute & second=199 & (count_second!=0|c

32、ount_minute!=0|count_hour!=0) count_count=0;count_second-;if(count_second=60) count_second=59;count_minute-; if(count_minute=60)count_minute=59;count=100) count_hour=99; if(count_second=0&count_minute=0&count_hour=0&count else P3_7=1;if(count_count=15000) count_count=14000; if(stopwatch_mark=1) coun

33、t_count+;if(count_count=2) count_count=0; count_second+;if(count_second=100) count_second=0; count_minute+;if(count_minute=60) count_minute=0; count_hour+;if(count_hour=60) count_hour=0;unsigned char show_key (void)unsigned char x=0,y=0;switch (program)case 0: P1&=senen_segsecond%10;break;case 1: if

34、(count_time=90) P1&=senen_segsecond%10; / break;case 2: if(delayed_hour=24) P1=0xfe;else P1&=senen_segdelayed_second%10;break;case 3: if(count_bit=0) P1&=senen_segcount_second%10;/else P1=0xff;break;case 4: P1&=senen_segcount_second%10;break;case 5: P1&=senen_segcount_second%10;break;P3_3=0;if(P3_5=

35、0)/ 功能键 1 识别key1_enter=1;if(count=90) P1&=senen_segsecond/10; / break;校正秒的十位case 2: if(delayed_hour=24) P1=0xfe;else P1&=senen_segdelayed_second/10; break;/闹钟秒的十位case 3: if(count_bit=1) P1&=senen_segcount_second/10;/ else P1=0xff;break;倒计时秒的十位case 4: P1&=senen_segcount_second/10; break;/秒表秒的十位case 5

36、: P1&=senen_segcount_second/10; break;P3_1=0;delay(10);P3_1=1;P1|=0xff;/计数器十位switch (program)case 0: P1&=senen_segminute%10;/ 时钟分的个位break;case 1: if(count_time=90) P1&=senen_segminute%10; /校正分的个位break;case 2: if(delayed_hour=24) P1=0xfe;else P1&=senen_segdelayed_minute%10;break;case 3: if(count_bit=

37、2) P1&=senen_segcount_minute%10;/else P1=0xff;break;case 4: P1&=senen_segcount_minute%10;break;case 5: P1&=senen_segcount_minute%10;/ 闹钟分的个位倒计时分的个位/ 秒表分的个位/ 计数器百位break;P3_2=0; delay(10);P3_2=1;P1|=0xff;switch (program)case 0: P1&=senen_segminute/10;break;case 1: if(count_time=90) P1&=senen_segminute

38、/10; / break;case 2: if(delayed_hour=24) P1=0xfe;else P1&=senen_segdelayed_minute/10;break;case 3: if(count_bit=3) P1&=senen_segcount_minute/10;/ else P1=0xff;break;case 4: P1&=senen_segcount_minute/10;break;case 5: P1&=senen_segcount_minute/10;break;P3_5=0;delay(10);P3_5=1;P1|=0xff;/ 时钟秒的个位校正秒的个位/

39、闹钟秒的个位倒计时秒的个位/ 秒表秒的个位/ 计数器千位switch (program)case 0: P1&=senen_seghour%10; break;/ 时钟时的个位case 1: if(count_time=90) P1&=senen_seghour%10; /校正时的个位break;case 2: if(delayed_hour=24) P1=0xfe;else P1&=senen_segdelayed_hour%10;break;case 3: if(count_bit=4) P1&=senen_segcount_hour%10;/ else P1=0xff;break;cas

40、e 4: P1&=senen_segcount_hour%10;break;case 5: P1&=senen_segcount_hour%10;/ 闹钟时的个位倒计时时的个位/ 秒表时的个位break;P3_0=0;delay(10);if(P3_4=1 & key2_enter=1)x=3; key2_enter=0;P3_0=1;P1|=0xff;/确认功能键 2 识别,返回 3switch (program)case 0: P1&=senen_seghour/10;/ 时钟时的个位break;case 1: if(count_time=90) P1&=senen_seghour/10;

41、 / break;校正时的个位case 2: if(delayed_hour=24) P1=0xfe; else P1&=senen_segdelayed_hour/10; break;case 3: if(count_bit=5)P1&=senen_segcount_hour/10; / else P1=0xff;/ 闹钟时的个位倒计时时的个位break;case 4: P1&=senen_segcount_hour/10;/ 秒表时的个位break;case 5: P1&=senen_segcount_hour/10; break;/ 计数器万位P3_4=0;delay(10);if(P3

42、_5=1 & key1_enter=1) if(count=127) x=1;else x=2;key1_enter=0;count=0;if(P3_2=1 & key3_enter=1) x=4; / 确认功能键1 识别,执行退出或进入下一个功能/确认功能键 1 为长按,返回 1确认功能键 1 为短按,返回 2确认功能键 3 识别,返回 4key3_enter=0;P3_4=1;/ 校时和显示功能时钟时冒号闪烁P1|=0xff;if(program=100) P1&=0xff;if(program=1 & count_time=24)hour=0; break;case 4: minute+

43、; if(minute=60)minute=0; break;break;case 2: while(program=2) switch(show_key() case 0: break;case 1: program=0; break;/ 时钟菜单/ 校时菜单/ 闹钟菜单case 2: program=3;break;case 3: delayed_hour+; if(delayed_hour=25)delayed_hour=0; break;case 4: delayed_minute+;if(delayed_minute=60)delayed_minute=0;break;倒计时菜单 break;/case 3: while(program=3) swit

温馨提示

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

评论

0/150

提交评论