基于STC89C52的电子时钟的设计(有闹钟调时间)
基于STC89C52的多功能实时时钟

课程设计课程名称__ ___单片机_________________ 题目名称_基于STC89C52的多功能实时时钟学生学院_____材料与能源学院___________ 专业班级_________*********____________ 学号_________*********____________ 学生姓名_______ 刘旭波 _______________ 指导教师_________刘俊 _____________2012 年01 月04 日- 摘要 -随着社会发展需求的改变,万年历是一个应用非常广泛的实用日常计时工具,带有显示年、月、日、星期、时、分、秒、秒表和按键可调时间及其按键设置闹钟的功能,同时具有月末自动更新,闰年补偿功能等多种功能。
此系统是基于STC89C52单片机设计的,包含液晶显示模块,DS1302实时时钟模块,DS18B20温度采集模块,键盘扫描模块,发声模块。
STC89C52作为控制核心,具有功耗低,功能强等特点,电压可选3到5V电源供电。
显示模块采用1602液晶动态显示,相对数码管而言经济实用,占用空间小,对于显示数字、字母最为合适,而且与单片机连线简单,占用IO口相对较少。
实时时钟芯片DS1302提供RTC/日历、定时闹钟等功能,如果检测到主电源故障,该器件可自动切换到备用电源供电,DS1302将石英晶体与电池集成在一起,在断电后仍可精确走1年。
温度检测模块采用数字式温度传感器DS18B20,该芯片具有精度高,测量范围广等优点,易与单片机连接,模块电路组成简单。
钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的万年历精度高,功能易于扩展。
可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。
关键词:STC89C52、DS1302、DS18B20、1602液晶显示、实时时钟、温度测量- 目录 -第一章设计要求与方案论证.......................................................... - 1 -1.1 基本要求.................................................................. - 1 -1.2 扩展功能............................................................ - 1 -1.3 系统方案选择和论证........................................................ - 1 -1.3.1 总系统方案.......................................................... - 1 -1.3.2 芯片方案选择和确定.................................................. - 1 -1.3.2.1 STC89C52简介 ................................................. - 1 -1.3.2.2 DS1302时钟芯片 ............................................... - 2 -1.3.2.3 温度传感器DS18B20............................................. - 3 -1.3.2.4 LCD1602 ....................................................... - 3 - 第二章硬件设计和实现.............................................................. - 3 -2.1 系统设计.................................................................. - 3 -2.1.1系统设计框图 ......................................................... - 3 -2.1.2 系统硬件需求介绍..................................................... - 4 -2.2 系统硬件各模块作用........................................................ - 4 -2.2.1 单片机模块........................................................... - 4 -2.2.2 实时时钟模块......................................................... - 5 -2.2.3 温度传感模块......................................................... - 6 -2.2.4 液晶显示模块......................................................... - 8 -2.2.5 矩阵键盘模块........................................................ - 10 -2.2.6 发声模块............................................................ - 11 -2.2.7 电源模块............................................................ - 11 -2.3 系统电路图设计........................................................... - 11 -2.3.1 系统总原理图及连线.................................................. - 11 - 第三章软件设计与分析........................................................... - 12 -3.1 主程序流程图............................................................. - 12 - 第四章系统测试................................................................. - 13 -4.1 功能测试................................................................ - 13 - 第五章设计总结和心得........................................................... - 13 -5.1 设计总结与心得.......................................................... - 13 -5.1.1 本设计的创新点与未来功能扩展........................................ - 13 -5.2 设计心得................................................................ - 14 - 第六章参考文献.................................................................. - 14 -6.1 参考文献................................................................ - 14 - 附录一:程序清单.................................................................. - 15 - 附录二:实物图片.................................................................. - 33 -第一章设计要求与方案论证1.1 基本要求:(1):设计能支持年、月、日、星期、时、分、秒的时钟,有时间调整功能及闹钟功能。
基于stc89c52单片机时钟的设计与实现

