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

合集下载

单片机课程设计(电子钟)

单片机课程设计(电子钟)

摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。

单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

关键词 : 单片机;数码管;数字时钟目录1 系统功能要求 (1)2 设计原理及方案论证 (2)2.1数字钟原理 (2)2.2电子时钟方案 (2)2.3数码管显示方案 (3)3 主控制器和外围器件 (4)3.1单片机主控芯片 (4)3.2 LED驱动芯片 (4)3.3 4x4矩阵键盘模块 (5)3.4 蜂鸣器模块 (5)3.5 下载线接口电路 (6)3.6 DS1302时钟模块 (6)3.7 单片机晶振模块 (7)4 系统硬件电路设计 (8)4.1 单片机整体功能模块图 (8)4.2 单片机蜂鸣器和数码管连接图 (8)4.2 单片机矩阵键盘连接图 (9)4.3 单片机时钟模块和晶振连接图 (9)5 软件程序设计 (10)6 实验测试部分 (20)6.1测试结果 (20)6.1.1电子钟正常的运行 (20)6.1.2电子钟矫正时间后的运行 (20)6.2测试结果分析与结论 (21)7总结 (22)8参考文献 (23)1 系统功能要求本次设计时钟电路,使用了AT89S52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂。

数字电子钟单片机课程设计

数字电子钟单片机课程设计

数字电子钟单片机课程设计一、课程目标知识目标:1. 学生能理解数字电子钟的基本工作原理,掌握单片机在数字电子钟中的应用。

2. 学生能掌握数字电子钟的各功能模块(如计时、闹钟、显示等)的设计与实现。

3. 学生了解并掌握数字电子钟程序编写的基本方法,学会运用编程语言(如C 语言)进行程序设计。

技能目标:1. 学生能运用所学知识,设计并制作一个简易的数字电子时钟,具备基本的时间显示、闹钟等功能。

2. 学生能够独立完成程序编写,实现数字电子钟的基本功能,并具备一定的调试与优化能力。

3. 学生能够通过团队合作,发挥各自专长,共同完成课程设计任务。

情感态度价值观目标:1. 学生在课程学习中,培养对电子技术的兴趣和爱好,激发创新意识。

2. 学生通过实践活动,培养动手能力、解决问题的能力和团队协作精神。

3. 学生在学习过程中,树立正确的价值观,认识到科技对生活的重要性,增强社会责任感。

本课程针对高年级学生,课程性质为实践性较强的设计与制作类课程。

学生在前期课程中已具备一定的电子技术基础和编程能力,本课程旨在巩固和拓展这些知识。

在教学过程中,要求教师注重引导学生主动探索、实践,鼓励学生发挥创新能力,同时关注学生的个体差异,提供有针对性的指导。

通过课程目标的实现,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续相关课程的学习打下坚实基础。

二、教学内容1. 数字电子钟原理及单片机基础:包括时钟电路、计数器、寄存器等基本原理,以及单片机的内部结构、工作原理和编程接口。

- 教材章节:第一章 电子时钟原理;第二章 单片机基础- 内容列举:时钟电路设计、计数器应用、寄存器配置、单片机内部结构、I/O 口编程。

2. 数字电子钟功能模块设计:讲解并实践计时、闹钟、显示等模块的设计方法。

- 教材章节:第三章 数字电子钟设计;第四章 模块化设计- 内容列举:计时模块、闹钟模块、显示模块设计,模块间通信协议。

3. 程序设计与编写:学习数字电子钟的程序编写方法,运用C语言进行程序设计。

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

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

单片机实验报告——数字钟设计班级:学号:姓名:时间:一.实验目的1、进一步熟悉C的语法知识和keil环境;2、熟练掌握一些常用算法;3、熟悉keil的编写、下载、调试过程;4、了解单片机的工作原理和电路图;5、熟悉单片机的外围电路功能模块、LED灯、数码管模块以及键盘;6、熟练焊接技术。

二.实验器件三.数字钟设计原理数字钟实际是对标准频率计数的电路,由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的时间信号必须做到准确稳定。

通常使用石英晶体振荡电路构成数字钟。

