精品单片机课程设计作息时间控制器定_第1页
精品单片机课程设计作息时间控制器定_第2页
精品单片机课程设计作息时间控制器定_第3页
精品单片机课程设计作息时间控制器定_第4页
精品单片机课程设计作息时间控制器定_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、作息时间控制器河南理工大学电子设计综合训练报告作息时间控制器姓 名:李晓宇付道义学 号:310708020814310708020810专业班级:自动化07-8 指导老师:谭兴国所在学院:电气工程与自动化学院2010年7月2日摘要本设计是作息时间控制器,由单片机最小系统、按键模块、数码管显示模块、闹钟模块组成。采用单片机 AT89S52与12MHZ晶振相连;通过按键 K1、K2、K3、K4控制时间的 校正、闹钟时间设定;数码管显示模块用来显示时间,显示格式为“时分”,并能够根据需要显示年、月、日,由数码管小数点闪动作为秒计数;闹钟模块进行到时提醒并作出相应动 作:发光二极管闪亮,同时播放音乐。

2、本设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0定时器溢出中1、3、5、7、8、10、天,12个月断来实现,工作在 T1方式下,定时50微妙,则连续中断20次即为一秒,得到了我们所需 时间的最小单位秒,60秒为一分,60分为一小时,24小时为一天,12月为31天,4、6、9、11月为30天,闰年二月为 29天,非闰年二月为 28 为一年。采用这种时间设计思想来进行时间设置。P2 口用来在整个系统的设计中,单片机的P0 口输出显示信号,P1 口按键输入控制、扫描,为动态显示、P3 口闹钟模块。该设计用C51编写程序,由于汇编语言的移植性比较差,而C语言则比较灵活。许多子函数都可以

3、直接移植过去。作息时间控制器#目录摘要目录1概述1.151单片机简介1.2设计要求及功能.1.3 本设计实现的功能2系统总体方案及硬件设计2.12.2系统总体方案框图按键控制模块.2.32.43软件设计时间显示模块.闹钟模块3.13.2系统软件设计思想系统主程序中断子程序按键扫描子程序.3.33.44 Proteus软件仿真 4.1 Proteus软件简介,4.2 Proteus软件仿真5课程设计体会参考文献:附1:源程序代码附2:系统原理图13141525作息时间控制器31概述1.151单片机简介单片微型计算机简称单片机, 机存储器、只读存储器、 上,构成一个完整的微型计算机。即把组成微型计

4、算机的各个功能部件,I/O接口电路、突出的是控制功能,所以它从功能和形态上来说都 随着单片机技术的发展, 它在芯片内集成了许多面如中央处理器、随 定时器/计数器以及串行通信接口等集成在一块芯片由于单片机主要面对的是测控对象, 是应测控功能领域应用的要求而诞生的。 对测控对象的接口电路,如ADC、DAC、高速I/O 口、脉冲宽度调制器、监视定时器等,这些接口电路已经突破了微型计算机传统的体系结构,所以单片机也成为微型控制。51单片机是对目前所有兼容In tel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着 Flash rom技术的发展,8031单片机取

5、得了长足的进展, 成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。1.2设计要求及功能本设计是作息时间控制器, 的时间, 时提示。其设计实现的功能主要有:使用4位七段显示器来显示现在 显示格式为“时分”,由LED闪动作为秒计数表示。可以设定作息时间,并进行到 能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控制。1.3本设计实现的功能本设计实现的功能为:使用七段显示器显示时间,显示格式为“时分”,并可显示日期,显示格式为“月日”,

6、年份单独显示。可以设定作息时间,进行到时提示,并作出相应动作: 发光二极管闪亮,同时播放音乐。2系统总体方案及硬件设计2.1系统总体方案框图按键控制模块单片机最小系统数码管显示模块闹钟模块图2-1系统方框图本次设计实现的功能主要有:使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED小数点闪动作为秒计数表示。可以设定作息时间,并进行到时提示。能够根据 预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控制。由按键输入控制设置年月日以及当前时间、并可设置闹钟定时, 时间到由蜂鸣器发出响声并作出相应动作:二极管闪亮,同时播放音乐。2.2按键控制模块图2-2按键控制模块按键控制

