单片机课程设计--数字钟

合集下载

单片机课程设计——基于AT89C51的数字钟的设计

单片机课程设计——基于AT89C51的数字钟的设计

课程设计报告课程:单片机原理与接口技术姓名:班级:10通信1班河北联合大学信息工程学院一、设计名称基于AT89C51的数字钟的设计二、设计目的及要求1,了解AT89C51芯片的功能,性能,及使用方法。

2,了解时钟日历芯片DS12887的性能及使用方法。

3,利用所学汇编语言编(中断、计数等)写代码实现钟表计时定时等功能。

三、设计原理说明利用AT89C51芯片、时钟日历芯片DS12887,三极管等器件连接硬件电路,在用kell软件编写时钟程序,调试程序,最后烧入到硬件设备中进行结果检验及更改。

3.1、基于AT89C51数字钟设计的原理数字钟的基本功能是显示时间,可以通过计数器的级联实现。

以4位数码管的数字钟为例,设定前两位为小时,后两位为分钟,数码管的小数点闪烁可以表示秒。

首先产生一个1Hz的方波信号,在它的触发下驱动小数点闪烁。

在这个1Hz 的基础上,可以产生1/60Hz的信号(对1Hz信号计数,每计数30次就将输出反相,得到1/60Hz信号),它就是分钟信号需要的时钟。

在这个时钟的触发下分钟位数码管依次加1,直到60时变为0,再重新开始计数。

清零的时候要产生一个进位,加到小时上面。

其他时间小时位保持不变。

3.2、数字钟主要元件介绍3.2.1、AT89C51单片机AT89C51是一种低功耗,高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的8位COMS微控制器,使用高密度,非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。

芯片上的FPEROM允许在线编程或采用通用的非易失存储编程器对存储器重复编程。

单片机的主要特性如下:1.与MCS-51 兼容2.4K字节可编程闪烁存储器3.全静态工作:0Hz-24MHz4.三级程序存储器锁定5.4KB的片内程序存储器ROM6.128B内部数据存储器RAM和128B特殊功能寄存器SFR7.4个8位可编程并行I/O接口8.两个16位定时/计数器9.5个中断源的控制控制系统10.一个全双工串行接口11.低功耗的闲置和掉电模式12.片内振荡器和时钟电路。

单片机数字时钟课程设计

单片机数字时钟课程设计

单片机数字时钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和编程方法,掌握数字时钟的设计与实现过程。

2. 使学生掌握数字时钟的显示原理,包括时、分、秒的显示和调整方法。

3. 让学生了解单片机与其他硬件设备(如LED显示屏、按键等)的接口技术。

技能目标:1. 培养学生运用单片机编程实现数字时钟功能的能力。

2. 培养学生运用所学知识解决实际问题的能力,如调试程序、排查故障等。

3. 提高学生的动手实践能力,能够独立完成数字时钟的搭建和调试。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学生的创新意识和探索精神。

2. 培养学生团队协作精神,学会在合作中解决问题,共同完成任务。

3. 培养学生严谨的学习态度和良好的学习习惯,注重实践与理论相结合。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为单片机应用实践课程,注重理论联系实际,培养学生的动手能力和创新能力。

2. 学生特点:学生已具备一定的单片机基础知识,有一定的编程基础,但实践能力有待提高。

3. 教学要求:以学生为主体,教师为主导,采用项目式教学,引导学生主动探究和解决问题。

二、教学内容1. 理论知识:- 单片机原理及编程基础回顾;- 数字时钟的原理与设计思路;- 单片机与其他硬件设备的接口技术。

2. 实践操作:- 数字时钟的硬件搭建,包括LED显示屏、按键等;- 单片机程序编写,实现时、分、秒的显示与调整;- 程序调试与故障排查。

3. 教学大纲:- 第一阶段(1课时):单片机原理及编程基础回顾;- 第二阶段(2课时):数字时钟原理学习,设计思路讲解;- 第三阶段(2课时):硬件搭建与程序编写;- 第四阶段(1课时):程序调试与故障排查;- 第五阶段(1课时):成果展示与总结。

4. 教材关联:- 教材第3章:单片机原理及编程基础;- 教材第4章:数字时钟设计与实现;- 教材第5章:单片机与其他硬件设备接口技术。

单片机课程设计报告单片机的电子钟设计

单片机课程设计报告单片机的电子钟设计

单片机课程设计报告---单片机的电子钟设计单片机课程设计报告---单片机的电子钟设计一、设计简介本课程设计是以单片机为核心,设计一个具有显示时间和闹钟功能的电子钟。

