一、設計任務
1、做單個燈的閃爍,在P1.0端口接一個發光二極管的D1,使D1不停地一亮和一滅,時間間隔大約為0.125秒。
2、做一個流水燈的設計,在P0.0端口分別對應接上8個LED燈(在此,每個端口接上了3個燈),使這8個燈循環亮滅:P0.0—P0.1—P0.2—……—P0.7。
3做完上面兩個了,現在來設計任意燈的點亮。
二、設計程序
//單片機89C51的p1.0口接一個閃光的二極管(設計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 //單片機89C51的P0口接上8個燈,使這8個燈循環點亮(設計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 //任意燈的點亮(設計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 圖紙不能正常的顯示,如有需要,聯系