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