51單片機的最小化應(yīng)用系統(tǒng)
3、接著我們給單片機加一個指示燈。我們在單片機P1.7(8腳)上接一個發(fā)光二極管,這樣就可以用來做單片機驅(qū)動發(fā)光二極管的簡單實驗了,圖中發(fā)光二極管負(fù)極對單片機引腳P1.7之間串接了一個560歐姆的限流電阻,防止發(fā)光二極管和單片機的引腳P1.7因為電流過大燒壞,使發(fā)光二極管和單片機都工作在安全狀態(tài)。
4、控制引腳EA接法。EA/VPP(31腳)為內(nèi)外程序存儲器選擇控制引腳,當(dāng)EA為低電位時,單片機從外部程序存儲器取指令;當(dāng)EA接高電平時,單片機從內(nèi)部程序存儲器取指令。。。AT89S51單片機內(nèi)部有4KB可反復(fù)擦寫1000次以上的程序存儲器,因此我們把EA接到+5V高電平,讓單片機運行內(nèi)部的程序,我們就可以通過反復(fù)燒寫來驗證我們的程序了。
5、復(fù)位電路:在復(fù)位引腳(9腳)腳持續(xù)出現(xiàn)24個振蕩器脈沖周期(即2個機器周期)的高電平信號將使單片機復(fù)位。如下圖所示電容C和電阻R構(gòu)成了單片機上電自動復(fù)位電路,復(fù)位后,單片機從0000H單元開始執(zhí)行程序,并初始化一些專用寄存器為復(fù)位狀態(tài)值,受影響的專用寄存器如下表所示:
寄存器 | 狀態(tài) | 寄存器 | 狀態(tài) |
---|---|---|---|
PC | 0000H | TCON | 00H |
ACC | 00H | TL0 | 00H |
PSW | 00H | TH0 | 00H |
SP | 07H | TL1 | 00H |
DPTR | 0000H | TH1 | 00H |
P0 -- P3 | FFH | SCON | 00H |
IP | xxx00000H | SBUF | 不確定 |
IE | 0xx00000H | PCON | 0xxx0000H |
TMOD | 00H |
至此,我們完成了51單片機的最小化應(yīng)用系統(tǒng)的連接,只要正確的燒寫程序,并接上+5V電源就可以了,單片機剩下的其他可以不接線懸空。
下面我們來寫一個驅(qū)動發(fā)光二極管閃爍的程序,這是很簡單的事情,只需要以一定的世界間隔,給p1.7高電平,然后低電平,如此重復(fù),我們就看到了發(fā)光2極管在閃爍,程序如下:
完整的源程序如下:
;******** 51單片機的最小化應(yīng)用系統(tǒng)主程序 ********
MAIN: CLR P1.7 ;主程序開始,P1.7輸出低電平"0",讓點亮發(fā)光二極管
ACALL DELAY ;調(diào)用延時子程序延時一段時間,讓發(fā)光二極管亮一段時間
SETB P1.7 ;P1.7輸出高電平"1",熄滅發(fā)光二極管
ACALL DELAY ;調(diào)用延時子程序延時一段時間,讓發(fā)光二極管熄滅一段時間
AJMP MAIN ;跳轉(zhuǎn)到程序開頭重復(fù)執(zhí)行
;******** 51單片機的最小化應(yīng)用系統(tǒng)延時子程序 ********
DELAY: MOV R7,#255
Y1: MOV R6,#255
DJNZ R6,$
DJNZ R7,Y1
RET ;延時子程序返回
END ;程序結(jié)束
評論