基于单片机的定时报时系统
基于单片机的定时闹钟设计.

目录目录 (I)一设计题目 (1)二设计要求 (1)三作用与目的 (1)四设备及软件 (2)1.AT89C51单片机 (2)2. Proteus仿真软件 (2)3.Keil软件 (3)五系统设计方案 (4)1 电路的总体原理框图 (4)2 工作原理 (5)六系统硬件设计 (5)1.系统总体设计 (5)2.系统时钟电路设计 (6)3.系统复位电路的设计 (6)4.闹钟指示电路设计 (6)5.电子闹钟的显示电路设计 (6)七系统软件设计 (7)1.主模块的设计 (7)2.基本显示模块设计 (8)3. 时间设定模块设计 (9)4. 闹铃功能的实现 (10)八 Proteus软件仿真 (11)1.本次试验的效果图 (12)2.性能及误差分析: (12)九设计中的问题及解决方法 (13)十设计心得 (14)参考文献 (15)致谢 (16)附录1 系统整体结构电路原理图 (17)附录2 程序清单 (18)基于单片机的定时闹钟设计一设计题目基于单片机的定时闹钟二设计要求1、能显示时时-分分-秒秒。
2、能够设定定时时间、修改定时时间。
3、定时时间到能发出报警声或者启动继电器,从而控制电器的启停。
三作用与目的以单片机为核心的数字时钟是很有社会意义和社会价值的。
钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能数字闹钟通过数字电路实现时、分、秒。
数字显示的计时装置,广泛用于个人家庭、车站、码头办公室等公共场所成为人们日常生活中不可少的必需品。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。
多功能数字钟的应用非常普遍。
由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行校时、定时等功能。
8031单片机设计定时报时控制系统

目录一.毕业设计任务书 (1)二、硬件设计 (7)2.1 总的设计要求 (3)2.2 系统的结构框图 (3)2.3复位电路的引脚及电路的设计 (4)2.4时钟电路 (4)2.5 8255并行I/0接口 (5)2.6输入电路2.7电路原理图 (6)2.8 系统工作流程 (7)三、软件设计 (10)四、程序清单 (25)五、总结 (26)六、参考文献 (27)一.毕业设计任务书指导老师:胡雪梅一、设计题目:定时报时控制系统设计二、设计要求:利用8031单片机设计定时报时控制系统,要求定时准确,月误差《=10%。
掉电时有备用电池继续走时,不能停机。
具备定时起闹功能。
有显示功能。
可用外置开关选用三套作息时间表。
秋冬季节,早上7点、中午12点、晚上6点定时;春夏季节,早上6点、中午12点、晚上8点定时。
三、设计任务:1.设计硬件电路,画出电路原理图;2. 设计软件,编制程序,画出程序流程图;3.调试程序,写出源程序代码;4.写出详细毕业设计说明书(10000字以上),要求字迹工整,原理叙述正确,会计算主要元器件的一些参数,并选择元器件。
5.个人总结。
四、参考资料:定时报时控制系统1.2.总体设计1.技术要求(1)定时准确,月误差《=10%。
(2)掉电时有备用电池继续走时,不能停机。
(3)有显示和校时功能。
(4)作息时间预置:秋冬季,早上7:00、中午12:00、晚上6:00;春夏季,早上6:00、中午12:00,晚上8:00。
可用外置开关选用数套作息时间表。
(5)具备定时起闹功能。
2.计时方案采用软件控制利用MCS-31 系列单片机内部的定时/计数器进行中数年定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能够使读者在定时/计数器的使用、中数年及程序设计方面得到锻炼与提高,因此本系统将采用软件方法实现计时。
3.键盘/显示方案对于实时时钟而言,显示显然是另一个重要的环节。
如前所述,通常有两种显示方式:动态显示和静态显示。
基于单片机的定时闹钟设计