数字钟电子钟由以下几部分组成:按键开关部分,振荡电路部分,89c51单片机控制器,4位数码管显示部分,7407数码管驱动部分。

按键开关振荡电路89C51单片机控制器4位数码管显示7407列驱动四.流程图主程序流程图如图2.3所示,定时器T0中断服务程序流程图如2.4所示。

返回五.51单片机系统的硬件连接1、STC单片机最小系统硬件电路图如下2、硬件电路的设计该电路采用AT89C51单片机最小化应用,采用共阴7段LED数码管显示器,P2.4~P2.7口作为列扫描输出,P0口输出段码数据,P1.2,P1.1口接2个按钮开关,用于调时及功能误差,采用12Mhz晶振,可提高秒计时的精确度。

六.程序设计HOUR EQU 3AH ;赋值伪指令MIN EQU 3BHSEC EQU 3CHBUFF EQU 3DHORG 0000HAJMP MAINORG 000BH ;主程序入口AJMP PTF0ORG 0033H ;跳转到标号PTF0执行;**************************************************************;主程序MAIN: MOV HOUR, #00H ;时,分,秒,标记清零MOV MIN, #00HMOV SEC, #00HMOV BUFF, #00HMOV SP, #0EFH ;设堆栈指针MOV TH0, #0ECH ;定时器赋初值MOV TL0, #78HMOV 40H, #100 ;设循环次数MOV 41H, #2MOV TMOD , #1 ;写TMODMOV IP, #2 ;写IPMOV IE, #82HMOV R5,#0;开中断SETB TR0 ;启动定时器PTF0: SETB P1.2MOV TH0, #0ECHMOV TL0, #78HINC R5MOV R6,BUFFCJNE R6,#00H,BBMOV DPTR,#TAB1LJMP LOOP0BB:MOV DPTR,#TABLOOP0: CJNE R5,#1,LOOP1ACALL LOP0AJMP JKLOOP1:CJNE R5,#2,LOOP2ACALL LOP1AJMP JKLOOP2:CJNE R5,#3,LOOP3ACALL LOP2AJMP JKLOOP3:ACALL LOP3MOV R5,#0JK: DJNZ 40H, PTFORXRL BUFF, #0FFHMOV 40H, #100JNB P1.1, JFJNB P1.2, JSMOV R7, 41HCJNE R7, #1, AAAA: DJNZ 41H, PTFORMOV 41H,#2MOV A, SEC ;秒加1ADD A, #1DA AMOV SEC, ACJNE A, #60H, PTFORMOV SEC, #0 ;秒清零JF: MOV A, MIN ;分加1ADD A, #1DA AMOV MIN, ACJNE A, #60H,PTFORMOV MIN, #0 ; 分清零ACALL LEDJS: MOV A,HOURADD A,#1DA AMOV HOUR,A ;时加1CJNE A, #24H,PTFOR ;时加到24时否?是,清零MOV HOUR, #0PTFOR:RETILOP0: MOV A, MIN ;显示分钟的个位ANL A, #0FHMOVC A, @A+DPTRMOV P0,AMOV P2,#0F0HCLR P2.4CLR P0.4RETLOP1:MOV A, MIN ;显示分钟的十位SWAP AANL A, #0FHMOVC A, @A+DPTRMOV P0, AMOV P2, #0F0HCLR P2.5CLR P0.4RETLOP2: MOV A, HOUR ;显示时钟的个位ANL A, #0FHMOVC A, @A+DPTRMOV P0, AMOV P2, #0F0HCLR P2.6RETLOP3:MOV A, HOUR ;显示时钟的十位SWAP AANL A, #0FHMOVC A, @A+DPTRMOV P0, AMOV P2, #0F0HCLR P2.7CLR P0.4RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;不带小数点的字型码TAB1:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数点的字型码END七.系统调试及结果分析硬件调试硬件电路板中器件连接好后,先用万用表测试电路中有无虚焊短接之处,测试无误后,将板子通电,进行静态调试。

单片机数字时钟课程设计

单片机数字时钟课程设计

