智能定时闹钟设计毕业设计Word文档格式.docx
《智能定时闹钟设计毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《智能定时闹钟设计毕业设计Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
![智能定时闹钟设计毕业设计Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/12/f261a5c5-0f50-4504-ab4a-281939c0ddae/f261a5c5-0f50-4504-ab4a-281939c0ddae1.gif)
ThisdesignusesAT89C51microcontrollerasthecorecomponent,12MHZcrystal,shapedsegmentcodetobedisplayedbytheP0portoutputsignalfromtheP2portoutputword.Expansiononthebasisoftheperipheralchipsandcircuits,additionalclockcircuitandtheLEDcircuit.LEDcommoncathodeconnection,active-lowselecttheappropriateLED.
Microcontrollers,highintegration,functionality,versatility,itslowenergyconsumption,cheap,highreliability,stronganti-interferenceabilityandeaseofuseandotheruniqueadvantages,sothemicrocontrollerisnowwidelyappliedtohouseholdappliances,electricalandmechanicalproducts,children'
stoys,robots,officeautomationproductsandotherfields.InordertofurtherfamiliarwithandmasterMCUapplicationanddevelopmentofverynecessarytodothecoursedesign.
Asingle-chiptimingalarmsystemcannotbeseparatedfromthesoftwareandhardware,hardware,software,relyingonsoftwareisthecoreofthehardware.Shouldthedesignofhardwarecircuitdesigntheminimumsystemofasingle-chipmicrocomputerapplicationsystemdesignbasis,andthenonthisbasis,toaddperipheraldevicessuchasdisplays,buttons,etc.constitutethehardwareschematicofthealarmclock.Followamodulardesignapproachinthedesignoftheapplication.
Keywords:
timingalarmsystemsensortechnology,intelligentinstrumentsandcathodeconnection
基于智能定时闹钟系统设计
前言
学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯本设计采用单片机AT89C51作为核心元件,12MHZ晶振,由P0口输出所要显示的字形段码,由P2口输出字位信号。
1设计目的及意义
学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯。
1.1设计任务
完成所选题目的分析与设计,达到技术性能要求。
提交正式课程设计总结报告一份。
本文设计的定时闹钟的核心模块采用AT89C51芯片,时、分、秒用6位LED数码管显示。
在电路中通过四个按键S1、S2、S3和S4来进行定时、调时和复位,定时时间到通过蜂鸣器发出报警声。
1.2设计系统的主要功能
▲能显示时时-分分-秒秒。
▲能够设置定时时间、修改定时时间。
▲定时时间到能发出报警
单片机的时钟产生方法有两种:
内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHz~12MHz之间。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响修改时间和定时用手动按键控制,报警声通过蜂鸣器发出。
这样可以使得硬件电路设计较为简单,且软件设计也易于实现,并能够降低成本其集成度高、功能强、能耗低、通用性好、价格便宜。
该器件采用ATMEL高密度非易失存储器制造技术制造。
2系统总体方案及硬件设计
2.1系统总体方案
▲由于LED显示器相对于其它显示器(如LCD显示器)来说其价格要便宜许多,而且亮度更高,耐温范围较广,所以采用6位数码管来显示“时时-分分-秒秒”。
▲时间的定时用单片机内部时钟电路,在一定的时间内能使其误差较小,如经过一年其误差才仅有数秒。
修改时间和定时用手动按键控制,报警声通过蜂鸣器发出。
这样可以使得硬件电路设计较为简单,且软件设计也易于实现,并能够降低成本。
▲核心模块采用AT89C51单片机,功能强、通用性好、价格便宜,且易于控制。
加上外围器件(数码管、排阻、按键和蜂鸣器)和应用程序,便构成了相应的应用系统。
2.2系统设计总框图(如图2.2-1所示)
图2.2-1定时闹钟系统设计总框图
2.3硬件设计
2.3.1单片机最小系统设计
▲芯片:
AT89C51
因为51单片机是各单片机中最为典型和最有代表性的一种,在20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用广泛,发展很快,推广率和市场利润率较高,且适合于本设计系统中CPU内存和I/O等资源的要求,所以本设计采用AT89C51作为核心控制芯片。
AT89C51是一种带4KB闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的单片机,可稳定地工作于5V的电源下。
其集成度高、功能强、能耗低、通用性好、价格便宜。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
其组合而成的配件产品在日常生活的使用过程中非常方便、简单且实用,深受着广大消费者的喜爱。
AT89C51管脚说明如下:
Vic:
供电电压端。
God:
接地端。
P0口:
P0口为三态双向口,能带8个TTL电路。
有两种功能:
第一功能是一个8位漏极开路型的双向I/O口,这时P0口可看作数据总线;
第二功能是在访问外部存储器时,分时提供低8位地址和8位双向数据总线,这时先用做地址总线再用做数据总线。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P0口内部无上拉电阻,作为I/O口使用时,必须外接上拉电阻。
P1口:
P1口是一个内部带上拉电阻的8位准双向I/O口(使用前有一个准备动作),负载能力为4个TTL电路。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部带上拉电阻的8位准双向I/O口,P2口缓冲器可接收、输出4个TTL门电流。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口是一个内部带上拉电阻的准双向I/O口,可接收输出4个TTL门电流。
同时为闪烁编程和编程校验接收一些控制信号。
P3口的8个引脚都有各自的第二功能,可作为AT89C51的一些特殊功能口,如表2.3.1-1所示。
表2.3.1-1P3口第二功能
P3口引脚
第二功能
注释
P3.0
串行输入口
P3.1
串行输出口
P3.2
外部中断0输入
P3.3
外部中断1输入
P3.4
定时/计时器0外部输入
P3.5
定时/计时器1外部输入
P3.6
外部数据存储器写信号
P3.7
外部数据存储器读信号
RSTVPP:
RST为复位信号输入端。
当振荡器复位器件时,要保持RST脚两个机器周期(24个时钟周期)以上的高电平时间。
VAP为内部RAM的备用电源输入端。
当主电源
一旦发生断电或电压降到一定值时,可通过VCC为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使VCC上电后能继续正常运行。
ALOE/PROG:
ALE为地址锁存允许信号,当访问外部存储器时,ALE用来锁存P0口送出的低8位地址信号。
在FLSH编程期间,PROG用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR的8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的读选通信号。
在由外部程序存储器取指期间,PSEN产生负脉冲做为外部ROM的选通信号,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,不会产生有效的PSEN信号。
PSEN可驱动8个LETTEN门输入端。
Earp:
访问外部程序存储器控制信号。
当EA保持低电平时,则在此期间只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RST。
当EA端保持高电平时,CPU访问程序存储器有两种情况:
一是访问的地址空间在0到4KB范围内,CUP访问片内程序存储器;
二是访问的地址超出4KB时,CPU将自动执行外部程序存储器的程序。
在PLSAH编程期间,此引脚也用于施加12V编程电源(App.)。
XTAL1:
晶体振荡电路的反向器输入端。
XTAL2:
晶体振荡电路的反向器输出端。
DIP封装的AT89C51管脚排列如图2.3.1-1所示。
图2.3.1-1AT89C51的管脚排列
▲时钟电路
单片机的时钟产生方法有两种:
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF~100pF之间取值。
AT98C51单片机的时钟电路如图2.3.1-2所示。
图2.3.1-2AT98C51单片机的时钟电路
▲复位电路
复位是单片机的初始化操作。
单片机系统在上电启动运行时,都需要先复位。
其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。
单片机的外部复位电路有上电自动复位和按键手动复位两种。
本系统中AT89C51单片机采用上电加按键手动复位电路,如图2.3.1-3所示。
图2.3.1-3AT89C51单片机的复位电路
2.3.2报警模块设计
为实现设计的定时闹钟系统在定时时间到时发出报警声,采用蜂鸣器作为报警发声装置。
在本设计中有多种报警声可供选择,可选择报警时播放音乐当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符当使能为低时,输出将锁存在已建立的数据电平上。
报警电路设计如图2.3.2-1所示。
图2.3.2-1定时闹钟系统的报警电路
2.3.3显示模块设计
本系统中采用6位LED数码管显示时、分、秒,用两片74HC573分别对段码和位码进行锁存,实现动态扫描方式显示,节省单片机I/O口资源,简化硬件电路。
▲LED显示器
单片机中通常使用8段LED,LED是发光二极管显示器的缩写。
LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,耐温范围广,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。
LED显示器有多种形式,如:
“米”字型显示器,点阵显示器和七段数码显示器等。
在本系统中采用八段数码显示器。
因为共阴极的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故本系统中的6位LED数码管均用共阴极的数码管。
▲74HC573芯片
特点:
三态总线驱动输出,置数全并行存取,缓冲控制输入,使能输入有改善抗扰度的滞后作用。
原理说明:
74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
74HC573引脚说明:
OE:
3态输出使能输入(低电平有效)。
D0-D7:
数据输入端。
Q0-Q7:
3态锁存输出。
LE:
锁存使能输入。
GND:
接地。
VCC:
电源电压。
74HC573的引脚图、逻辑图及真值表如下:
图2.3.3-1
74HC573引脚图
图2.3.3-274HC573逻辑图
表2.3.3-174HC573真值表
OE
Le
D
d
H
X
Z
L
Nochange
h
▲显示电路
将两片74HC573的数据输入端D0-D7都分别与AT89C51单片机的P0.0-P0.7和RESPACK-8排阻的2-9引脚连接,两片74HC573的锁存使能端L分别接至P2.6和P2.7,74HC573的输出端接至数码管,如图2.3.3-3所示。
图2.3.3-3定时闹钟系统的显示电路
2.3.4调时模块设计
本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。
键盘电路设计如图9所示。
当按下时间调整键S1时,系统可进行时间调整的小时设置;
当再按下S1时,可进行时间调整的分钟设置;
再按下S1时,可进行时间调整的秒钟设置。
3软件设计
3.1主程序流程图
图3.1-1主程序流程图
3.2定时中断子程序流程图
图3.2-1定时中断子程序流程图
3.3程序设计
根据程序流程图采用汇编语言进行程序设计,其中主程序可根据系统实现的功能划分为以下几个子程序模块。
(程序源代码见附录1)
▲时间调整子程序模块;
▲闹钟时间设置子程序模块;
▲蜂鸣器报警子程序模块;
▲数码管显示子程序模块。
指示灯信号LAMP2~LAMP0为独立扩展下载板上CPLD器件的第11、10、9脚,内部已连接并已锁定,无需外接连线。
蜂鸣器报时信号SPEAK为独立扩展下载板CPLD器件的第31脚,内部已连接并已锁定,无需外接连线。
拨码开关SW1~SW7内部已连接并已锁定,无需外接连线。
数码管七个段位信号A~G为独立扩展下载板上CPLD器件的第86、87、88、89、90、92、93脚,应接数码管段位引线接线组KPL_AH,从左到右依次对应的A、B、C、D、E、F、G引线插孔。
数码管段位译码控制信号SS0、SS1、SS2为独立扩展下载板上CPLD器件的第68、69、70脚,为数码管的位选扫描信号,分别接信号接线组DS1-8A(T)的SS0、SS1、SS2引线插孔(即在电源引线插孔组GND孔处)。
复位信号RESET为独立扩展下载板上CPLD器件的第71脚,应接“多功能复用按键F1-F12”信号接线组“F1_12(T)”的F9~F12的任意一个插孔。
按下S1时,系统恢复正常时间显示。
当按下设置定时键S2时,系统可进行闹钟定时时间的小时设置,此时S1作为报警声选择键,可通过S1选择报警声;
再按下S2时,可进行定时时间的分钟设置,此时也可通过S1选择报警声;
第三次按下S2时,系统恢复正常时间显示,此时S1恢复为时间调整按键。
设置时间时都通过加时按键S3和减时按键S4进行控制。
图3.3-1定时闹钟系统的键盘电路
4系统的仿真与调试
4.1proteus软件仿真
使用WAVE软件编辑程序,在仿真设置中选择E6000/T仿真器,选择POD-51仿真头。
为方便系统在proteus中进行仿真,选择了7SEG-MPX6-CC-BLUE数字显示器,并改变了一些I/O连接,如图4.1-1所示,然后选择80C51CPU进行汇编程序编辑。
经过仿真得知,通过S1、S2、S3和S4四个按键,可以对时间进行修改和闹钟的设置,定时时间到能发出报警声,系统非常完善地实现了所有要求的功能。
图4.1-1系统的proteus仿真图
4.2系统的调试
将所编程序在KEIL软件里进行编译,编译正确后生成HEX文件。
在AT89C51芯片中加载此文件后,对完成的实物作品进行调试。
系统运行后,能准确的显示时间,并能通过S1、S2、S3和S4四个按键对时间进行修改和闹钟定时时间的设置,定时时间到能发出报警声。
5结束语
设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。
通过本次单片机原理及应用设计使我充分认识到了设计的重要性和必要性,本次设计使我对已学过的基础知识有了更深入的理解,学会了独立思考、独立工作以及对应用所学基本理论分析和解决实际问题的能力有了很大的提高。
另外,本次设计使我的实际操作技能得到了训练,同时也进一步培养了我严谨的科学作风。
回顾起此次单片机课程设计,从选题到定稿,从理论到实践,可以说得是有苦有甜,但是从中却学到很多很多的的东西,不但巩固了以前所学过的知识,而且对单片机原理课外知识也得到了拓展。
做的过程中,开始的确遇到了不少困难的问题,比如说芯片管脚不熟悉怎么放置等,同时在这过程中也发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过单片机设计之后,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我们还学会了如何去培养创新精神和严谨的科学作风,从而不断地战胜自己,超越自己。
更重要的是,我在这一设计过程中,学会了坚持不懈,绝不放弃。
在本次设计中我遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。
尤其要强烈感谢我的毕业设计指导老师XX老师,他对我进行了无私的指导和帮助不厌其烦的帮助进行毕业设计修改和改进。
XX老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇多。
在此向帮助和指导我的XX老师表示最衷心的感谢!
附录1源程序代码
汇编语言程序:
;
************引脚及变量定义***************
S1BITP3.2;
按键1
S2BITP3.3;
按键2
S3BITP3.4;
按键