7、模块主要有由四个按键组成:K1、K2、K3、K4、。其中K1的功能是模式切换键;K2的作用是加一;K3的作用是闹钟使能;K4的作用是减一。当需要设定时间或是校正时间,即可按下模式切换键来进行。校正时间:按第一次K1键,进入小时校正状态,通过按K2、K4键进行小时校正,按一下 K2键则加一,按一下K3键则减一;按第二次 K1键,进入分校正状态,通过按K2、K4键进行分钟校正;按第三次K1键,进入小时设定状态,此时若不需要设置则不操作;按下第四次K1键,进入分钟设定状态,若此时不需要设置则不操作;按下第五次K1键进入月份校正状态,通过按K2、K4键进行月份校正;按下第六次K1键,进入日校正状态,通

8、过按 K2、K4键进行日校正;按下第七次 K1键进入年份校正状态,通过按K2、K4键来进行年份校正;校正完毕后,再按一次K1键,则退出时间校正状态,并显示当前校正后的准确时间。设定时间:按 第一次K1键进入小时校正状态,此时若不需要设置,则不操作;以此类推,到第三次按下K1键,进入小时设定状态,通过按K2、K4键进行小时设定;按下第四次 K1键,进入分钟设定状态,通过按 K2、K4键进行分钟设定,设定完毕后,按一下K3键(闹钟使能);继续按K1键,若不需要设置,则不操作,以此类推,到按最后一次K1键则退出时间设定状态并显示当前时间,当时间与我们设定的时间一致时,通过闹钟电路响声提示, 若要关闭

9、闹钟,此时再按一次 K3键即可停止响声。作息时间控制器2.3时间显示模块O9CDEFC: DP1334pO.O D p0.1 t p0.2 b p0.3 b p0.4 B p0.5 E0.6 E0.7 OT2P19图2-3显示模块相应的时间显示模块主要由四位数码管来显示,配合按键控制模块的校正与设定时间,显示。时间正常显示时,LED每闪动60次,分钟自动加一;每六十分钟小时自动加一;每24小时天自动加一。2.4 闹钟模块闹钟模块快的主要功能: 示,同时二极管闪亮一分钟后,图2-4闹钟音乐模块闹铃。当设定时间与当前时间一致时,则闹钟自动闹铃进行提自动退出响铃状态,若按K3键,闹钟退出响铃状态。3

10、软件设计本系软件设计中,利用单片机定时器设计时间计时处理,采用单片机内部的TO定时器溢出中断来实现,工作在 T1方式下,定时50微妙,则连续中断 20次即为一秒,得到了我 们所需时间的最小单位该设计用C51编写程序,由于汇编语言的移植性比较差,而C语言则比较灵活。许多子函数都可以直接移植过去。在程序中除了有主函数外还包含许多子函数,如延时函数、按键扫描函数、初始化函数、时间显示函数、设定闹钟显示函数、设定日期显示函数、设定年 份显示函数、月份选择函数、年份显示辅助函数。3.2 系统主程序在主控程序循环中主要工作为扫描是否有按键, 若有按健则做相应的功能处理, 同时也 扫描显示器显示时间数据,并

11、检查所设置的时间是否到了。时间计时处理程序是等过了 1s 后,则更新时间数据,将最新的时、分的数据转换为数字数据并显示在七段显示器上。3.3蜂鸣器初始化定时器初始化按键扫描判断标志位XXQ 时间显示函数XZ校正时间显示函数X=3、41X=5、X=7I中断子程序设定闹钟显示函数日期显示函数年份显示函数图3-2主程序流程图20次时,即为一秒,此时秒加一;当分钟值为60时,小时加一,同时分钟值清零; 由于每月天数不定,32时,月值加一,同时天值为 1; 4、6、9、1131时,月值加一,同时天值为1;如果是闰年,30时,月值加一,同时天值为一;如果不是29时,月值加一,同时天值为一;当月1、3、5、

12、7、8、10、12中断子程序的主要功能:提供时间基准。当连续中断 当秒值为60时,分钟加一,同时秒清零 当小时为24时,天值加一,同时小时清零; 月为31天,当计数到此类月份时,天值为 月为30天,当计数到此类月份时,天值为 则2月为29天,当计数到此类月份时,天值为 闰年,则2月为28天,当计数此类月份时,天值为 值为13时,则年值加一,同时月值为一。图3-3定时器中断函数3.4按键扫描子程序按键扫描子程序的功能是:扫描是否有按键扫描子程序是程序计中相当重要的一部分。 按键按下,若有键按下,则执行相应功能。按键1相应设定变量减一闹钟使能响应设定变量加一模式按键切换处理图3-4按键扫描子程序4

