掌握AT89S51單片機(jī),應(yīng)首先了解AT89S51的引腳,熟悉并牢記各引腳的功能。AT89S51與80C51系列中各種型號(hào)芯片的引腳是互相兼容的。目前AT89S51單片機(jī)多采用40個(gè)引腳的雙列直插封裝(DIP)方式,如圖2-2所示。此外,還有44個(gè)引腳的PLCC和TQFP封裝方式的芯片。
40個(gè)引腳按其功能可分為如下3類:
(1)電源及時(shí)鐘引腳——VCC、Vss;XTAL1、XTAL2。
(2)控制引腳——PSEN(的反)、ALE/PROG(的反)、EA(的反)/Vpp、RST(即RESET)。
(3)I/0口引腳-PO、Pl、P2、P3,為4個(gè)8位I/O口的外部引腳。
下面結(jié)合圖2-2介紹各引腳的功能。
電源及時(shí)鐘引腳1.電源引腳電源引腳接入單片機(jī)的工作電源。
(1) Vcc(40腳):接+5 V電源。
(2) Vss(20腳):接數(shù)字地。
2.時(shí)鐘引腳(1) XTAL1(19腳):片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生器電路的輸入端。當(dāng)使用片內(nèi)振蕩器時(shí),該引腳連接外部石英晶體和微調(diào)電容;當(dāng)采用外接時(shí)鐘源時(shí),該引腳接外部時(shí)鐘振蕩器的信號(hào)。
(2) XTAL2(18腳):片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器時(shí),該引腳連接外部石英晶體和微調(diào)電容;當(dāng)采用外部時(shí)鐘源時(shí),該引腳懸空。
控制引腳
此類引腳提供控制信號(hào),有的引腳還具有復(fù)用功能。
(1) RST(RESET,9腳):復(fù)位信號(hào)輸入端,高電平有效。在此引腳加上持續(xù)時(shí)間大于2個(gè)機(jī)器周期的高電平,就可以使單片機(jī)復(fù)位。在單片機(jī)正常工作時(shí),此引腳應(yīng)為≤0.5 V的低電平。
當(dāng)看門狗定時(shí)器溢出輸出時(shí),該引腳將輸出長(zhǎng)達(dá)96個(gè)時(shí)鐘振蕩周期的高電平。
(2) EA(的反)/ Vpp(Enable Address/Voltage Pulse of Programing,31腳):EA(的反)(External AccessEnable)為該引腳的第一功能,即外部程序存儲(chǔ)器訪問允許控制端。
當(dāng)EA(的反)引腳接高電平時(shí),在PC值不超出OFFFH(即不超出片內(nèi)4 KB Flash存儲(chǔ)器的地址范圍)時(shí),單片機(jī)讀片內(nèi)程序存儲(chǔ)器(4 KB)中的程序;當(dāng)PC值超出(即超出片內(nèi)4 KB Flash存儲(chǔ)器地址范圍)時(shí),將自動(dòng)轉(zhuǎn)向讀取片外60 KB(1000H~FFFFH)程序存儲(chǔ)器空間中的程序。
當(dāng)EA(的反)引腳為低電平時(shí),只讀取外部程序存儲(chǔ)器中的內(nèi)容,讀取的地址范圍為OOOOH~FFFFH,片內(nèi)的4 KB Flash程序存儲(chǔ)器不起作用。
Vpp為該引腳的第二功能,即在對(duì)片內(nèi)Flash進(jìn)行編程時(shí),VPP引腳接人編程電壓。
(3) ALE/PROG(的反)(Address Latch Enable/PROGramming,30腳):ALE為CPU訪問外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器提供一個(gè)地址鎖存信號(hào),將低8位地址鎖存在片外的地址鎖存器中。
此外,單片機(jī)在正常運(yùn)行時(shí),ALE端一直有正脈沖信號(hào)輸出,此頻率為時(shí)鐘振蕩器頻率fosc的1/6。該正脈沖振蕩信號(hào)可作外部定時(shí)或觸發(fā)信號(hào)使用。但是要注意,每當(dāng)AT89S51訪問外部RAM時(shí)(即執(zhí)行MOVX類指令時(shí)),要丟失一個(gè)ALE脈沖。
如果需要,可將特殊功能寄存器AUXR(地址為8EH,將在本章后面介紹)的第O位(ALE禁止位)置l,來禁止ALE操作,但在執(zhí)行訪問外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器指令“MOVC”或“MOVX”時(shí),ALE仍然有效。也就是說,ALE的禁止位不影響對(duì)外部存儲(chǔ)器的訪問。
PROG(的反)為該引腳的第二功能,即在對(duì)片內(nèi)Flash存儲(chǔ)器編程時(shí),此引腳作為編程脈沖輸入端。
(4) PSEN(的反)(Program Strobe ENable,29腳):片外程序存儲(chǔ)器的讀選通信號(hào),低電平有效。
并行I/O口引腳
(1) PO口:8位,漏極開路的雙向I/O口。
當(dāng)AT89S51擴(kuò)展外部存儲(chǔ)器及I/O接口芯片時(shí),PO口作為地址總線(低8位)及數(shù)據(jù)總線的分時(shí)復(fù)用端口。
PO口也可作為通用的I/O口使用,但需加上拉電阻,這時(shí)為準(zhǔn)雙向口。當(dāng)作為通用的I/O、輸入時(shí),應(yīng)先向端口輸出鎖存器寫入1。PO口可驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載。
(2) Pl口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。
Pl口是專為用戶使用的準(zhǔn)雙向I/O口。當(dāng)作為通用的I/O口輸入時(shí),應(yīng)先向端口鎖存器寫入l。Pl口可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。
MOSI/P1.5、MISO/Pl.6和SCK/PI.7也可用于對(duì)片內(nèi)Flash存儲(chǔ)器串行編程和校驗(yàn),它們分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。
(3) P2口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。
當(dāng)AT89S51擴(kuò)展外部存儲(chǔ)器及I/O口時(shí),P2口作為高8位地址總線用,輸出高8位地址。
P2口也可作為普通的I/O口使用。當(dāng)作為通用的I/O輸入時(shí),應(yīng)先向端口輸出鎖存器寫入l。P2口可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。
(4) P3口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。
P3口可作為通用的I/O口使用。當(dāng)作為通用的I/O輸入時(shí),應(yīng)先向端口輸出鎖存器寫入l。P3口可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。
P3口還可提供第二功能。其第二功能定義見表2-1。
表2-1 P3口的第二功能定義
綜上所述,PO口作為地址總線(低8位)及數(shù)據(jù)總線使用時(shí),為雙向口;作為通用的I/O口使用時(shí),為準(zhǔn)雙向口,這時(shí)需加上拉電阻。Pl口、P2口、P3口均為準(zhǔn)雙向口。
要特別注意準(zhǔn)雙向口與雙向口的差別。準(zhǔn)雙向口僅有兩個(gè)狀態(tài)。而PO口作為地址總線(低8位)及數(shù)據(jù)總線使用時(shí),口線內(nèi)無上拉電阻,由兩個(gè)MOS管串接且開漏輸出,處于高阻的“懸浮”狀態(tài)。因此PO口與Pl口、P2口、P3口這三個(gè)準(zhǔn)雙向口相比,又多了一個(gè)高阻“懸浮”狀態(tài),故PO口為雙向三態(tài)I/O口。為什么PO口要有高阻“懸浮”態(tài)呢?這是由于PO口作為數(shù)據(jù)總線使用時(shí),多個(gè)數(shù)據(jù)源都掛在數(shù)據(jù)總線上,當(dāng)PO口不需要與其他數(shù)據(jù)源打交道時(shí),需要與數(shù)據(jù)總線高阻“懸浮”隔離,因此,PO口必須要有高阻的“懸浮”狀態(tài),而準(zhǔn)雙向I/O口無高阻的“懸浮”狀態(tài)。另外,準(zhǔn)雙向口作為通用的I/O口輸入使用時(shí),一定要向該口先寫入1。
來源;21ic
評(píng)論