基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述.doc

上传人:白大夫 文档编号:3408996 上传时间:2019-08-22 格式:DOC 页数:9 大小:38.50KB
返回 下载 相关 举报
基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述.doc_第1页
第1页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述.doc》由会员分享,可在线阅读,更多相关《基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述.doc(9页珍藏版)》请在三一文库上搜索。

1、基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述利用8位数码管显示时间,原理与4位数码管显示的基本一样仿真图:程序源代码:本程序已经通过在线软件仿真和硬件制作.org 0000h ;程序开始入口地址sjmp main ;跳转至主程序org 000bh ;T0中断入口地址ljmp inti0 ;跳转至T0中断程序org 001bh ;T1中断入口地址ljmp inti1 ;跳转至T1中断程序org 0030hmain:mov tmod,#11h ;设T0、T1为模式1mov ie,#8ah ;开T0、T1允许中断mov th0,#4ch ;赋T0 50ms初值mov tl0,#00h

2、mov th1,#4ch ;赋T1 50ms初值mov tl1,#00hmov sp,#60h ;设置堆栈指针mov 38h,#00 ;闹钟分初值mov 39h,#00 ;闹钟时初值mov 31h,#00 ;时间秒初值mov 32h,#00 ;时间分初值mov 33h,#00 ;时间时初值setb tr0 ;启动定时器T0setb tr1 ;启动定时器T1loop:lcall display ;调用时间显示程序lcall keysan ;调用时间调节按钮lcall keynz ;调用闹钟控制按钮ajmp loopinti0:push psw ;压入堆栈指针,保护现场push accclr ea

3、 ;关中断dgzjmov th0,#4ch ;重赋T0定时初值mov tl0,#00hinc 3ah ;3ah为50ms计数单元mov a,3ahcjne a,#20,out ;1秒计数是否到mov 3ah,#00 ;清50ms计数初值inc 31h ;秒加1mov a,31hcjne a,#60,out ;60秒计数是否到mov 31h,#00inc 32h ;分加1mov a,32hcjne a,#60,out ;60分计数是否到mov 32h,#00inc 33h ;时加1mov a,33hcjne a,#24,out ;24时计数是否到mov 33h,#00out: setb ea ;

4、开中断pop acc ;弹出堆栈指针,恢复现场pop pswreti ;中断返回inti1:push psw ;压入堆栈指针,恢复现场push accclr eamov th1,#4ch ;重赋T1定时初值mov tl1,#00hinc 71h ;71h为50ms计数单元mov a,71hcjne a,#20,out1mov 71h,#00mov a,32h ;闹钟判断cjne a,38h,out1 ;闹钟时间分判断mov a,33hcjne a,39h,out1 ;闹钟时间时判断clr p1.0 ;到闹钟时间,清p1.0out1:setb ea ;开中断pop accpop pswreti

5、;中断返回display:mov a,31h ;秒显示mov b,#10p abmov 20h,a ;将十位放入20h单元mov 21h,b ;将个位、余数放入21h单元disp1: mov a,20h ;秒十位显示mov dptr,#tablemovc a,a+dptr ;将A的内容+table内容,结果回存给Amov p0,a ;将A给P0口clr p2.6 ;清p2.6,点亮第7位数码管lcall del1ms ;调用1ms延时子程序setb p2.6 ;灭第7位数码管disp2: mov a,21h ;秒个位显示mov dptr,#tablemovc a,a+dptrmov p0,ac

6、lr p2.7lcall del1mssetb p2.7disp4: mov a,32h ;分显示mov b,#10p abmov 22h,amov 23h,bdisp5: mov a,22h ;分十位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.3lcall del1mssetb p2.3disp6: mov a,23h ;分个位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.4lcall del1mssetb p2.4disp7: mov a,33h ;时显示mov b,#10p abmov 24h,am

7、ov 25h,bdisp8: mov a,24h ;时十位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.0lcall del1mssetb p2.0disp9: mov a,25h ;时个位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.1lcall del1mssetb p2.1disp10: mov 34h,#0bfh ;-显示mov a,34hmov p0,aclr p2.5lcall del1mssetb p2.5disp11: mov 35h,#0bfh ;-显示mov a,35hmov p0,ac

8、lr p2.2lcall del1mssetb p2.2retdisplay1:mov a,38h ;闹钟分显示mov b,#10p abmov 26h,amov 27h,bd1:mov a,26h ;闹钟分十位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.3lcall del1mssetb p2.3d2:mov a,27h ;闹钟分个位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.4lcall del1mssetb p2.4dispnz: mov a,39h ;闹钟时显示mov b,#10p abmov

9、28h,amov 29h,bd5: mov a,28h ;闹钟时十位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.0lcall del1mssetb p2.0d6: mov a,29h ;闹钟时个位显示mov dptr,#tablemovc a,a+dptrmov p0,aclr p2.1lcall del1mssetb p2.1mov 35h,#0bfh ;-显示mov a,35hmov p0,aclr p2.2lcall del1mssetb p2.2rettable:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

10、,80h,90h ;数字09del1ms:mov r7,#10 ;1ms延时子程序del1: mov r6,#50del2:djnz r6,del2djnz r7,del1retdel20ms:mov r5,#40 ;20ms延时子程序del3: mov r4,#250del4: djnz r4,del4djnz r5,del3retkeysan:jnb p3.1,key1 ;秒加1按钮jnb p3.2,key2 ;分加1按钮jnb p3.3,key3 ;时加1按钮sjmp keyoutkey1: lcall del20msjb p3.1,keyoutjnb p3.1,$inc 31h ;秒加

11、1mov a,31hcjne a,#60,keyoutmov 31h,#00sjmp keyoutkey2:lcall del20msjb p3.2,keyoutjnb p3.2,$inc 32h ;分加1mov a,32hcjne a,#60,keyoutmov 32h,#00sjmp keyoutkey3:lcall del20msjb p3.3,keyoutjnb p3.3,$inc 33h ;时加1mov a,33hcjne a,#24,keyoutmov 33h,#00sjmp keyoutkeyout:retkeynz:jnb p3.4,keynz4 ;显示闹钟并可修改和显示当前时

12、间jnb p3.7,keynz5jnb p3.5,nz3jnb p3.6,nz4sjmp nzoutnzout:retnz2:lcall display1jnb p3.5,nz3jnb p3.6,nz4keynz4:jnb p3.4,nz2sjmp nzoutnz3:lcall del20msjb p3.5,nzoutjnb p3.5,$inc 38hmov a,38hcjne a,#60,nzoutmov 38h,#00sjmp nzoutnz4:lcall del20msjb p3.6,nzoutjnb p3.6,$inc 39hmov a,39hcjne a,#24,nzoutmov 39h,#00sjmp keyoutkeynz5:jb p3.7,nzoutjnb p3.7,$setb p1.0sjmp nzoutend

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1