96 | 电子制作 2020年02-03月等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
该电子时钟以单片机STC89C52为核心,利用实时时钟芯片DS1302产生精准的1秒,单片机读取时间,通过LCD1602显示年、月、日、时、分、秒。
使用键盘可以实现调时,对年、月、日、时、分、秒,进行单独调整,通过蜂鸣器实现整点的报时。
同时,使用滑动变阻器电阻对LCD1602的亮度进行调节。
通过电子时钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法,通过它可以进一步学习与掌握单片机原理与使用方法。
1 总体设计方案及论证■1.1 总体方案设计系统总体的设计方框图如图1所示。
图1 系统方框图■1.2 电子时钟的主要用途该电子时钟以单片机STC89C52为核心,利用实时时钟芯片DS1302产生精准的1秒,单片机读取时间,通过2 硬件与软件设计■2.1 硬件设计2.1.1 主控制模块设计的电子时钟主要是以STC89C52作为系统的核心电路。
引脚功能与分布和STC89C51基本一致。
2.1.2 晶振电路设计将12MHZ 的晶振和STC89C52单片机的XTAL1、XTAL2引脚相连,再接上两个30PF 的电容,构成系统晶振电路。
2.1.3 复位电路设计复位电路为手动复位和上电复位,用一个10k 的电阻拉高RST 引脚端的电平,当单片机的复位引脚RST 出现高电平时就完成了复位操作。
2.1.4 DS1302时钟电路设计DS1302有两个电源,其中VCC2用来保障时钟芯片的正常运行,VCC1作为备用电源,用来预防特殊情况的发生,在VCC2突然断电时DS1302也能持续工作。
为了使系统正常工作,VCC2引脚我们使用+5V 电压,备用电源引脚VCC1使用+3V 电池供电。
基于STC89C52单片机的多功能数字钟的设计

基于STC89C52单片机的多功能数字钟的设计【摘要】本文主要介绍了数字钟的功能以及相应的硬件电路的设计,并且用C语言编写了相应的程序下载到单片机上进行调试,让其结合硬件电路实现对应的功能:时间显示、日期显示、跑表、闹铃、温度显示和湿度显示。
本文着重地介绍了多功能数字钟的硬件制作。
【关键词】数字钟;STC89C52单片机;硬件设计0前言钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟。
1功能本设计中选择STC89C52单片机来进行设计,主要由于其体积小、成本低,功能丰富并且实用方便。
配合时钟芯片来实现时钟、跑表、闹铃、日历能功能,用温湿度传感器分别检测工作环境的温度和湿度,通过按不同的键在1602液晶显示器上显示对应的数值。
数字钟的基本功能如下:1.1计时及校时:数字钟的最基本功能既是显示和调整时间,本设计可以让数字钟24小时制或12小时制显示,可以通过设置进行转换等。
1.2跑表:本数字钟还具备跑表的功能,跑表功能包括跑表的启动停止、保持显示、清除等。
1.3闹钟:可以通过键盘设定闹钟时间,在设置的时间进行闹钟提示,每一次响5秒,每隔5秒响一次,如果不人为的进行干涉闹钟会一直响60分钟。
1.4日历:让数字钟可以显示日期(包括年、月、日),并且可以显示星期几。
1.5温度、湿度等的显示:通过传感器等相关硬件配合相应的电路将测试到的温度和湿度数据转换为数字在时钟液晶显示屏上显出来。
2系统硬件的设计2.1硬件的选择本设计选ATC89C52单片机作为主芯片以外,还要用的其他各种元件来实现相应的功能,因此还要对其他电子元件做一个合理的选择和安排。
基于STC89C52的数字电子钟设计