13、 Proteus软件仿真4.1P roteus软件简介公司的EDA工具软件,Proteus软件有近 EDA工具一样的原理布图、PCB自动或他的电路仿真是互动的,针对微处理器并实现软件源码级的实时调试,如有Proteus 软件是来自英国 Labcenter electronics 20年的历史,在全球广泛使用,除了其具有和其它 人工布线及电路仿真的功能外,其革命性的功能是,配合系统配置的虚拟仪器如示波器、逻辑分P roteus产品系列也的应用,还可以直接在基于原理图的虚拟原型上编程, 显示及输出,还能看到运行后输入输出的效果,P roteus组合了高级原理布图、 完整的电子设计系统。此系统受益于

14、 系统的比较文章中评为最好产品一“析仪等,Proteus能够很容易的为用户建立了完备的电子设计开发环境。 包含了革命性的 VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起 仿真。不愧为一款非常优秀的单片机仿真软件。混合模式SPICE仿真,PCB设计以及自动布线来实现一个15年来的持续开发,被电子世界在其对 PCB设计The Route to PCB CAD ”。Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。 用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。其功能

15、模块:一个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARES PCB设计.P ROS PICE仿真器的一个扩展 P ROTEUS VSM:便于包括所有相关的 器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型.支持许多通用的微控制器,如PIC,*R,HC11以及8051.交互的装置模型包括:LED和LCD显示,RS232终端通用键盘,强大的调试工具,包括寄存器和存储器,断点和单步模式IAR C-SPY和Keil uVision2等开发工具的源层调试应用特殊模型的DLL界面-提供有关元件

16、库的全部文件Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时, 关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。4.2Proteus 软件仿真4-2-1 所初始界面:启动 Proteus进行仿真时显示的初始化时间。初始界面仿真图如图示。RP1RESPACK-8模式切换加一使能闹钟减一U119XTAL1P 0.0/AD0P 0.1/AD1P 0

17、.2/AD2XTAL2P 0.3/AD3P 0.4/AD4P 0.5/AD5P 0.6/AD6RSTP 0.7/AD7P 2.0/A8P 2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP 1.1/T2EXP 3.1/TXDP 1.2P 3.2/INT0-P 1.3P 3.3/INTLP1.4P 3.4/T0P 1.5P 3.5/T1P 1.6P3.6/WR-P 1.7P 3.7/RDr189 IAT89C52293031 ®"7T尊.書一 is;一 /I图4-2-1

18、时间显示仿真图时间校正:当我们需要正确的显示时间即可进行时间校正,按一下 状态,通过 K2加一或K4减一来进行小时校正,再按一次 原理同小时校正相同。其仿真图如图4-2-2所示。K1即进入小时校正K1键即可进行分钟校正,校正U1191829匹31RP1RESPACK-8模式切换加一使能闹钟减一1 2TTT4 5冋6a8 iXTAL1P 0.0/AD0XTAL2P 0.1/AD1P 0.2/AD2P0.3/AD3RSTP 0.4/AD4P 0.5/AD5P0.6/AD6P 0.7/AD7P SENP 2.0/A8P 2.1/A9P2.2/A10P2.3/A11ALEP2.4/A12EAP2.5/

19、A13P 1.0/T2P2.6/A14P2.7/A15P 3.0/RXDP1.1/T2EXP3.1/TXDP1.2P 3.2/INT0-P 1.3P3.3/INTrP1 4P3.4/T0P 1.5P 3.5/11P 1.6P 1.7P3.6/WR-P 3.7/Rn- 3937'736'3533 21T2223"25'V26-10"1?<12D1AT89C52±27s-i1.200LS1-Q1NPNspEAKer图4-2-2时间校正仿真图闹钟设定:当我们需要闹钟提醒时即可使用此功能,连续按三下 时设定状态,通过 K2键加一或K4键减一,

20、进行小时设定,再按一次 设定,其设定原理与小时设定原理相同,按一下K3键,则时间设定完毕,K1键即可进入闹钟小K1键即可进行分钟 至W会自动响铃。其仿真图如图4-2-3所示。RP1RESPACK-8U119模式切换/k尸d加一咅4使能闹钟1 K3尸d L减一 pkHSzXTAL1P0.0/AD0P 0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P 2.0/A8P 2.1/A9P 2.2/A10PSENP 2.3/A11ALEP 2.4/A12EAP 2.5/A13P 2.6/A14P 2.7/A15P 1.0/T2

