基于单片机的定时报时系统_第1页
基于单片机的定时报时系统_第2页
基于单片机的定时报时系统_第3页
基于单片机的定时报时系统_第4页
基于单片机的定时报时系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求.采用单片机进行计时,对于社会生产有着十分重要的作用。本文首先介绍了单片机和时钟的概念,然后根据设计要求提出系统总体设计方案,并设计各部分硬件模块和软件模块,再用设计的具体软件程序,用PROTEUS软件进行仿真和调试,结果证明该设计系统的可行性。由于AT89S51系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。关键词:单片机;定时;报时;设计目 录 第1章 简介1一、基于单片机的

2、数字钟介绍1 二、本系统的特点和功能介绍1第2章 硬件设计1 一、 总体设计方案1 二、 硬件结构设计2 1、51单片机的最小系统 2 2、显示部分设计3 3、电源部分设计4 4、串口通信部分设计4 5、报时部分的设计4 6、键盘部分的设计5 7、总体硬件电路图5第3章 软件设计6 一、部分设计思想的说明6 二、参考程序9总结12参考文献1316第一章 简介一、基于单片机的数字钟介绍1.单片机定义:“单片机”就是将计算机的基本部件集成到一块芯片上,包括CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Mem

3、ory)、并行口(Parallel Port)、串行口(Serial Port)、定时器计数器(Timer/Counter)、中断系统(Interrupt System)、系统时钟及系统总线等。2数字钟介绍:时钟是将小时、分钟、秒钟显示于人的肉眼的计时装置。而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。而LED电子定时时钟是以单片机为基础的数字电路实现对时、分、秒的数字显示的数字计时装置,它的计时周期为12小时,另外应有校时功能和一些显示日期、闹钟等附加功能

4、。由于时钟的实用性和在人们生活中的重要性,所以尝试设计以单片机为核心的数字时钟是很有意义的。钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能。 二、本系统的特点和功能介绍1 特点:我所设计的是LED显示的自动报时系统,是一种基于单片机技术的电子产品,用到的单片机芯片是AT89C52芯片,除此之外还包括晶振电路和复位电路构成单片机最小应用系统,还有按键电路,显示电路,报时电路等等。计时方案采用软件控制利用AT89C52单片机内部的定时/计数器进行定时,配合软

5、件延时实现时、分的计时。2本单片机报时控制系统具备以下功能(1)有电子时钟,定时闹铃功能。(2)时钟显示功能:4位LED从左到右依次显示“分分秒秒”,采用12小时制显示。(3)采用4个独立按键(移位键、加1键、减1键、校时置入键)移位键:每按动移位键一次,小数点从左向右移动1位。加1键:对小数点所在位的数什进行十进制加1。减1键:对小数点所在位的数值进行十进制减1。校时置入键:将显示的时间值置入实时时钟的计时缓冲区。(4)预设定时时间到则发出闹铃声第二章 硬件设计一、总体设计方案本LED定时闹钟,是以单片机及外围接口电路为核心硬件,辅以其他外围硬件电路,用软件程序来实现的。单片机定时报时控制系

6、统硬件原理图见设计原理图如下图所示。主控制器AT89C52晶振LED显示电路复位电路报时电路键盘电路图2-1 总体设计方框图二、硬件结构设计 1、51单片机的最小系统 (见图2-2、2-3、2-4所示)在晶振电路中XTAL1、XTAL2为AT89C52中连接晶振的管脚,本系统中所使用的晶振频率为12MHZ 。XTAL1为振荡器反相放大器及内部时钟发生器的输入端,XTAL2为振荡器反相放大器的输出端。其中电容C18、C19起着系统时钟频率微调的作用,因此,在本定时报时系统的实际应用中一定要注意正确选择参数(30±10PF),并保证对称性(尽可能匹配),可能的话,温度系数要尽可能的低。实

7、验表明这两个电容元件对时钟走时误差有较大关系。本系统采用了RC复位电路,其实现简单,成本低,但复位可靠性相对较低。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。2、显示部分设计用4位LED七段数码管作为显示器,到达定时时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。其驱动电路简单。采用了两片74HC595来驱动段码,8个510欧姆的限流电阻。图2-2 引脚图 图2-3 晶振 图2-4 复位电路 图2-4 LED显示器图2-5 显示驱动部分 3、电源部分设计如果是用电池供电,就比较方便携带,但是本系统,采用了数码管作为显示器,功耗较大,需要经常更换电

8、池。况且,本系统的体积较大,即使使用电池供电也不能随身携带,因此,用电池供电不大合适,所以用外部稳压电源来供电。应当说明的是,尽管有很多型号的7805三端稳压集成芯片,其标称最大输出电流均为1.5v,但在实际应用中,该最大的输出电流值往往取决于两个方面:足够的散热面积和不同的成产厂家。在设计中必须保证7805的输入电压Vi和输出电压Vo的压差大于2.5v,否则会失去稳压能力;同时考虑到功耗问题,此压差有不宜太大,太大则增加7805本身的功率消耗,增加芯片的温升,不利于安全。因此,本系统采用9v直流稳压源。图2-6 电源电路 4、串口通部分块设计软件程序可通过此口写入51单片机中,其原理图如图2

