專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機系列之:閃爍燈

作者:佚名   來源:本站原創(chuàng)   點擊數:  更新時間:2010年07月04日   【字體:

一、設計任務

1、做單個燈的閃爍,在P1.0端口接一個發(fā)光二極管的D1,使D1不停地一亮和一滅,時間間隔大約為0.125秒。

2、做一個流水燈的設計,在P0.0端口分別對應接上8個LED燈(在此,每個端口接上了3個燈),使這8個燈循環(huán)亮滅: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個燈循環(huán)點亮(設計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 圖紙不能正常的顯示,如有需要,聯系
關閉窗口

相關文章