单片机数字时钟课程设计一、课程目标单片机数字时钟课程设计旨在让八年级学生在巩固已学电子技术知识的基础上,通过实践操作,实现以下目标:1. 知识目标:(1)理解单片机的基本原理,掌握其编程方法;(2)掌握数字时钟的构成和工作原理;(3)学会使用相关电子元件,如LED显示屏、时钟芯片等。

2. 技能目标:(1)能够运用C语言进行单片机编程,实现数字时钟的基本功能;(2)通过动手实践,提高电路搭建和调试能力;(3)培养团队协作和问题解决能力。

3. 情感态度价值观目标:(1)激发学生对电子技术的兴趣,培养创新精神和动手实践能力;(2)养成严谨的学习态度,提高自主学习能力;(3)培养学生关爱环境、珍惜资源的意识,强化责任感。

本课程针对八年级学生的认知特点,注重理论与实践相结合,以学生为主体,教师为主导。

通过本课程的学习,学生能够将所学知识应用于实际项目中,提高综合运用能力,培养科学精神和创新意识。

课程目标分解为具体学习成果,便于后续教学设计和评估。

二、教学内容依据课程目标,教学内容围绕单片机数字时钟设计与实现展开,包括以下部分:1. 理论知识:(1)单片机原理及编程基础,参考教材第3章;(2)数字时钟工作原理及电路设计,参考教材第5章;(3)C语言编程及应用,参考教材第4章。

2. 实践操作:(1)数字时钟电路搭建,使用LED显示屏、时钟芯片等元件;(2)单片机编程,编写控制程序,实现时钟显示、校时等功能;(3)调试与优化,对搭建的数字时钟进行调试,确保其稳定运行。

3. 教学大纲:第1周:回顾单片机原理及编程基础,学习数字时钟工作原理;第2周:学习C语言编程,编写简单的数字时钟程序;第3周:设计数字时钟电路,进行电路搭建;第4周:编程实现数字时钟功能,进行调试与优化。

教学内容注重科学性和系统性,结合教材章节内容,以实践操作为主,使学生能够将理论知识与实际应用紧密结合,提高综合运用能力。

同时,教学进度安排合理,确保学生在规定时间内完成课程学习。

单片机数字时钟课程设计

单片机数字时钟课程设计

单片机数字时钟课程设计一、课程目标知识目标: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. 学生能理解单片机的基本原理,掌握数字时钟的工作机制;2. 学生能描述数字时钟的各个模块功能,如时钟电路、计数器、显示电路等;3. 学生能运用所学编程语言,如C语言,编写数字时钟的程序代码。

技能目标:1. 学生能运用单片机开发工具进行程序编写、调试和下载;2. 学生能动手搭建数字时钟硬件电路,实现时钟的显示和计时功能;3. 学生能通过实际操作,掌握基本电路故障排查和程序调试技巧。

情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新意识和动手能力;2. 学生在团队协作中学会沟通、分享和承担责任,培养合作精神;3. 学生通过解决实际问题,体会科技对社会发展的作用,增强社会责任感。

课程性质:本课程为实践性较强的课程,结合理论教学和动手操作,让学生在实际操作中掌握单片机数字时钟的制作。

学生特点:学生具备一定的电子基础知识,对单片机有一定了解,喜欢动手实践,具有较强的求知欲和好奇心。

教学要求:注重理论与实践相结合,强调学生在操作过程中掌握知识,培养学生动手能力、创新意识和团队协作能力。

通过课程学习,使学生能够独立完成单片机数字时钟的设计与制作。

二、教学内容1. 理论知识:- 单片机原理:介绍单片机的硬件结构、工作原理和编程方法;- 数字时钟原理:分析数字时钟的组成、工作原理及各模块功能。

2. 实践操作:- 硬件设计:指导学生设计数字时钟的硬件电路,包括时钟电路、计数器、显示电路等;- 程序编写:教授学生使用C语言编写单片机程序,实现数字时钟的功能;- 调试与下载:教授学生如何使用开发工具进行程序调试和下载。

3. 教学大纲:- 第一周:单片机原理学习,了解数字时钟的基本原理;- 第二周:分析数字时钟各模块功能,学习C语言编程基础;- 第三周:设计数字时钟硬件电路,编写程序代码;- 第四周:进行程序调试,搭建完整的数字时钟系统。