基于单片机的定时闹钟设计设计定时闹钟是人们日常生活中常见的需求之一,而单片机技术的发展为定时闹钟的实现提供了可行的解决方案。
本文将介绍基于单片机的定时闹钟设计。
一、研究背景及意义在现代社会中,时间是人们日常生活中非常重要的一个因素。
为了更好地规划时间和提高生活效率,人们需要定时提醒自己进行各种活动。
闹钟作为定时提醒的工具,在人们的日常生活中扮演着不可替代的角色。
而基于单片机的定时闹钟实现具有高精度、多功能等优点,因此备受人们青睐。
二、技术方案设计本文设计的基于单片机的定时闹钟主要由三部分组成:时钟电路、单片机控制电路和显示电路。
1. 时钟电路时钟电路采用RTC芯片,可以提供高精度的时间计量。
RTC芯片内部自带晶振,保证了较高的时钟精度。
时钟电路主要功能为提供当前时间,包括小时、分钟和秒。
2. 单片机控制电路单片机控制电路是实现定时闹钟的核心部分。
程序流程如下:①初始化:单片机启动后,需要对RTC芯片和闹钟设定进行初始化,包括设定当前时间和设定闹钟时间。
②计时函数:单片机开启定时器,在每秒钟时钟信号来临时,计时器会进行一次计数。
③闹钟判断:单片机判断当前时间是否等于闹钟设定时间,如果相等,则触发闹钟事件,启动蜂鸣器提示。
④按键设置:单片机可以通过按键进行时间设置和闹钟设置,包括增加或减少小时、分钟和秒数,并将设置信息保存至RTC芯片内存中。
3. 显示电路显示电路采用数码管进行显示,使用单片机控制输出数据。
数码管分为小时显示、分钟显示和秒显示,可以满足不同的显示需求。
三、实验结果分析通过实验结果可以发现,本文设计的基于单片机的定时闹钟可以准确地显示时间和定时提醒。
同时,可以通过按键进行时间和闹钟的设置,并存储至RTC芯片内部,保证了时间和闹钟的持久性。
四、结论及展望基于单片机的定时闹钟设计具有实用性和可行性,可以提高人们生活的效率和品质。
然而,本设计在信号筛选和抗干扰能力方面还有一定的改进空间,需要通过更深入的研究来进一步完善。
基于单片机的定时报时系统

摘要时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求.采用单片机进行计时,对于社会生产有着十分重要的作用。
本文首先介绍了单片机和时钟的概念,然后根据设计要求提出系统总体设计方案,并设计各部分硬件模块和软件模块,再用设计的具体软件程序,用PROTEUS 软件进行仿真和调试,结果证明该设计系统的可行性。
由于AT89S51系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。
关键词:单片机;定时;报时;设计目录第一章简介 (1)一、基于单片机的数字钟介绍 (1)二、本系统的特点和功能介绍 (1)第二章硬件设计 (1)一、总体设计方案 (1)二、硬件结构设计 (2)1、51单片机的最小系统 (2)2、显示部分设计 (3)3、电源部分设计 (4)4、串口通信部分设计 (4)5、报时部分的设计 (4)6、键盘部分的设计 (5)7、总体硬件电路图 (5)第三章软件设计 (6)一、部分设计思想的说明 (6)二、参考程序 (9)总结 (12)参考文献 (13)第一章简介一、基于单片机的数字钟介绍1.单片机定义:“单片机”就是将计算机的基本部件集成到一块芯片上,包括CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、并行口(Parallel Port)、串行口(Serial Port)、定时器/计数器(Timer/Counter)、中断系统(Interrupt System)、系统时钟及系统总线等。
2.数字钟介绍:时钟是将小时、分钟、秒钟显示于人的肉眼的计时装置。
而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
基于单片机定时闹钟的设计

基于单片机定时闹钟的设计随着科技的快速发展,嵌入式系统已经深入到我们生活的各个角落。
其中,单片机以其高效性、灵活性和低成本性,广泛应用于各种设备的设计中。
本文将探讨如何基于单片机设计一个定时闹钟。
一、硬件需求1、单片机:选择一个适合你项目的单片机。
比如Arduino UNO,它具有丰富的IO口和易于使用的开发环境。
2、显示模块:为了能直观地展示时间,你需要一个LCD显示屏。
可以选择常见的16x2字符型LCD显示屏。
3、按键模块:用于设定时间和闹钟功能。
一般可以选择4个按键,分别代表功能设置、小时加、小时减和分钟加。
4、蜂鸣器:当到达设定时间时,蜂鸣器会发出声音提醒。
二、软件需求1、开发环境:你需要一个适用于你单片机的开发环境,例如Arduino IDE。
2、编程语言:一般使用C或C++进行编程。
3、程序设计:你需要编写一个程序来控制单片机,让其根据设定时间准时唤醒。
程序应包括初始化和设定时间的功能,以及到达设定时间后的闹钟提醒功能。
三、设计流程1、硬件连接:将单片机、显示模块、按键模块和蜂鸣器按照要求连接起来。
2、初始化:在程序中初始化所有的硬件设备。
3、时间设定:通过按键模块设定时间。
你需要编写一个函数来处理按键输入,并在LCD显示屏上显示当前时间。
4、闹钟提醒:在程序中加入一个计时器,当到达设定时间时,程序会唤醒并触发蜂鸣器发出声音。
5、循环检测:在主循环中不断检测时间是否到达设定时间,如果到达则触发闹钟提醒,然后继续检测。
四、注意事项1、时钟源:你需要一个稳定的时钟源来保证闹钟的准确性。
可以考虑使用网络时钟或者GPS模块。
2、功耗优化:如果你的设备需要长时间运行,那么需要考虑到功耗的问题,比如使用低功耗的单片机或者在不需要闹钟提醒的时候关闭蜂鸣器等。
3、人机交互:考虑增加更多的功能以满足用户的需求,如设置多个闹钟、调整闹钟的音量等。
4、安全性:保证设备的电源稳定,避免在突然断电的情况下数据丢失或设备损坏。
基于单片机的自动报时系统设计

