本文我們來談一談51單片機的最小化應用系統的問題,相信你做了這個簡單的最小系統試驗以后,會對單片機逐漸感興趣起來的,單片機要正常運行,必須具備一定的硬件條件,其中最主要的就是三個基本條件:1.電源正常;2.時鐘正常;3.復位正常。下面就以我們實驗用的51單片機AT89S51為例介紹其硬件連接方法。
下圖就是AT89S51單片機構成的最小系統(僅驅動1個發光二極管)的電路,在AT89S51單片機的40個引腳中:電源引腳2根,晶振引腳2根,控制引腳4根,可編程輸入輸出引腳32根。
《51單片機的最小化應用系統電路圖》
1、工作電源:電源是單片機工作的動力源泉,廢話!沒有電源當然不能工作啦:),對應的接線方法為:40腳(VCC)電源引腳,工作時接+5V電源,20腳(GND)為接地線。
2、時鐘電路:時鐘電路為單片機產生時序脈沖,單片機所有運算與控制過程都是在統一的時序脈沖的驅動下的進行的,時鐘電路就好比人的心臟,如果人的心跳停止了,人就。。。同樣,如果單片機的時鐘電路停止工作(晶振停振),那么單片機也就停止運行了。當采用內部時鐘時,連接方法如下圖所示,在晶振引腳XTAL1(19腳)和XTAL2(18腳)引腳之間接入一個晶振,兩個引腳對地分別再接入一個電容即可產生所需的時鐘信號,電容的容量一般在幾十皮法,如30PF。
3、接著我們給單片機加一個指示燈。我們在單片機P1.7(8腳)上接一個發光二極管,這樣就可以用來做單片機驅動發光二極管的簡單實驗了,圖中發光二極管負極對單片機引腳P1.7之間串接了一個560歐姆的限流電阻,防止發光二極管和單片機的引腳P1.7因為電流過大燒壞,使發光二極管和單片機都工作在安全狀態。
4、控制引腳EA接法。EA/VPP(31腳)為內外程序存儲器選擇控制引腳,當EA為低電位時,單片機從外部程序存儲器取指令;當EA接高電平時,單片機從內部程序存儲器取指令。。。AT89S51單片機內部有4KB可反復擦寫1000次以上的程序存儲器,因此我們把EA接到+5V高電平,讓單片機運行內部的程序,我們就可以通過反復燒寫來驗證我們的程序了。
5、復位電路:在復位引腳(9腳)腳持續出現24個振蕩器脈沖周期(即2個機器周期)的高電平信號將使單片機復位。如下圖所示電容C和電阻R構成了單片機上電自動復位電路,復位后,單片機從0000H單元開始執行程序,并初始化一些專用寄存器為復位狀態值,受影響的專用寄存器如下表所示:
寄存器 |
狀態 | 寄存器 | 狀態 |
---|---|---|---|
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單片機的最小化應用系統的連接,只要正確的燒寫程序,并接上+5V電源就可以了,單片機剩下的其他可以不接線懸空。
下面我們來寫一個驅動發光二極管閃爍的程序,這是很簡單的事情,只需要以一定的世界間隔,給p1.7高電平,然后低電平,如此重復,我們就看到了發光2極管在閃爍,程序如下:
完整的源程序如下:
;******** 51單片機的最小化應用系統主程序 ********
MAIN: CLR P1.7 ;主程序開始,P1.7輸出低電平"0",讓點亮發光二極管
ACALL DELAY ;調用延時子程序延時一段時間,讓發光二極管亮一段時間
SETB P1.7 ;P1.7輸出高電平"1",熄滅發光二極管
ACALL DELAY ;調用延時子程序延時一段時間,讓發光二極管熄滅一段時間
AJMP MAIN ;跳轉到程序開頭重復執行
;******** 51單片機的最小化應用系統延時子程序 ********
DELAY: MOV R7,#255
Y1: MOV R6,#255
DJNZ R6,$
DJNZ R7,Y1
RET ;延時子程序返回
END ;程序結束