4. 教材关联:- 教材第一章:单片机原理及其应用;- 教材第二章:数字电路设计基础;- 教材第三章:C语言编程基础;- 教材第四章:单片机程序设计与实践。

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

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

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

(2)原理图中所使用的元器件功能在图中的作用1.主要元件AT89C51P3。

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; //开外部中断0IT0 =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进0while(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;}}。

单片机数字钟课程设计

单片机数字钟课程设计

单片机数字钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握数字钟的电路构成和工作原理。

2. 使学生掌握单片机编程的基本方法,能够运用C语言编写简单的数字钟程序。

3. 帮助学生了解数字钟的各个模块功能,如时钟电路、计数器、显示电路等。

技能目标:1. 培养学生动手搭建数字钟电路的能力,提高实践操作技能。

2. 培养学生运用编程软件进行程序编写、调试和优化单片机程序的能力。

3. 培养学生分析问题、解决问题的能力,能够解决数字钟运行过程中出现的故障。

情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学生的求知欲和探索精神。

2. 培养学生团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。

3. 培养学生严谨的科学态度,注重实验数据的真实性,养成认真负责的学习习惯。

课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,旨在培养学生的动手能力、编程能力和问题解决能力。

学生特点:学生为初中生,具备一定的电子知识基础,对单片机有一定了解,喜欢动手实践,对新鲜事物充满好奇心。

教学要求:教师需结合学生特点,以引导为主,讲解与实践相结合,注重培养学生的自主学习能力和团队合作精神。

在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能达到课程目标。

通过课程学习,使学生能够独立完成数字钟的搭建和程序编写,提高综合运用知识的能力。

二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理,重点讲解AT89C52单片机的内部结构、引脚功能及特性。

教材章节:第一章 单片机概述,第二节 AT89C52单片机简介2. 数字钟电路设计:讲解数字钟的电路构成,包括时钟电路、计数器、显示电路等模块,分析各模块之间的连接关系。

教材章节:第二章 数字钟电路设计,第一节 数字钟概述,第二节 电路模块介绍3. 单片机编程:教授C语言编程基础,以数字钟为例,讲解程序设计思路、流程及编程技巧。

数字时钟单片机课程设计

数字时钟单片机课程设计

数字时钟单片机课程设计一、课程目标知识目标:1. 学生能理解数字时钟单片机的基本原理,掌握单片机的硬件结构和软件编程方法。

2. 学生能运用所学的单片机知识,设计并实现一个具有基本功能的数字时钟。

3. 学生了解数字时钟的显示原理,掌握时间计算和显示的编程技巧。

技能目标:1. 学生能够独立完成数字时钟单片机的硬件连接和程序编写,具备实际操作能力。

2. 学生通过课程学习,培养解决实际问题的能力,学会调试程序,找出并解决问题。

3. 学生能够运用所学知识,进行创新设计,提高动手实践能力。

情感态度价值观目标:1. 学生在学习过程中,培养对单片机技术的兴趣,提高对电子技术的认识。

2. 学生通过团队合作,培养沟通协作能力,增强团队精神。

3. 学生在课程实践中,体会科技改变生活的实际应用,激发创新意识。

课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际操作技能。

学生特点:学生具备一定的单片机基础知识,对电子技术有较高的兴趣,喜欢动手实践。

教学要求:教师应结合学生特点,采用任务驱动法,引导学生主动探究,注重实践操作能力的培养。

在教学过程中,关注学生的个体差异,提供有针对性的指导。

通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。

二、教学内容1. 硬件基础:介绍数字时钟单片机的硬件结构,包括处理器、时钟电路、显示模块等组成部分。

关联教材第3章“单片机硬件结构”。

- 单片机选型与特性- 时钟电路原理与设计- 显示模块工作原理与接口技术2. 程序设计:讲解数字时钟程序设计的基础知识,包括编程语言、程序结构和流程控制。

关联教材第4章“单片机编程基础”。