基于单片机的自动报时系统设计杨双义【摘要】随着电子技术的日新月异,电子产品已经运用到我们生活的方方面面。
在当今这个时代,时间更是如生命般宝贵,有时候由于种种原因我们会把重大的事情忘得一干二净,故此我们急需一款简单便捷的电子产品来听行我们。
本设计是根据单片机原理开发的的自动报时系统。
自动报时系统以AT89C51单片机为核心部件,采用独立式按键来进行时间调整以及闹钟设置,用共阳极数码管来实现时间的动态显示,该设计采用DS1302时钟芯片,动态缓冲器74LS240作为数码管的动态扫描控驱动制,用单片机I/O口外接门74LS06做为数码管的位选信号的驱动。
【期刊名称】《电子制作》【年(卷),期】2014(000)018【总页数】1页(P8-8)【关键词】单片机;自动报时;时钟;动态【作者】杨双义【作者单位】郑州工业应用技术学院河南新郑 451150【正文语种】中文随着电子技术的日新月异,电子产品已经运用到我们生活的方方面面。
在当今这个时代,时间更是如生命般宝贵,有时候由于种种原因我们会把重大的事情忘得一干二净,故此我们急需一款简单便捷的电子产品来听行我们。
本设计是根据单片机原理开发的的自动报时系统。
自动报时系统以AT89C51单片机为核心部件,采用独立式按键来进行时间调整以及闹钟设置,用共阳极数码管来实现时间的动态显示,该设计采用DS1302时钟芯片,动态缓冲器74LS240作为数码管的动态扫描控驱动制,用单片机I/O口外接门74LS06做为数码管的位选信号的驱动。
单片机;自动报时;时钟;动态电子技术已经走进千家万户,近些年集成电路的发展大家也是有目共睹的。
我们用的电脑、电视,小至我们用的手机、话筒、耳机等等都是近些年产生的比较实用的电子产品。
有时候由于工作的忙碌和生活的琐事往往让我们忘记要做的事情,事情不大则罢,一旦事情重大,我们将是追悔莫及。
比如说我们现在用到最多的交通工具——电动车,但我们给电动车充电时,如果充满了忘记了断电,轻则电动车损坏,重则将会引起火灾,后果不堪设想。
基于C51单片机的数字时钟课程设计(C语言带闹钟)

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
基于单片机控制的智能定时闹钟设计(含完整程序仿真图)