电子钟是人们日常生活中必备的计时工具,其精度和稳定性直接影响到人们的时间安排和生活质量。

因此,本设计的目的是通过学习和实践,掌握单片机的应用和电子钟的设计方法,提高我们的实践能力和理论知识水平。

二、硬件设计1.单片机选择本设计选用AT89C51单片机作为主控制器。

AT89C51是一种低功耗、高性能的8位单片机,具有丰富的I/O口和片内资源,适合用于各种嵌入式系统开发。

2.显示模块显示模块采用LED数码管,用于显示时间、日期和闹钟状态。

为了方便调试和编程,我们选用4位一体式数码管。

3.按键模块按键模块包括功能键和调整键,用于设置时间、日期和闹钟。

我们选用4个独立式按键,分别实现上调、下调、设置和闹钟功能。

4.蜂鸣器模块蜂鸣器模块用于发出闹钟声音。

我们选用一款常见的无源蜂鸣器,通过单片机的一个IO口控制其频率,实现声音提示功能。

三、软件设计1.时钟芯片驱动本设计选用DS1302时钟芯片,用于提供实时时间和日期的信息。

DS1302与单片机通过I2C协议进行通信,需要编写相应的驱动程序。

驱动程序包括时钟芯片的初始化、数据读写和中断处理等。

2.显示驱动显示驱动程序负责控制数码管的显示。

驱动程序包括延时函数、位选函数和段选函数等。

通过调用这些函数,我们可以实现时间、日期和闹钟状态的动态显示。

3.按键驱动按键驱动程序负责识别用户的按键操作。

驱动程序通过检测独立式按键的状态变化,识别出不同的按键操作,并执行相应的功能。

例如,当用户按下上调键时,驱动程序将调用时钟芯片的读秒函数,并将时间的小时数加1。

4.蜂鸣器驱动蜂鸣器驱动程序负责控制蜂鸣器的声音频率。

驱动程序通过设置单片机的定时器寄存器,产生一定频率的方波信号,驱动蜂鸣器发声。

为了实现不同的声音效果,我们可以通过改变方波信号的频率和持续时间来实现。

单片机课程设计-可调数字钟(来自河北大学)

单片机课程设计-可调数字钟(来自河北大学)

、绪论单片机正朝着高性能和多品种的方向发展,下一步的趋势将是继续向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机应用的重要意义还在于,它从根本上改变了传统控制系统的设计思想和设计方法。

以前必须由模拟电路或数字电路实现的大部分功能,现在已经能用单片机通过软件方法来实现了。

用单片机设计制作数字钟是单片机的一个典型应用。

通过设计制作一个数字钟,我们可以充分了解单片机的工作原理,学会如何用单片机实现数据的处理以及设备的控制等。

设计制作一个数字钟虽然简单,但涉及到的内容却十分广博。

本课程设计是基于单片机时钟的LED显示,通过单片机产生计数功能,经由LED数码管显示,显示时间时、分、秒,并用按键进行时间调整,同时带有整点报时功能。

本课程设计只是设计制作一个功能简单的数字钟,旨在通过对简单的硬件和软件的操作和应用以实现用数码管显示的数字钟,尝试基本的电路设计和单片机的C 语言编程以及锻炼实践动手能力。

整体设计本设计采用51单片机内部定时器产生时钟来进行准确计时,时分秒由3个变量来记录,定义按键功能,来实现时钟的调节,最终是由LED数码管来动态显示时间。

