單片機閃爍燈流水燈匯編代碼大全
源代碼:
ORG 0
MOV A,#00000000B
MOV P0,A
MOV P2,#0FFH
LOOP: MOV A,P2
CPL A
MOV P0,A
JMP LOOP
END
8、單片機AT89C51的P2口分別接8個指撥開關(guān);P0口接8個LED。
指撥開關(guān)閉合之前8個LED單燈左移3次后,全亮,閉合指撥開關(guān)P2.0,
則P0.0所對應(yīng)的LED滅,以此類推。延時為0.2S。
原理圖:
源代碼:
ORG 0
MOV R1,#3
LOOP1: MOV R0,#8
MOV A,#11111110B
LOOP2: MOV P0,A
RL A
CALL D200MS
DJNZ R0,LOOP2
DJNZ R1,LOOP1
MOV A,#00000000B
MOV P0,A
MOV P2,#0FFH
LOOP: MOV A,P2
CPL A
MOV P0,A
JMP LOOP
D200MS:
MOV R7,#250
D1: MOV R6,#200
D2: MOV R5,#2
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
RET
END
9、單片機AT89C51的P2.0、P2.1和P2.2口分別接一個按鈕開關(guān),
P1口低4位接譯碼器7447,7447輸出部分接共陽極LED數(shù)碼管。要求按一下P2.0口對應(yīng)按鈕,數(shù)碼管顯示數(shù)字“0”;
按一下P2.1口對應(yīng)按鈕,數(shù)碼管顯示數(shù)字“8”;按一下P2.2口對應(yīng)按鈕,數(shù)碼管所顯示的數(shù)字被關(guān)閉。
原理圖:
源代碼:
ORG 0000H
START: MOV P2,#0FFH
LOOP: JNB P2.0,ON
JNB P2.1,ON8
JNB P2.2,OFF
JMP LOOP
ON: MOV P1,#00H
ON_1: JB P2.0,LOOP
JMP ON_1
ON8: MOV P1,#08H
ON_8: JB P2.1,LOOP
JMP ON_8
OFF: MOV P1,#0FFH
OFF_1: JB P2.2,LOOP
JMP OFF_1
END
10、單片機AT89C51的P2口接7447驅(qū)動一個共陽極七段數(shù)碼管。讓該數(shù)碼管循環(huán)顯示數(shù)字“9~0”,延時為1S。
ORG 0000H
MOV R0,#10
start:
DJNZ R0,s
MOV P2,R0
CALL delay
MOV R0,#10
JMP start
s: MOV P2,R0
CALL delay
JMP start
delay: MOV R5,#100
k1: MOV R6,#250
k2: MOV R7,#250
k3: DJNZ R7,k3
DJNZ R6,k2
DJNZ R5,k1
RET
END
11、單片機AT89C51的P2口接7447驅(qū)動一個共陽極七段數(shù)碼管。
讓該數(shù)碼管顯示數(shù)字“2~6”,之后顯示“9~0”,如此循環(huán),延時為1S。
ORG 0
START: MOV R0,#5
MOV A,#2
LOOP_1: MOV P2,A
INC A
CALL D1000MS
DJNZ R0,LOOP_1
MOV R0,#10
MOV A,#9
LOOP_2: MOV P2,A
DEC A
CALL D1000MS
DJNZ R0,LOOP_2
JMP START
D1000MS:
MOV R7,#250
D1: MOV R6,#200
D2: MOV R5,#250
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
RET
END
12、四個集成共陽極七段數(shù)碼管的公共端以PNP三極管做開關(guān)分別連接到單片機AT89C51的P1低四位,
數(shù)碼管的各顯示引腳a~dP分別連接到P2.0~2.7。讓4個數(shù)碼管穩(wěn)定顯示“2012”。
ORG 0
LOOP:
MOV P1,#11111110B
MOV P2,#10100100B
CALL D4MS
MOV P1,#11111101B
MOV P2,#11000000B
CALL D4MS
MOV P1,#11111011B
MOV P2,#11111001B