- 基本指令与编程语法- 时间计算与显示编程- 程序调试与优化技巧3. 系统设计与实现:引导学生进行数字时钟单片机系统的设计与实现,包括硬件连接、程序编写和功能测试。

关联教材第6章“单片机应用系统设计”。

- 硬件连接与电路搭建- 程序编写与功能实现- 系统调试与故障排除4. 创新实践:鼓励学生运用所学知识进行创新设计,提高数字时钟的功能和实用性。

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

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

单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。

2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。

3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。

4、能够实现按键启动与停止功能。

5、能够实现整点报时功能。

6、能够实现秒表功能。

二、设计思路1、芯片介绍VCC:电源。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能RXD(串行输入口)TXD(串行输出口)/INT0(外部中断0)/INT1(外部中断1)T0(记时器0外部输入)T1(记时器1外部输入)/WR(外部数据存储器写选通)/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

单片机数字钟课程设计

单片机数字钟课程设计

单片机数字钟课程设计单片机数字钟课程设计1. 硬件设计:- 使用单片机控制数字钟的显示和时间的设置功能,在电路板上连接LED数码管用于显示时间。

- 使用实时时钟芯片或者外部晶振作为时钟源,确保时间的准确性。

- 设置按键用于调整时间,包括小时、分钟和秒钟。

2. 功能设计:- 初始化功能:启动时将时间设置为00:00:00。

- 显示功能:将当前时间显示在LED数码管上,包括小时、分钟和秒钟。

- 调整时间功能:按下相应的按键,可以调整小时、分钟和秒钟,同时更新LED数码管上的显示。

- 闹钟功能:设置一个闹钟时间,并在闹钟时间到达时发出声音或者闪烁LED灯提示。

3. 软件设计:- 使用C语言编写单片机的程序,通过编程控制数码管的显示和按键的响应。

- 在程序中使用定时器中断来更新时间的显示,确保时间的准确性。

- 使用按键中断来响应按键的操作,包括调整时间和设置闹钟功能。

4. 测试与调试:- 在编写完程序后,进行测试和调试,确保各项功能的正常运行。

- 使用示波器等工具来监测时钟信号和按键信号的波形,确保硬件连接的正确性。

- 运行程序并观察LED数码管的显示,以及按键的响应情况,进行功能的验证。

5. 效果展示:- 在完成测试和调试后,将数字钟的效果展示给他人,包括时间的显示和调整、闹钟的设置和响应等功能。

- 可以将数字钟制作成实物展示,方便他人观看和操作,也可以进行演示和讲解,介绍数字钟的工作原理和设计思路。

整个单片机数字钟的课程设计过程包括硬件设计、功能设计、软件设计、测试与调试以及效果展示。

通过这个设计项目,可以锻炼学生的硬件和软件设计能力,提高他们对单片机原理和应用的理解和掌握程度。

单片机课程设计数字时钟

单片机课程设计数字时钟

单片机课程设计数字时钟一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解数字时钟的工作机制;2. 使学生了解数字时钟的硬件组成,掌握相关程序设计方法;3. 引导学生运用所学知识,设计并实现一个具有基本功能的数字时钟。

技能目标:1. 培养学生动手操作单片机及其外围设备的能力,提高编程技巧;2. 培养学生运用C语言进行单片机程序设计的能力;3. 培养学生团队协作、问题解决和创新能力。

情感态度价值观目标:1. 激发学生对单片机及嵌入式系统的学习兴趣,培养其主动探索精神;2. 培养学生严谨的科学态度,养成良好的编程习惯;3. 增强学生的自信心和成就感,使其认识到学习知识可以改变生活。

课程性质分析:本课程为单片机课程设计,侧重于实践操作和编程技巧的培养。

结合学生年级特点,课程内容以基础知识为主线,注重理论与实践相结合。

学生特点分析:学生已具备一定的单片机基础知识和C语言编程能力,但对数字时钟的硬件设计和程序设计尚不熟悉。

因此,课程设计应充分考虑学生的认知水平,引导他们逐步掌握数字时钟的设计方法。

教学要求:1. 注重知识点的系统性和连贯性,使学生在实践中掌握理论知识;2. 着重培养学生的动手能力、编程能力和团队协作能力;3. 结合实际案例,引导学生将所学知识应用于实际项目中,提高其问题解决能力。