三、硬件电路设计3.1总体电路设计t:>砂■HJ* WT-iyfaj _ . wr_—=^丿W J F'口乎f•屮I ■-w< y■ ^-z H■■屮 / '■~tfVKL3世J.flKIW^LLi t[MW JVDCkl3i_::» -sa_4.■IEFl IT CHFk KIL^H PI1 F 妒1 FN K 旳1 PHK 炉1 Fll rr K 沪1 PfglDTK'L CIFJwmtlv HLW.tiWKTET&沁1 h 僚匕艸1RLMUi C 煙t 艸1 Egt3:Uli E212 F :卯1CILIW 耳㈣i■.、-gj _J .c /SZ JJ Z^呈•as __ '—『1F '.HlI 占注 4.斗丄-:濮].h 半¥ %卞J 1 * ・ 乂WVK L SaE 穴£母Fau■FC •产r””归--.b监咚d1—^A匕3.2信号处理电路vccDIJ2 2iTTLCON2 =D2 ^flN414S3.3单片机最小系统电路R2R1 IQKlOKuKtcu H匸N t fITfl iTfl F-n f*■■b^■"411 hK *Hl- i u -adours ;N :如A1 ESyvccKU1IX7LM3113.4显示电路设计单片机外围电路有时钟电路和复位电路等,时钟电路采用的是内部时钟方 式,在单片机内部有一振荡电路,在外部的XTAL1和XTAL2引脚外接石英石英晶 体(晶振)就构成了自激振荡器课在单片机内部产生时钟脉冲信号, 两电容作用是稳定频率和快速起振,晶振的振荡频率我们采用的是经典值 12MHz复位电路采用的是上电复位和按键复位均有效的方式, 单片机执行复位操作后进入初始化状态。

单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告一、实验目的本次单片机实验的目的是设计并实现一个基于单片机的数字时钟。

通过该实验,深入了解单片机的工作原理和编程方法,掌握定时器、中断、数码管显示等功能的应用,提高综合运用知识解决实际问题的能力。

二、实验原理1、单片机选择本次实验选用了常见的 51 系列单片机,如 STC89C52。

它具有丰富的资源和易于编程的特点,能够满足数字时钟的设计需求。

2、时钟计时原理数字时钟的核心是准确的计时功能。

通过单片机内部的定时器,设定合适的定时时间间隔,不断累加计时变量,实现秒、分、时的计时。

3、数码管显示原理采用共阳或共阴数码管来显示时间数字。

通过单片机的 I/O 口控制数码管的段选和位选信号,使数码管显示相应的数字。

4、按键控制原理设置按键用于调整时间。

通过检测按键的按下状态,进入相应的时间调整模式。

三、实验设备与材料1、单片机开发板2、数码管3、按键4、杜邦线若干5、电脑及编程软件(如 Keil)四、实验步骤1、硬件连接将数码管、按键与单片机开发板的相应引脚通过杜邦线连接起来。

确保连接正确可靠,避免短路或断路。

2、软件编程(1)初始化单片机的定时器、中断、I/O 口等。

(2)编写定时器中断服务程序,实现秒的计时。

(3)设计计时算法,将秒转换为分、时,并进行进位处理。

(4)编写数码管显示程序,将时间数据转换为数码管的段选和位选信号进行显示。

(5)添加按键检测程序,实现时间的调整功能。

3、编译与下载使用编程软件将编写好的程序编译生成可执行文件,并下载到单片机中进行运行测试。

五、程序设计以下是本次数字时钟设计的主要程序代码片段:```cinclude <reg52h>//定义数码管段选码unsigned char code SEG_CODE ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//定义数码管位选码unsigned char code BIT_CODE ={0x01, 0x02, 0x04, 0x08, 0x10,0x20, 0x40, 0x80};//定义时间变量unsigned int second = 0, minute = 0, hour = 0;//定时器初始化函数void Timer_Init(){TMOD = 0x01; //定时器 0 工作在方式 1 TH0 =(65536 50000) / 256; //定时 50ms TL0 =(65536 50000) % 256;EA = 1; //开总中断ET0 = 1; //开定时器 0 中断TR0 = 1; //启动定时器 0}//定时器 0 中断服务函数void Timer0_ISR() interrupt 1{TH0 =(65536 50000) / 256;TL0 =(65536 50000) % 256;second++;if (second == 60){second = 0;minute++;if (minute == 60){minute = 0;hour++;if (hour == 24){hour = 0;}}}}//数码管显示函数void Display(){unsigned char i;for (i = 0; i < 8; i++)P2 = BIT_CODEi;if (i == 0){P0 = SEG_CODEhour / 10;}else if (i == 1){P0 = SEG_CODEhour % 10;}else if (i == 2){P0 = 0xBF; //显示“”}else if (i == 3){P0 = SEG_CODEminute / 10;else if (i == 4){P0 = SEG_CODEminute % 10;}else if (i == 5){P0 = 0xBF; //显示“”}else if (i == 6){P0 = SEG_CODEsecond / 10;}else if (i == 7){P0 = SEG_CODEsecond % 10;}delay_ms(1);//适当延时,防止闪烁}}//主函数void main(){Timer_Init();while (1){Display();}}```六、实验结果与分析1、实验结果将程序下载到单片机后,数字时钟能够正常运行,准确显示时、分、秒,并且通过按键可以进行时间的调整。

单片机课程设计电子时钟

单片机课程设计电子时钟

xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:电子时钟院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)第3章结果测试及分析 (11)3.1结果测试 (11)3.2结果分析 (11)参考文献 (12)附录 A (13)附录 B (21)附录 C (22)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容,要求实现在MCS51单片机上对数字电子钟的基本功能设计,对当前时间正确显示,并可根据需要对时间进行更改,以完成时间的校对和闹钟的设置。

