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