uchar shi=11,fen=59,miao=50, dshi=12,dfen=1;
uchar bjcs;
void delay(uchar ms);
void delay(uchar ms)
{
uchar i,j;
for(i=ms;i>0;i--)
10、系统所需的元器件清单....................................................................... 19
11、检测阶段............................................................................................... 19
led_port = 0x55; /*将数据输出到LED端口,显示为7.5.3.1号灯亮*/
delay(230);
delay(230);
delay(230);
delay(230); /*延时*/
shi=0;
while(!KEY1)
{
LED_DisplayTimer(shi/10,shi%10,fen/10,fen%10);
}
}
}
else if(KEY2==0)
{
delay(10);
if(KEY2==0)
{
fen++;
if(fen==60)
fen=0;
while(!KEY2)
{
LED_DisplayTimer(shi/10,shi%10,fen/10,fen%10);
按键设计流程图
原理图:
基于STC—89C52RC单片机的光闹钟

基于STC—89C52RC单片机的光闹钟本文研究的是光闹钟。
运用电源模块和时间模块组成闹钟部分。
由最小系统晶振来检测,校准时间。
由光敏电阻和指示灯来组成光亮部分。
按键来控制开关,定时和控制光亮等功能。
改进传统闹钟的电源供应不足,时间不准和功能单一等问题。
标签:52单片机;闹钟;光控;多功能1 引言在快速发展的社会中,我们需要更加有效的掌握自己的时间,但是市面上很多闹钟都存在着一些问题。
因此通过52单片机的内部资源来设计一款多功能的相对于其他闹钟比较完善的光闹钟,其主要利用光敏电阻对光的特殊性质来判断此时所需要释放的光量,通过按键实现功能的切换等。
2 基于52单片机的光闹钟该设计是以52单片机为主控芯片,通过52单片机的内部资源,如定时器、外部中断等功能.当闹钟处于黑暗中时会自动打开照明功能(也可以人为的控制开关以及亮度),光闹钟将采用语音提示来告知我们此时的时间等。
3 硬件电路设计硬件电路分为电源模块,单片机最小系统模块,光敏电阻,时间模块,指示灯模块。
下面分别介绍下电源模块,时间模块,指示灯模块。
3.1 电源模块电路整个系统是通过2节18650电池来供电,然而单片机系统需要的是5V电源,传感器模块需要的是 3.3V电源。
所以我们需要对电源进行降压设计。
通过LM7805电源芯片稳成系统需要的5V电源,前后均有滤波电路,传感器需要的3.3V通过AMS117来进行稳压。
3.2 时间模块时间模块用时间芯片DS12C887来记录时间,端口P0是数据传输口,端口P1是數据控制口,初始化时间后,就可以正常报时。
因为时间芯片DS12C887内有锂电池,即使电源模块电路没电,内部还可以计时。
3.3 指示灯模塊指示灯模块的主要功能是夜间警示路人功能,在夜间时,或者灯光昏暗的环境时,盲杖上的指示灯自动亮,可以警示前方路人注意盲人的位置,注意避让盲人。
4 软件代码调试系统开始工作,首先初始化、UART串口、外部中断,初始化结束程序进入大循环。
基于STC89C52单片机时钟的设计与实现

基于STC89C52单片机时钟的设计与实现1. 本文概述本文主要介绍了基于STC89C52单片机和DS1302时钟芯片的电子时钟设计与实现。
该电子时钟系统具有年月日等基本时间显示功能,并集成了秒表计时处理、闹钟定时、蜂鸣器和温度显示等附加功能。
系统采用LCD1602作为液晶显示器件,通过单片机对时钟和温度等数据进行处理后传输至LCD进行显示。
用户可以通过按键对时间进行调节,同时,单片机还通过扩展外围接口实现了温度采集等功能。
本文的目标是提供一个功能丰富、易于操作的电子时钟系统,为学习和应用单片机技术提供一个实用的案例。
2. 系统设计要求在设计基于STC89C52单片机的时钟系统时,我们需要考虑以下几个关键的设计要求:时钟系统必须具备基本的时间显示功能,能够以小时、分钟和秒为单位准确显示当前时间。
系统还应支持设置闹钟功能,允许用户设定特定的时间点进行提醒。
系统需要保证长时间稳定运行,具备良好的抗干扰能力,确保在各种环境下都能准确计时。
还应具备一定的容错能力,即使在操作失误或外部干扰的情况下,也能保证系统的正常运行。
用户界面应简洁直观,便于用户快速理解和操作。
时钟的显示部分应清晰可见,即使在光线较暗的环境下也能保持良好的可视性。
同时,设置和调整时间的操作应简单易懂,方便用户进行日常使用。
在设计时钟系统时,应考虑到未来可能的功能扩展,如温度显示、日期显示等。
系统的设计应具有一定的灵活性和扩展性,以便在未来可以轻松添加新的功能模块。
鉴于时钟系统可能需要长时间运行,能耗是一个重要的考虑因素。
设计时应选择低功耗的元件,并优化电源管理策略,以延长电池寿命或减少能源消耗。
在满足上述所有要求的同时,还需要控制成本,确保产品的市场竞争力。
这可能涉及到对单片机的编程优化、选择性价比高的外围元件等措施。
通过满足上述设计要求,我们可以确保开发出一个功能完善、稳定可靠、用户友好、易于扩展、节能环保且成本效益高的STC89C52单片机时钟系统。
基于STC89C52单片机的二十四小时语音数字闹钟设计
电子设计综合实验“基于STC89C52单片机的二十四小时语音数字闹钟设计”项目设计报告11设计任务与要求语音数字闹钟功能包括:计时功能、显示时间功能、校准时间功能、整点报时功能、闹钟功能。
2 设计思路2.1芯片选取1.单片机的选择采用STC89C52主芯片。
STC89C52是STC公司生产的一种低功耗、高性能微控制器,可用软件编程实现各种逻辑功能。
本身自带定时器和计时器,工作电压3.3-5.5v和电路其他器件相适应,具有断电保护功能,和时钟保持时间不间断相匹配。
并且其功耗低,体积小,成本低,可直接用串口下载,较为便利。
2.显示方案的选择采用LCD1602液晶显示屏。
液晶显示屏的显示功能强大,可显示大量文字,显示多样,功能扩展能力强,可不局限于单一时间显示,例如可以扩展年月显示。
稳定抗干扰能力强,清晰可见,且价格适中,对于本设计一个LCD显示屏足够实现所需功能。
3.时钟模块的选择采用DS1302时钟芯片实现时钟。
DS1302芯片是一种高性能、低功耗的实时时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,功能满足本设计要求,而且精度高,工作电压2.5V~5.5V范围内,与实验整体电路相适应。
4.语音模块采用NV020C语音芯片。
性能稳定,抗干扰能力强,无需外围电路外接电阻,电路简单,控制方便,价格便宜。
工作电压与电路整体电压范围一致,满足整点语音报时的功能需求。
且可进一步功能扩展。
2.2系统设计方案概述该设计包括电源模块、显示模块、按键模块、复位电路模块、时钟模块、语音模块、主控模块、闹铃模块。
整个系统以STC89C52单片机为核心器件,配合电阻电容晶振等器件,构成单片机的最小系统,其它的模块围绕着单片机最小系统展开。
其中包括,显示设备使用LCD1602液晶,可以同时显示时、分、秒等基本时间信息;时钟模块采用DS1302芯片,初始化之后,就会开始运行计算时间,单片机只需进行时间信息的读取即可。
基于STC89C52多功能电子时钟系统程序+原理图
一、设计任务设计制作一台以控制器为核心的多功能电子时钟系统二、设计要求:①.系统具有3种工作模式状态(正常时钟显示模式、系统校准模式、秒表计时模式);系统所有功能,均能够通过上位PC机对其操作修改与实时动态显示。
(PC主机端可利用高级语言进行人机界面设计)②.在正常时钟显示模式时,时钟具有显示年、月、日、时、分、秒的功能。
③.在正常时钟显示模式时,系统具有整点报时的功能,在离整点前10秒时,自动发出鸣叫声,步长1秒,每间隔1秒鸣叫一次,前4响是低音,后1响为高音,共鸣叫5次,最后1响结束时为整点。
高音频率为1KHz;④.在系统校准模式时,系统具有快速校准时间的功能。
⑤.在秒表计时模式时,可兼做比赛时间记录表。
秒表记时的精度为0.1秒,由3个键分别控制秒表的启动、清零、记录功能,可连续记录3组时间,并能够显示记录时间。
⑥.系统显示器采用LCD液晶显示器1602或其它显示器件,并采用键盘对相关数据进行设置与操作。
原理图设计制作一台以控制器为核心的多功能电子时钟系统二、设计要求:①.系统具有3种工作模式状态(正常时钟显示模式、系统校准模式、秒表计时模式);系统所有功能,均能够通过上位PC机对其操作修改与实时动态显示。
(PC主机端可利用高级语言进行人机界面设计)(注:此三种模式可以通过SET键盘来回切换,在正常时钟模式,第二排显示S:time,校准模式显示S:adjst,秒表模式,是TN~T3:四个秒表模式);②.在正常时钟显示模式时,时钟具有显示年、月、日、时、分、秒的功能。
(注:这个已经全部显示了,含星期)③.在正常时钟显示模式时,系统具有整点报时的功能,在离整点前10秒时,自动发出鸣叫声,步长1秒,每间隔1秒鸣叫一次,前4响是低音,后1响为高音,共鸣叫5次,最后1响结束时为整点。
高音频率为1KHz;(注:这个都实现了,要验证的话就是将时钟调整到59分后验证即可)④.在系统校准模式时,系统具有快速校准时间的功能。
基于STC89C52的电子时钟--课程设计报告
中南大学《嵌入式微控制器应用系统综合设计》课程设计报告设计题目:基于STC89C52的电子时钟指导老师:设计者:专业班级:设计日期:2017.01.09摘要随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。
为了在观测时间,能够了解与人类密切相关的信息,比如星期、日期等,电子时钟诞生了,它集时间、日期、星期等功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
该电子时钟主要采用STC89C52RC单片机作为主控核心,由DS1302时钟芯片提供时钟、LCD1602显示屏显示。
STC89C52RC单片机是由ATMEL公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LCD1602显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。
此外,该电子时钟还具有时间校准等功能。
关键词:时钟电路;时钟芯片DS1302;LCD1602显示屏;单片机STC89C52RC;目录绪论 (1)第1章设计要求与方案论证 (3)1.1 引言 (3)1.2功能要求 (3)1.3方案论证 (4)1.3.1 技术可行性 (4)1.3.2 单片机的选择 (4)1.3.3 显示模块的选择 (5)1.3.4 键盘模块的选择 (5)1.3.5 键盘扫描控制方式的选择 (6)1.3.6 时钟芯片的选择 (7)1.3.7 总体方案论证与选择 (7)第2章系统硬件电路设计 (9)2.1 系统硬件概述 (9)2.2 所用到芯片及其各自功能说明 (9)2.2.1 主控制器STC89C52RC (9)2.2.2 时钟芯片DS1302 (10)2.2.3 断电存储芯片AT24C02 (12)2.3硬件设计系统原理图及其说明 (13)2.3.1 主控制芯片STC89C52接口电路设计 (13)2.3.2 显示电路设计 (15)2.3.3 报警电路设计 (16)2.3.4 键盘接口电路设计 (17)2.3.5 AT24C02断电存储电路设计 (18)2.3.6 DS18B20电路设计 (18)2.3.7 DS1302时钟电路设计 (19)第3章系统的软件设计 (21)3.1 I/O口资源分配 (21)3.2 主模块软件设计 (21)3.3 功能模块子程序软件设计 (22)3.3.1 时间调整模块 (22)3.3.2 LCD1602显示程序模块 (24)3.3.3 DS1302时钟程序模块 (25)3.3.4 DS18B20温度采集程序模块 (26)第4章系统调试 (28)4.1 调试所遇到的问题 (28)4.2 问题分析和解决问题的方法 (28)4.3 软件系统使用操作说明 (31)第5章结束语 (33)参考文献 (34)绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
基于STC89C52单片机的电子时钟研究
基于STC89C52单片机的电子时钟研究一、本文概述本文旨在研究和探讨基于STC89C52单片机的电子时钟设计与实现。
STC89C52单片机作为一种高效、稳定的微控制器,在嵌入式系统设计中具有广泛的应用。
通过对其内部资源的合理配置与外部硬件电路的设计,我们可以构建出功能丰富、性能稳定的电子时钟系统。
本文将详细介绍电子时钟的硬件电路设计、软件编程、功能实现以及性能优化等方面的内容,旨在为相关领域的研究者和实践者提供有益的参考和借鉴。
在硬件电路设计方面,我们将围绕STC89C52单片机的核心功能,设计包括时钟显示、按键输入、时钟校准等功能的电路模块。
在软件编程方面,我们将采用C语言进行程序编写,实现时钟的计时、显示、控制等功能。
我们还将对电子时钟的功耗、稳定性、精度等性能进行优化和提升,以满足实际应用的需求。
通过本文的研究和探讨,我们期望能够为STC89C52单片机在电子时钟设计中的应用提供有益的思路和方法,同时也为推动嵌入式系统设计和技术发展做出一定的贡献。
二、STC89C52单片机在电子时钟设计中的应用优势STC89C52单片机在电子时钟设计中具有显著的应用优势,其独特的特性和功能使其成为电子时钟设计的理想选择。
STC89C52单片机具有较高的集成度和可靠性,能够在较小的空间内实现复杂的功能,并且具有良好的稳定性,保证了电子时钟的长期稳定运行。
STC89C52单片机具有丰富的I/O接口和扩展能力,方便与其他硬件模块进行连接和通信。
这使得电子时钟设计更加灵活,可以根据实际需求添加各种功能模块,如温度显示、日期提醒等,提高了电子时钟的实用性和便利性。
STC89C52单片机还具有低功耗的特点,能够在保证性能的同时降低能耗,延长电子时钟的使用寿命。
其编程简单易懂,便于开发人员快速上手,降低了开发成本和时间。
STC89C52单片机在电子时钟设计中具有集成度高、可靠性好、扩展能力强、低功耗和编程简单等优势,使得其在电子时钟领域得到了广泛应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计
基于STC89C52的电子时钟的设计
电路图
程序:
#include <reg52.h>
sbit beep=P1^0; //蜂鸣器
sbit l1=P1^1; //第一个红灯
sbit l2=P1^2; //第一个绿灯
sbit w4=P1^4; //第1位
sbit w3=P1^5; //第2位
sbit w2=P1^6; //第3位
sbit w1=P1^7; //第4位
sbit k1=P3^2; //按键1 +
sbit k2=P3^3; //按键2 —
sbit k3=P3^6; //按键3 时分调整
sbit k4=P3^7; //按键4 功能选择秒表闹钟时间
unsigned int a,b,c,d,e,f,num,num1,num2,num3,sum;
unsigned char code table[]={0xc0 ,0xf9,0xa4,0xb0,0x99, //15-i
0x92,0x82,0xf8,0x80,0x90}; //0011 1111 1100 0000 void keyscan();
void sound();
void time();
void display(); // 时间显示
void display2(); // 秒表显示
void delay(unsigned int t)
{unsigned int i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
void init()
{
num=45;
num2=59;
num3=11;
TMOD=0x11;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1;
ET1=1;
TR1=1;
beep=0;
delay(300);
beep=1;
delay(500);
}
void main()
{
init();
while(1)
{
keyscan();
display();
time();
}
}
void sound()
{
beep=0;delay(100);beep=1;
}
void time()
{
if(num==59) //整点报时 2 miao {
beep=0;
}
else if(num==0) //整点报时
{
beep=1;
}
}
void keyscan() //按键检测
{
if(k3==0)
{
TR1=0;
sum++;
delay(30);
}
switch(sum)
{
case 1: if(k1==0)
{num2++;
sound(); //蜂鸣叫
while(!k1)
if(num2==60)
{num2=0;
}
break;
}
if(k2==0)
{num2--;
sound(); //蜂鸣叫
while(!k2)
if(num2==-1)
{num2=59;
}
break;
}
break;
case 2: if(k1==0)
{num3++;
sound(); //蜂鸣叫
while(!k1)
if(num3==24)
{num3=0;
}
break;
}
if(k2==0)
{num3--;
sound(); //蜂鸣叫
while(!k2)
if(num3==-1)
{num3=23;
}
break;
}
break;
case 3: sum=1;
TR1=1;
break;
}
if(k4==0)
{
P0=table[0];
w1=0;
w2=0; //初始化
w3=0;
w4=0;
while(1)
{
display2();
}
}
}
void display()
{
a=num/10;
b=num%10;
c=num2/10; //时分秒的个位和十位d=num2%10;
e=num3/10;
f=num3%10;
P0=table[e];
w1=0; //第1位delay(2);
w1=1;
P0=table[f];
w2=0; //第2位delay(2);
w2=1;
P0=table[c];
w3=0; //第3位delay(2);
w3=1;
P0=table[d];
w4=0; //第4位delay(2);
w4=1;
}
void display2() {
P0=table[e];
w1=0; //第1位delay(2);
w1=1;
P0=table[f];
w2=0; //第2位delay(2);
w2=1;
P0=table[c];
w3=0; //第3位delay(2);
w3=1;
P0=table[d];
w4=0; //第4位
delay(2);
w4=1;
}
void T1_time()interrupt 3
{
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
num1++;
if(num1==20)
{
l1=~l1;
num1=0;
num++;
if(num==60)
{
l2=~l2;
num=0; //秒到60跳到0
num2++;
if(num2==60)
{num2=0; //分到60跳到0
num3++;
if(num3==13) //时位到13 跳到0
{num3=1;
}
}
} //num记秒num2计分num3计时
}
}。