8279显示电子钟的硬件设计与软件设计
可以看看时钟程序是怎么样设计的。
本文引用地址://m.amcfsurvey.com/article/172385.htmZ8279EQU08701H ;8279 状态/命令口地址
D8279EQU08700H ;8279 数据口地址
LEDMODEQU00H;左边输入 八位字符显示
;外部译码键扫描方式,双键互锁
LEDFEQEQU2FH;扫描速率
LEDCLSEQU0C1H ;清除显示RAM
LEDWR0EQU80H;设定的将要写入的显示RAM地址
ORG0000H
AJMPSTART
ORG001BH ;INT T1 入口地址
AJMPINT_T1
ORG0040H
START:
MOVSP,#60H
LCALLINIT8279;初始化8279
MOVR3,#0H ;时
MOVR2,#0H ;分
MOVR1,#0H ;秒
MOVR6,#0H ;标志
MOVTMOD,#10H
MOVTL1,#00H ;50 MS 的时间常数
MOVTH1,#04CH
MOVR0,#20
SETBTR1
SETBET1
SETBEA ;允许中断
WAIT:CJNER6,#0FFH,WAIT
LCALLDISPLAY
MOVR6,#0
SJMPWAIT
INIT8279:
;8279初始化子程序
PUSHDPH ;保存现场
PUSHDPL
PUSHACC
LCALLDELAY;延时
MOVDPTR,#Z8279
MOVA,#LEDMOD ;置8279工作方式
MOVX@DPTR,A
MOVA,#LEDFEQ ;置键盘扫描速率
MOVX@DPTR,A
MOVA,#LEDCLS ;清除 LED 显示
MOVX@DPTR,A
LCALLDELAY;延时
POPACC ;恢复现场
POPDPL
POPDPH
RET
;显示字符子程序
;输入R4,位置 R5,值
DISLED:PUSHDPH ;保存现场
PUSHDPL
PUSHACC
MOVA,#LEDWR0 ;置显示起始地址
ADDA,R4;加位置偏移量
MOVDPTR,#Z8279
MOVX@DPTR,A;设定显示位置
MOVDPTR,#LEDSEG;置显示常数表起始位置
MOVA,R5
MOVCA,@A+DPTR;查表
MOVDPTR,#D8279
MOVX@DPTR,A;显示数据
POPACC ;恢复现场
POPDPL
POPDPH
RET
DELAY: ;延时子程序
PUSH0 ;保存现场
PUSH1
MOV0,#0H
DELAY1:MOV1,#0H
DJNZ1,$
DJNZ0,DELAY1
POP1 ;恢复现场
POP0
RET
INT_T1: ;INT_T1中断服务子程序
PUSHDPH ;保护现场
PUSHDPL
PUSHACC
PUSHPSW
CLRTR1
MOVTL1,#00H ;50MS 定时常数
MOVTH1,#4CH
SETBTR1
DJNZR0,EXIT;判断毫秒=0
MOVR0,#20 ;DELAY 1 SECOND
MOVR6,#0FFH ;置秒标志
CJNER1,#59H,SECOND;判断秒=59
MOVR1,#99H
CJNER2,#59H,MINUTE;判断分=59
MOVR2,#99H
CJNER3,#23H,HOUR;判断时=23
MOVR3,#99H
HOUR:
51单片机相关文章:51单片机教程
评论