包含中断的LED显示汇编语言程序
扫描二维码
随时随地手机看文章
例:电路如图。要求编程实现:主程序将P1口的8个LED从上到下循环显示(间隔时间约1S),中断时(INT0)使8个LED同时闪烁5次(间隔时间约1S,设单片机晶振为6M)。
(1)主程序
ORG 0000H
LJMP START
START:MOV IE,#10000001B;允许INT0中断
MOV IP,#00000001B;INT0中断优先
MOV TCON,#01H;INT0边沿触发方式
MOVSP,#70H
MOV A,#80H;左移初值
LOOP1:RLA
MOV P1,A
CALLDELAY;延时1s
AJMP LOOP1
(2)中断服务程序
ORG 0003H
LJMP EXT0
EXT0:PUSHACC
PUSHPSW
SETBRS0
CLRRS1
MOV A,#0FFH;为使P1全亮
MOVR2,#;闪烁5次
LOOP3:MOV P1,A
CALLDELAY;延时1s
CPLA
DJNZR2,LOOP3
POPPSW
POPACC
RETI
(3)延时子程序(约1s)
DELAY:MOV R5,#5
D1:MOV R6,#200
D2:MOV R7,#250
D3:DJNZ R7,D3;1ms
DJNZ R6,D2;约0.2s
DJNZ R5,D1;约1s
RET