基于51单片机-的-简易电子钟设计_第1页
基于51单片机-的-简易电子钟设计_第2页
基于51单片机-的-简易电子钟设计_第3页
基于51单片机-的-简易电子钟设计_第4页
基于51单片机-的-简易电子钟设计_第5页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上基于单片机的简易电子钟设计1.背景:AT89S51具有完整的输入输出、控制端口、以及内部程序存储空间。与我们通常意义上的微机原理类似,可以通过外接A/D,D/A转换电路及运放芯片实现对传感器传送信息的采集,且能够提供以点阵或LCD液晶及外接按键实现人机交互,能对内部众多端口连接步进电机对外围设备进行精确操控,具有强大的工控能力。2.简介:本设计以AT89S51单片机为核心,辅以必要的电路,设计了一个简易的电子时钟,它由5V直流电源供电,通过数码管能够准确显示时间,调整时间,数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。在这次设计中,我采用LED数

2、码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。此次设计中,电路具有显示时间的其本功能,同时还可以实现对时间的调整。特点是:小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化。1. 设计思路本设计通过单片机和数码管、led灯等组成,74hc573驱动6位数码管组成其显示是:小时.分钟.秒。按键功能是:小时加,分钟加,秒清零,12/24h切换。012h(也就是上午)时黄灯亮,1224h(下午)时黄灯灭,12小时制时红灯亮,24小时制时红灯灭。单片机型号AT89S51系统工作过程:时间的主要处理过程是在CPU中完成的。CP

3、U会随时对时间进行读取数据的操作。在读取了相应的寄存器的值后,CPU将读取的值进行处理,再通过I/O口把数据显示在数码管上。2. 单元电路1 控制器模块采用51系列作为系统控制器,单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积较小、技术成熟和成本低等优点,在各个领域应用广泛。而且抗干扰性能好。2 计时模块数字时钟是本设计的最主要的部分。在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清

4、零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。3 显示模块采用LED数码管,显示用LED数码管。虽然显示的内容有限,但是也可以显示数字和几个英文字母,在此设计中已经足够了,并且价格比液晶字符式要低的多,为了降低设计制作的成本,在此设计中我们选用LED数码管显示。3. 系统硬件介绍本设计采用AT89S51单片机作为主控制器,外部加上74HC573驱动数码管。系统总体框图如下:按键模块电源模块晶振电路单片机数码管驱动模块复位电

5、路指示灯模块图1 系统总体框图所用器件:专心-专注-专业1. 7*9万用板2. 0.36四位一体共阴数码管3. 0.36两位一体共阴数码管4. 2.2k电阻*25. 74HC5736. 20脚座7. 40脚座8. AT87S51单片机9. 红色5mmLED10. 黄色5mmLED11. 103排阻12. 10k电阻13. 10uf电容14. 30pf电容*215. 12M晶振16. 按键*417. 自锁开关18. DC电源接口19. 导线若干20. 焊锡若干21. usb电源线或电池盒+DC电源插头总花费 15 元3.1 AT89S51单片机(1)简介AT89S51是一个低功耗,高性能8位,片

6、内含4k Bytes(In-system progmable)的可反复擦写1000次的只读,器件采用的高密度、非易失性存储技术制造,兼容标准MCS-51及80C51结构,芯片内集成了通用8位和ISP Flash,AT89S51在众多嵌入式控制应用系统中得到广泛应用。(2)主要要性能参数1、4k Bytes Flash片内;2、128 bytes的数据存储器();3、32个外部双向输入/输出(I/O)口;4、2个、2层中断;5、5个;6、2个16位可编程/;7、1个全双工口;8、(WDT)电路;9、片内和;10、与MCS-51兼容;11、全静态工作:0Hz-33MHz;12、三级保密锁定;13、

7、可编程串行通道;14、低功耗的闲置和掉电模式(3)管脚说明VCC:电源电压输入端。GND:。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为输入。P0能够用于外部程序数据,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验

8、时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部或16位地址存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据进行读写时,P2口输出其的内容。P2口在FLASH编程和校验时接收高八位地址信号和。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电

