AT89S52單片機基礎(chǔ)知識詳解
性能說明:
AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。它是使用Atmel公司高密度非易失性存儲器技術(shù)制造,并與業(yè)界標(biāo)準(zhǔn)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,也就是適合于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活及非常有效的解決方案。AT89S52單片機提供一下標(biāo)準(zhǔn)功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。此外,AT89S52單片機的設(shè)計與操作頻率可下降到0 HZ靜態(tài)邏輯,支持2種軟件可選的節(jié)電模式。在空閑模式下,CPU停止工作,而RAM,定時器/計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作。在掉電保護(hù)模式下,RAM內(nèi)容可以被保存,但振蕩器將被凍結(jié),單片機一切工作停止,直到下一個中斷或者硬件復(fù)位為止。其引腳配置如圖所示:(三種封裝:PDIP、PLCC、TQFP)
引腳說明:
P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。
P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。
引腳號第二功能:
管腳號
|
引腳第二功能
|
P1.0
|
T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出
|
P1.1
|
T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)
|
P1.5
|
MOSI(用于系統(tǒng)編程)
|
P1.6
|
MISO(用于系統(tǒng)編程)
|
P1.7
|
SCK(用于系統(tǒng)編程)
|
P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。
P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,在flash編程和校驗時,P3口也接收一些控制信號。
引腳號第二功能:
管腳號
|
引腳第二功能
|
P3.0
|
RXD(串行輸入口)
|
P3.1
|
TXD(串行輸出口)
|
P3.2
|
INT0(外部中斷0)
|
P3.3
|
INT1(外部中斷1)
|
P3.4
|
T0(定時/計數(shù)器0)
|
P3.5
|
T1(定時/計數(shù)器1)
|
P3.6
|
WR(外部數(shù)據(jù)存儲器寫選通)
|
P3.7
|
RD(外部數(shù)據(jù)存儲器讀選通)
|
此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。
RST——復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。
ALE/PROG——當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下, ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。
PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。
EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。