西南石油大学单片机课程设计学院: 电气信息学院专业年级: 通信工程2013级姓名: 王昕铃学号:课题:基于单片机的定时闹钟设计指导老师: 邓魁日期: 2016 年 6月 30日前言20世纪末,电子技术获得了飞速的发展。
在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高。
同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。
所以有必要制作一个定时系统。
随时提醒这些容易忘记时间的人。
而钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等等。
所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
随着生活水平的提高,人们越来越追求人性化的事物。
传统的时钟已不能满足人们的需求。
而现代的时钟不仅需要模拟电路技术和数字电路技术而且更需要单片机技术,增加数字钟的功能。
利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,减小因元器件精度不够引起的误差,但是数字钟还是可以改进和提高如选用更精密的元器件。
但与机械式时钟相比已经具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
数字钟通过数字电路实现时、分、秒。
数字显示的计时装置,广泛用于个人家庭、车站、码头办公室等公共场所成为人们日常生活中不可少的必需品。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。
多功能数字钟的应用非常普遍。
由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行校时、定时等功能。
输出设备显示器可以用液晶显示技术和数码管来显示技术。
本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89C51为核心元件同时采用LED数码管显示器动态显示“时”、“分”、“秒”的现代计时装置。
另外具有校时功能,秒表功能,和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
而51单片机是各单片机中最为典型和最有代表性的一种。
本设计以AT89C51芯片为核心,辅以必要的外围电路,设计了一个结构简单,功能齐全的电子时钟,它由5V直流电源供电。
在硬件方面,除了CPU外,使用八个七段LED数码管来进行显示,LED采用的是动态扫描显示,使用74LS245芯片进行驱动。
通过LED能够较为准确地显示时、分、秒。
四个简单的按键实现对时间的调整。
软件方面采用C语言编程。
整个电子钟系统能完成时间的显示、调时、校时和三组定时闹钟的功能。
选用单片机最小系统应用程序,添加比较程序、时间调整程序及蜂鸣程序,通过时间比较程序触发蜂鸣,实现闹钟功能,完成设计所需求的软件环境。
介绍并使用Keil单片机模拟调试软件,测试程序的可行性并用Proteus进行仿真。
关键词:单片机,定时器,中断,闹钟,LED目录第1章方案的选择和论证单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好的选择。
按键的选择方案一:4×4矩阵式键盘。
如果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷,但程序较为复杂。
方案二:独立式按键。
如果设置过多按键,将会占用较多I/O口,而且会给布线带来不便,因此,此方案适用于按键较少的情况。
如果选择此方案,由于按键较少,在修改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单。
由于并不需要经常修改时间和设置闹铃时间,而且方案二的程序简单,按键少、成本低,因此,选择方案二。
显示器的选择方案一:液晶显示器。
如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。
但液晶显示器的驱动电路复杂,使用起来有一定的难度。
方案二:用数码管作为显示器。
数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。
其缺点是功耗较大。
由于数码管使用起来较为方便,在夜间看时间也很方便,因此我选择了方案二。
计时部分的选择如果使用时钟芯片,系统就不怕掉电且时间精确。
但这种芯片比较贵,况且,设计本系统主要是为了学习单片机程序的编写和调试以及设计硬件电路的一些方法,因此采用软件的方法来计时而没有采用价格较高的时钟芯片。
发音部分的设计通过三极管放大后驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本。
显示器驱动电路由于通过数码管公共及的电流较大且避免过多地使用分立元件,采用了一片74LS245来驱动段码,用P3口作位码驱动。
电源的选择如果是用电池供电,就比较方便携带,但是本系统,采用了数码管作为显示器,功耗较大,需要经常更换电池。
况且,本系统的体积较大,即使使用电池供电也不能随身携带,因此,用电池供电不大合适,所以用5V外部稳压电源来供电。
第2章数字电子钟的设计原理和方法设计原理系统原理图图2-1 系统原理图硬件电路的设计2.2.1 AT89C51单片机简介AT89C51是一款单片封装的微控制器,适合于许多要求高集成度、低成本的场合。
可以满足多方面的性能要求。
AT89C51采用了高性能的处理器结构,指令执行时间只需2到4个时钟周期。
6倍于标准51单片机器件。
AT89C51集成了许多系统级的功能,这样可大大减少元件的数目和电路板面积并降低系统的成本。
AT89C51单片机内部主要有以下部件:8031CPU、振荡电路、总线控制部件、中断控制部件、片内Flash存储器、并行I/O接口、定时器和串行I/O接口。
图2-2 AT89C51单片机2.2.2 键盘电路的设计键盘采用4个独立按键配以4个上拉电阻实现对时钟和闹钟的设定及修改。
图2-3 独立按键图2-4 键盘输入电路2.2.3 段码驱动电路由于通过数码管公共及的电流较大且避免过多地使用分立元件,采用了一片74LS245来驱动段码,用P3口作位码驱动。
图2-5 段码驱动器74LS2452.2.4 蜂鸣器驱动电路发音部分是通过三极管放大驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本。
图2-6 蜂鸣器驱动电路软件部分的设计2.3.1 主程序部分的设计程序部分主要采用了程序结构的模块化设计,避免了一些函数的不必要的重复书写,使程序变得单间易懂。
程序在执行时,主程序要须通过调用子函数就可完成相应的功能。
主程序流程图如下图2-7。
图2-7 主程序流程图2.3.2 中断定时器的设置数字电子钟设计中主要使用定时器T0中断ET0,利用ET0中断进行计时时间的自增,从而实现计时功能。
AT89C51有两个通用定时/计数器。
两者均可配置为定时器或事件计数器。
另外增加了定时器T0/T1,溢出时T0/T1脚自动翻转的功能选项。
用作“定时器”功能时,每经过一个机器周期,寄存器值加1。
用作“计数器”功能时,寄存器在对应的外部输入管脚T0/T1上每发生一次1到0的跳变时加1。
使用该功能时,外部输入每个机器周期被采样一次。
图2-8 定时器工作原理[1]设计中采用了中断方式1作为定时中断,其定时计数初值的设置可由以下公式计算得到,中断服务流程图如下图2-9。
T:机器周期[1]X:计数初值 t:定时时间cy图2-9 中断服务流程图2.3.3 闹钟子函数闹钟时间的判别主要是通过设定时间与实时时间对逐位对比确定是否进行闹铃。
其工作流程图如下图2-10。
图2-10 闹铃判断流程图2.3.4 计时函数计时函数部分,主要是通过单片机定时中断来计时,每产生一次中断标志位flag加1,当flag 加满20次为1秒,然后把flag清0把秒存储单元加1。
然后再依次判断分、时。
其流程图如下图2-11。
图2-11 计时流程图2.3.5 键盘扫描函数这些函数主要是判断是否有按键按下,并根据相应按键按下的情况调用相关函数执行,其相关流程图如下图2-12。
图2-12 键盘扫描流程图2.3.6 时间和闹钟的设置此部分主要是通过判断cnt在不同值时通过调用加1、减1子函数对时间和闹钟的时、分、秒进行设置。
在闹钟设置时,判断按键S4按下情况后,进行闹钟的开启与关闭,相关流程图如下图2-13。
图2-13 时间/闹钟设置流程图第3章实验结果此电子闹钟设计是利用Proteus仿真软件进行仿真,基本上实现了课程设计要求实现的功能。
硬件部分设置了的三个按键S1、S2、S3、S4。
当按键S1第一次按下时,停止计时进入闹钟1的秒设置,当按键S1第二、第三次按下时,分别进入闹钟1的分设置和时设置,当按S1第四、第五、第六次按下时分别进入闹钟2的秒、分、时设置,当按S1第七、第八、第九次按下时分别进入闹钟3的秒、分、时设置,当按S1第十、第十一、第十二次按下时分别进入时间的秒、分、时设置,在S1按下的各阶段,可用按键S2、S3进行时间和闹铃时间的时、分、秒进行加减设置;当按键S1第十三次按下时恢复到时间显示功能。
当显示的时间和定时设置的时间一致时,蜂鸣器发出等时间断蜂鸣声,闹铃时间设置为60秒。
在各个闹钟设置阶段,如果有S4按下,则相应闹钟功能关闭或开启;如在闹铃时有S4按下则提前停止闹铃。
图2-14 运行仿真图通过自己的不懈努力,我终于完成了毕业设计任务书上的任务要求。
功能上基本达标:时钟的显示,调时功能、校时功能、闹铃功能、闹钟设置功能。
其精确度完全可以满足日常生活显示时间的需要;调时功能,方便快捷;校时功能保证了时钟准确和可靠性,闹钟响铃还有扩展成音乐闹钟的余地。
硬件设施合乎要求,软件设计可以配合硬件实现要求的功能。