现场保护(入栈)开始改变寄存器组组号重装定时器计数初值中断次数减1N满8次Y秒值加1N满60秒Y秒缓冲单元清0分值加1N满60分Y 分缓冲单元清0 2111
2时值加1N1满24小时Y时缓冲单元清01恢复寄存器组组号现场恢复(出栈)结 束
4-3中断服务程序流程框图 4.1.4“P.”点显示子程序流程框图
见图4-4所示
4.1.5显示子程序流程框图
图4-4 “P.”点显示子程序流程框图
开始堆栈初始化PSW初始化RAM初始化“P.”字符序号送显示缓冲区调显示子程序
见图4-5所示
开始现场保护开辟第3组寄存器地址指针R0初始化、位控寄存器R2初始化查表取段码段控码送P0口段位控码送P2口延时1毫秒位控码左移显示缓冲区地址加1N8位LED显示完否Y恢复现场返 回图4-5 显示子程序流程图
4.1.6加一子程序流程框图 见图4-6所示
开始取十位数使十位数占A高半字节取个位数占A低半字节加一十进制调整个位数送入缓冲单元把十位数交换到低半字节十位数送缓冲单元结束图 4-6 加一子程序 4.2电子钟总体程序清单
ORG 0000H AJMP ORG LJMP
MAIN 000BH INTT0
ORG
0030H
;确立堆栈区
MAIN: MOV SP, #60H
MOV PSW, #00H ;
MOV R0, #20H ;RAM区首地址 MOV R7,
#5FH ;RAM区单元个数
QL: MOV @R0, #00H INC R0
DJNZ R7, QL
MOV IP, #02H MOV IE, #82H
MOV TMOD, #01H LCALL PP
NEXT: LCALL KEY
JB
ACC.0, RUNF LCALL DISP SJMP NEXT
RUNF: LCALL OUTT LCALL TIME JK: LCALL DISP
LCALL KEY
JZ JK LCALL ANKEY
LCALL DISP SJMP JK
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;; P点显示 ;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;RAM清零 ;IP初始化,优先定时器0 ;IE初始化,
;定时器0方式1工作 ;调P.子程序 ;按键检测子程序
;A键按下运行
;调用显示子程序
;调传送子程序 ;开电子钟 ;调用显示子程序 ;按键检测子程序
;调用显示子程序