




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于AT89C51单片机的数字(shz)时钟设计小组(xioz)成员:共二十四页设计简介一设计背景二AT89C51单片机简介 三设计方案四硬件电路设计五软件设计与程序代码 六主要内容共二十四页一、设计简介本设计利用Atmel公司的AT89C51单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编进行软件编程,并用Proteus软件进行仿真演示、验证。主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机80C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。它的计时周期为24小时,显满刻度为“23时59分59秒”,且配有3个独立键盘,可以
2、灵活地调节时间,并具有一定的扩展性。 共二十四页二、设计背景十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附
3、属信息的显示功能,它更符合消费者的生活需求!共二十四页四、设计方案1、主程序主程序执行流程图如图1所示。主程序先对显示单元和定时器计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有建按下,则转入相应的功能程序。 共二十四页共二十四页四、设计方案2、数码管显示模块 本设计的显示模块采用6位一体共阳极数码管,显示分为时钟显示模式,从右到左依次显示秒个位,秒十位,分个位,分十位,时个位,时十位;数码管显示的信息用6个内存单元存放,这6个内存单元为显示缓冲区,其中秒个位和秒十位,分个位和分十位,时个位和时十位分别由秒数据,分数据和小时数据分拆得到。共二十四页四、设计方案3、定时器计数器T0中
4、断服务程序 定时器计数器T0用于时间计时,选择方式1,重复定时,定时时间设为20MS,定时时间到则溢出中断,计50次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清零。分单元加到60的时候,则对时单元加1,同时分单元清零,时单元加到24的时候则对时单元清零,标志一天时间计满,此时所以单元清零。在对各单元计数的同时,把它们的值放到存储器单元的制定位置 共二十四页四、设计方案4、按键处理模块 按键处理设置为:如果没有按键,则为时钟模式,时钟正常走时.按键KEY1为工作模式键,用于时钟显示或调秒、调分、调时的功能切换选择。R3寄存器记录KEY1按键的次数,R3=0,显示时钟;R3=1,调秒
5、;R3=2,调分;R3=3,调时。按键KEY2为增1键,对选定的被调项的当前值增1;按键KEY3为减1键,对选定的被调项的当前值减1共二十四页五、硬件电路设计共二十四页六、软件设计与程序代码 1、软件选择与介绍 Proteus7.8是一款电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统 。共二十四页六、软件设计与程序代码 2、软件仿真电路全图 1.模式(msh)0显示(xinsh)时钟共二十四页2.模式(msh)1第1次按KEY1键选择(xunz)调秒共二十四页3.模式(msh)2第2次按KEY1键选择(xunz)调分共二十四
6、页4.模式(msh)3第3次按KEY1键选择(xunz)调时共二十四页六、软件设计与程序代码 3、程序代码KEY1 BIT P1.0KEY2 BIT P1.1KEY3 BIT P1.2CLK BIT P1.3LOAD BIT P1.4DIN BIT P1.5SECOND DATA 30HMINUTE DATA 31HHOUR DATA 32H ORG 0000H AJMP MAIN ORG 000BH AJMP TIMER0MAIN:MOV SP,#60H MOV TMOD,#01H;定时器T0方式(fngsh)设置 MOV TH0,#0B1H;定时器T0装入初值20ms MOV TL0,#0
7、E0H SETB ET0;T0中断允许(ynx) 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时间值送显示缓冲区79H7EH ANL A,#0F0H SWAP A MOV 79H,A共二十四页 MOV A,HOUR ANL A,#0FH MOV 7AH,A MOV A,MINUTE ANL A,#0F0H SWAP A MOV 7BH,A MOV A,MINUTE ANL A,#0FH MOV 7CH,A
8、 MOV A,SECOND ANL A,#0F0H SWAP A MOV 7DH,A MOV A,SECOND ANL A,#0FH MOV 7EH,A MOV R3,#00H;R3初值设为0,显示(xinsh)时钟 ACALL INI7219;调用7219初始化子程序I NI7219:MOV 50H,#0FH;显示测试寄存器设置(shzh) MOV 51H,#00H;非测试模式,正常显示MOV R0,#50HACALL SEND7219MOV 50H,#0CH;关闭显示寄存器MOV 51H,#01H;正常显示MOV R0,#50HACALL SEND7219MOV 50H,#0BH;扫描界限
9、寄存器MOV 51H,#05H;6位显示MOV R0,#50HACALL SEND7219MOV 50H,#0AH;亮度寄存器,其值为000EH,设置为0AH共二十四页 MOV 51H,#09HMOV R0,#50HACALL SEND7219MOV 50H,#09H;译码方式(fngsh)寄存器MOV 51H,#0FFH;8位显示全部B译码MOV R0,#50HACALL SEND7219RETDISPLAY:MOV 50H,#01H;显示子程序 MOV 51H,79H;显示缓冲区设在79H7EH单元MOV R0,#50H;其内容从左至右一次显示在数码管显示器上ACALL SEND7219M
10、OV 50H,#02HMOV 51H,7AH MOV R0,#50HACALL SEND7219MOV 50H,#03HMOV 51H,7BHMOV R0,#50HACALL SEND7219MOV 50H,#04HMOV 51H,7CHMOV R0,#50HACALL SEND7219MOV 50H,#05HMOV 51H,7DHMOV R0,#50HACALL SEND7219MOV 50H,#06HMOV 51H,7EHMOV R0,#50HACALL SEND7219RET共二十四页SEND7219:CLR LOAD;向7219写入数据子程序 MOV R4,#02H;写入16位串行数据
11、CLR CLOP1: MOV R1,#08H MOV A,R0LOP2: RLC A MOV DIN,C SETB CLK CLR CLK DJNZ R1,LOP2 INC R0 DJNZ R4,LOP1 SETB LOAD RET;键扫描处理(chl)子程序KEY: JNB KEY1,KK1;判断KEY1键是否按下 JB KEY1,$;等待KEY1键是否释放INC R3;模式(msh)值增1 ,在0、1、2、3间逐项切换 CJNE R3,#04H,JMPKK3;当让中的模式值为4时,在设置为0 MOV R3,#00HJMPKK3:AJMP KK3;转至KK3,按R3内容选择显示KK1:JNB
12、 KEY2,KK2;判断KEY2键是否按下 JB KEY2,$;等待KEY2键释放MOV A,R3;根据当前R3值对时间项增1调整RL AMOV DPTR,#KJMP1JMP A+DPTRKJMP1: AJMP DISCLK AJMP SINC AJMP MINC AJMP HINC共二十四页SINC: MOV A,SECOND;秒增1 ADD A,#01H DA A MOV SECOND,A CJNE A,#60H,DISS1 MOV 30H,#01HDISS1:AJMP DISS;转至秒显示(xinsh)缓冲区设置MINC:MOV A,MINUTE;分增1 ADD A,#01H DA A
13、MOV MINUTE,A CJNE A,#60H,DISM1 MOV MINUTE,#00HDISM1:AJMP DISM;转至分显示缓冲区设置HINC: MOV A,HOUR;时增1 ADD A,#01H DA A MOV HOUR,A CJNE A,#24H,DISH1 MOV HOUR,#00HDISH1:AJMP DISH;转至时显示缓冲区设置KK2:JNB KEY3,KK3;判断KEY3是否按下 JB KEY3,$;等待(dngdi)KEY3键释放MOV A,R3RL AMOV DPTR,#KJMP2JMP A+DPTRKJMP2:AJMP DISCLK AJMP SDEC AJMP
14、 MDEC AJMP HDECSDEC:MOV A,#9AH;秒减1 CLR C SUBB A,#01H ADD A,SECOND DA A共二十四页MOV SECOND,A CJNE A,#00H,DISS2 MOV SECOND,#59HDISS2:AJMP DISS;转至秒显示(xinsh)缓冲区设置MDEC:MOV A,#9AH;分减1 CLR C SUBB A,#01H ADD A,MINUTE DA A MOV MINUTE,A CJNE A,#0,DISM2 MOV MINUTE,#59HDISM2:AJMP DISM;转至分显示缓冲区设置HDEC:MOV A,#9AH;时减1
15、CLR C SUBB A,#01H ADD A,HOUR DA A MOV HOUR,A CJNE A,#99H,DISH2 MOV HOUR,#23HDISH2:AJMP DISH;转至时显示缓冲区设置(shzh)KK3:MOV A,R3 RL AMOV DPTR,#KJMP3 JMP A+DPTRKJMP3:AJMP DISCLK ;R3=0显示时钟 AJMP DISS;R3=1显示秒 AJMP DISM;R3=2显示分 AJMP DISH;R3=3显示时DISCLK:MOV R0,#79H MOV R1,#HOUR MOV R4,#03H共二十四页CFLOOP:MOV A,R1 SWAP
16、 A ANL A,#0FH MOV R0,A INC R0 MOV A,R1 ANL A,#0FH MOV R0,A INC R0 DEC R1 DJNZ R4,CFLOOP SETB TR0 RETDISS:CLR TR0;显示(xinsh)秒,时与分的数码管不亮 MOV A,SECOND SWAP A ANL A,#0FH MOV 7DH,A MOV A,SECOND ANL A,#0FH MOV 7EH,A MOV 79H,#0FH MOV 7AH,#0FH MOV 7BH,#0FH MOV 7CH,#0FH AJMP KK5DISM:CLR TR0;显示(xinsh)分,时与秒的数码管
17、不亮 MOV A,MINUTE SWAP A ANL A,#0FH MOV 7BH,A MOV A,MINUTE ANL A,#0FH MOV 7CH,A MOV 79H,#0FH MOV 7AH,#0FH MOV 7DH,#0FH MOV 7EH,#0FH AJMP KK5共二十四页DISH: CLR TR0;显示时,分与秒的数码管不亮 MOV A,HOUR SWAP A ANL A,#0FH MOV 79H,A MOV A,HOUR ANL A,#0FH MOV 7AH,A MOV 7BH,#0FH MOV 7CH,#0FH MOV 7DH,#0FH MOV 7EH,#0FHKK5:RET
18、;定时器T0中断处理子程序TIMER0:PUSH ACC;保护现场 PUSH PSW MOV TH0,#0B1H;重装定时常数 MOV TL0,#0E0H DJNZ R2,NEXT;判断是否中断了50次,不足50次,中断返回MOV R2,#50;若达到(d do)50次,计时满1s,刷新时间单元格 MOV A,SECOND ADD A,#01H DA A MOV SECOND,A CJNE A,#60H,NEXTS1:MOV SECOND,#00H MOV A,MINUTEADD A,#01HDA AMOV MINUTE,ACJNE A,#60H,NEXTS2:MOV MINUTE,#00H MOV A,HOUR ADD A,#01H DA A MOV HOUR,A CJNE A,#24H,NEXT MOV HOUR,#00HNEXT:POP PSW;恢复(huf)现场 POP ACCRETI;中断返回 END共二十四页内容摘要基于AT89C51单片机的数字时钟设计。本设计利用At
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地纠纷调解合同范本
- 分体户合作合同范本
- 分包信贷装修合同范本
- 个人批发合同范本
- 低值易耗品售卖合同范本
- 卫浴建材采购合同范例
- 中外来料加工合同
- 个人简历教师自我评价
- 个人笔迹鉴定申请书
- 原纸代购合同范例
- 《研学旅行课程设计》课件-1研学课程资源选择
- 《医学心理学》教案
- 海绵城市建设技术标准 DG-TJ08-2298-2019
- 2024年2天津理工大学马克思主义基本原理概论(期末考试题+答案)
- 跟着名著《小王子》学高考英语读后续写绝佳的续写清单-高中英语作文复习专项
- 产教融合大学科技园建设项目实施方案
- 交通法律与交通事故处理培训课程与法律解析
- 广西版四年级下册美术教案
- 《换热器及换热原理》课件
- 儿童权利公约演示文稿课件
- UPVC排水管技术标准
评论
0/150
提交评论