定时闹钟设计课程设计报告.docx
- 文档编号:23958297
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:28
- 大小:814.13KB
定时闹钟设计课程设计报告.docx
《定时闹钟设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《定时闹钟设计课程设计报告.docx(28页珍藏版)》请在冰豆网上搜索。
定时闹钟设计课程设计报告
按时闹钟设计之马矢奏春创作
创作时间:
二零二一年六月三十日
摘要:
本设计目的是利用单片机设计制作一个简易的按时闹铃时钟,可以放在宿舍或教室使用,在夜晚或黑暗的场所也可以使用.可以设置现在的时间以及闹铃的时间而且显示出来,若时间到则发出一阵声响.
本次设计的按时闹钟在硬件方面就采纳了AT89C52芯片,用6位LED数码管进行显示.LED用P0口进行驱动,采纳的是静态扫描显示,能够比力准确显示时时—分分—秒秒.通过五个功能按键可以实现对时间的修改、按时和闹铃终止,闹钟设置的时间到时蜂鸣器可以发作声响.在软件方面用C51编程.整个按时闹钟系统能完成时间的显示,调时和设置闹钟、停止响铃等功能,并经过系统仿真后获得了正确的结果.
关键词:
按时闹钟;蜂鸣器;AT89C52;74HC245;
第1章绪论1
1.2.1设计要求:
1
1.2.2设计任务:
1
第2章系统总体设计2
系统设计需求
总体设计方案
第3章系统硬件设计4
3.2.374HC245芯片7
LED显示模块
按键模块
第4章系统软件设计11
第5章系统测试13
测试环境
测试步伐
测试环境的构建
结论15
致谢16
参考文献17
附录18
第1章绪论
本次课程设计的主题是按时闹钟,其基础部份是一个数字钟.电路系统由秒信号发生器、“时、分、秒”计数器、显示器组成.其中秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,这里用51单片机的按时器来实现.利用按时器获得每一秒的时刻,然后在法式中,我们就可以给秒进行逐秒赋值,满60秒则进位为1分,满60分则进位为1小时,满24小时则时间重置实现一天24小时的循环.译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过一个六位八段数码管显示出来.
这里利用51单片机的相关知识,来实现电子闹钟的相关功能.实验使用了AT89C52、74HC245等芯片,通过单片机的P0、P3管脚来驱动数码管显示出相应的时刻.本文将讲述AT89C52、74HC245等芯片的基本功能原理,偏重点介绍该电子闹钟的设计.
1.2.1设计要求:
使用6位七段LED显示器来显示现在的时间;显示格式为“时时分分秒秒”;具有4个按键来做功能设置,可以设置现在的时间及显示闹铃设置时间;时间到则发出一阵声响,可通过按键复位;对单片机系统设计的过程进行总结,认真书写课程设计陈说并按时上交.
1.2.2设计任务:
利用51单片机结合七段LED显示器设计一个简易的按时闹铃时钟,可以放在宿舍或教室使用,由于用七段LED显示器显示数据,在夜晚或黑暗的场所也可以使用.可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响.
论文分别叙述从硬件和软件上实现该设计的过程.第2章为总体设计方案.第3章主要介绍设计实现需要解决的硬件问题.依次介绍所使用的各种硬件的使用方法,并附上仿真电路图和文字说明.第4章从软件的角度说明实现该设计需要解决的问题.
第2章系统总体设计
系统要求实现以下功能:
1.当电源接通时,系统能正确显示以后时间.
2.以后时间与实时时间有误差时,可以通过键盘调整以后时间.
3.系统允许进行闹钟设置,开启闹钟功能时,当设置的闹钟时间与以后时间一致的时候,系统通过蜂鸣器发出警报声而且可以通过按键停止.
功能组成:
本次设计中的计时功能很容易实现,难点在于时钟功能和闹钟功能的切换和时间的设置.
该电子闹钟设计对51单片机按时器0装初值,使其初值对应50ms,按时器0的中断次数达到20次就刚好为1s,当秒部份计数到60时置零,并向分部份进一;当分部份计数到60时置零,并向时部份进一,那时部份计数到24时置零,从而满足时钟的正常工作.
在设计过程中,我发现通过4个按键来完成一个闹钟的基础功能虽然可以实现,可是用户用起来就会很麻烦,因为有的键必需有多种功能和分歧的触发方式,我认为可以增加少许按键来方便用户快速了解到我们的闹钟是如何进行控制的.所以本次设计设置5个键依次对其进行“时间校准”、“闹钟设置”、“秒分时切换/终止警报”、“加1按钮”、“减1按钮”.“秒分时切换/终止报警”键在调时状态中,起时分秒切换的作用,在非调试状态下,起闹钟终止的作用.
当用户按下“时间校准”的按钮后,法式会关闭T0按时器,之后时钟停止工作,此时数码管会显示以后静止的时间,说明已经进入时间校准的界面了.在完成时间校准后,翻开T0按时器,时钟会在设置好的时间上继续工作走秒.
当用户按下“闹钟设置”按钮后,会将以后时间复制出来提供给按时界面,注意此时我们的时钟仍然在继续工作,只是数码管显示的是按时模式的静止时间.当设置好后,此时用户设置的时间只要没有触发过闹铃,再次按“闹钟设置”按钮就能检查并修改,即闹钟会保管下用户最后一次未被触发的闹钟时间.
当正常工作的时钟时刻达到了预设的闹铃时刻,蜂鸣器发出警报声,屏幕会闪烁并显示以后时间.考虑到用户可能已经被提醒而不想继续被闹铃声干扰,还提供了一个能够终止闹铃的功能,此功能与“时分秒切换”功能共用同一按键,按下后时钟继续正常工作,且闹钟功能又可以重新设置.
本设计在Keil编程环境下,使用C语言进行编程的编纂.编纂胜利后,通过仿真软件Proteus进行仿真测试.
LED显示屏×1
主控芯片:
AT89C52
闹钟提示:
蜂鸣器
人机交互:
按键×5
晶振:
12KHz×1
排阻:
RESPACK8×1
电容:
10nf×2
总线收发器:
74HC245×2
第3章系统硬件设计
系统硬件模块主要分为以下几个模块:
1.主控模块:
控制其他子模块.
2.时钟模块:
为系统提供实时时间.
3.显示模块:
显示系统时间信息.
4.按键模块:
用户通过按键进行人机交互,修改实时时间、设置闹钟时间和终止闹钟报警.
5.闹钟模块:
在所设闹钟时间发出警报声.
(1).AT89C52简介
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读法式存储器和256bytes的随机存取数据存储器(RAM),器件采纳ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处置器和Flash存储单位,AT89C52单片机在电子行业中有着广泛的应用.
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程按时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以依照惯例方法进行编程,也可以在线编程.其将通用的微处置器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱.AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应分歧产物的需求.
AT89C52引脚图如图3.2.1:
(2).工作原理
AT89C52为8位通用微处置器,采纳工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制.功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等.主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振.RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路.VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端.P0~P3为可编程通用I/O脚,其功能用途由软件界说,在本设计中,P0端口(32~39脚)被界说为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚界说为IR输入端,10脚和11脚界说为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚界说为握手信号功能端口,连接主板CPU的相应功能端,用于以后制式的检测及会聚调整状态进入的控制功能.
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口.作为输出口用时,每位能吸收电流的
方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用.在访问外部数据存储器或法式存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻.
在Flash编程时,P0口接收指令字节,而在法式校验时,输出指令字节,校验时,要求外接上拉电阻.
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).与AT89C51分歧之处是,P1.0和P1.1还可分别作为按时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash编程和法式校验期间,P1接收低8位地址.
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).在访问外部法式存储器或16位地数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据.在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容.Flash编程或校验时,P2亦接收高位地址和一些控制信号.
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口.P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口.此时,被外部拉低的P3口将用上拉电阻输出电流(IIL).P3口除作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和法式校验的控制信号.
RST:
复位输入.当振荡器工作时,RST引脚呈现两个机器周期以上高电平将使单片机复位.
ALE/PROG:
当访问外部法式存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节.一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于按时目的.要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲.对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG).如有需要,可通过对特殊功能寄存器(SFR)区中的8EH单位的D0位置位,可禁止ALE把持.该位置位后,只有一条MOVX和MOVC指令才华将ALE激活.另外,该引脚会被微弱拉高,单片机执行外部法式时,应设置ALE禁止位无效.
PSEN:
法式贮存允许(PSEN)输出是外部法式存储器的读选通信号,当AT89C52由外部法式存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲.在此期间,当访问外部数据存储器,将跳过两次PSEN信号.
EA/VPP:
外部访问允许.欲使CPU仅访问外部法式存储器(地址为0000H—FFFFH),EA端必需坚持低电平(接地).需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态.如EA端为高电平(接Vcc端),CPU则执行内部法式存储器中的指令.Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,固然这必需是该器件是使用12V编程电压Vpp.
XTAL1:
振荡器反相放年夜器及内部时钟发生器的输入端.
XTAL2:
振荡器反相放年夜器的输出端.
利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接按时元件,内部振荡器便能发生自激振荡.按时元件可以采纳石英晶体和电容组成的并联谐振电路,如图3.2.2所示.
晶振可以在1.2~12MHZ之间任选,甚至可以达到24MHz,可是频率越高功耗也就越年夜.和晶振并联的电容C1、C2的年夜小对振荡频率有微小影响,可以起到频率微调作用.
时钟电路如图3.2.2:
3.2.374HC245芯片
电路中用74HC245芯片充任总线收发器,作用是放年夜信号,它具有典范的CMOS型三态缓冲门电路.由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超越其负载能力,一般应加驱动器.
引脚界说:
1引脚DIR:
未输入输出端口转换用,当它为高电平“1”时,信号由“A”端口输入“B”端口输出;当它为低电平“0”时,信号由“B”端口输入“A”端口输出.
29引脚:
“A”端口输入输出端,每个端口与“B”端口对应.
1118引脚:
“B”端口输入输出端,每个端口与“A”端口对应.
10引脚:
GUD,电源地.
20引脚:
VCC,电源正极.
74HC245引脚图如图3.2.3
(1):
图3.2.3
(1)
仿真电路图如图3.2.3
(2):
图3.2.3
(2)
3.3LED显示模块
本次课程设计采纳了6位数码管显示电路.在6位LED显示时,为了简化电路,降低本钱,采纳静态显示的方式, 6个LED显示器共用一个8位的I/O, 6位LED数码管的位选线分别由相应的P2. 0~P2. 5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口.译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过6位LED七段显示器显示出来.达到按时电路时根据计时系统的输出状态发生脉冲信号,然后去触发音频发生器实现闹铃.校时电路时用来对“时”、“分”、“秒”显示数字进行校对换整的.
LED仿真电路图如图3.3:
图
3.4按键模块
按键模块共设置了五个按键,功能分别如下:
(1).时间校准键“CLOCK”:
自锁开关,按下后进入校准设置,再次按下后退出.
(2).闹钟设置键“ALARMCLOCK”:
自锁开关,按下后进入闹钟设置,再次按下后退出.
另外可供用户对已经设置的闹钟时间进行检查或修改.
(3).秒分时切换/终止报警键“SWITCH/STOP”:
按钮开关,在按下“CLOCK”或“ALARMCLOCK”键时,为时分秒切换功能,默认是“秒”,再次按下是“分”,然后是“时”之后是“秒”,以此类推.在“CLOCK”或“ALARMCLOCK”键未按下时,为终止报警功能.
(4).时间增加键“+”:
按钮开关,可以在进入校准设置和闹钟设置后,进行加一把持.
(5).时间减少键“”:
按钮开关,可以在进入校准设置和闹钟设置后,进行减一把持.
按键模块仿真电路图如图3.4:
闹铃指示设置有声和光两种形式.声音形式的关键元件是蜂鸣器.蜂鸣器有无源和有源两种,前者需要输入声音频率信号才华正常发声,后者则只需外加适当直流电源电压即可,本次设计我们使用的是后者.闹钟电路是用比力器来比力计时系统和按时系统的输出状态,如果计时系统和按时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放年夜电路驱动扬声器发声,从而实现按时闹响的功能.
蜂鸣器仿真电路图如图3.5:
第4章系统软件设计
该部份主要分为实时时钟模块、LED显示模块、键盘中断模块、闹钟模块.实时时钟部份主要包括实时时间的读写,时间的修改.LED显示模块主要包括显示屏的初始化,显示的命令字.键盘中断模块包括各键的界说和作用,按键的消抖,各按键跳转的子法式分配.闹钟模块包括闹钟时间的设置,以及对蜂鸣器启动和停止条件的设置和处置.
主法式包括三个部份.一是主函数部份,负责系统的初始化把持;从中断服务取得实时时间;判断闹钟时间是否与实时时间相等并在相等时发出警报声.第二部份是按时中断部份,分两种情况:
负责处置从中断服务获得的时间数据并送至LED显示缓冲显示,或者显示闹钟设置界面并显示闹钟时间的设置过程.第三部份是外部中断,主要界说5个按键的作用,分配每一个按键跳转的子法式.第三部份负责时间和日期的修改,闹钟时间的设置,停止蜂鸣器鸣叫的功能.
断系统在单片机应用系统中起着十分重要的作用,是现代嵌入式控制系统广泛采纳的一种适时控制技术,能对突发事件进行及时处置,从而年夜年夜提高系统对外部事件的处置能力.正是有了中断技术,单片机才得以能够普及.因此,中断技术是单片机的一项重要技术,掌握中断技术能开发出灵活、高效的单机片应用系统.
要让单机片停止以后的法式去执行其他法式,需要向它发出请求信号,CPU接收到中断请求信号后才华发生中断.让CPU发生中断的信号称为中断源(又称中断请求源).单片机提供5个中断源,其中两个为外部中断请求源INT0(P3.2)和INT1(P3.3),两个片内按时器/计数器T0和T1的溢出请求中断源TF0和TF1,1个片内串行口发送或接收中断请求源T1和R1.
单片机内的CPU工作时,如果一个中断源向它发出中断请求信号,它就会发生中断.可是,如果同时有两个中断源发出中断请求信号,CPU就会优先接收级别高的中断请求源,然后再接收优先级别低的中断请求.表4.3.2列出5个自力中断请求源由其硬件结构决定的自然优先级排列顺序.
中断源
自然优先级
中断入口地址
中断编号
外部中断INT0
高
↓
低
0003H
0
按时器T0
000BH
1
外部中断INT1
0013H
2
按时器T1
001BH
3
串行口通信中断R1或T1
0023H
4
表4.3.2单片机中断源的自然优先级、入口地址及中断编号
对应于单片机的5个自力中断源,应有相应的中断服务法式.这些中断服务法式有专门规定的寄存位置,即表4.3.2的中断入口地址.当有了中断请求后,CPU可以根据入口地址迅速找到中断服务法式并开始执行,年夜年夜提高执行效率.
主法式见附录.
第5章系统测试
Proteus仿真模拟软件.
(1).在Proteus软件中绘制好按时闹钟仿真模拟电路图.
(2).将Keil编译器生成的.hex文件载入AT89C52芯片.
(3).在Proteus软件中,点击左下角的“play”按钮启动按时闹钟.如下图,“play”按钮在第一个.
图5.3.1(3)仿真电路运行控制按钮
详细测试内容如下:
按时闹钟是否能正确显示时间;是否能正确显示闹钟设置时的界面;是否能正确显示时间调整时的界面.
(1).显示时间
点击“play”键之后,时钟系统开始走时,如图5.5.2
(1):
图5.3.2
(1)
经测试,显示结果达到预期要求.
(2).时间调整测试
如果用户发现时间运行分歧毛病,要对时间进行修改和调整,就需要进入时间修改的界面.预期可以对时、分、秒进行调整和修改.系统能正确显示时间修改的界面.用户可以完成时间的修改.
经测试,该部份运行正常.
(3).闹钟设置测试
在系统能正确显示时间之后,用户若想设置闹钟,可以通过按键完成闹钟时间的设置.设置时间到后蜂鸣器报警,按下“STOP”键后警报停止
经测试,该部份能正常运行.
结论:
通过以上对仿真项目的全面测试,可知仿真部份运行正常.
通过以上测试,证明本设计基本实现系统所有要求,即能够正确显示时间信息,能够对以后时间进行调整和修改,而且能够设定闹钟并在所设置的闹钟时间发出警报声,通过按键可以停止警报.
结论
该系统采纳单机片AT89C52作为核心芯片,结合一些其他外围设备,一起构成了一款能够显示时间而且能够对其进行修改和设置按时闹钟的按时闹钟系统.
该系统采纳数码管显示屏,能够清晰显示时间信息,而且能够友好的引导用户进行时间的修改以及闹钟的设置.可以通过各个寄存地址对时间进行读写把持,即读取时间和修改时间.利用蜂鸣器为用户提供闹铃功能,能够在设按时间发出警报声提醒用户.采纳按键较少的自力式键盘供人机交互,把持简双方便.可以通过键盘修改时间,也可以设置闹铃时间和修改闹铃时间,另外,在闹铃时间与系统时间一致,蜂鸣器鸣叫时,可以通过按键中断警报声.总之,该按时闹钟系统完成了市场上一般闹钟应有的功能,能够显示时间和设置闹钟,可以给用户提供时间信息.
该设计也存在一些缺点,就是实际生产时投入资金会比市场上一般闹钟价格昂贵,如果进行包装,价格还会上升一些.另外,外观不如市场销售的闹钟美观.
致谢
衷心感谢雷俊红老师的指导.
参考文献
[1]李强,51系列单片机应用软件编程技术[M].北京:
北京航空航天年夜学出书社,.4:
134138.
[2]薛慧芳.MCS51单机片串行口的一口多用[J].南京化工年夜学学报(自然科学版),1998,S1:
8486.
[3]王东锋,王会良,董冠强.单机片C语言应用100例[M].北京:
电子工业出书社,.3:
218219,148152.
[4]楼然苗,李光飞.单片机课程设计指导(第2版)[M].北京:
北京航空航天年夜学出书社,.1:
285289.
附录:
系统电路图如下:
系统电路图
系统法式如下:
#include
sbitbtnTime=P1^0;
sbitbtnClock=P1^1;
sbitbtnSwitch=P1^2;
sbitbtnUp=P1^3;
sbitbtnDown=P1^4;
sbitpin1=P2^0;
sbitpin2=P2^1;
sbitpin3=P2^2;
sbitpin4=P2^3;
sbitpin5=P2^4;
sbitpin6=P2^5;
sbitpinBuz=P2^6;
unsignedchartimer=0,sec,min,hour,count=0,s=60,m=60,h=24,flag=0;
unsignedcharcodenumbers[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
voiddelayMs(unsignedintk){
unsignedinti,j;
for(i=k;i>0;i)
for(j=110;j>0;j);
}
voidtimeChange(){
sec++;
if(sec==60){
sec=0;
min++;
if(min==60){
min=0;
hour++;
if(hour==24)
hour=0;
}
}
}
voidshowTime(unsignedcharzs,unsignedcharzm,unsignedcharzh){
pin1=1;
P0=numbers[zh/10];
delayMs(5);
pin1=0;
pin2=1;
P0=numbers[zh%10]&0x7f;
delayMs(5);
pin2=0;
pin3=1;
P0=numbers[zm/10];
delayMs(5);
pin3=0;
pin4=1;
P0=numbers[zm%10]&0x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时闹钟设计 课程设计报告 定时 闹钟 设计 课程设计 报告