包含中斷的LED顯示匯編語言程序
例:電路如圖。要求編程實(shí)現(xiàn):主程序?qū)1口的8個(gè)LED從上到下循環(huán)顯示(間隔時(shí)間約1S),中斷時(shí)(INT0)使8個(gè)LED同時(shí)閃爍5次(間隔時(shí)間約1S,設(shè)單片機(jī)晶振為6M)。
(1)主程序
ORG 0000H
LJMP START
START:MOV IE,#10000001B;允許INT0中斷
MOV IP,#00000001B;INT0中斷優(yōu)先
MOV TCON,#01H;INT0邊沿觸發(fā)方式
MOVSP,#70H
MOV A,#80H;左移初值
LOOP1:RLA
MOV P1,A
CALLDELAY;延時(shí)1s
AJMP LOOP1
(2)中斷服務(wù)程序
ORG 0003H
LJMP EXT0
EXT0:PUSHACC
PUSHPSW
SETBRS0
CLRRS1
MOV A,#0FFH;為使P1全亮
MOVR2,#;閃爍5次
LOOP3:MOV P1,A
CALLDELAY;延時(shí)1s
CPLA
DJNZR2,LOOP3
POPPSW
POPACC
RETI
(3)延時(shí)子程序(約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