21、P 3.0/RXDP 1.1/T2EXP 3.1/TXDP1.2P3.2/INT0-P 1.3P 3.3/INTrP 1.4P 3.4/T0P 1.5P 3.5/T1P1 6P3 6/WR-P 1.7P 3.7/RD-371891AT89C5229 r3TV21"223910D1FR2TT10;16LED-RED RlQ1fQ1n7sPeAKereAKer图4-2-3闹钟设定仿真图日期校正:当我们需要与当前日期保持一致时, 则可以使用日期校正功能,连续按动五 次K1键,则进入月份校正状态,通过 K2加一键或K4减一键进行校正月份,再按一次 K1 键,则可进行日期校正,校正原理同月份校

22、正原理相同。其仿真图如图4-2-4 所示U119模式切换加一使能闹钟减一iXTAL1P 0.0/AD0P0. 1/AD1P 0.2/AD2XTAL2P 0.3/AD3P 0.4/AD4P0 5/AD5P0.5/AD5P0.6/AD6RSTP0 7/AD7P2 0/A8P 2.1/A9P2 2/A10PSENP2.2/A10P2.3/A11ALE EAP2.4/A12P2.5/A13P2.6/A14P2.7/A15P1.0/T2P 1.1/T2EXP 1.2P1.3P1 4P3.0/RXDP 3.1/TXDP 3.2/InT0'P3.3/InT厂P 3.4/T0P3.5/T1P3 6AA

23、/RL 1. rP1 51 1.2P1 6P1.6P1 7P3.O/WRP3 7/RD-189293031®1 茎*6=*TTAT89C52RP1RESPACK-8*35T3T 33 21*22 T24 25726=27T2810吋imDt 17R21kR1105=*"Q1NPNLS1则可以进行年份校正。连续按动 减一键进行校正。其仿真图如图图4-2-4日期显示仿真图年份校正:当我们需要保持年份与当前年份一一致时,七次K1键,即进入年份校正状态,通过K2加一键或K44-2-5所示RP1RESPACK-8U119模式切换/k尸d加一使能闹钟1 K3尸d L减一 pkHSz闹钟

24、响铃: 发光二极管闪亮, 样能使响铃停止,XTAL1P0.0/AD0P O.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P 2.0/A8P 2.1/A9P 2.2/A10PSENP 2.3/A11ALEP 2.4/A12EAP 2.5/A13P 2.6/A14P 2.7/A15P 1.0/T2P 3.0/RXDP 1.1/T2EXP 3.1/TXDP1.2P3.2/INT0-P 1.3P 3.3/INTrP 1.4P 3.4/T0P 1.5P 3.5/T1P1 6P3 6/WR-P 1.7P 3.7/RD-18911

25、0AT89C5229 30T31vTK21"22373539D1R2TT6LED-RED Rln/ Q1IPeAKerQ1eAKer图4-2-5年份显示仿真图当我们设定的时间与当前时间一致时,则闹钟就会自动响铃提示,一分钟后响铃停止,发光二极管熄灭,若在此期间按下闹钟使能键 发光二极管熄灭。其仿真图如图4-2-6所示。与此同时K3同U1191829 I3oT3FRP1RESPACK-8模式切换II K1-qo 加- I K2C?使能闹钟1 K3尸徂I 减一 pHE:12375"q7XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/

26、AD4P0.5/AD5P0.6/AD6RSTP0 7/AD7P 2.0/A8P2 1/A9EP 2.2/A10P2 3/A11ALEP 2.4/A12EAP 2.5/A13P 2.6/A14P 2.7/A15P 1.0/T2P 3.0/RXDP 1.1/r2EXP 3.1/rXDP 1.2P3.2/INT0P1.3P3.3/INT厂P1.4P3.4/T0P 1.5P 3.5/11P 1.6P 1.7P3.6/WR-P 3.7/RD"21222324"2539oo37-33AT89C529D1rnP-Ik-J LED-RED R1aR2l=hQ1J?SPEAKER图4-2-6

27、闹钟音乐播放仿真图5课程设计体会此次课程设计为期两个多星期,我们从中获益匪浅。本课程设计是单片机原理与应用技术的综合训练。从选题、确定方案、设计原理图、仿真、焊接的过程中,我们学到了很 多,这对我们来说是一次将课本所学知识应用到具体实践中的一次考验。虽然在这个过程中我们遇到了很多困难,编写程序需要一步一步并认真的调试,一个小小的错误都可导致整个程序的不可用;硬件仿真需要考虑硬件与软件的连调,才能保证硬件与软件协同工作。我们通过查阅资料、同学的帮助,最终基本解决这些问题,从而基本完成 了课程设计的要求。在这个过程中我们学会了发现问题、分析问题并最终解决问题,为我们以后的工作和学习打下了一定的基础

28、。此次课程设计,也使我们发现了自己的缺点, 课本所学知识与实践是有一定距离的, 我 们不仅要学好科学文化知识, 更要积极的参与实践学习, 真样才能有更大的收获, 真正学到 知识,要把理论与实际相结合,从而成为真正有用的人。【1】【2】【3】【4】参考文献:余发山王福忠徐州:中国矿业大学出版社2008年2 彭为,黄科,雷道仲单片机典型系统设计实例讲解.2006年3 何立民.单片机应用技术选编.北京:北京航空航天大学出版社,2004.4 杨刚,周群.电子系统设计与实践 北京:电子工业出版社,2004.作息时间控制器附1:源程序代码#i nclude<REG52.H>#defi ne u

29、int un sig ned int#defi ne uchar un sig ned charuchar code a10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*sbit K1= P1M;sbit K2=P1A5;sbit K3=P1A6;sbit K4=P1A7;sbit sd=P3A6;sbit BEE P=P 3人7;uchar m=5,h=20,sec=58,c nt=0,x,y,qia n,bai,shi,ge;uchar set_h=12;uchar set_m=58;uchar mon th=7;uchar da

30、y=5;uchar th0_f;uchar tl0_f;uint year=2010;void delay(uchar t);/ 延时函数void scan key(void); 按键扫描函数void in it(void);初始化函数void display(void);/ 显示函数void set_time(void);/设定时间显示辅助函数void set_day(void); /设定日期显示辅助函数void m_choose(void); / 月份选择函数void bianhuan(void); /年份显示辅助函数void bianhuan1(void);/时间显示辅助函数change

31、data(uchar *song,uchar *diao,uchar *jie); 音乐符号串解释函数 void play(uchar *songdata);/ 奏乐函数/世上只有妈妈好uchar code mamahao="6.5_3516_5_6-|35_6_53_21_,6_5_3_2-|""2.3_55_6321-|5.3_2_1_,6_1_|,5-";uchar code freq36*2=0xA9,0xEF,/00220HZ ,1/0作息时间控制器0x93,0xF0,/00233HZ,1#0x73,0xF1,/00247HZ ,20x49,0

32、xF2,/00262HZ ,2# 0x07,0xF3,/00277HZ ,30xC8,0xF3,/00294HZ ,40x73,0xF4,/00311HZ ,4# 0x1E,0xF5,/00330HZ ,50xB6,0xF5,/00349HZ ,5#0x4C,0xF6,/00370HZ ,60xD7,0xF6,/00392HZ ,6#111211130x5A,0xF7,/00415HZ ,70xD8,0xF7,/00440HZ 10x4D,0xF8,/00466HZ 1#250xBD,0xF8,/00494HZ 20x24,0xF9,/00523HZ 2#0x87,0xF9,/00554HZ

33、3/141115/160xE4,0xF9,/00587HZ 4 0x3D,0xFA,/00622HZ 4# 0x90,0xFA,/00659HZ 5 0xDE,0xFA,/00698HZ 5# 0x29,0xFB,/00740HZ 6 0x6F,0xFB,/00784HZ 6# 0xB1,0xFB,/00831HZ 7/17/1819/20/21/22/230xEF,0xFB,/00880HZ '10x2A,0xFC,/00932HZ '1#0x62,0xFC,/00988HZ '20x95,0xFC,/01046HZ '2#0xC7,0xFC,/01109HZ

34、 '3'4#/350xF6,0xFC,/01175HZ '4 0x22,0xFD,/01244HZ0x4B,0xFD,/01318HZ '50x73,0xFD,/01397HZ '5#0x98,0xFD,/01480HZ '60xBB,0xFD,/01568HZ '6#0xDC,0xFD,/01661HZ '7; /*音乐符号串解释函数Cha ngedata(uchar *son g,uchar *diao,uchar *jie) uchar i,i1,j;char gaodi;uchar banyin;uchar yin cha