9、平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为普通I/O口,还有第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(T0的外部计数输入)P3.5 T1(T1定时器的外部计数输入)P3.6 /WR(的写选通)P3.7 /RD(外部数据存储器的读选通)P3口同时为闪烁编程和编程校验接收一些。I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口的内容读入到,经过某种运算或变换后再写回到端

10、口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是。除了P1口外P0、P2、P3口都还有其他的功能。RST:复位输入端,高电平有效。当复位器件时,要保持RST脚两个的高电平时间。ALE/PROG:允许/编程脉冲信号端。当访问时,地址锁存允许的用于锁存地址的低位字节。在FLASH编程期间,此用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只

11、有在执行MOVX,MOVC指令时ALE才起作用。另外,该被略微拉高。如果在外部执行状态ALE禁止,置位无效。PSEN:外部的选通信号,低电平有效。在由外部程序存储器取指期间,每个两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:外部程序存储器访问允许。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:片内反相放大器和时钟发生器的输入端

12、。XTAL2:片内振荡器反相放大器的输出端。图2 AT89S51单片机引脚图端口引脚功能特征P3.0串行输入口(RXD)P3.1串行输出口(TXD)P3.2外中断0(INT0)P3.3外中断1(INT1)P3.4定时/计数器0的外部输入口(T0)P3.5定时/计数器1的外部输入口(T1)P3.6外部数据存储器写选通(WR)P3.7外部数据存储器读选通(RD)图3 P3口第二功能(4)89S51单片机的中断系统以下内容是对89S51单片机的中断系统的介绍。1中断:程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向为处理内部事件的中断服务程序中去;完成中断服务的程序后,CPU继续原

13、来被打断的程序,这样的过程称为中断过程。2中断源:能产生中断的外部和内部事件。89S51有5个中断源:(1) INT0:外部中断0请求,低电平有效。通过P3.2引脚输入。(2)INT1:外部中断1请求,低电平有效。通过P3.3引脚输入。(3)T0:定时器/计数器0溢出中断请求。(4)TI:定时器/计数器1溢出中断请求。(5)TXD/RXD:串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。每一个中断源都对应一个中断请求标志位,它们设置在特殊功能寄存器TCON和SCON中。当这些中断源请求中断时,相应的标志分别有TCON和SCON中的相应位来锁存。389S51中断系统有以下4个特殊

14、功能寄存器:(1)定时器控制寄存器TCON(用6位);(2)串行口控制寄存器SCON(用2位);(3)中断允许寄存器IE;(4)中断优先级寄存器IP。其中,TCON和SCON只有一部分用于中断控制。通过对以上各特殊功能寄存器的各位进行置位或复位等操作,可实现各种中断控制功能。4中断的响应过程及中断矢量地址中断处理过程可分为3个阶段:中断响应、中断处理和中断返回。89C51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志。如查询到某个中断标志为1,则将在接下来的机器周期S1期间按优先级进行中断处理。中断系统通过硬件自动将相应的中断矢量

15、地址装入PC,以便进入相应的中断服务程序。表2既是各个中断源对应的中断矢量地址。由于89S51系列单片机的两个相邻的中断源中断服务程序入口地址相距只有八个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址中放一条常跳转指令LJMP,这样就可以转到64KB任何可用区域了。中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。RETI指令的操作一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入堆栈保护断点地址从栈顶弹出,装入程序寄存器PC,使程序返回到被中断的程序断点处继续执行。中断源中断矢量地址外部中断0()0003H定时器/计数器0(T0)000BH外部

16、中断1()0013H定时器/计数器1(T1)001BH串行口中断(RI、TI)0023H图4 中断源及其对应的矢量地址图6 中断响应和处理图5 中断响应和处理过程3.2 数码管驱动模块数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。 本设计采用共阴数码管,显示方式为动态显示,利用数码管的dp点将小时、分钟和秒分隔。共阴极数码管是一类数字形式的显示屏,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。由于它的价格便宜、使用简单、在电器,特别是家电领域应用极为广泛。对于共阴极数码管来说,当某个

