一、設(shè)計(jì)任務(wù)
1、做單個(gè)燈的閃爍,在P1.0端口接一個(gè)發(fā)光二極管的D1,使D1不停地一亮和一滅,時(shí)間間隔大約為0.125秒。
2、做一個(gè)流水燈的設(shè)計(jì),在P0.0端口分別對應(yīng)接上8個(gè)LED燈(在此,每個(gè)端口接上了3個(gè)燈),使這8個(gè)燈循環(huán)亮滅:P0.0—P0.1—P0.2—……—P0.7。
3做完上面兩個(gè)了,現(xiàn)在來設(shè)計(jì)任意燈的點(diǎn)亮。
二、設(shè)計(jì)程序
//單片機(jī)89C51的p1.0口接一個(gè)閃光的二極管(設(shè)計(jì)1)
org 0h
ljmp main
org 30h
main: clr p1.0
acall delay
setb p1.0
acall delay
sjmp main
delay:mov R7,#250
d1 :mov R6,#250
djnz R6,$
djnz R7,d1
ret
end
//單片機(jī)89C51的P0口接上8個(gè)燈,使這8個(gè)燈循環(huán)點(diǎn)亮(設(shè)計(jì)2)
START: MOV ACC,#0FEH
MOV P0,ACC
MOV R0,7
LOOP1: RL A
MOV P0,ACC
ACALL DELAY
DJNZ R0,LOOP1
AJMP START
DELAY: MOV R0,255
L1: MOV R1,255
DJNZ R1,$
DJNZ R1,$
DJNZ R0,L1
RET
END
//任意燈的點(diǎn)亮(設(shè)計(jì)3)
START: MOV ACC,#7EH ;1和8燈亮
MOV P0,ACC
ACALL DELAY
MOV ACC,#0BDH ;2和7燈亮
MOV P0,ACC
ACALL DELAY
MOV ACC,#0DBH ;3和6燈亮
MOV P0,ACC
ACALL DELAY
MOV ACC,#0E7H ;4和5燈亮
MOV P0,ACC
ACALL DELAY
MOV ACC,#0FCH ;1和2燈亮
MOV P0,ACC
ACALL DELAY
MOV ACC,#0F3H ;3和4燈亮
MOV P0,ACC
ACALL DELAY
MOV ACC,#0CFH ;5和6燈亮
MOV P0,ACC
ACALL DELAY
MOV ACC,#3FH ;7和8燈亮
MOV P0,ACC
ACALL DELAY
AJMP START
DELAY: MOV R0,255
L1: MOV R1,255
DJNZ R1,$
DJNZ R1,$
DJNZ R1,$
DJNZ R0,L1
RET
END
注意:由于Proteus 圖紙不能正常的顯示,如有需要,聯(lián)系