时钟时间以时、分、秒在6位数码管上显示,小时以24小时计时模式,分秒均为60进位。

用6MHz晶振产生振荡脉冲,定时器进行秒计时。

调整设置时间的过程运用可编程键盘上的按键进行控制,共设有5个按键,首先按键A进入校时模式或E进入闹钟模式,再分别按键B对小时或C分钟进行更改,每按键一次数码管计数显示加一,更改结束后按键D退出设置,时钟正常显示。

闹钟时间到时,蜂鸣器鸣响10秒后时钟正常显示。

1.2 设计思路采用C语言程序设计结合硬件电路设计方法,利用Lab6000实验箱来实现数字电子钟的设计。

1)提出方案根据设计要求,可将本次设计分为3个模块进行:1)时钟显示模块:主要用于时间的正确显示。

2)校时模块:此模块用于时钟的校对,以完成用户更改时间的需求。

3)闹钟模块:用于实现闹钟的时间设置和定点闹铃的功能。

2)方案论证时钟显示模块中,利用可编程定时器中断进行秒计时,将时间显示在6位数码管上。

校时模块主要利用键盘上5个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。

闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。

单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..

单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..

单片机课程设计报告基于单片机的数字时钟姓名:班级:学号:一、前言利用实验板上的4个LED数码管,设计带有闹铃、秒表功能的数字时钟。

功能要求:a)计时并显示(LED)。

由于实验板上只有4位数码管,可设计成显示“时分”和显示“分秒”并可切换。

b)时间调整功能。

利用4个独立按钮,实现时钟调整功能。

这4个按钮的功能为工作模式切换按钮(MODE),数字加(INC),数字减(DEC)和数字移位(SHITF)。

c)定闹功能。

利用4个独立按钮设定闹钟时间,时间到以蜂鸣器响、继电器动作作为闹铃。

d)秒表功能。

最小时间单位0.01秒。

二、硬件原理分析1.电源部分电源部份采用两种输入接口(如上图)。

a)外电源供电,采用2.1电源座,可接入电源DC5V,经单向保护D1接入开关S1。

b)USB供电,USB供电口输入电源也经D1单向保护,送到开关S1。

注:两路电源输入是并连的,因此只选择一路就可以了,以免出问题。

S1为板子工作电源开关,按下后接通电源,提供VCC给板子各功能电路。

电路采用两个滤波电容,给板子一个更加稳定的工作电源。

LED为电源的指示灯,通电后LED灯亮。

2.蜂鸣器蜂鸣器分为有源和无源两种,有源即两引脚有一个直流电源就可以长鸣,无源则需要一个1K左右的脉冲才可以蜂鸣,因此对于按键的提示音及报警蜂鸣使用有源来得方便。

有源也可以当无源使用,而无源则不能当有源使用,当然用有源蜂鸣器作音乐发声会失真厉害。

如上图:单片机P15输出高低电平经R21连接三极管B极,控制三极管的导通与截止,从而控制蜂鸣器的工作。

低电平时三极管导通,蜂鸣器得电蜂鸣,高电平时三极管截止,蜂鸣器失电关闭蜂鸣。

电路使用一个四位共阳型数码管,四个公共阳级由三极管放大电流来驱动,三极管由P10-P13控制开与关。

数码管的阴级由P0口经过电阻限流连接。

例如,要十位的数码管工作,P12输出0,使三极管Q12导通,8脚得电,当P0口相应位有输出0时,点亮相应的LED灯组合各种字符数字。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、设计目的。

本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。

通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。

二、设计原理。

本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。

利用数码管来显示小时和分钟,通过按键来调整时间。

同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。

三、设计方案。

1. 硬件设计。

