(1) 單片機(jī)(AT89S51)外觀 本文引用地址: http://m.butianyuan.cn/article/201611/319713.htm(2) 單片機(jī)(AT89S51)的引腳功能圖 (3) 51系列單片機(jī)8031、8051及89c51/89s51均采用40Pin封裝的雙列直接DIP結(jié)構(gòu)。上圖是它們的引腳配置:40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明: 1、電源引腳 Vcc 40腳 正電源腳,工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V, 引腳功能一樣。 GND 20 接地端 2.外接晶體引腳
Pin19:時鐘XTAL1腳, Pin18:時鐘XTAL2腳, XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。 型號同樣為AT89C51的芯片,在其后面還有頻率編號,有12,16,20,24MHz可選。大家在購買和選用時要注意了。如AT89C51 24PC就是最高振蕩頻率為24MHz,40P6封裝的普通商用芯片。 3.復(fù)位 RST 9 在振蕩器運(yùn)行時,有兩個機(jī)器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腳時,將使單片機(jī)復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的0000H處開始運(yùn)行程序。常用的復(fù)位電路如下圖所示。
復(fù)位操作不會對內(nèi)部RAM有所影響。當(dāng)8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。什么叫復(fù)位?復(fù)位是單片機(jī)重新執(zhí)行程序代碼的意思。 8051的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電期間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。
輸入輸出(I/O)引腳: Pin39-Pin32為P0.0-P0.7輸入輸出腳,稱為P0口,是一個8位漏極開路型雙向I/O口。內(nèi)部不帶上拉電阻,當(dāng)外接上拉電阻時,P0口能以吸收電流的方式驅(qū)動八個LSTTL負(fù)載電路。通常在使用時外接上拉電阻,用來驅(qū)動多個數(shù)碼管。在訪問外部程序和外部數(shù)據(jù)存儲器時,P0口是分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,不需要外接上拉電阻。 Pin1-Pin8為P1.0-P1.7輸入輸出腳,稱為P1口,是一個帶內(nèi)部上拉電阻的8位雙向I/0口。P1口能驅(qū)動4個LSTTL負(fù)載。通常在使用時外不需要外接上拉電阻,就可以直接驅(qū)動發(fā)光二極管。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 我們現(xiàn)在講一個它的輸出功能吧,在單片機(jī)工作時,我們 可以通過用指令控制單片機(jī)的引腳輸出高電平或者低電平。如: 指令CLR ,清零的意思。 CLR P1.0 ;讓單片機(jī)從第一腳輸出低電平。 指令 SETB,置1的意思。 SETB P1.0 ;讓單片機(jī)從第一個腳輸出高電平。 請問讓第8個腳輸出低電平的指令如何寫? Pin21-Pin28為P2.0-P2.7輸入輸出腳,稱為P2口,是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P2口能驅(qū)動4個LSTTL負(fù)載。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。 Pin10-Pin17為P3.0-P3.7輸入輸出腳,稱為P3口,是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P2口能驅(qū)動4個LSTTL負(fù)載,這8個引腳還用于專門的第二功能。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 對內(nèi)部Flash程序存儲器編程時,接控制信息。 P1-3端口在做輸入使用時,因內(nèi)部有上接電阻,被外部拉低的引腳會輸出一定的電流。 除此之外P3端口還用于一些專門功能,具體請看下表。 P3引腳 | 兼用功能 | P3.0 | 串行通訊輸入(RXD) | P3.1 | 串行通訊輸出(TXD) | P3.2 | 外部中斷0( INT0) | P3.3 | 外部中斷1(INT1) | P3.4 | 定時器0輸入(T0) | P3.5 | 定時器1輸入(T1) | P3.6 | 外部數(shù)據(jù)存儲器寫選通WR | P3.7 | 外部數(shù)據(jù)存儲器寫選通RD |
什么叫上拉電阻?上拉電阻簡單來說就是把電平拉高,通常用4.7-10K的電阻接到Vcc電源,下拉電阻則是把電平拉低,電阻接到GND地線上。具體說明也不是這里要討論的,接下來還是接著看其它的引腳功能吧。 5.其它的控制或復(fù)用引腳 (1) ALE/PROG 30 訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率輸出脈沖信號(此頻率是振蕩器頻率的1/6)。在訪問外部數(shù)據(jù)存儲器時,出現(xiàn)一個ALE脈沖。對Flash存儲器編程時,這個引腳用于輸入編程脈沖PROG (2) PSEN 29 該引是外部程序存儲器的選通信號輸出端。當(dāng)AT89C51由外部程序存儲器取指令或常數(shù)時,每個機(jī)器周期輸出2個脈沖即兩次有效。但訪問外部數(shù)據(jù)存儲器時,將不會有脈沖輸出。 (3) EA/Vpp 31 外部訪問允許端。當(dāng)該引腳訪問外部程序存儲器時,應(yīng)輸入低電平。要使AT89S51只訪問外部程序存儲器(地址為0000H-FFFFH),這時該引腳必須保持低電平。對Flash存儲器編程時,用于施加Vpp編程電壓。 看到這您對AT89S51引腳的功能應(yīng)該有了一定的了解了,引腳在編程和校驗時的時序我們在這里就不做詳細(xì)的探討,通常情況下我們也沒有必要去撐握它,除非你想自己開發(fā)編程器。 |
|
|
|
引腳功能:
MCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳分布請參照----單片機(jī)引腳圖:
l P0.0~P0.7 P0口8位雙向口線(在引腳的39~32號端子)。
l P1.0~P1.7 P1口8位雙向口線(在引腳的1~8號端子)。
l P2.0~P2.7 P2口8位雙向口線(在引腳的21~28號端子)。
l P3.0~P3.7 P2口8位雙向口線(在引腳的10~17號端子)。
這4個I/O口具有不完全相同的功能,大家可得學(xué)好了,其它書本里雖然有,但寫的太深,初學(xué)者很難理解,這里都是按我自已的表達(dá)方式來寫的,相信你也能夠理解。
P0口有三個功能:
1、外部擴(kuò)展存儲器時,當(dāng)做數(shù)據(jù)總線(如圖1中的D0~D7為數(shù)據(jù)總線接口)
2、外部擴(kuò)展存儲器時,當(dāng)作地址總線(如圖1中的A0~A7為地址總線接口)
3、不擴(kuò)展時,可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。
P1口只做I/O口使用:其內(nèi)部有上拉電阻。
P2口有兩個功能:
1、擴(kuò)展外部存儲器時,當(dāng)作地址總線使用
2、做一般I/O口使用,其內(nèi)部有上拉電阻;
P3口有兩個功能:
除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置,具體功能請參考我們后面的引腳說明。
有內(nèi)部EPROM的單片機(jī)芯片(例如8751),為寫入程序需提供專門的編程脈沖和編程電源,這些信號也是由信號引腳的形式提供的,
即:編程脈沖:30腳(ALE/PROG)
編程電壓(25V):31腳(EA/Vpp)
接觸過工業(yè)設(shè)備的兄弟可能會看到有些印刷線路板上會有一個電池,這個電池是干什么用的呢?這就是單片機(jī)的備用電源,當(dāng)外接電源下降到下限值時,備用電源就會經(jīng)第二功能的方式由第9腳(即RST/VPD)引入,以保護(hù)內(nèi)部RAM中的信息不會丟失。
(注:這些引腳的功能應(yīng)用,除9腳的第二功能外,在“新動力2004版”學(xué)習(xí)套件中都有應(yīng)用到。)
在介紹這四個I/O口時提到了一個“上拉電阻”那么上拉電阻又是一個什么東東呢?他起什么作用呢?都說了是電阻那當(dāng)然就是一個電阻啦,當(dāng)作為輸入時,上拉電阻將其電位拉高,若輸入為低電平則可提供電流源;所以如果P0口如果作為輸入時,處在高阻抗狀態(tài),只有外接一個上拉電阻才能有效。
ALE/PROG 地址鎖存控制信號:
在系統(tǒng)擴(kuò)展時,ALE用于控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。(在后面關(guān)于擴(kuò)展的課程中我們就會看到8051擴(kuò)展 EEPROM電路,在圖中ALE與74LS373鎖存器的G相連接,當(dāng)CPU對外部進(jìn)行存取時,用以鎖住地址的低位地址,即P0口輸出。ALE有可能是高電平也有可能是低電平,當(dāng)ALE是高電平時,允許地址鎖存信號,當(dāng)訪問外部存儲器時,ALE信號負(fù)跳變(即由正變負(fù))將P0口上低8位地址信號送入鎖存器。當(dāng)ALE是低電平時,P0口上的內(nèi)容和鎖存器輸出一致。關(guān)于鎖存器的內(nèi)容,我們稍后也會介紹。
在沒有訪問外部存儲器期間,ALE以1/6振蕩周期頻率輸出(即6分頻),當(dāng)訪問外部存儲器以1/12振蕩周期輸出(12分頻)。從這里我們可以看到,當(dāng)系統(tǒng)沒有進(jìn)行擴(kuò)展時ALE會以1/6振蕩周期的固定頻率輸出,因此可以做為外部時鐘,或者外部定時脈沖使用。
PORG為編程脈沖的輸入端:在第五課單片機(jī)的內(nèi)部結(jié)構(gòu)及其組成中,我們已知道,在8051單片機(jī)內(nèi)部有一個4KB或8KB的程序存儲器(ROM),ROM的作用就是用來存放用戶需要執(zhí)行的程序的,那么我們是怎樣把編寫好的程序存入進(jìn)這個ROM中的呢?實際上是通過編程脈沖輸入才能寫進(jìn)去的,這個脈沖的輸入端口就是PROG。
PSEN 外部程序存儲器讀選通信號:在讀外部ROM時PSEN低電平有效,以實現(xiàn)外部ROM單元的讀操作。
1、內(nèi)部ROM讀取時,PSEN不動作;
2、外部ROM讀取時,在每個機(jī)器周期會動作兩次;
3、外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出;
4、外接ROM時,與ROM的OE腳相接。
參見圖2—(8051擴(kuò)展2KB EEPROM電路,在圖中PSEN與擴(kuò)展ROM的OE腳相接)
EA/VPP 訪問和序存儲器控制信號
1、接高電平時:
CPU讀取內(nèi)部程序存儲器(ROM)
擴(kuò)展外部ROM:當(dāng)讀取內(nèi)部程序存儲器超過0FFFH(8051)1FFFH(8052)時自動讀取外部ROM。
2、接低電平時:CPU讀取外部程序存儲器(ROM)。在前面的學(xué)習(xí)中我們已知道,8031單片機(jī)內(nèi)部是沒有ROM的,那么在應(yīng)用8031單片機(jī)時,這個腳是一直接低電平的。
3、8751燒寫內(nèi)部EPROM時,利用此腳輸入21V的燒寫電壓。
RST 復(fù)位信號:
當(dāng)輸入的信號連續(xù)2個機(jī)器周期以上高電平時即為有效,用以完成單片機(jī)的復(fù)位初始化操作,當(dāng)復(fù)位后程序計數(shù)器PC=0000H,即復(fù)位后將從程序存儲器的0000H單元讀取第一條指令碼。
XTAL1和XTAL2 :
外接晶振引腳。當(dāng)使用芯片內(nèi)部時鐘時,此二引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。
VCC:電源+5V輸入
VSS:GND接地。
評論