二、教学内容1. 理论知识:- 单片机基本原理与结构;- 数字时钟工作原理;- C语言编程基础;- 单片机外围设备及其接口技术。

2. 实践操作:- 数字时钟硬件设计,包括时钟芯片、显示模块、电源模块等;- 数字时钟程序设计,包括时钟初始化、时间更新、显示控制等;- 单片机与外围设备的连接和调试;- 数字时钟功能的实现与优化。

3. 教学大纲:- 第一周:单片机基本原理与结构学习,了解时钟芯片功能;- 第二周:学习C语言编程基础,掌握程序设计方法;- 第三周:数字时钟硬件设计,选择合适的外围设备;- 第四周:数字时钟程序设计,实现基本功能;- 第五周:连接单片机与外围设备,进行系统调试;- 第六周:优化数字时钟功能,总结课程设计。

单片机数字电子钟课程设计

单片机数字电子钟课程设计

单片机数字电子钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基础知识,掌握数字电子时钟的原理和工作流程。

2. 学生能描述单片机编程的基本步骤,特别是与计时相关的指令和程序设计方法。

3. 学生能够解释数字电子钟各部分功能,如时钟电路、显示电路等,并了解它们之间的协作关系。

技能目标:1. 学生能够运用所学的单片机知识,设计并实现一个简单的数字电子钟程序。

2. 学生通过动手实践,提高焊接和电路排错的能力,能够组装和调试电子钟电路。

3. 学生能够利用仿真软件对电子钟程序进行测试和优化,培养问题解决和程序调试技巧。

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

2. 通过团队协作完成项目,增强学生的合作意识和沟通能力。

3. 学生在课程学习过程中,能够体验到知识与实践相结合的成就感,培养科学、严谨的学习态度。

分析课程性质、学生特点和教学要求:本课程设计针对高中年级学生,假设他们已具备基础物理知识和一定的编程能力。

课程性质为实践性强的综合设计课,旨在通过单片机数字电子钟的制作,巩固学生的电子技术知识与技能。

课程目标设定时考虑了学生的年龄特点和认知水平,注重理论与实践的结合,鼓励学生动手操作和探究学习,旨在提高学生的综合技术应用能力。

通过具体的学习成果分解,本课程旨在让学生不仅学习到知识,而且能够将知识应用到实际问题的解决中,充分体现课程的实用性和创新性。

二、教学内容1. 单片机基础知识回顾:重点复习单片机的内部结构、工作原理及编程基础,关联教材第二章内容。

2. 数字电子时钟原理:讲解时钟电路、计数器、振荡器等组成部分,对应教材第四章第二节。

- 时钟电路的构成与工作原理- 计数器的作用及其编程方法- 振荡器的种类及其在电子时钟中的应用3. 单片机编程设计:结合教材第三章,介绍编写电子时钟程序所需的指令和编程技巧。

- 基本计时指令的使用- 程序流程图的绘制- 中断处理在电子时钟中的应用4. 电路设计与制作:依据教材第五章,指导学生进行电子时钟的电路设计和组装。

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

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

单片机课程设计——简单数字钟班级:姓名:学号:指导教师:目录1.系统设计及要求 (3)2.硬件总体设计方案 (3)2.1系统功能实现总体设计思路 (3)2.2.系统工作原理 (3)2.3总电路原理图 (4)2.4.原件清单 (5)3软件总体设计方案 (6)4.总结 (16)5.参考资料 (16)一.系统设计要求1.1基本功能1. 实时显示时、分、秒2. 实现时钟对表3. 使用220V/50Hz交流电源。

4. 停电时要有备用电池维持实时时钟。

二.硬件总体设计方案本次设计始终电路,使用了STC单片机芯片控制电路,单片机控制电路简单而且省去了很多复杂的线路,使电路简明易懂,使用键盘上的按键来调整时钟的时.分,用以扬声器来进行定时提醒,同时用汇编语言程序来控制整个时钟显示。

通过四个模块:键盘.芯片.扬声器.显示屏既可满足设计要求。

