基于51单片机的数字钟设计与制作_第1页
基于51单片机的数字钟设计与制作_第2页
基于51单片机的数字钟设计与制作_第3页
基于51单片机的数字钟设计与制作_第4页
基于51单片机的数字钟设计与制作_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业基于52单片机制作的数字钟1.设计任务⑴时间显示:上电后,系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间.⑵时间调整:按下k1,k2,k3键可以顺序设置秒、分、时,并在相应数码管上显示设置值,直至6位设置完毕。2.系统基本方案选择和论证本时钟的设计具体有两种方法。一是通过单纯的数字电路来实现;二是使用单片机来控制实现。本次设计选取了较为简单的单片机控制;而选择这一方法后还要进行各个芯片的选择。以下是我在这次设计中所用的方案。2.1芯片的选择方案一:采用AT89C51芯片,其为高性能CMOS8位单片机,该芯片内含有4kbytes的可反复擦写的只读程序存储器(PEROM)、128bytes的随机存取数据存储器(RAM)、32位可编程I/O口线、2个16位定时/计数器、6个中断源、可编程串行UART通道及低功耗空闲和掉电模式,但是由于AT89C51芯片可擦写的空间不够大,且中断源提供的较小,为防止运行过程中出现不必要的问题,我们不选用AT89C51。方案二:采用AT89C52芯片,它除了具备AT89C51的所有功能与部件外,其最大的优势就是AT89C52提供了8K字节可擦写Flash闪速存储器空间、8个中断源、及256*8字节内部存储器(RAM),解决了我们对可反复擦写的Flash闪速存储器空间大小与中断源的不够问题的担心。2.2显示模块选择方案和论证方案一:采用LCD,电路比较简单,且在软件设计上也相对简单,具有低功耗功能。价格贵。方案二:采用LED数码管显示,显示较为清楚。价格便宜。所以本方案采用LED数码管显示。2.3时钟信号的选择方案和论证直接采用单片机定时计数器提供的秒信号,使用程序实现年、月、日、周、时、分、秒计数。采用此种方案可减少芯片的使用,节约成本,实现的时间误差较小。2.4电路设计最终方案决定综上各方案所述,对此次数字时钟的方案选定为:采用AT89C52作为主控制系统;并由其定时计数器提供时钟;LED作为显示电路来实现功能。3.1数字钟电路设计框图3.1.1如图3-1LCD动态扫描显示模块LCD动态扫描显示模块AT89C52主控制器主控制器开关调节模块晶振电路模块复位电路图3-1电路设计框图3.2主控制芯片AT89C52的原理及说明AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和蔼可亲256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。图3-2AT89S52引脚3.2(1)与MCS-51产品指令和引脚完全兼容(2)8k字节可重擦写Flash闪速存储器(3)1000次擦写周期(4)全静态操作:0Hz—24MHz(5)三级加密程序存储器(6)256×8字节内部RAM(7)32个可编程I/O口线(8)3个16位定时/计数器(9)8个中断源(10)可编程串行UART通道(11)低功耗空闲和掉电模式3.2.2引脚功能Vcc(40):电源电压GND(20):接地P0口(32-39):P0口是一个8位双向I/O接口,也即地址/数据总线复用口。作为输出口用时,每位吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”P1口(1-8):P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”通过内部的上拉电阻把端口拉到高电平时,此时可作输入口。作为输入品使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。与AT89C51不同之处是,P1.0和P1.1还可以分别作为定时/计数器2的外部计数输入(P1.0/T2)P2口(21-28):P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口P2写“1”P3口(10-17):P3是一组带有内部上拉电阻的8位双向I/O口,P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口P3写“1”端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写通道)P3.7RD(外部数据存储器读通道)表3-1P3口的第二功能RST(9):复位信号输入端。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG(30):地址锁存有效信号输出端。当访问片外程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的,要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。PSEN(29):程序存储允许输出端。是片外程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP(31):外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地),需注意的是:如果加密位LB1被编程,复位时内部会锁EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1(19):振荡器反相放大器的及内部时钟发生器的输入端。XTAL1(18):振荡器反相放大器的输出端。通过XTAL1、XTAL2外接晶振后,即可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。4、特殊功能寄存器在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFR),其中包括B寄存器、累加器、程序状态寄存器(PSW)、定时/计数器控制、中断优级控制寄存器(IP)、P3口锁存寄存器、中断允许控制寄存器(IE)、串行口控制寄存器等。它们可运用来设置片内电路的运行方式,记录电路的运行状态,MCS-51单片机对特殊功能寄存器采取与片内RAM统一编址的方法,可按字节地址直接寻址。在已有的基础上AT89C52与AT89C51相比还提供了两个定时/计数器。定时/计数器2的控制和状态位位于T2CON与T2MOD,该功能的数在自动装载的情况下可装入到寄存器中,提高了效率。3.3数字钟的外围电路设计3.3.1时钟电路(1)单片机时钟时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路设计如图3-7所示。图3-3单片机时钟AT89S52单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。(2)复位电路AT89S52单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。上电复位:上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。图3-4复位电路如图3-12所示,上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。也能手动复位。4.1数字钟原理图

