|
原理圖:
跑馬燈proteus.png (169.89 KB, 下載次數(shù): 29)
下載附件
2020-7-19 16:23 上傳
代碼:
ORG 0000H
LJMP MAIN ;跳轉(zhuǎn)到主程序
ORG 0003H
AJMP INT ;跳轉(zhuǎn)到中斷
ORG 0030H
MAIN: MOV IE,#81H ;開放外部中斷源0
MOV TCON,#01H ;TCON的D7~D0全為零,T0與T1都停止計(jì)數(shù)
MOV A, #01H ;把01這個(gè)數(shù)立即送到累加器A中
MOV P1,#00H ;讓P1口輸出低電平0
LOOP: MOV P2, A ;累加器A中的數(shù)據(jù)傳送到P2寄存器,
LCALL DELAY ;跳轉(zhuǎn)到延遲
RR A ;燈向右亮
SJMP LOOP ;循環(huán)
SJMP $
DELAY: MOV R2, #0FFH ;延遲程序
DELAY1: MOV R3, #0FFH
DJNZ R3, $ ;循環(huán)等待R3不為0,直到R3=0往下執(zhí)行
DJNZ R2, DELAY1 ;延遲
RET ;返回
ORG 0050H
INT: PUSH ACC ;保護(hù)現(xiàn)場(chǎng)
MOV R4,#08H
MOV P3,#00H ;讓P3口輸出低電平0
MOV R6,#02H
LOOP2:MOV R6,#02H ;循環(huán)指令
MOV R6, P1
ACALL DELAY ;跳轉(zhuǎn)到延遲
DJNZ R6,LOOP2
POP ACC ;恢復(fù)現(xiàn)場(chǎng)
RETI ;中斷程序返回
END
|
|