8279显示电子钟的设计与程序源代码

控制/MCU

1842人已加入

描述

分享到          

可以看看时钟程序是怎么样设计的。

            Z8279 EQU 08701H ;8279 状态/命令口地址 D8279 EQU 08700H ;8279 数据口地址 LEDMOD EQU 00H ;左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 2FH ;扫描速率 LEDCLS EQU 0C1H ;清除显示 RAM LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 ORG 0000H AJMP START ORG 001BH ;INT T1 入口地址 AJMP INT_T1 ORG 0040HSTART: MOV SP,#60H LCALL INIT8279 ;初始化8279 MOV R3,#0H ;时 MOV R2,#0H ;分 MOV R1,#0H ;秒 MOV R6,#0H ;标志 MOV TMOD,#10H MOV TL1,#00H ;50 MS 的时间常数 MOV TH1,#04CH MOV R0,#20 SETB TR1 SETB ET1 SETB EA ;允许中断WAIT: CJNE R6,#0FFH,WAIT LCALL DISPLAY MOV R6,#0 SJMP WAIT INIT8279: ;8279初始化子程序 PUSH DPH ;保存现场 PUSH DPL PUSH ACC LCALL DELAY ;延时 MOV DPTR ,#Z8279 MOV A,#LEDMOD ;置8279工作方式 MOVX @DPTR,A MOV A,#LEDFEQ ;置键盘扫描速率 MOVX @DPTR,A MOV A,#LEDCLS ;清除 LED 显示 MOVX @DPTR,A LCALL DELAY ;延时 POP ACC ;恢复现场 POP DPL POP DPH RET ;显示字符子程序 ;输入R4,位置 R5,值DISLED: PUSH DPH ;保存现场 PUSH DPL PUSH ACC MOV A,#LEDWR0 ;置显示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#Z8279 MOVX @DPTR,A ;设定显示位置 MOV DPTR,#LEDSEG ;置显示常数表起始位置 MOV A,R5 MOVC A,@A+DPTR ;查表 MOV DPTR,#D8279 MOVX @DPTR,A ;显示数据 POP ACC ;恢复现场 POP DPL POP DPH RETDELAY: ;延时子程序 PUSH 0 ;保存现场 PUSH 1 MOV 0,#0HDELAY1: MOV 1,#0H DJNZ 1,$ DJNZ 0,DELAY1 POP 1 ;恢复现场 POP 0 RET INT_T1: ;INT_T1中断服务子程序 PUSH DPH ;保护现场 PUSH DPL PUSH ACC PUSH PSW CLR TR1 MOV TL1,#00H ;50MS 定时常数 MOV TH1,#4CH SETB TR1 DJNZ R0,EXIT ;判断毫秒=0 MOV R0,#20 ;DELAY 1 SECOND MOV R6,#0FFH ;置秒标志 CJNE R1,#59H,SECOND;判断秒=59 MOV R1,#99H CJNE R2,#59H,MINUTE;判断分=59 MOV R2,#99H CJNE R3,#23H,HOUR ;判断时=23 MOV R3,#99HHOUR: MOV A,R3 ADD A,#1 ;时加1 DA A MOV R3,AMINUTE: MOV A,R2 ADD A,#1 ;分加1 DA A MOV R2,ASECOND: MOV A,R1 ADD A,#1 ;秒加1 DA A MOV R1,AEXIT: POP PSW ;恢复现场 POP ACC POP DPL POP DPH RETI ;中断返回DISPLAY: MOV A,R3 ANL A,#0FH MOV R5,A MOV R4,#6 LCALL DISLED ;显示小时低位 MOV A,R3 SWAP A ANL A,#0FH MOV R5,A MOV R4,#7 LCALL DISLED ;显示小时高位 MOV A,R2 ANL A,#0FH MOV R5,A MOV R4,#3 LCALL DISLED ;显示分钟低位 MOV A,R2 SWAP A ANL A,#0FH MOV R5,A MOV R4,#4 LCALL DISLED ;显示分钟高位 MOV A,R1 ANL A,#0FH MOV R5,A MOV R4,#0 LCALL DISLED ;显示秒低位 MOV A,R1 SWAP A ANL A,#0FH MOV R5,A MOV R4,#1 LCALL DISLED ;显示秒高位 RET LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;'0,1,2,3,4,5,6,7' DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;'8,9,A,B,C,D,E,F' DB 6DH,02H,08H,00H,59H,0FH,76H;'U,-,_, ,I,O,P, ' END

[1] [2]

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分