51單片機(jī)系列之:閃爍燈
一、設(shè)計任務(wù)
1、做單個燈的閃爍,在P1.0端口接一個發(fā)光二極管的D1,使D1不停地一亮和一滅,時間間隔大約為0.125秒。
2、做一個流水燈的設(shè)計,在P0.0端口分別對應(yīng)接上8個LED燈(在此,每個端口接上了3個燈),使這8個燈循環(huán)亮滅:P0.0—P0.1—P0.2—……—P0.7。
3做完上面兩個了,現(xiàn)在來設(shè)計任意燈的點(diǎn)亮。
二、設(shè)計程序
//單片機(jī)89C51的p1.0口接一個閃光的二極管(設(shè)計1)
org 0hljmp mainorg 30hmain: clr p1.0acall delaysetb p1.0acall delaysjmp maindelay:mov R7,#250d1 :mov R6,#250 djnz R6,$djnz R7,d1retend//單片機(jī)89C51的P0口接上8個燈,使這8個燈循環(huán)點(diǎn)亮(設(shè)計2)START: MOV ACC,#0FEHMOV P0,ACCMOV R0,7LOOP1: RL AMOV P0,ACCACALL DELAYDJNZ R0,LOOP1AJMP STARTDELAY: MOV R0,255L1: MOV R1,255DJNZ R1,$DJNZ R1,$DJNZ R0,L1RETEND//任意燈的點(diǎn)亮(設(shè)計3)START: MOV ACC,#7EH ;1和8燈亮MOV P0,ACCACALL DELAYMOV ACC,#0BDH ;2和7燈亮MOV P0,ACCACALL DELAY MOV ACC,#0DBH ;3和6燈亮MOV P0,ACCACALL DELAYMOV ACC,#0E7H ;4和5燈亮MOV P0,ACCACALL DELAYMOV ACC,#0FCH ;1和2燈亮MOV P0,ACCACALL DELAYMOV ACC,#0F3H ;3和4燈亮MOV P0,ACCACALL DELAYMOV ACC,#0CFH ;5和6燈亮MOV P0,ACCACALL DELAYMOV ACC,#3FH ;7和8燈亮MOV P0,ACCACALL DELAY AJMP STARTDELAY: MOV R0,255L1: MOV R1,255DJNZ R1,$DJNZ R1,$DJNZ R1,$DJNZ R0,L1RETEND
評論