当前位置:文档之家› 基于51单片机电子闹钟的设计(1)

基于51单片机电子闹钟的设计(1)

单片机原理与接口技术课程设计题目:多功能电子闹钟院系:电气与电子工程系专业:电气工程及其自动化班级:电气工程1503姓名:学号:指导教师:二零一七年十二月多功能电子闹钟摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

而51单片机是各单片机中最为典型和最有代表性的一种。

本设计以AT89C51芯片为核心,辅以必要的外围电路,设计了一个结构简单,功能齐全的电子时钟,它由5V直流电源供电。

在硬件方面,除了CPU外,使用八个七段LED数码管来进行显示,LED采用的是动态扫描显示,使用74LS245芯片进行驱动。

通过LED能够较为准确地显示时、分、秒。

四个简单的按键实现对时间的调整。

软件方面采用C语言编程。

整个电子钟系统能完成时间的显示、调时、校时和三组定时闹钟的功能。

选用单片机最小系统应用程序,添加比较程序、时间调整程序及蜂鸣程序,通过时间比较程序触发蜂鸣,实现闹钟功能,完成设计所需求的软件环境。

介绍并使用Keil 单片机模拟调试软件,测试程序的可行性并用Proteus进行仿真。

关键词:单片机定时器中断闹钟 LED目录第1章方案的选择和论证 (1)1.1单片机型号的选择 (1)1.2按键的选择 (1)1.3显示器的选择 (1)1.4计时部分的选择 (1)1.5发音部分的设计 (2)1.6显示器驱动电路 (2)1.7电源的选择 (2)第2章数字电子钟的设计原理和方法 (3)2.1设计原理 (3)2.2硬件电路的设计 (3)2.2.1 AT89C51单片机简介 (3)2.2.2 键盘电路的设计 (3)2.2.3 段码驱动电路 (4)2.2.4 蜂鸣器驱动电路 (4)2.3软件部分的设计 (5)2.3.1 主程序部分的设计 (5)2.3.2 中断定时器的设置 (5)2.3.3 闹钟子函数 (6)2.3.4 计时函数 (6)2.3.5 键盘扫描函数 (8)2.3.6 时间和闹钟的设置 (8)第3章实验结果 (10)总结 (11)致谢 (12)参考文献 (13)附录 (14)第1章方案的选择和论证1.1 单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好的选择。

1.2 按键的选择方案一:4×4矩阵式键盘。

如果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷,但程序较为复杂。

方案二:独立式按键。

如果设置过多按键,将会占用较多I/O口,而且会给布线带来不便,因此,此方案适用于按键较少的情况。

如果选择此方案,由于按键较少,在修改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单。

由于并不需要经常修改时间和设置闹铃时间,而且方案二的程序简单,按键少、成本低,因此,选择方案二。

1.3 显示器的选择方案一:液晶显示器。

如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。

但液晶显示器的驱动电路复杂,使用起来有一定的难度。

方案二:用数码管作为显示器。

数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。

其缺点是功耗较大。

由于数码管使用起来较为方便,在夜间看时间也很方便,因此我选择了方案二。

1.4 计时部分的选择如果使用时钟芯片,系统就不怕掉电且时间精确。

但这种芯片比较贵,况且,设计本系统主要是为了学习单片机程序的编写和调试以及设计硬件电路的一些方法,因此采用软件的方法来计时而没有采用价格较高的时钟芯片。

1.5 发音部分的设计通过三极管放大后驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本。

1.6 显示器驱动电路由于通过数码管公共及的电流较大且避免过多地使用分立元件,采用了一片74LS245来驱动段码,用P3口作位码驱动。

1.7 电源的选择如果是用电池供电,就比较方便携带,但是本系统,采用了数码管作为显示器,功耗较大,需要经常更换电池。

况且,本系统的体积较大,即使使用电池供电也不能随身携带,因此,用电池供电不大合适,所以用5V外部稳压电源来供电。

第2章数字电子钟的设计原理和方法2.1 设计原理系统原理图图2-1 系统原理图2.2 硬件电路的设计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 软件部分的设计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。

cyT t X -=162X:计数初值 t:定时时间T:机器周期[1]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 运行仿真图通过自己的不懈努力,我终于完成了毕业设计任务书上的任务要求。

功能上基本达标:时钟的显示,调时功能、校时功能、闹铃功能、闹钟设置功能。

其精确度完全可以满足日常生活显示时间的需要;调时功能,方便快捷;校时功能保证了时钟准确和可靠性,闹钟响铃还有扩展成音乐闹钟的余地。

硬件设施合乎要求,软件设计可以配合硬件实现要求的功能。

但是由于时间比较短,前期设计出现部分不足:如位选闪烁功能不能实现、闹钟的开启与关闭、间断蜂鸣声等。

这些只是软件设计时相应功能部分还不完善造成。

不过经仔细思考和程序的完善,最终将软件设计改进,并完全可以很好实现所有要求的功能。

可见技术在不断进步,机械式时钟已经被淘汰,取而代之的是具有高度准确性和直观性且无机械装置,具有更长的使用寿命等优点的数字时钟。

数字时钟更具人性化,更能提高人们的生活质量,更受人们欢迎。

无可否认机械时代已经过去,电子时代已经到来。

做为新时代的我们,更应该提高自身能力,适应新时代的发展。

知识来自实践,多去生活中探询所需要的。

对于上述所提到的研究课题,我们应尽量考虑到人的因素,增强时钟的实用性和操作性,为使用者提供切实的方便,营造一种舒适的生活氛围。

所以,在设计的时候,应该从多方面、多角度去考虑问题,而且应该进一步提高时钟的质量。

另外,在本次设计的过程中,我发现很多的问题,虽然以前没有做过这样的设计但通过这次设计我学会了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,比如写一个程序看其功能很少认为编写程序简单,但到编程的时候才发现一些细微的知识或低级错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解的,更谈不上掌握。

相关主题