28
DELAY:MOV
D1:MOV D2:MOV DJNZ DJNZ
R5,#40
R6,#20 R7,#248 R7,$ R6,D2
;延时0.2秒子程序
DJNZ
RET END
R5,D1
29
【例】利用中断设计一个应用系统,实时显示 P3.2引脚上出现的负跳变脉冲的个数。设此脉 冲数为0~999999个,以压缩BCD码从低位到高 位依次存入3AH、3BH、3CH。 分析:解此题利用中断系统,主程序对中断系 统进行初始化以及实时显示脉冲个数;利用 P3.2引脚上出现的负跳变信号作为中断请求信 号,每中断一次,将3AH~3BH单元内容按 BCD码加1。
;主程序 ;外部中断0中断入口
;初始化 ;INT0为边沿触发 ;开放中断
27
X0:PUSH ACC ;中断服务程序 PUSH PSW ;保护现场 SETB RS0 ;使用工作寄存器组1 CLR RS1 MOV R2,#10 ;闪烁5次(亮、灭10次) MOV A,#00H ;使LED全亮的数据 LP:MOV P1,A LCALL DELAY CPL A DJNZ R2,LP POP PSW POP ACC ;恢复现场 MOV P1,A RETI ;中断返回
;中断返回
33
MOV
MOV MOV
3AH,#0
3BH,#0 3CH,#0 ;计数单元置初值
31
LP:LCALL CZ SJMP X0:PUSH LP
;调用拆字子程序 ;循环显示
LCALL DISP 调用显示子程序 ACC ;中断服务程序,从0003H转来
PUSH
MOV ADD DA
PSW ;保护现场
A,3AH ;取计数值的个位、十位 A,#1 A