2.1系统功能实现总体设计思路此设计原理框图如下图所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。

设计原理图2.2.系统工作原理本程序采用汇编语言程序设计,使单片机控制数码显示时.分,第三个小数点闪烁一下表示一秒,当闪60次时就向分进位,分计数器记慢60后向时计数器进位,小时计数器按“23翻0”规律计数。

时,分的计数结果经过数据处理可直接送显示器显示。

当计数发送误差时可以用校正电路进行校正。

2.3.总电路原理图STC89C51有40引脚,双列直插(DIP )封装,所用引脚功能如下:1.VCC ——运行时加+4.5V2.GND ——接地3.XTAL1 ——振荡器反相放大器及内部时钟发生器的输入端4.XTAL2 ——振荡器反相放大器的输出端5.RST ——复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFT AUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

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

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

实验任务(1.开机时,显示12:00:00的时间开始计时;(2.P0.0/AD0控制“秒”的调整,每按一次加1秒;(3.P0.1/AD1控制“分”的调整,每按一次加1分;(4.P0.2/AD2控制“时”的调整,每按一次加1个小时;2.电路原理图P0_0~P0_3要加上拉电阻。

图4.20.1 3.系统板上硬件连线(2.把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上;(3.把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上;4.相关基本知识(1.动态数码显示的方法(2.独立式按键识别过程(3.“时”,“分”,“秒”数据送出显示处理方法5.程序框图6.汇编源程序SECOND EQU 30HMINITE EQU 31HHOUR EQU 32HHOURK BIT P0.2MINITEK BIT P0.1SECONDK BIT P0.0DISPBUF EQU 40HDISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV SECOND,#00HMOV MINITE,#00HMOV HOUR,#12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV TEMP,#0FEHLCALL DISP ;2KB范围内长调用MOV TMOD,#01HMOV TH0,#(65536-2000) / 256 ;2msMOV TL0,#(65536-2000) MOD 256WT: JB SECONDK,NK1 ;SECONDK是1转NK1,即按键SP1按下时转.LCALL DEL Y10MSJB SECONDK,NK1INC SECONDMOV A,SECONDCJNE A,#60,NS60MOV SECOND,#00HNS60: LCALL DISPJNB SECONDK,$NK1: JB MINITEK,NK2LCALL DEL Y10MSJB MINITEK,NK2INC MINITEMOV A,MINITECJNE A,#60,NM60MOV MINITE,#00HNM60: LCALL DISPJNB MINITEK,$NK2: JB HOURK,NK3LCALL DELY10MSJB HOURK,NK3INC HOURMOV A,HOURCJNE A,#24,NH24MOV HOUR,#00HNH24: LCALL DISPJNB HOURK,$NK3: LJMP WTDEL Y10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETDISP: ;将得出的时间存入40H (DISPBUF)之后的地址MOV A,#DISPBUFADD A,#8DEC AMOV R1,AMOV A,HOURMOV B,#10DIV ABMOV @R1,A ;累加器送内部RAM单元@R1与R1区分?:@R1——R1为地址,@R1指向其内容。

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

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

软件调试:检查程序逻辑是 否正确,功能是否实现
性能测试:测试数字钟的准 确性、稳定性和可靠性
硬件调试:检查电路连接是 否正确,电源电压是否稳定
故障排除:根据测
单片机可调数字钟的精度和稳定性分析
精度:采用高精度时钟芯片,确保时间显示准确无误 稳定性:采用抗干扰设计,确保在复杂环境下也能稳定运行 温度补偿:采用温度补偿技术,确保在不同温度下都能保持高精度 电源管理:采用低功耗设计,确保在电池供电下也能长时间稳定运行
单片机课程设计可调数 字钟
汇报人:
目录
添加目录标题
01
单片机课程设计可调 数字钟概述
02
单片机可调数字钟的 设计与实现
03
单片机可调数字钟的 性能分析
04
单片机可调数字钟的 应用前景和发展趋势
05
单片机课程设计可调 数字钟的总结与展望
06
添加章节标题
单片机课程设计 可调数字钟概述
课程设计目的和意义
提高动手实践能力 和创新能力
将所学知识应用于 实际项目,解决实 际问题
感谢您的观看
汇报人:
外壳设计:选择合适的外壳, 如塑料外壳或金属外壳等
单片机可调数字钟的软件设计
软件架构:模块化设计, 易于维护和扩展
功能模块:时间显示、闹 钟设置、时间调整等
编程语言:C语言或汇编 语言
程序流程:初始化、主循 环、中断处理等
界面设计:简洁明了,易 于操作
调试与测试:模拟器仿真、 硬件调试等
单片机可调数字钟的调试与测试
外观设计:具有独特的外 观设计,易于识别和操作
稳定性:具有较高的稳定 性和可靠性,不易出现故 障
单片机可调数字钟的应用场景

单片机 数字钟课程设计(万能模板)

单片机 数字钟课程设计(万能模板)

烟台大学光电学院单片机课程设计实验报告课设名称:电子时钟姓名:学号:指导教师:目录一、设计任务与要求 (4)1.1 设计背景 (4)1.2 课程设计目的 (4)1.3 设计要求 (4)二、总体方案设计 (5)2.1 电路的总体原理框图 (5)2.2 实现时钟计时的基本方法 (6)2.3 电子钟的时间显示 (6)2.4 电子钟的时间调整 (6)2.5 总体方案介绍 (7)2.5.1 计时方案 (7)2.5.2 控制方案 (7)2.6元件清单 (7)三、数字钟的硬件设计 (8)3.1 最小系统 (8)3.1.1 芯片分析 (8)3.1.2 晶振电路 (9)3.2 数码显示模块设计 (10)四、系统软件设计 (12)4.1 软件设计分析 (12)图 4-1 系统总体流程图 (13)4.2 源程序清单 (13)五、电路实物图 (19)见附录 (19)六、设计总结 (19)1、设计过程中遇到的问题及解决方法 (19)2、设计体会 (20)3、对设计的建议 (20)参考文献 (22)附录:实物图 23一、设计任务与要求1.1 设计背景随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。

单片机以其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能仪器仪表、家电产品等领域。

近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。

多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。

单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。

但是却很少知道它的内部结构以及工作原理。

由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行定时、校时功能。

输出设备显示器可以用液晶显示技术和数码管显示技术。

单片机课程设计数字电子钟

单片机课程设计数字电子钟

摘要:数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。

数字钟的精度、稳定度远远超过老式机械钟。

本文介绍基于单片机的数字电子钟电路的设计方法,并对基于单片机的应用进行了初步探讨。

系统采用了以广泛使用的单片机AT89C51为核心,并采用LED显示电路,键盘输入电路,闹钟电路所设计的一款时钟电路。

在这次设计中,采用LED 数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz 的晶振产生振荡脉冲,定时器计数。

电路具有显示时间的其本功能,还可以实现对时间的调整。

关键词:数字电子钟单片机 AT89C51目录一、数字电子钟的基本原理 (3)二、设计方案 (3)1 设计要求 (3)2 设计思路 (3)3 设计总体框架图 (4)三、硬件设计 (4)1 时钟与复位电路设计 (4)1)时钟电路设计 (4)2)复位电路设计 (4)2 LED显示电路设计 (5)3 按键电路设计 (6)4 蜂鸣器电路设计 (7)5 数字电子钟硬件原理图 (7)四、软件设计 (7)1 系统软件设计流程图 (7)1)主程序 (7)2)按键处理流程图 (8)3)定时器中断流程图 (9)4)时间显示流程图 (10)2 源程序清单 (8)1)主程序清单 (12)2) LED动态显示程序清单 (14)3) 计时程序清单 (15)4) 设置时间程序清单 (16)五、结论 (19)六、参考资料 (19)一、数字电子钟的基本原理数字电子钟是一个显示“时”,“分”,“秒”的计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时和闹钟功能。

因此,一个基本的数字钟电路主要由显示器、单片机,还有校时电路和蜂鸣器电路组成。

6个数码管的段选接到单片机的P2口,位选接到单片机的P0口。

数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。

  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;}
}。

相关文档
最新文档