35、 ng;/3Dd?uchar code jie78=0,12,14,16,17,19,21,23;*diao=*s ong;for(i=0,i1=0;)gaodi=0;banyin=0;yin cha ng=4;if(*(s on g+i)=T) | (*(so ng+i)=' ') i+;switch(*(s on g+i) case ',': gaodi=-12;i+; break;case '、': gaodi=12;i+; break;if(*(s on g+i)=0)*(diao+i1)=0;*(jie+i1)=0; return;j=

36、*(s on g+i)-0x30; i+;j=jie7j+gaodi;yinc:switch(*(s on g+i)case '#':i+;j+;goto yinc;case '-':yin cha ng+=4; i+;goto yinc;case '_':yin cha ng/=2; i+;goto yinc;caseyin cha ng=yin cha ng+y in cha ng/2;i+; goto yinc;*(diao+i1)=j;*(jie+i1)=yin cha ng; i1+;/*/奏乐函数void pl ay(uchar *s

37、on gdata)uchar i,c,j=O;uint n;uchar diaodata40;uchar jiedata40;cha ngedata(s on gdata,diaodata,jiedata); TR1=1;for(i=0;diaodatai!=0;i+) tl0_f=freqdiaodatai*2; th0_f=freqdiaodatai*2+1;for(c=0;c<jiedatai;c+) for(n=0;* 24; n+) sca nkey();if(y=0)TR1=0;return;dis play();TR1=0;for(n=0 ;n <500; n+);T

38、R1=1;TR1=0;void time0(void) interrupt 1TH0=0x3c;TL0=0xb0;cnt+;if(y=1 &&(set_h=h&&set_m=m)sd=sd;else sd=1;if(cnt=20)sec+;cnt=0;if(sec=60)sec=0;m+;if(m=60)m=0;h+;if(h=24)h=0;day+; switch(mo nth) case 1:if(day=32)m on th+;day=1;break;case 2:if(year%4=0)if(day=30)mo nth+;day=1; elseif(da

39、y=29)m on th+;day=1;break;case 3:if(day=32)m on th+;day=1;break;case 4:if(day=31)m on th+;day=1;break;case 5:if(day=32)m on th+;day=1;break;case 6:if(day=31)m on th+;day=1;break;case 7:if(day=32)m on th+;day=1;break;case 8:if(day=32)m on th+;day=1;break;case 9:if(day=31)m on th+;day=1;break;case 10:

40、if(day=32)m on th+;day=1;break;case 11:if(day=31)m on th+;day=1;break;case 12:if(day=32)m on th+;day=1;break;if(mon th=13)mon th=1;year+;if(x=0)bia nhua n1(); timer1() interrupt 3 TL仁tl0_f;TH仁th0_f;BEE P=BEE P;/调入预定值取反音乐输出IOvoid mai n(void)ini t();while(1)dis play();sca nkey();if(y=1 &&( set

41、_h=h&&set_m=m)p lay(mamahao); else BEE P=0; void in it(void)BEE P=0;TMOD=Ox11;TH0=0x3c; TLO=OxbO;ET0=1;TR0=1;ET1=1;TR1=0;EA=1;void dis play(void)P 2=0xfe;P 0=aqia n;if(x%2=1 &&cn t>=10) P0&=0x00;delay(20);P2=0xfd;P0=abai;if(x%2=1 &&cn t>=10) P0&=0x00; else if(x=

42、0&&cnt>=10) P0|=0x80; delay(20);P2=0xfb;PO=ashi;if(x%2=0&& x!=0)|x=7)&&cn t>=10) P0&=0x00;delay(20);P 2=0xf7;P0=age;if(x%2=0&& x!=0)|x=7)&&cn t>=10) P0&=0x00; delay(20); void m_choose(void)switch(m on th)case 1:if(day=32)day=1;else if(day=0)da

43、y=31;break;case 2:if(year%4=0)if(day=30)day=1;else if(day=0)day=29; elseif(day=29)day=1;else if(day=0)day=28;break;case 3:if(day=32)day=1;else if(day=0)day=31;break;case 4:if(day=31)day=1;else if(day=0)day=30;break;case 5:if(day=32)day=1;else if(day=0)day=31;break;case 6:if(day=31)day=1;else if(day=

44、0)day=30;break;case 7:if(day=32)day=1;else if(day=0)day=31;break;case 8:if(day=32)day=1;else if(day=0)day=31;break;case 9:if(day=31)day=1;else if(day=0)day=30;break;case 10:if(day=32)day=1;else if(day=0)day=31;break;case 11:if(day=31)day=1;else if(day=0)day=30;break;case 12:if(day=32)day=1;else if(day=0)day=31;break;void set_time(void)qia n=set_h/10; bai=set_h%10; shi=set_m/10; ge=set_m%10;void set_day(void)qia n=mon th/10; bai=mo nth%10; shi=day/10; ge=day%10;void bia nhua n( void)qia n=year/1000; bai=year%1000/100; shi=year%100/10; ge=

温馨提示

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

评论

0/150

提交评论