摘要本设计是定时闹钟的设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。
电子钟设计可采用数字电路实现,也可以采用单片机来完成。
数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计中采用单片机利用AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
AT89C51单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进—步可以扩充控制电器的启停。
设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。
采用四个开关来控制定时闹钟的工作状态,分别为:K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。
课设准备中我根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。
设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出蜂鸣声音,持续一分钟。
显示采用的六位数码管电路,如果亮度感觉不够,可以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求.采用单片机进行计时,对于社会生产有着十分重要的作用。
本文首先介绍了单片机和时钟的概念,然后根据设计要求提出系统总体设计方案,并设计各部分硬件模块和软件模块,再用设计的具体软件程序,用PROTEUS 软件进行仿真和调试,结果证明该设计系统的可行性。
由于AT89S51系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。
关键词:单片机;定时;报时;设计目录第一章简介 (1)一、基于单片机的数字钟介绍 (1)二、本系统的特点和功能介绍 (1)第二章硬件设计 (1)一、总体设计方案 (1)二、硬件结构设计 (2)1、51单片机的最小系统 (2)2、显示部分设计 (3)3、电源部分设计 (4)4、串口通信部分设计 (4)5、报时部分的设计 (4)6、键盘部分的设计 (5)7、总体硬件电路图 (5)第三章软件设计 (6)一、部分设计思想的说明 (6)二、参考程序 (9)总结 (12)参考文献 (13)第一章简介一、基于单片机的数字钟介绍1.单片机定义:“单片机”就是将计算机的基本部件集成到一块芯片上,包括CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、并行口(Parallel Port)、串行口(Serial Port)、定时器/计数器(Timer/Counter)、中断系统(Interrupt System)、系统时钟及系统总线等。
2.数字钟介绍:时钟是将小时、分钟、秒钟显示于人的肉眼的计时装置。
而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
而LED电子定时时钟是以单片机为基础的数字电路实现对时、分、秒的数字显示的数字计时装置,它的计时周期为12小时,另外应有校时功能和一些显示日期、闹钟等附加功能。
由于时钟的实用性和在人们生活中的重要性,所以尝试设计以单片机为核心的数字时钟是很有意义的。
钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能。
二、本系统的特点和功能介绍1.特点:我所设计的是LED显示的自动报时系统,是一种基于单片机技术的电子产品,用到的单片机芯片是AT89C52芯片,除此之外还包括晶振电路和复位电路构成单片机最小应用系统,还有按键电路,显示电路,报时电路等等。
计时方案采用软件控制利用AT89C52单片机内部的定时/计数器进行定时,配合软件延时实现时、分的计时。
2.本单片机报时控制系统具备以下功能(1)有电子时钟,定时闹铃功能。
(2)时钟显示功能:4位LED从左到右依次显示“分分秒秒”,采用12小时制显示。
(3)采用4个独立按键(移位键、加1键、减1键、校时置入键)移位键:每按动移位键一次,小数点从左向右移动1位。
加1键:对小数点所在位的数什进行十进制加1。
减1键:对小数点所在位的数值进行十进制减1。
校时置入键:将显示的时间值置入实时时钟的计时缓冲区。
(4)预设定时时间到则发出闹铃声第二章硬件设计一、总体设计方案本LED定时闹钟,是以单片机及外围接口电路为核心硬件,辅以其他外围硬件电路,用软件程序来实现的。
单片机定时报时控制系统硬件原理图见设计原理图如下图所示。
图2-1 总体设计方框图二、硬件结构设计1、51单片机的最小系统(见图2-2、2-3、2-4所示)在晶振电路中XTAL1、XTAL2为AT89C52中连接晶振的管脚,本系统中所使用的晶振频率为12MHZ 。
XTAL1为振荡器反相放大器及内部时钟发生器的输入端,XTAL2为振荡器反相放大器的输出端。
其中电容C18、C19起着系统时钟频率微调的作用,因此,在本定时报时系统的实际应用中一定要注意正确选择参数(30±10PF),并保证对称性(尽可能匹配),可能的话,温度系数要尽可能的低。
实验表明这两个电容元件对时钟走时误差有较大关系。
本系统采用了RC复位电路,其实现简单,成本低,但复位可靠性相对较低。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
2、显示部分设计用4位LED七段数码管作为显示器,到达定时时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
其驱动电路简单。
采用了两片74HC595来驱动段码,8个510欧姆的限流电阻。
图2-2 引脚图图2-3 晶振图2-4 复位电路图2-4 LED显示器图2-5 显示驱动部分3、电源部分设计如果是用电池供电,就比较方便携带,但是本系统,采用了数码管作为显示器,功耗较大,需要经常更换电池。
况且,本系统的体积较大,即使使用电池供电也不能随身携带,因此,用电池供电不大合适,所以用外部稳压电源来供电。
应当说明的是,尽管有很多型号的7805三端稳压集成芯片,其标称最大输出电流均为1.5v,但在实际应用中,该最大的输出电流值往往取决于两个方面:足够的散热面积和不同的成产厂家。
在设计中必须保证7805的输入电压Vi和输出电压Vo的压差大于2.5v,否则会失去稳压能力;同时考虑到功耗问题,此压差有不宜太大,太大则增加7805本身的功率消耗,增加芯片的温升,不利于安全。
因此,本系统采用9v直流稳压源。
图2-6 电源电路4、串口通部分块设计软件程序可通过此口写入51单片机中,其原理图如图2-7所示。
5、报时部分的设计报时指示可以有声或光两种形式,本系统采用声音指示。
关键元件是蜂鸣器,蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,元件内部已封装了音频震荡电路,在得电状态下即起振发声。
市场上的有源蜂鸣器分为3V、5V、6V等系列,以适应不同的应用需要,本系统采用5V有源蜂鸣器实现报时。
由软件产生方波输出经三极管放大后驱动蜂鸣器发音,不用硬件振荡电路,电路图如图2-8所示。
图2-7 串口通信电路图2-8 报时电路6、键盘部分的设计如果设置过多按键,将会占用较多I/O口,而且会给布线带来不便,因此采用4个独立按键。
由于按键较少,在修改时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单,而且并不需要经常修改时间。
图2-9 键盘电路7、总体硬件电路图通过Proteus画出的总体硬件电路图如下所示。
图2-10 总体硬件电路图第三章软件设计一、部分设计思想的说明软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处理等。
基于软件的秒脉冲信号通常有延时法和中断法。
延时法一般采用查询方式,在延时子程序前后必然需要查询和处理的程序,导致误差的产生,因此其秒脉冲精度不高;中断法的原理是,利用单片机内部的定时器溢出中断来实现。
本系统中所使用的晶振频率为12MHZ,采用中断的方法实现计时操作。
根据工作流程,软件设计可分为以下几个功能模块:1、主程序:是系统软件的主框架。
结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。
它的合理与否关系到程序最终的功能的多少和性能的好坏。
其流程图见图3-12、计时:系统定时采用定时器与软件循环相结合的方法。
定时器0每隔100MS 溢出中断1次,则循环中断10次延时时间为1S,上述过程重复60次为1MIN,分计时60次为1H,小时计时12次则时间重新回到00:00,如果使用时钟芯片,系统就不怕掉电且时间精确。
但这种芯片比较贵,况且,设计本系统主要是为了学习单片机程序的编写和调试以及设计硬件电路的一些方法,因此采用软件的方法来计时而没有采用价格较高的时钟芯片图3-1 主函数流程图3、时间设置:由键盘出入设置当前时间4、LED数码管扫描显示:完成4位LED显示5、键盘扫描:判断是否有键按下,无键按下则循环等待,有键按下则求承诺键号并将键号送累加器A返回。
程序中的去抖延时和循环等待延时都用显示子程序来代替,从而保证随时刷新显示,软件的去抖动的实质是软件延时,即检测到某一键状态发生变化后延时一段时间,再检测该按键的状态是否还保持着,如是则作为按键处理,否则,视为抖动,不予理睬。
去抖中的延时时间一般参考资料多描述为10ms,实际应用中,应大于20ms,会导致按一次作多次处理,影响程序正常执行。
键盘管理程序的功能是检测有无键闭和,如有键闭和,消除抖动,根据键号转接到相应的键处理程序。
其程序流程图如图3-26、报时处理:判断时间是否到否,如时间到,则启动报时处理程序。
闹铃判别与闹铃处理的关键在于判别何时要进行闹铃,当任一位发生改变(进位)时,就必须进行闹铃判别,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数,开始响铃。
为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉冲,驱动蜂鸣器,不会影响显示。
之后对按键进行判断,程序设计思想如图3-3。
图3-2 键盘管理程序流程图图3-3 闹铃实现思想流程图二、参考程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intucharcodeseg[17]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a, 0x9e,0x8e,0x00};uint min,sec,hour,sec1,sec2,min1,min2,n,hour1,hour2;sbit beep=P1^4; ;位寻址,P1..4接的蜂鸣器void delay(uchar tt) ;延时处理{ uchar i;for(;tt>0;tt--)for(i=0;i<200;i++);}void LED(uchar d1,uchar d2) ;显示部分{ INT0=0;SBUF=d2;while(!TI);TI=0;SBUF=d1;while(!TI);TI=0;INT0=1;}void init1() ;初始化变量{ min=0;sec=0;hour=0;sec1=0;sec2=0;min1=0;min2=0;hour1=0;hour2=0;TMOD = 0x01;TH0 = (0xffff-50000)/256;TL0 = (0xffff-50000)%256;IE=0x82;TR0 = 1;}void clock() ;报时处理{ if(min==00&sec==04)beep=0;delay(100);beep=1;}void TT() interrupt 1 ;定时器0中断处理函数入口{ TH0 = (0xffff-50000)/256;TL0 = (0xffff-50000)%256;n++;if( 20==n ){ n=0;sec++;if(sec==60){ sec=0; min++; }if(min==60){ min=0; hour++; }if(hour==12){ hour=0; }}sec1=sec/10;sec2=sec%10;min1= min/10;min2=min%10;hour1= hour/10;hour2= hour%10;}main() ;主函数入口{ SCON=0x00;init1();while(1){ clock();LED(seg[min1],0xef); delay(10);LED(seg[min2],0xdf); delay(10);LED(seg[sec1],0xbf); delay(10);LED(seg[sec2],0x7f); delay(10);}}总结由于时间,还有能力与精力的关系,对程序还不完善,键盘处理部分的程序未能加入进去,该系统还需要以后进行完善。