📄 中断系统的应用(一).asm
字号:
ORG 00H
AJMP START
ORG 03H
AJMP INT
START: SETB EX0
SETB IT0
SETB EA
MOV SP,#70H
LP: MOV DPTR,#TABLE ;TABLE表的地址存入DPTR
LP0: MOV A,#00H ;清除累加器
LP1: MOVC A,@A+DPTR ;查表
CJNE A,#1BH,LP2 ;取出的代码不是结束码,则进行下一步操作
AJMP LP ;是结束码,则重新进行操作
LP2: MOV P0,A ;将A中的值送P1口,显示
LCALL DELAY ;等待1s
INC DPTR ;数据指针加1,指向下1个码
AJMP LP0 ;返回,取码
INT: PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
MOV DPTR,#TABLE1
INTLP1:MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#1BH,INTLP2
AJMP INTLP3
INTLP2:MOV P0,A
LCALL DELAY
INC DPTR
AJMP INTLP1
INTLP3:POP PSW
POP ACC
RETI
DELAY: MOV R7,#10 ;1s延时子程序
DE1: MOV R6,#200
DE2: MOV R5,#248
DJNZ R5,$
DJNZ R6,DE2
DJNZ R7,DE1
RET
TABLE: DB 0feH,0fdH,0fbH,0f7H ;正向流水灯
DB 0efH,0dfH,0bfH,07fH
DB 0bfH,0dfH,0efH,0f7H ;反向流水灯
DB 0fbH,0fdH,0feH,0ffH
DB 0aaH,55H,0aaH,55H ;隔灯闪烁
DB 0aaH,55H,0ffH
DB 1BH ;退出码
RET
TABLE1:DB 0FFH,00H,0FFH,00H,0FFH,00H;闪烁5次
DB 0FFH,00H,0FFH,00H,1BH
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -