AT89C51单片机的数字时钟设计

上传人:ning****hua 文档编号:243017210 上传时间:2024-09-13 格式:PPT 页数:22 大小:1.34MB
返回 下载 相关 举报
AT89C51单片机的数字时钟设计_第1页
第1页 / 共22页
AT89C51单片机的数字时钟设计_第2页
第2页 / 共22页
AT89C51单片机的数字时钟设计_第3页
第3页 / 共22页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,设计简介,一,设计背景,二,AT89C51,单片机简介,三,设计方案,四,硬件电路设计,五,软件设计与程序代码,六,主要内容,一、设计简介,本设计利用,Atmel,公司的,AT89C5,1单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编进行软件编程,并用,Proteus,软件进行仿真演示、验证。主要介绍用单片机内部的定时,/,计数器来实现电子时钟的方法,本设计由单片机,80C51,芯片和,LED,数码管为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。它的计时周期为,24,小时,显满刻度为,“,23,时,59,分,59,秒,”,,且配有3个独立键盘,可以灵活地调节时间,并具有一定的扩展性。,二、设计背景,十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。,第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。,第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。,第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!,四、设计方案,1,、主程序,主程序执行流程图如图,1,所示。主程序先对显示单元和定时器计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有建按下,则转入相应的功能程序。,四、设计方案,2,、,数码管显示模块,本设计的显示模块采用6位一体共阳极数码管,显示分为时钟显示模式,从右到左依次显示秒个位,秒十位,分个位,分十位,时个位,时十位;数码管显示的信息用6个内存单元存放,这6个内存单元为显示缓冲区,其中秒个位和秒十位,分个位和分十位,时个位和时十位分别由秒数据,分数据和小时数据分拆得到。,四、设计方案,3,、,定时器计数器,T0,中断服务程序,定时器计数器,T0,用于时间计时,选择方式,1,,重复定时,定时时间设为2,0MS,,定时时间到则溢出中断,计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,时间值送显示缓冲区,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,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,,,显示时钟,ACALL INI7219,;,调用,7219,初始化子程序,I,NI7219:MOV,50H,#0FH,;,显示测试寄存器设置,MOV 51H,#00H,;非测试模式,正常显示,MOV R0,#50H,ACALL SEND7219,MOV,50H,#0CH,;关闭显示寄存器,MOV 51H,#01H,;正常显示,MOV R0,#50H,ACALL SEND7219,MOV 50H,#0BH,;扫描界限寄存器,MOV 51H,#05H,;,6,位显示,MOV R0,#50H,ACALL SEND7219,MOV 50H,#0AH;亮度寄存器,其值为000EH,设置为0AH,MOV 51H,#09H,MOV R0,#50H,ACALL SEND7219,MOV 50H,#09H,;译码方式寄存器,MOV 51H,#0FFH,;,8,位显示全部,B,译码,MOV R0,#50H,ACALL SEND7219,RET,DISPLAY:MOV 50H,#01H,;显示子程序,MOV 51H,79H,;显示缓冲区设在,79H7EH,单元,MOV R0,#50H,;其内容从左至右一次显示在数码管显示器上,ACALL SEND7219,MOV 50H,#02H,MOV 51H,7AH,MOV R0,#50H,ACALL SEND7219,MOV 50H,#03H,MOV 51H,7BH,MOV R0,#50H,ACALL SEND7219,MOV 50H,#04H,MOV 51H,7CH,MOV R0,#50H,ACALL SEND7219,MOV 50H,#05H,MOV 51H,7DH,MOV R0,#50H,ACALL SEND7219,MOV 50H,#06H,MOV 51H,7EH,MOV R0,#50H,ACALL SEND7219,RET,SEND7219:CLR LOAD,;向,7219,写入数据子程序,MOV R4,#02H,;写入,16,位串行数据,CLR C,LOP1: MOV R1,#08H,MOV A,R0,LOP2: RLC A,MOV DIN,C,SETB CLK,CLR CLK,DJNZ R1,LOP2,INC R0,DJNZ R4,LOP1,SETB LOAD,RET,;键扫描处理子程序,KEY: JNB KEY1,KK1,;判断,KEY1,键是否按下,JB KEY1,$,;等待,KEY1,键是否释放,INC R3,;模式值增,1,,在,0,、,1,、,2,、,3,间逐项切换,CJNE R3,#04H,JMPKK3,;当让中的模式值为,4,时,在设置为,0,MOV R3,#00H,JMPKK3:AJMP KK3,;转至,KK3,,按,R3,内容选择显示,KK1:JNB KEY2,KK2,;判断,KEY2,键是否按下,JB KEY2,$,;等待,KEY2,键释放,MOV A,R3,;根据当前,R3,值对时间项增,1,调整,RL A,MOV DPTR,#KJMP1,JMP A+DPTR,KJMP1: 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,#01H,DISS1:AJMP DISS,;转至秒显示缓冲区设置,MINC:MOV A,MINUTE,;分增,1,ADD A,#01H,DA A,MOV MINUTE,A,CJNE A,#60H,DISM1,MOV MINUTE,#00H,DISM1:AJMP DISM,;转至分显示缓冲区设置,HINC: MOV A,HOUR,;时增,1,ADD A,#01H,DA A,MOV HOUR,A,CJNE A,#24H,DISH1,MOV HOUR,#00H,DISH1:AJMP DISH,;转至时显示缓冲区设置,KK2:JNB KEY3,KK3,;判断,KEY3,是否按下,JB KEY3,$,;等待,KEY3,键释放,MOV A,R3,RL A,MOV DPTR,#KJMP2,JMP A+DPTR,KJMP2:AJMP DISCLK,AJMP SDEC,AJMP MDEC,AJMP HDEC,SDEC:MOV A,#9AH,;秒减,1,CLR C,SUBB A,#01H,ADD A,SECOND,DA A,MOV SECOND,A,CJNE A,#00H,DISS2,MOV SECOND,#59H,DISS2:AJMP DISS,;转至秒显示缓冲区设置,MDEC:MOV A,#9AH,;分减,1,CLR C,SUBB A,#01H,ADD A,MINUTE,DA A,MOV MINUTE,A,CJNE A,#0,DISM2,MOV MINUTE,#59H,DISM2:AJMP DISM,;转至分显示缓冲区设置,HDEC:MOV A,#9AH,;时减,1,CLR C,SUBB A,#01H,ADD A,HOUR,DA A,MOV HOUR,A,CJNE A,#99H,DISH2,MOV HOUR,#23H,DISH2:AJMP DISH,;转至时显示缓冲区设置,KK3:MOV A,R3,RL A,MOV DPTR,#KJMP3,JMP A+DPTR,KJMP3: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 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,RET,DISS:CLR TR0,;显示秒,,时与分的数码管不亮,MOV A,SECOND,SWAP A,ANL A,#0FH,MOV 7DH,A,MOV A,SECOND,A,NL A,#0FH,MOV 7EH,A,MOV 79H,#0FH,MOV 7AH,#0FH,MOV 7BH,#0FH,MOV 7CH,#0FH,AJMP KK5,DISM:CLR TR0,;显示分,时与秒的数码管不亮,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,#0FH,KK5:RET,;定时器,T0,中断处理子程序,TIMER0:PUSH ACC,;保护现场,PUSH PSW,MOV TH0,#0B1H,;重装定时常数,MOV TL0,#0E0H,DJNZ R2,NEX,T,;判断是否中断了50次,不足50次,中断返回,MOV R2,#50,;若达到,50,次,计时满,1s,,刷新时间单元格,MOV A,SECOND,ADD A,#01H,DA A,MOV SECOND,A,CJNE A,#60H,NEXT,S1:MOV SECOND,#00H,MOV A,MINUTE,ADD A,#01H,DA A,MOV MINUTE,A,CJNE A,#60H,NEXT,S2:MOV MINUTE,#00H,MOV A,HOUR,ADD A,#01H,DA A,MOV HOUR,A,CJNE A,#24H,NEXT,MOV HOUR,#00H,NEXT:POP PSW;恢复现场,POP ACC,RETI;中断返回,END,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!