(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。

(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。

(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。

(4)按键输入,设计按键来调整时间,包括调整小时和分钟。

(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。

2. 软件设计。

(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。

(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。

(3)按键处理,设计按键扫描程序,实现对时间的调整。

(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。

四、设计实现。

1. 硬件实现。

根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。

2. 软件实现。

编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。

五、实验结果。

经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。

六、总结与展望。

通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。

在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。

同时,也为学生今后的科研和创新工作奠定了良好的基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计--数字钟
一、设计目的及意义
(1)巩固、加深和扩大51系列单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;
(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;
(3)对课题设计方案的分析、选择、比较、熟悉用51单片机做系统开发、研制的过程,软硬件设计的方法、内容及步骤
二、原理图设计中简要说明设计目的
(1)功能:24小时制时间显示,可随时进行时间校对调整,整点报时及闹钟功能。

(2)原理图中所使用的元器件功能在图中的作用
1.主要元件AT89C51
P3.2 /INT0(外部中断0)
定时器/计数器0溢出中断
2.LED及按键开关
用于时间的显示和设定
(3)各器件的工作过程及顺序
计时状态,AT89C51通过P1口持续向LED发送信号,使LED扫描显示刚前时分秒,当出现定时器/计数器0溢出中断时,时间加多1秒,AT89C51从P1口向LED输出新的时间;只按住SET UP键时,进入外部中断0,时间计数停止,通过点击按键H,M,S对时分秒进行调整,新的时间值送给了计时程序,松开SET UP键退出中断,回到计时状态;
按住SET UP键和ALARM键时,进入外部中断0,时间计数停止,通过点击按键H,M对时分进行闹钟定时,AT89C51记忆时分值,退出时先松开SET UP键再松开ALARM;
闹铃:当时间值和设定闹铃值一样时,进行闹铃一分钟。

(3)流程图
(4)程序清单
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char sbit wela1=P2^0;
sbit wela2=P2^1;
sbit wela3=P2^2;
sbit wela4=P2^3;
sbit wela5=P2^4;
sbit wela6=P2^5;
sbit dp= P1^7;
sbit c0= P0^0;
sbit c1= P0^1;
sbit c2= P0^2;
sbit c3= P0^3;
sbit c4= P0^4;
sbit c5= P0^5;
sbit kai= P3^2;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
void display(void);
void delay(uint);
uint num=0,num1=0,num2=0,num3=0;
uint shi,ge,shi1,ge1,shi2,ge2;uint shi1t,ge1t,shi2t,ge2t; void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
TMOD=0x11;
TH0 =(65536-50000)/256;
TL0 =(65536-50000)%256;
EA =1; //开总中断
EX0 =1; //开外部中断0
IT0 =0; //外部中段0设为电平触发
ET0 =1; //T0溢出中断充许
TR0 =1; //启动内部定时器
IT1=0; //外部中段1设为边沿触发
while(1)
{
display();
}
}
void display(void) //扫描显示{
wela5=1;
P1=table[shi];
delay(5);
wela5=0;
wela6=1;
P1=table[ge];
delay(5);
wela6=0;
wela3=1;
P1=table[shi1];
delay(5);
wela3=0;
wela4=1;
P1=table[ge1];
dp=0;
delay(5);
wela4=0;
wela1=1;
P1=table[shi2];
delay(5);
wela1=0;
wela2=1;
P1=table[ge2];
dp=0;
delay(5);
wela2=0;
}
void int0()interrupt 0 // 时间调整功能,外部中断0,与闹钟功能,按住SET UP进入,松开退出
{
while(kai==0)
{
c3=1; //关闭闹铃
display();
if(c0==1)//秒
{
ge++;delay(10);
if(ge==10)
{
ge=0;shi++;
if(shi==6){shi=0;}
}
while(c0)
display();
}
if(c1==1)//分
{ge1++;delay(10);
if(ge1==10)
{
ge1=0;shi1++;
if(shi1==6){shi1=0;}
}
while(c1)
display();
}
if(c2==1)//时
{ge2++;delay(10);
if(ge2==10)
{
ge2=0;shi2++;
}
if(shi2==2&&ge2==4){shi2=0;ge2=0;}//24进0
while(c2)
display();
}
}
if(c4==1)//闹钟功能区,按住ALARM和SET UP时,就能进行闹钟设定,设定完成后,先松开SET UP再松开ALARMF才有效
{shi1t=shi1;ge1t=ge1;shi2t=shi2;ge2t=ge2;}
else
{num1=shi*10+ge;
num2=shi1*10+ge1;
num3=shi2*10+ge2;}
}
void T0time() interrupt 1 //定时器0溢出中断
{
TH0 =(65536-50000)/256;
TL0 =(65536-50000)%256;
num++;
if(num==5) //num==20时,为现实1秒
{
num=0;
num1++;
if (num1==60)
{
num1=0;
num2++;
}
shi=num1/10;
ge =num1%10;
if (num2==60)
{
num2=0;
num3++;
}
shi1=num2/10;
ge1 =num2%10;
if (num3==24)
{
num3=0;
}
shi2=num3/10;
ge2 =num3%10;
}
if(shi1==0&&ge1==0)//整点检测报时
{ c3=0; }
else{c3=1;}
if(shi1==shi1t && ge1==ge1t && shi2==shi2t && ge2==ge2t)//闹钟检测{ c3=0; }
else{c3=1;}
}。

相关文档
最新文档