9、-7所示。5、报时部分的设计报时指示可以有声或光两种形式,本系统采用声音指示。关键元件是蜂鸣器,蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,元件内部已封装了音频震荡电路,在得电状态下即起振发声。市场上的有源蜂鸣器分为3V、5V、6V等系列,以适应不同的应用需要,本系统采用5V有源蜂鸣器实现报时。由软件产生方波输出经三极管放大后驱动蜂鸣器发音,不用硬件振荡电路,电路图如图2-8所示。图2-7 串口通信电路 图2-8 报时电路 6、键盘部分的设计如果设置过多按键,将会占用较多I/O口,而且会给布线带来不便,因此采用4个独立按键。由于按键较少,在

10、修改时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单,而且并不需要经常修改时间。图2-9 键盘电路 7、总体硬件电路图 通过Proteus画出的总体硬件电路图如下所示。图2-10 总体硬件电路图第三章 软件设计一、部分设计思想的说明软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处理等。基于软件的秒脉冲信号通常有延时法和中断法。延时法一般采用查询方式,在延时子程序前后必然需要查询和处理的程序,导致误差的产生,因此其秒脉冲精度不高;中断法的原理是,利用单片机内部的定时器溢出中断来实现 。本系统中所使用的晶振频率为12MHZ,采用中断的方法实现计时操作。根据工作流程,

11、软件设计可分为以下几个功能模块:1、主程序:是系统软件的主框架。结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。它的合理与否关系到程序最终的功能的多少和性能的好坏。其流程图见图3-12、计时:系统定时采用定时器与软件循环相结合的方法。定时器0每隔100MS溢出中断1次,则循环中断10次延时时间为1S,上述过程重复60次为1MIN,分计时60次为1H,小时计时12次则时间重新回到00:00,如果使用时钟芯片,系统就不怕掉电且时间精确。但这种芯片比较贵,况且,设计本系统主要是为了学习单片机程序的编写和调试以及设计硬件电路的一些方法,因此采用软件的方法来

12、计时而没有采用价格较高的时钟芯片系统初始化定时器初始化定时器初始化串口初始化显示待机指示符设定闹铃时间判设置闹铃时间否?显示刷新启动走时有关变量初始化刷新显示判断日期是否变化化否?秒指示判断时间是否变化闹铃判是否到闹铃时间?延时YYYY图3-1 主函数流程图3、时间设置:由键盘出入设置当前时间4、LED数码管扫描显示:完成4位LED显示5、键盘扫描:判断是否有键按下,无键按下则循环等待,有键按下则求承诺键号并将键号送累加器A返回。程序中的去抖延时和循环等待延时都用显示子程序来代替,从而保证随时刷新显示,软件的去抖动的实质是软件延时,即检测到某一键状态发生变化后延时一段时间,再检测该按键的状态是

13、否还保持着,如是则作为按键处理,否则,视为抖动,不予理睬。去抖中的延时时间一般参考资料多描述为10ms,实际应用中,应大于20ms,会导致按一次作多次处理,影响程序正常执行。键盘管理程序的功能是检测有无键闭和,如有键闭和,消除抖动,根据键号转接到相应的键处理程序。其程序流程图如图3-26、报时处理:判断时间是否到否,如时间到,则启动报时处理程序。闹铃判别与闹铃处理的关键在于判别何时要进行闹铃,当任一位发生改变(进位)时,就必须进行闹铃判别,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数,开始响铃。为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉冲,驱动蜂鸣器,不会影响

14、显示。之后对按键进行判断,程序设计思想如图3-3。开始置P2口为输入方式延时12ms消除键抖动0#键功能程序有键闭合否P2.0=0?P2.1=0?P2.2=0?1#键功能程序2#键功能程序有键闭合否NNNNNYYYYY 图3-2 键盘管理程序流程图 分十位、个位,秒十位、个位改变了设置闹铃标志是否设置了闹铃清除闹铃标志判当前时间是设定时间中断返回中断返回闹铃判别处理 图3-3 闹铃实现思想流程图二、参考程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intucharcode seg17=0xfc

15、,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=P14; ;位寻址,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;

16、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 = (

17、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(segmin1,0xef);delay(10)

18、;LED(segmin2,0xdf);delay(10);LED(segsec1,0xbf);delay(10);LED(segsec2,0x7f);delay(10);总 结由于时间,还有能力与精力的关系,对程序还不完善,键盘处理部分的程序未能加入进去,该系统还需要以后进行完善。 通过本次的课程设计,我学会了单片机的一般设计过程,通常都要进行系统扩展与配置,因此,要完成一个单片机的设计工作,必须依次做到下述工作:1、硬件电路的设计、组装与调试;2、应用软件的编写、调试;3、完整应用软件的调试、固化和脱机运行。而在进行硬件系统设计时我们应当尽量做到:(1)、尽可能的选择典型电路,并符合单片机的常规使用方法;(2)、在充分满足系统功能要求前提下,留余地以便于二次开发;(3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论