17、发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极数码管的阳极连接在一起,公共阳极接+5V,当某个发光二极管的阴极接低电平时,该发光二极管被点亮,相应的段被显示。共阴极数码管是把所有led的阴极连接到共同接点COM,而每个led的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。图中的8个led分别与上面那个图中的adp各段相对应,通过控制各个led的亮灭来显示数字。找公共共阴和公共共阳的方法:首先,我们找个电源(3到5伏)和1个1k(几百欧的也行)的电阻,vcc串接个电阻后和gnd接在任意2个脚上,组合有很多,但总有一个led会发光的,找到一个就够了,然

18、后gnd不动,vcc(串电阻)逐个碰剩下的脚,如果有多个led(一般是8个),那它就是共阴的了。相反用vcc不动,gnd逐个碰剩下的脚,如果有多个led(一般是8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。图6 数码管3.3 74HC573芯片介绍74HC573是拥有八路输出的透明,输出为三态门,是一种高性能硅栅器件。SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。M54HC563/74HC563/M54HC573/74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)

19、为高时,Q 输出将随数据(D)输入而变。当使能为低时,将输出锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。74HC573特征:1. 输入输出分布在芯片封装的两侧,为微处理器提供简便的接口 2. 用于微控制器和微型计算机的输入输出口 3. 三态正相输出,用于面向总线的应用 4. 共用三态输出使能端 图7 74HC573芯片 图8 74HC573原理图3.4 按键调时模块单片机键盘

20、有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。本设计的按键功能是:当K0按下的时候可以切换小时制,当K1按键的时候是小时加一,当K2按下的时候分钟加一,当K3按下的时候秒清零。就是通过这3个按键实现对时间的校正。独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按

21、下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。 图9 键盘控制电路图3.5 指示灯模块指示灯提示模块包括LED和限流电阻。发光二极管,是一种能够将电能转化为可见光的固态的,它可以直接把电转化为光;图10 LED提示电路4. 代码设计1.编程Keil C51主要源程序#include#define uc unsigned char#define ui unsigned intsbit LED=P32;/定义LEDsbit key0=P33;/定义小时切换s

22、bit key1=P34;/定义调小时sbit key2=P35;/定义调分钟sbit key3=P36;/定义秒清零sbit wan=P37;uc min,hour,sec,num;bit bdata zhi;uc code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*0,1,2,3,4,5,6,7,8,9,.*/共阴极编码void delay(ui x)/延时函数ui i,j;for(i=0;ix;i+)for(j=0;j=12)&(zhi=0)hour=hour-12;if(zhi=1)&(wan=1)hour=hour

23、+12; while(!key0) display();/判断是否松开if(key1=0)delay(5);if(key1=0)&(zhi=0)hour+;if(hour=12)hour=0;if(key1=0)&(zhi=1)hour+;if(hour=24)hour=0;while(!key1) display();/判断是否松开if(key2=0)delay(5);if(key2=0)min=0;while(!key2) display();/判断是否松开if(key3=0)/判断调整秒按键while(!key3) display();/判断是否松开void init()sec=0;/一

24、通电,显示12:30:00min=30;hour=12;wan=1;TMOD=0x01;/设置定时器TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void shizhi()if(hour=12)if(hour12)&(zhi=1)wan=0;void main()/主函数init();while(1)display();keyscan();/扫描是否有键按下shizhi();void time0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;num+;

25、if(num=20)num=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=12)&(zhi=0)wan=wan;hour=0if(hour=24)&(zhi=1)hour=0;2.仿真proteus3. 程序流程图程序流程图如图15所示:开始小时加键是否按下分钟加键是否按下秒清零键是否按下结束将小时、分钟和秒数据显示分钟加一并存入寄存器秒清零并存入寄存器小时加一并存入寄存器定时器初始化并打开定时器4.焊接过程5. 调试与实现这是本设计较为困难的一部分,需要经过反反复复的调试,才能达到理想中的效果。时间的准确度是本设计的重点调试对象,要反复调整定时器中断的初值,来达到设计的准确性。一开始显示经常出问题,后来在网上查找原理图才解决。焊接好后,不要忙于通电,首先要检测有没有短路,万一有短路几通电,将会很麻烦,容易烧毁电路板或元器件,更容易引发安全隐患。确保无短路再通电。一开始按键按下的时候,按键会加还几个数,经过反复的查找和更改程序,最终知道原来按键的处理

温馨提示

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

评论

0/150

提交评论