AT89C51单片机的数字时钟设计.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计简介 一 设计背景 二 AT89C51单片机简介 三 设计方案 四 硬件电路设计 五 软件设计与程序代码 六 主要内容 一、设计简介 本设计利用Atmel公司的AT89C51单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编进行软件编程,并用Proteus软件进行仿真演示、验证。主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机80C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。它的计时周期为24小时,显满刻度为“23时59分59秒”,且配有3个独立键盘,可以灵活地调节时间,并具有一定的扩展性。 二、设计背景 十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。    第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。 第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。 第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求! 四、设计方案 1、主程序 主程序执行流程图如图1所示。主程序先对显示单元和定时器计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有建按下,则转入相应的功能程序。 四、设计方案 2、数码管显示模块 本设计的显示模块采用6位一体共阳极数码管,显示分为时钟显示模式,从右到左依次显示秒个位,秒十位,分个位,分十位,时个位,时十位;数码管显示的信息用6个内存单元存放,这6个内存单元为显示缓冲区,其中秒个位和秒十位,分个位和分十位,时个位和时十位分别由秒数据,分数据和小时数据分拆得到。 四、设计方案 3、定时器计数器T0中断服务程序 定时器计数器T0用于时间计时,选择方式1,重复定时,定时时间设为20MS,定时时间到则溢出中断,计50次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清零。分单元加到60的时候,则对时单元加1,同时分单元清零,时单元加到24的时候则对时单元清零,标志一天时间计满,此时所以单元清零。在对各单元计数的同时,把它们的值放到存储器单元的制定位置 四、设计方案 4、按键处理模块 按键处理设置为:如果没有按键,则为时钟模式,时钟正常走时.按键KEY1为工作模式键,用于时钟显示或调秒、调分、调时的功能切换选择。R3寄存器记录KEY1按键的次数,R3=0,显示时钟;R3=1,调秒;R3=2,调分;R3=3,调时。按键KEY2为增1键,对选定的被调项的当前值增1;按键KEY3为减1键,对选定的被调项的当前值减1 五、硬件电路设计 六、软件设计与程序代码 1、软件选择与介绍 Proteus7.8是一款电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统 。 六、软件设计与程序代码 2、软件仿真电路全图 1.模式0 显示时钟 2.模式1 第1次按KEY1键选择调秒 3.模式2 第2次按KEY1键选择调分 4.模式3 第3次按KEY1键选择调时 六、软件设计与程序代码 3、程序代码 KEY1 BIT P1.0 KEY2 BIT P1.1 KEY3 BIT P1.2 CLK BIT P1.3 LOAD BIT P1.4 DIN BIT P1.5 SECOND DATA 30H MINUTE DATA 31H HOUR DATA 32H ORG 0000H AJMP MAIN ORG 000BH AJMP TIMER0 MAIN:MOV SP,#60H MOV TMOD,#01H;定时器T0方式设置 MOV TH0,#0B1H;定时器T0装入初值20ms MOV TL0,#0E0H SETB ET0 ;T0中断允许 SETB EA ;总中断允许 MOV R2,#50 ;T0中断为1s SETB TR0 ;启动T0 MOV SECOND,#00H MOV MINUTE,#00H MOV HOUR,#08H ;初始化时间8点00分00秒 MOV A,HOUR 时间值送显示缓冲区79H~7EH ANL A,#0F0H SWAP A MOV 79H,A MOV A,HOUR ANL A,#0

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档