4.2数字钟元件清单4.3数字钟源程序S_SET BIT P1.0 ;数字钟秒控制位M_SET BIT P1.1 ;分钟控制位H_SET BIT P1.2 ;小时控制位SECOND EQU 30HMINUTE EQU 31HHOUR EQU 32HTCNT EQU 34H ORG 00H SJMP START ORG 0BH LJMP INT_T0START: MOV DPTR,#TABLE MOV HOUR,#0 ;初始化 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0 MOV TMOD,#01H MOV TH0,#(65536-50000)/256 ;定时50毫秒 MOV TL0,#(65536-50000)MOD256 MOV IE,#82H SETB TR0;****************************************************;判断是否有控制键按下,是哪一个键按下A1: LCALL DISPLAY JNB S_SET,S1 JNB M_SET,S2 JNB H_SET,S3 LJMP A1S1: LCALL DELAY ;去抖动 JB S_SET,A1 INC SECOND ;秒值加1 MOV A,SECOND CJNE A,#60,J0 ;判断是否加到60秒 MOV SECOND,#0 LJMP K1S2: LCALL DELAY JB M_SET,A1K1: INC MINUTE ;分钟值加1 MOV A,MINUTECJNE A,#60,J1 ;判断是否加到60分 MOV MINUTE,#0 LJMP K2S3: LCALL DELAY JB H_SET,A1K2: INC HOUR ;小时值加1 MOV A,HOUR CJNE A,#24,J2 ;判断是否加到24小时 MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 LJMP A1;****************************************************;等待按键抬起J0: JB S_SET,A1 LCALL DISPLAY SJMP J0J1: JB M_SET,A1 LCALL DISPLAY SJMP J1J2: JB H_SET,A1 LCALL DISPLAY SJMP J2;***********************************************;定时器中断服务程序,对秒,分钟和小时的计数INT_T0: MOV TH0,#(65536-50000)/256 MOV TL0,#(65536-50000)MOD256 INC TCNT MOV A,TCNTCJNE A,#20,RETUNE ;计时1秒 INC SECOND MOV TCNT,#0 MOV A,SECOND CJNE A,#60,RETUNE INC MINUTE MOV SECOND,#0 MOV A,MINUTE CJNE A,#60,RETUNE INC HOUR MOV MINUTE,#0 MOV A,HOUR CJNE A,#24,RETUNE MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0RETUNE: RETI;******************************************;显示控制子程序DISPLAY:MOV A,SECOND ;显示秒 MOV B,#10 DIV AB CLR P3.6 MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P3.6 MOV A,B CLR P3.7MOVC A,@A+DPTR MOV P0,A

温馨提示

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

评论

0/150

提交评论