圖1.2.1至圖1.2.6三組圖是51單片機(jī)芯片不同封裝的引腳圖和實物圖,其中標(biāo)有NC的是不連接(No Connect)的意思。當(dāng)大家首次看見這些引腳時,一定會有又多又亂的感覺,而且難以記憶。千萬不要著急,對于初學(xué)者來說,單純地記憶引腳標(biāo)號沒有任何意義,最好的方法就是邊學(xué)邊記。
在講解各個引腳含義之前,我們首先應(yīng)該學(xué)會如何在實物上區(qū)分引腳序號,基于8051內(nèi)核的單片機(jī),若引腳數(shù)相同,或是封裝相同,它們的引腳功能是相通的,其中用的較多的是40腳DIP封裝的51單片機(jī),也有20,28,32,44等不同引腳數(shù)的51單片機(jī),這些大家也要了解,不能只見了40腳的芯片才認(rèn)為它是51單片機(jī)。
知識點:區(qū)分芯片引腳序號
無論哪種芯片,單片機(jī)也好,其他不知名的芯片也好,當(dāng)我們觀察它的表面時,大都會找到一個凹進(jìn)去的小圓坑,或是用顏色標(biāo)識的一個小標(biāo)記(圓點或三角或其他小圖形),這個小圓坑或是小標(biāo)記所對應(yīng)的引腳就是這個芯片的第1引腳,然后逆時針方向數(shù)下去,即1到最后一個引腳。我們現(xiàn)在查看上面三組圖中DIP封裝的單片機(jī),在左上角有一個小圓坑,并且下面還有一個白色小三角,那它的左邊對應(yīng)的引腳即為此單片機(jī)的第1引腳,逆時針數(shù)依次為2,3,…,40o對于PQFP/TQFP封裝的小圓坑在左下角,對于PLCC/LCC封裝的小圓坑在最上面的正中間,在實際焊接或是繪制電路板時,大家務(wù)必要注意它們的引腳標(biāo)號,否則,若焊接錯誤,那完成的作品是絕對不可能正常工作的,
接下來我們以圖1.2.1 PDIP封裝引腳圖為例介紹單片機(jī)各個引腳的功能,40個引腳我們按其功能類別將它們分成三類:
①電源和時鐘引腳。如Vcc、GND、XTAL1、XTAL2(需掌握)。
②編程控制引腳。如RST、PSEN、ALE/PROG、EA/VPP(了解即可)。
③I/O口引腳。如P0、Pl、P2、P3,4組8位I/O口(需掌握)。
Vcc(40腳)、GND(20腳)一單片機(jī)電源引腳,不同型號單片機(jī)接入對應(yīng)電壓電源,常壓為+5V,低壓為+3.3V,大家在使用時要查看其芯片對應(yīng)文檔。
XTAL1(19腳)、XTAL2(18腳)一外接時鐘引腳。XTAL1為片內(nèi)振蕩電路的輸入端,XTAL2為片內(nèi)振蕩電路的輸出端。8051的時鐘有兩種方式,一種是片內(nèi)時鐘振蕩方式,需在這兩個腳外接石英晶體和振蕩電容,振蕩電容的值一般取10p?30p;另一種是外部時鐘方式,即將XTAL1接地,外部時鐘信號從XTAL2腳輸入。
RST(9腳)一單片機(jī)的復(fù)位引腳。當(dāng)輸入連續(xù)兩個機(jī)器周期以上高電平時為有效,用來完成單片機(jī)的復(fù)位初始化操作,復(fù)位后程序計數(shù)器PC=0000H,即復(fù)位后將從程序存儲器的0000H單元讀取第一條指令碼,通俗地講,就是單片機(jī)從頭開始執(zhí)行程序。
PSEN(29腳)一全稱是程序存儲器允許輸出控制端。在讀外部程序存儲器時PSEN低電平有效,以實現(xiàn)外部程序存儲器單元的讀操作,由于現(xiàn)在我們使用的單片機(jī)內(nèi)部已經(jīng)有足夠大的ROM,所以幾乎沒有人再去擴(kuò)展外部ROM,因此這個引腳大家只需了解即可。
①內(nèi)部ROM讀取時,PSEN不動作。
②外部ROM讀取時,在每個機(jī)器周期會動作兩次。
③外部RAM讀取時,兩個際麗脈沖被跳過不會輸出。
④外接ROM時,與ROM的OE腳相接。
ALE/PROG(30腳)一在單片機(jī)擴(kuò)展外部RAM時,ALE用于控制把P0口的輸岀低8位地址送鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。ALE有可能是高電平也有可能是低電平,當(dāng)ALE是高電平時,允許地址鎖存信號,當(dāng)訪問外部存儲器時,ALE信號負(fù)跳變(即由正變負(fù))將P0口上低8位地址信號送入鎖存器;當(dāng)ALE是低電平時,P0口上的內(nèi)容和鎖存器輸出一致。關(guān)于鎖存器的內(nèi)容,我們后面會有詳細(xì)介紹。在沒有訪問外部存儲器期間,ALE以1/6振蕩周期頻率輸岀(即6分頻),當(dāng)訪問外部存儲器時,以1/12振蕩周期輸出(12分頻)。從這里可以看到,當(dāng)系統(tǒng)沒有進(jìn)行擴(kuò)展時,ALE會以1/6振蕩周期的固定頻率輸岀,因此可以作為外部時鐘,或作為外部定時脈沖使用。PROG為編程脈沖的輸入端,單片機(jī)的內(nèi)部有程序存儲器(ROM),它的作用是用來存放用戶需要執(zhí)行的程序,那么我們怎樣才能將寫好的程序存入這個ROM中呢?實際上,我們是通過編程脈沖輸入才寫進(jìn)去的,這個脈沖的輸入端口就是麗C。現(xiàn)在有很多單片機(jī)都已經(jīng)不需要編程脈沖引腳往內(nèi)部寫程序了,比如我們用的STC單片機(jī),它可以直接通過串口往里面寫程序,只需要三條線與計算機(jī)相連即可。而且現(xiàn)在的單片機(jī)內(nèi)部都已經(jīng)帶有豐富的RAM,所以也不需要再擴(kuò)展RAM了,因此ALE/麗否這個引腳的用處已經(jīng)不太大。
EA/VPp(31腳)一京接高電平時,單片機(jī)讀取內(nèi)部程序存儲器。當(dāng)擴(kuò)展有外部ROM時,當(dāng)讀取完內(nèi)部ROM后自動讀取外部ROMo EA接低電平時,單片機(jī)直接讀取外部(ROM)。8031單片機(jī)內(nèi)部是沒有ROM的,所以在使用8031單片機(jī)時,這個引腳是一直接低電平的。8751單片機(jī)燒寫內(nèi)部EPROM時,利用此引腳輸入21V的燒寫電壓。因為現(xiàn)在我們用的單片機(jī)都有內(nèi)部ROM,所以在設(shè)計電路時此引腳始終接高電平。
I/O口引腳一P0口、P1口、P2口和P3口。
P0口(39腳?32腳)一雙向8位三態(tài)I/O口,每個口可獨立控制。51單片機(jī)P0口內(nèi)部沒有上拉電阻,為高阻狀態(tài),所以不能正常地輸出高/低電平,因此該組I/O口在使用時務(wù)必要外接上拉電阻,一般我們選擇接入10KΩ的上拉電阻。
P1口(1腳~8腳)一準(zhǔn)雙向8位I/O口,每個口可獨立控制,內(nèi)帶上拉電阻,這種口輸出沒有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O口。之所以稱它為“準(zhǔn)雙向”是因為該口在作為輸入使用前,要先向該口進(jìn)行寫1操作,然后單片機(jī)內(nèi)部才可正確讀出外部信號,也就是要使其先有個“準(zhǔn)”備的過程,所以才稱為準(zhǔn)雙向口。對52單片機(jī)PLO引腳的第二功能為T2定時器/計數(shù)器的外部輸入,P1.1引腳的第二功能為T2EX捕捉、重裝觸發(fā),即T2的外部控制端。
P2口(21腳?28腳)一準(zhǔn)雙向8位I/O口,每個口可獨立控制,內(nèi)帶上拉電阻,與P1口相似。
P3口(10腳?17腳)一準(zhǔn)雙向8位I/O口,每個口可獨立控制,內(nèi)帶上拉電阻。作為第一功能使用時就當(dāng)做普通I/O口,與P1口相似。作為第二功能使用時,各引腳的定義如表1.2.1所示。值得強(qiáng)調(diào)的是,P3口的每一個引腳均可獨立定義為第一功能的輸入/輸出或第二功能。