




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 - 1 -第第 2 2 章:章:AT89S51單片機的硬件結(jié)構(gòu)單片機的硬件結(jié)構(gòu) 單片機單片機湖北經(jīng)濟學(xué)院電子工程系湖北經(jīng)濟學(xué)院電子工程系(綜合張毅剛、李全利教材資料制作)(綜合張毅剛、李全利教材資料制作) - 2 -本章主要內(nèi)容本章主要內(nèi)容v 2.1 AT89S51單片機的硬件組成v 2.2 AT89S51的引腳功能v 2.3 AT89S51的CPUv 2.4 AT89S51存儲器的結(jié)構(gòu)v 2.5 AT89S51的并行I/O端口v 2.6 時鐘電路與時序v 2.7 復(fù)位操作和復(fù)位電路v 2.8 低功耗節(jié)電模式 - 3 -2.1 AT89S51單片機的硬件組成單片機的硬件組成 2.1.1 AT
2、89S51單片機片內(nèi)結(jié)構(gòu)單片機片內(nèi)結(jié)構(gòu) - 4 -2.1.2 AT89S51單片機單片機功能部件功能部件和和特性特性v (1)8位微處理器(位微處理器(CPU););v (2)數(shù)據(jù)存儲器()數(shù)據(jù)存儲器(128B RAM););v (3)程序存儲器()程序存儲器(4KB Flash ROM););v (4)4個個8位可編程并行位可編程并行I/O口(口(P0口、口、P1口、口、P2口和口和P3口);口);v (5)1個全雙工的異步串行口;個全雙工的異步串行口;v (6)2個可編程的個可編程的16位定時器位定時器/計數(shù)器;計數(shù)器;v (7)1個看門狗定時器;個看門狗定時器;v (8)中斷系統(tǒng)具有)中
3、斷系統(tǒng)具有5個中斷源、個中斷源、5個中斷向量;個中斷向量;v (9)特殊功能寄存器()特殊功能寄存器(SFR)26個;個;v (10)低功耗模式有)低功耗模式有空閑模式空閑模式和和掉電模式掉電模式,且具有掉電模式,且具有掉電模式v 下的中斷恢復(fù)模式;下的中斷恢復(fù)模式;v (11)程序存儲器具有三級加密保護(片內(nèi)的)程序存儲器具有三級加密保護(片內(nèi)的Flash存儲器有存儲器有3個個可編程的加密位,定義了可編程的加密位,定義了3個加密級別個加密級別 )。)。 - 5 -AT89S51AT89S51的優(yōu)點v (1 1)增加在線可編程功能)增加在線可編程功能ISP(In System In Syste
4、m ProgramProgram),),字節(jié)和和頁編程,現(xiàn)場程序調(diào)試和修改更加,現(xiàn)場程序調(diào)試和修改更加方便靈活;方便靈活;v (2 2)數(shù)據(jù)指針增加到增加到兩個,方便了對片外,方便了對片外RAMRAM的訪問的訪問過程;過程;v (3 3)增加了了看門狗定時器,提高了系統(tǒng)的抗干擾能力;,提高了系統(tǒng)的抗干擾能力;v (4 4)增加斷電標(biāo)志;)增加斷電標(biāo)志;v (5 5)增加掉電狀態(tài)下的中斷恢復(fù)模式。)增加掉電狀態(tài)下的中斷恢復(fù)模式。 - 6 -2021-12-196MCS-51MCS-51單片機內(nèi)部結(jié)構(gòu)圖單片機內(nèi)部結(jié)構(gòu)圖 - 7 -2021-12-1972.2 AT89S512.2 AT89S51的
5、引腳功能的引腳功能 - 8 -引腳說明引腳說明v 時鐘引腳 q (1)XTAL1(19腳):片內(nèi)振蕩器反相放大器和時鐘發(fā)生器電路輸片內(nèi)振蕩器反相放大器和時鐘發(fā)生器電路輸入端。用片內(nèi)振蕩器時,該腳接外部石英晶體和微調(diào)電容。入端。用片內(nèi)振蕩器時,該腳接外部石英晶體和微調(diào)電容。外接時鐘源時,該腳接外部時鐘振蕩器的信號。,該腳接外部時鐘振蕩器的信號。q (2)XTAL2(18腳):片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器,該腳連接外部石英晶體和微調(diào)電容。當(dāng)使用,該腳連接外部石英晶體和微調(diào)電容。當(dāng)使用外部時鐘源時,本腳時,本腳懸空懸空。v 控制引腳q (1)RS
6、T (RESET,9腳) 復(fù)位信號輸入,在引腳加上復(fù)位信號輸入,在引腳加上持續(xù)時間大于2個機器周期的高電平,可使單片機可使單片機復(fù)位。正常工作,此腳電平應(yīng)。正常工作,此腳電平應(yīng) 0.5V0.5V。 當(dāng)看門狗定時器溢出輸出時,該腳將輸出長達96個時鐘振蕩周期的高電平。 - 9 -引腳說明引腳說明q (2) /VPP (Enable Address/Voltage Pulse of Programing,31腳)q :引腳第一功能:外部程序存儲器訪問允許控制端。q=1,在PC值不超出0FFFH(即不超出片內(nèi)4KB Flash存儲器的地址范圍)時,單片機讀片內(nèi)程序存儲器(4KB)中的程序,但PC值超
7、出0FFFH (即超出片內(nèi)4KB Flash地址范圍)時,將自動轉(zhuǎn)向讀取片外60KB(1000H-FFFFH)程序存儲器空間中的程序。q =0,只讀取外部的程序存儲器中的內(nèi)容,讀取的地址范圍為0000HFFFFH,片內(nèi)的4KB Flash 程序存儲器不起作用。q VPP:引腳第二功能,對片內(nèi)Flash編程,接編程電壓。EAEAEAEA - 10 -引腳說明引腳說明q (3)ALE/ (Address Latch Enable/PROGramming,30腳) ALE為CPU訪問外部程序存儲器或外部數(shù)據(jù)存儲器提供地址鎖存信號,將低8位地址鎖存在片外的地址鎖存器中。 單片機正常運行時,ALE端一直
8、有正脈沖信號輸出,此頻率為時鐘振蕩器頻率fosc的1/6??捎米魍獠慷〞r或觸發(fā)信號。 :引腳第二功能,對片內(nèi) Flash編程,為編程脈沖輸入腳。PROGPROG - 11 -2.3 AT89S51的CPUv 2.3.1 運算器q 對操作數(shù)進行算術(shù)、邏輯和位操作運算。主要包括算術(shù)邏輯運算單元ALU、累加器A、位處理器、程序狀態(tài)字寄存器PSW及兩個暫存器等。v 1算術(shù)邏輯運算單元ALUq 可對8位變量邏輯運算(與、或、異或、循環(huán)、求補和清零),還可算術(shù)運算(加、減、乘、除)q ALU還有位操作功能,對位變量進行位處理,如置“1”、清“0”、求補、測試轉(zhuǎn)移及邏輯“與”、“或”等。 - 12 -2.
9、累加器累加器v累加器是一個最常用的專用寄存器,其自身帶累加器是一個最常用的專用寄存器,其自身帶有全零標(biāo)志有全零標(biāo)志Z,若,若A=0則則Z=1;若;若A0則則Z0。 用途:該標(biāo)志常用作程序分支的判斷條件。用途:該標(biāo)志常用作程序分支的判斷條件。 - 13 - - 14 -3. 程序狀態(tài)字寄存器程序狀態(tài)字寄存器v (1)PSW:程序狀態(tài)字寄存器。定義格式如右上邊。:程序狀態(tài)字寄存器。定義格式如右上邊。其中,其中,CY:進借位標(biāo)志;:進借位標(biāo)志;AC:輔助進借位標(biāo)志;:輔助進借位標(biāo)志; F0:用戶標(biāo)志;用戶標(biāo)志; RS1、RS0:工作寄存器組選擇位。:工作寄存器組選擇位。D7D6D5D4D3D2D1D
10、0CYACF0RS1RS0OVXPRS1 RS0選擇工作寄存器組選擇工作寄存器組0 00組(組(00H07H)0 11組(組(08H0FH)1 02組(組(10H17H)1 13組(組(18H1FH)表表: 工作寄存器組選擇控制表工作寄存器組選擇控制表 - 15 -(2)堆棧指針SPv 指示堆棧頂部在內(nèi)部RAM塊中的位置。v 堆棧結(jié)構(gòu)-向上生長型。單片機復(fù)位后,SP為07H,使得堆棧實際上從08H單元開始。v 堆棧主要是為子程序調(diào)用和中斷操作而設(shè)。用于保護斷點和現(xiàn)場。v 兩種操作:數(shù)據(jù)壓入(PUSH)堆棧,數(shù)據(jù)彈出(POP)堆棧。數(shù)據(jù)壓入堆棧,SP自動加1;數(shù)據(jù)彈出堆棧,SP自動減1。 - 1
11、6 -(3)寄存器Bv為執(zhí)行乘法和除法而設(shè)。在不執(zhí)行乘、除法操作的情況下,可把它當(dāng)作一個普通寄存器來使用。v乘法:兩乘數(shù)分別在A、B中,執(zhí)行乘法指令后,乘積在BA中v除法:被除數(shù)取自A,除數(shù)取自B,商存放在A中,余數(shù)存B中。 - 17 -2.3.2 控制器v 任務(wù):識別指令,并根據(jù)指令的性質(zhì)控制單片機各功能部件,從而保證單片機各部分能自動協(xié)調(diào)地工作。v 控制器包括:程序計數(shù)器、指令寄存器、指令譯碼器、定時及控制邏輯電路等。v 功能:控制指令的讀入、譯碼和執(zhí)行,從而對各功能部件進行定時和邏輯控制。v 程序計數(shù)器PC:是一個獨立的16位計數(shù)器,不可訪問。單片機復(fù)位時,PC中內(nèi)容為0000H,從程序
12、存儲器0000H單元取指令,開始執(zhí)行程序。q PC工作過程是:CPU讀指令時,PC的內(nèi)容作為所取指令的地址,程序存儲器按此地址輸出指令字節(jié),同時PC自動加1。 - 18 -2.4 AT89S51存儲器的結(jié)構(gòu)v 存儲器的結(jié)構(gòu)特點之一:將程序存儲器和數(shù)據(jù)存儲器分開(哈佛結(jié)構(gòu)),并有各自的訪問指令。v 存儲器空間可分為:4類。q 程序存儲器q 數(shù)據(jù)存儲器q 特殊功能寄存器q 位地址空間 - 19 -dz - 20 -片片 外外ROMEA=0片片 外外ROMEA=0片片 內(nèi)內(nèi)ROMEA=1片片 外外ROM0000HFFFFH0000H0FFFH1000HFFFFH片片 外外ROMEA=0片片 內(nèi)內(nèi)RO
13、MEA=1片片 外外ROM0000H1FFFH2000HFFFFH(a)片內(nèi)無)片內(nèi)無ROM(b)片內(nèi)有)片內(nèi)有4K ROM(c)片內(nèi)有)片內(nèi)有8K ROM1. 程序存儲器程序存儲器 - 21 -中斷源中斷源入口地址入口地址外部中斷外部中斷00003H定時定時/計數(shù)器計數(shù)器0000BH外部中斷外部中斷10013H定時定時/計數(shù)器計數(shù)器1001BH串行口串行口0023H定時定時/計數(shù)器計數(shù)器2(僅(僅52子系列有)子系列有)002BH 程序存儲器的程序存儲器的0000H單元地址是系統(tǒng)程序的單元地址是系統(tǒng)程序的啟動地址。啟動地址。 6個中斷源的地址之間僅隔個中斷源的地址之間僅隔8個單元,存放中斷服
14、務(wù)個單元,存放中斷服務(wù)程序往往不夠用,這是通常放一條絕對轉(zhuǎn)移指令,轉(zhuǎn)到程序往往不夠用,這是通常放一條絕對轉(zhuǎn)移指令,轉(zhuǎn)到真正的中斷服務(wù)程序,真正的中斷服務(wù)程序放到后面。真正的中斷服務(wù)程序,真正的中斷服務(wù)程序放到后面。程序存儲器的程序存儲器的7個特殊地址個特殊地址 - 22 -2021-12-19222. 2. 特殊功能寄存器、數(shù)據(jù)存儲器及位尋址區(qū)特殊功能寄存器、數(shù)據(jù)存儲器及位尋址區(qū) - 23 -數(shù)據(jù)存儲器的說明數(shù)據(jù)存儲器的說明v 數(shù)據(jù)存儲器RAM主要用來存放運算的中間結(jié)果和數(shù)據(jù)等。v 其存儲空間分布如下:l片外RAM最多可擴至64KB存儲單元,地址范圍為0000HFFFFH。l片內(nèi)RAM為256
15、B存儲單元,地址范圍為00HFFH。v 片內(nèi)RAM地址空間共有256B,又分為兩個部分:l低128B(00H7FH)為真正的RAM區(qū)。l高128B(80HFFH)為特殊功能寄存器(SFR)區(qū)。 - 24 -問題:在52子系列中,高128字節(jié)RAM和SFR的地址是重疊的,如何區(qū)分呢? 究竟訪問哪一塊可通過不同的尋址方式加以區(qū)分:v 訪問高128字節(jié)RAM采用寄存器間址v 訪問SFR則只能采用直接尋址v 訪問低128字節(jié)RAM時,兩種尋址均可采用。 問題討論 - 25 -1. 工作寄存器組區(qū)工作寄存器組區(qū)q00H1FH單元為工作寄存器組區(qū):共單元為工作寄存器組區(qū):共32個字節(jié)。工作寄存器也稱為通用
16、寄存器,用個字節(jié)。工作寄存器也稱為通用寄存器,用于臨時寄存于臨時寄存8位信息。位信息。q工作寄存器共有工作寄存器共有4組,稱為組,稱為0組、組、1組、組、2組組和和3組,每組組,每組8個,分別依次用個,分別依次用R0R7表示表示 進一步說明進一步說明 - 26 - 20H2FH為位尋址區(qū),共為位尋址區(qū),共16字節(jié),字節(jié),128位。位地位。位地址范圍為址范圍為00H7FH。 字節(jié)單元地址字節(jié)單元地址D7D6D5D4D3D2D1D020H070605040302010021H0F0E0D0C0B0A090822H171615141312111023H1F1E1D1C1B1A191824H27262
17、5242322212025H2F2E2D2C2B2A292826H373635343332313027H3F3E3D3C3B3A393828H474645444342414029H4F4E4D4C4B4A49482AH57565554535251502BH5F5E5D5C5B5A59582CH67666564636261602DH6F6E6D6C6B6A69682EH77767574737271702FH7F7E7D7C7B7A79782.位尋址區(qū)位尋址區(qū) - 27 -q30H7FH是一般是一般RAM區(qū),也稱為用戶區(qū),也稱為用戶RAM區(qū),共區(qū),共80字節(jié)。字節(jié)。q對于對于52子系列,一般子系列
18、,一般RAM區(qū)從區(qū)從30HFFH單元。單元。q另外,對于前兩區(qū)中未用的單元也可作為用戶另外,對于前兩區(qū)中未用的單元也可作為用戶RAM單元使用。單元使用。 3. 一般一般RAM區(qū)區(qū) - 28 -q堆棧堆棧:是按先入后出、后入先出的原則進行管:是按先入后出、后入先出的原則進行管理的一段存儲區(qū)域。理的一段存儲區(qū)域。q使注意事項使注意事項:堆棧是用片內(nèi)數(shù)據(jù)存儲器的一段:堆棧是用片內(nèi)數(shù)據(jù)存儲器的一段區(qū)域,在具體使用時應(yīng)避開工作寄存器、位尋址區(qū)域,在具體使用時應(yīng)避開工作寄存器、位尋址區(qū),一般設(shè)在區(qū),一般設(shè)在2FH以后的單元,如工作寄存器和以后的單元,如工作寄存器和位尋址區(qū)未用,也可開辟為堆棧。位尋址區(qū)未用
19、,也可開辟為堆棧。入棧時,入棧時,SP指針的內(nèi)容先自動加指針的內(nèi)容先自動加1,然后再把數(shù)據(jù)存入到,然后再把數(shù)據(jù)存入到SP指針指向的單元;出棧時,先把指針指向的單元;出棧時,先把SP指針指向的單元的數(shù)據(jù)指針指向的單元的數(shù)據(jù)取出,然后再把取出,然后再把SP指針的內(nèi)容自動減指針的內(nèi)容自動減1。復(fù)位時,。復(fù)位時,SP的初值的初值為為07H,因此堆棧實際上從,因此堆棧實際上從08H開始存放數(shù)據(jù)。開始存放數(shù)據(jù)。4.堆棧區(qū)與堆棧指針堆棧區(qū)與堆棧指針 - 29 -概念概念:特殊功能寄存器(特殊功能寄存器(SFR)也稱專用寄存器,)也稱專用寄存器,專門用于控制、管理片內(nèi)算術(shù)邏輯部件、并行專門用于控制、管理片內(nèi)算
20、術(shù)邏輯部件、并行I/O口、串行口、定時口、串行口、定時/計數(shù)器、中斷系統(tǒng)等功能模塊計數(shù)器、中斷系統(tǒng)等功能模塊的工作,用戶在編程時可以給其設(shè)定值,但不能的工作,用戶在編程時可以給其設(shè)定值,但不能移作它用。移作它用。地址地址:分布在分布在80HFFH地址空間,與片內(nèi)數(shù)據(jù)地址空間,與片內(nèi)數(shù)據(jù)存儲器統(tǒng)一編址。存儲器統(tǒng)一編址。5. 特殊功能寄存器特殊功能寄存器 - 30 -特殊功能寄存器(SFR)v 共26個:表2-4 SFR的名稱及其分布。v 位尋址:有些還可位尋址,位地址見表2-4。v 與AT89C51相比:新增5個SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST。v 凡是可位尋址的S
21、FR,字節(jié)地址末位只能是0H或8H。3030 - 31 -3131 - 32 - - 33 -新增寄存器的說明新增寄存器的說明v 1AUXR寄存器 AUXR是輔助寄存器,其格式如圖2-5所示:DISALE:ALE的禁止/允許位。0:ALE有效,發(fā)出脈沖;1:ALE僅在執(zhí)行MOVC和MOVX類指令時有效。DISRTO:禁止/允許WDT溢出時的復(fù)位輸出。0:WDT溢出時,在RST引腳輸出一個高電平脈沖;1:RST引腳僅為輸入腳。WDIDLE:WDT在空閑模式下的禁止/允許位。 0: WDT在空閑模式下繼續(xù)計數(shù); 1: WDT在空閑模式下暫停計數(shù)。 - 34 -新增寄存器的說明新增寄存器的說明v 2
22、數(shù)據(jù)指針數(shù)據(jù)指針DPTR0和和DPTR1q 雙數(shù)據(jù)指針寄存器,便于訪問數(shù)據(jù)存儲器。雙數(shù)據(jù)指針寄存器,便于訪問數(shù)據(jù)存儲器。v DPTR0:AT89C51單片機原有的數(shù)據(jù)指針;單片機原有的數(shù)據(jù)指針;v DPTR1:新增加的數(shù)據(jù)指針。:新增加的數(shù)據(jù)指針。v AUXR1的的DPS位用于選擇兩個數(shù)據(jù)指針。當(dāng)位用于選擇兩個數(shù)據(jù)指針。當(dāng)DPS=0時,選用時,選用DPTR0;當(dāng);當(dāng)DPS=1時,選用時,選用DPTR1。v 數(shù)據(jù)指針可作為一個數(shù)據(jù)指針可作為一個16位寄存器來用,也可作為兩個獨立的位寄存器來用,也可作為兩個獨立的8位寄存器位寄存器DP0H(或(或DP1H)和)和DP0L(或(或DP1L)來用。)來
23、用。 - 35 -3535新增寄存器的說明新增寄存器的說明3. AUXR1寄存器AUXR1是輔助寄存器,格式如圖2-6所示: DPS:數(shù)據(jù)指針寄存器選擇位。0:選擇數(shù)據(jù)指針寄存器DPTR0;1:選擇數(shù)據(jù)指針寄存器DPTR1。圖圖2-62-6 AUXR1AUXR1寄存器的格式寄存器的格式 - 36 -新增寄存器的說明新增寄存器的說明v 4. 看門狗定時器WDTqWDT包含一個14位計數(shù)器和看門狗定時器復(fù)位寄存器 (WDTRST)。q當(dāng)CPU由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時,WDT提供了一種使程序恢復(fù)正常運行的有效手段。3636 - 37 - 數(shù)據(jù)存儲器數(shù)據(jù)讀寫應(yīng)用實例數(shù)據(jù)存儲器數(shù)據(jù)讀寫應(yīng)用實
24、例 【程序1】 工作寄存器的讀寫地址機器碼程 序注 釋檢查結(jié)果ORG 0000H;程序從ROM區(qū)0000H處開始存放0000H78 11MOV R0, #11H;將立即數(shù)11H送入寄存器R0中( H)=11H0002H79 22MOV R1, #22H;將立即數(shù)22H送入寄存器R1中( H)=22H0004H7A 33MOV R2, #33H;將立即數(shù)33H送入寄存器R2中( H)=33H0006H7B 44MOV R3, #44H;將立即數(shù)44H送入寄存器R3中( H)=44H0008H75 D0 10MOV PSW, #10H;使當(dāng)前工作寄存器組為第2組( H)=10H000BH78 55
25、MOV R0, #55H;將立即數(shù)55H送入寄存器R0中( H)=55H000DH79 66MOV R1, #66H;將立即數(shù)66H送入寄存器R1中( H)=66H000FH7A 77MOV R2, #77H;將立即數(shù)77H送入寄存器R2中( H)=77H0011H7B 88MOV R3, #88H;將立即數(shù)88H送入寄存器R3中( H)=88HEND;程序結(jié)束 - 38 - 【程序2】位尋址區(qū)的讀寫 地址機器碼程 序注 釋檢查結(jié)果ORG 0100H;程序從ROM區(qū)0100H處開始存放0100HD2 00SETB 00H;將位地址為00H的位置1( H)=10102HD2 01 SETB 01
26、H;將位地址為01H的位置1( H)=10104HD2 02SETB 02H;將位地址為02H的位置1( H)=10106HD2 03SETB 03H;將位地址為03H的位置1( H)=10108HC2 04CLR 04H;將位地址為04H的位清0( H)=0010AHC2 05CLR 05H;將位地址為05H的位清0( H)=0010CHC2 06CLR 06H;將位地址為06H的位清0( H)=0010EHC2 07CLR 07H;將位地址為07H的位清0( H)=0(20H )=0110HC2 90CLR 90H;將P1.0位清0( H)=00112HD2 90SETB 90H;將P1.
27、0位置1( H)=10114HC2 91CLR 91H;將P1.1位清0( H)=00116HD2 91SETB 91H;將P1.1位置1( H)=1END;程序結(jié)束 - 39 -【程序3】一般RAM區(qū)和特殊功能寄存器區(qū)的讀和寫 地址機器碼程 序注 釋檢查結(jié)果ORG 0200H;程序從ROM區(qū)0200H存放0200H75 30 99MOV 30H, #99H;將立即數(shù)99H送到30H單元中(30H)=(PC)=0203H75 45 AA MOV 45H, #0AAH;將立即數(shù)AAH送到45H單元中(45H)=(PC)=0206H75 81 50 MOV SP, #50H;將立即數(shù)50H送到堆棧
28、指針SP中( H)=50H(PC)=0209H74 60MOV A, #60H;將立即數(shù)60H送到累加器A中( H)=60H(PC)=020BH75 90 55MOV P1, #55H;將立即數(shù)55H送到P1口中( H)=55H(PC)=020EH75 D0 90MOV PSW, #90H;將立即數(shù)90H送到PSW中,使當(dāng)前工作寄存器組為第2組且將CY位置1( H)=90H(PC)=0211H90 12 34 MOV DPTR,#1234H;將立即數(shù)1234H送到數(shù)據(jù)指針DPTR中( H)=12H( H)=34HEND;程序結(jié)束 - 40 -2.5 2.5 并行輸入并行輸入/ /輸出端口輸出端
29、口v 8051單片機有4個8位并行I/O端口,稱為P0、P1、P2和P3口,每個端口都各有8條I/O口線,每條I/O口線都能獨立地用作輸入或輸出。q在無片外擴展存儲器的系統(tǒng)中,這四個I/O口都可以作為通用I/O口使用。q在有片外擴展存儲器的系統(tǒng)中,P2口送出高8位地址,P0口分時送出低8位地址和8位數(shù)據(jù)。 - 41 - 1. P0 1. P0口口vP0口某一位的結(jié)構(gòu)圖如下圖所示,它由一個輸出鎖存器、兩個三態(tài)輸入緩沖器、一個轉(zhuǎn)換開關(guān)MUX、一個輸出驅(qū)動電路(T1和T2)和一個與門及一個非門組成。 - 42 -(1) P0(1) P0口用作通用口用作通用I/OI/O口口 MUX與鎖存器的Q端接通,
30、與門輸出為0,T1截止,輸出驅(qū)動級就工作在需外接上拉電阻的漏極開路方式。 P0口用作輸出口 P0口用作輸入口q方式1:讀引腳。q方式2:讀鎖存器。 - 43 -(2) P0(2) P0口用作地址口用作地址/ /數(shù)據(jù)總線數(shù)據(jù)總線 v MUX將地址/數(shù)據(jù)線與T2接通,同時與門輸出有效。v 若地址/數(shù)據(jù)線為1,則T1導(dǎo)通,T2截止,P0口輸出為1;反之T1截止,T2導(dǎo)通,P0口輸出為0。v 當(dāng)數(shù)據(jù)從P0口輸入時,讀引腳使三態(tài)緩沖器2打開,端口上的數(shù)據(jù)經(jīng)緩沖器2送到內(nèi)部總線。 - 44 -(3 3)P0P0口小結(jié)口小結(jié) P0口既可作地址/數(shù)據(jù)總線使用,也可作通用I/O口使用。當(dāng)P0口作地址/數(shù)據(jù)總線使
31、用時,就不能再作通用I/O口使用了。 P0口作輸出口使用時,輸出級屬漏極開路,必須外接上拉電阻,才有高電平輸出。 P0口作輸入口讀引腳時,應(yīng)先向鎖存器寫1,使T2截止,不影響輸入電平。 - 45 -P0口的特點口的特點v P0口為雙功能口地址/數(shù)據(jù)復(fù)用口和通用I/O口。v (1)當(dāng)P0口用作地址/數(shù)據(jù)復(fù)用口時,是一個真正的雙向口, 輸出低8位地址和輸出/輸入8位數(shù)據(jù)。v (2)當(dāng)P0口用作通用I/O口時,由于需要在片外接上拉電阻,端口不存在高阻抗(懸?。顟B(tài),因此是一個準(zhǔn)雙向口。v 為保證引腳信號的正確讀入,應(yīng)首先向鎖存器寫1。q單片機復(fù)位后,鎖存器自動被置1;q當(dāng)P0口由原來輸出轉(zhuǎn)變?yōu)檩斎霑r
32、,應(yīng)先置鎖存器為1,方可執(zhí)行輸入操作。 - 46 -2. P12. P1口口vP1口是唯一的單功能口,僅能作為通用I/O口使用。由于在其輸出端接有上拉電阻,故可以直接輸出而無需外接上拉電阻。v同P0口一樣,當(dāng)作輸入口時,必須先向鎖存器寫“1”,使場效應(yīng)管T截止。 D CP Q Q T 鎖存器 VCC 內(nèi)部總線 寫鎖存器 讀鎖存器 讀引腳 P1.X 引腳 1 2 - 47 -P1口的特點口的特點v 由于內(nèi)部上拉電阻,無高阻抗輸入狀態(tài),故為準(zhǔn)雙向口。 v P1口“讀引腳”輸入時,必須先向鎖存器寫入1。 - 48 -3. P23. P2口口v 圖中的控制信號C決定轉(zhuǎn)換開關(guān)MUX的位置:當(dāng)C=0時,M
33、UX撥向下方,P0口為通用I/O口;當(dāng)控制信號C=1時,MUX撥向上方,P0口作為地址總線使用。v 在實際應(yīng)用中,P2口通常作為高8位地址總線使用。 - 49 -P2口的特點口的特點v 作為地址輸出線時,P2口高8位地址,P0口輸出的低8位地址尋址64KB地址空間。v 作為通用I/O口時,P2口為準(zhǔn)雙向口。功能與P1口一樣。v 一般情況下,P2口大多作為高8位地址總線口使用,這時就不能再作為通用I/O口。 - 50 -4. P34. P3口口vP3口用作通用I/O口時,第二輸出功能信號W=1,P3口的每一位都可定義為輸入或輸出,其工作原理同P1口類似。v在真正的應(yīng)用電路中,P3口的第二功能顯得
34、更為重要 。 D CP Q Q & 鎖存器 第二輸出功能 內(nèi)部總線 寫鎖存器 讀鎖存器 讀引腳 T VCC P3.X 引腳 第二輸入功能 1 2 W 3 - 51 - P3P3口的第二功能口的第二功能 INT0INT1WRRD引腳引腳 第二功能第二功能 功能說明功能說明 P3.0RXD串行口輸入串行口輸入P3.1TXD串行口輸出串行口輸出P3.2外部中斷外部中斷0輸入輸入P3.3外部中斷外部中斷1輸入輸入P3.4T0定時器定時器/計數(shù)器計數(shù)器0計數(shù)輸入計數(shù)輸入P3.5T1定時器定時器/計數(shù)器計數(shù)器1計數(shù)輸入計數(shù)輸入P3.6片外片外RAM寫選通信號寫選通信號(輸出輸出)P3.7片外片外R
35、AM讀選通信號讀選通信號(輸出輸出) - 52 -P3口的特點口的特點v P3口內(nèi)部有上拉電阻,無高阻抗輸入態(tài)-準(zhǔn)雙向口。q P3口作為第二功能的輸出/輸入,或第一功能通用輸入,均須將相應(yīng)位的鎖存器置1。q 實際應(yīng)用中,由于復(fù)位后P3口鎖存器自動置1,滿足第二功能所需的條件,所以不需任何設(shè)置工作,就可以進入第二功能操作。v 當(dāng)某位不作為第二功能用時,可作為第一功能通用I/O使用。v 引腳輸入部分有兩個緩沖器q 第二功能的輸入信號取自緩沖器BUF3的輸出端q 第一功能的輸入信號取自緩沖器BUF2的輸出端。 - 53 -v 下面討論P1P3口與LED發(fā)光二極管的驅(qū)動連接問題。 qP0口與P1、P2
36、、P3口相比,P0口的驅(qū)動能力較大,每位可驅(qū)動8個LSTTL輸入,而P1、P2、P3口的每一位的驅(qū)動能力,只有P0口的一半。q當(dāng)P0口某位為高電平時,可提供400A的電流;q當(dāng)P0口某位為低電平(0.45V)時,可提供3.2mA的灌電流。P1P3口驅(qū)動LED發(fā)光二極管 - 54 -5454q如低電平允許提高,灌電流可相應(yīng)加大。所以,任何一個口要想獲得較大的驅(qū)動能力,只能用低電平輸出。 例如,使用單片機的并行口P1P3直接驅(qū)動發(fā)光二極管,電路如圖2-12。由于P1P3內(nèi)部有30k左右的上拉電阻。q如高電平輸出,則強行從P1、P2和P3口輸出的電流Id會造成單片機端口的損壞,如圖2-12(a)所示
37、。q如端口引腳為低電平,能使電流Id 從單片機外部流入內(nèi)部,則將大大增加流過的電流值,如圖2-12(b)所示。v所以:當(dāng)P1P3口驅(qū)動LED發(fā)光二極管時,應(yīng)該采用低電平驅(qū)動。 - 55 -5555(a)不恰當(dāng)?shù)倪B接:高電平驅(qū)動不恰當(dāng)?shù)倪B接:高電平驅(qū)動 (b)恰當(dāng)?shù)倪B接:低電平驅(qū)動恰當(dāng)?shù)倪B接:低電平驅(qū)動圖圖2-122-12 發(fā)光二極管與發(fā)光二極管與AT89S51AT89S51并行口的直接連接并行口的直接連接 - 56 -關(guān)于負載能力的小節(jié)關(guān)于負載能力的小節(jié)vP0口的輸出級與P1P3口的輸出級在結(jié)構(gòu)上不同。q其輸出級無上拉電阻。vP0口的每一位能驅(qū)動8個LSTTL負載。q在作為通用I/O口使用時,
38、輸出驅(qū)動電路是開漏的,所以,驅(qū)動集電極開路(OC門)電路或漏級開路電路需外接上拉電阻。q當(dāng)作為地址/數(shù)據(jù)總線使用時(T1可以提供上拉電平),口線不是開漏的,無需外接上拉電阻。vP1P3口的每一位能驅(qū)動4個LSTTL負載。q無需外接上拉電阻。v 當(dāng)作輸出口去驅(qū)動一個普通晶體管的基極時,應(yīng)在端口與晶體管基極間串聯(lián)一個電阻,以限制高電平輸出時的電流。 - 57 -P1P1口輸出功能應(yīng)用實例口輸出功能應(yīng)用實例 【例1】 P1口做輸出口,控制八只發(fā)光二極管循環(huán)點亮(P1口輸出低電平時發(fā)光二極管被點亮)。 解: 由于發(fā)光二極管低電平點亮,所以,需要哪個發(fā)光二極管點亮,只需在相應(yīng)的端口輸出邏輯0即可。 由于
39、每個發(fā)光二極管點亮后要持續(xù)一段時間才熄滅,再使下個發(fā)光二極管點亮,因此需要編寫延時子程序,供主程序反復(fù)調(diào)用。 本例中,延時子程序采用指令循環(huán)來實現(xiàn)。 - 58 -P1P1口輸出功能應(yīng)用實例口輸出功能應(yīng)用實例 地址地址機器碼機器碼程序程序注釋注釋 ORG 0000H0000H02 10 00 LJMP MAIN ORG 1000H1000H74 FE MAIN: MOV A, #0FEH1002HF5 90 LOOP: MOV P1, A1004H12 10 0A LCALL DELAY;延時延時1007H23 RL A;左移位左移位1008H80 F8 SJMP LOOP;循環(huán)循環(huán)100AH7
40、F FF DELAY: MOV R7, #0FFH;延時子程序延時子程序100CH7E FA L1: MOV R6, #0FAH100EHDE FE DJNZ R6, $1010HDF FA DJNZ R7, L11012H22 RET END - 59 -【例2】利用P1.0輸出高低電平,控制繼電器的開合,以實現(xiàn)對外部裝置(如燈L1和L2)的控制。 解:將單片機的P1.0接繼電器控制端JIN,繼電器的JZ通過K1接地,常開觸點JK接L1,常閉觸點JB接L2。編制程序,使P1.0電平變化,高電平時繼電器吸合,常開觸點閉合,L1點亮,L2熄滅;低電平時繼電器不工作,常閉觸點閉合,L2點亮,L1熄
41、滅。 8051 J JZ JB JK 4001 9014 R2 3.3 3.6 R3 74LS04 JIN P1.0 K1 L1 L2 +5V kk - 60 -參考程序: 地址地址機器碼機器碼程序程序注釋注釋 ORG 0000H0000H02 20 00 LJMP MAIN ORG 2000H2000HC2 90 MAIN: CLR P1.0;P1.0送低電平送低電平2002H12 20 0C LCALL DELAY;延時延時2005HD2 90 SETB P1.0;P1.0送高電平送高電平2007H12 20 0C LCALL DELAY;延時延時200AH80 F4 SJMP MAIN;
42、循環(huán)循環(huán)200CH7F 06 DELAY: MOV R7, #06H;延時子程序延時子程序200EH7E FF L1: MOV R6, #0FFH2010H7D FA L2: MOV R5, #0FAH2012HDD FE DJNZ R5, $2014HDE FA DJNZ R6, L22016HDF F6 DJNZ R7, L12018H22 RET END - 61 -P3P3口輸入功能應(yīng)用實例口輸入功能應(yīng)用實例 【例例3 3】 P3 P3口的口的P3.0P3.0連接一個開關(guān),作為輸入端;連接一個開關(guān),作為輸入端;P1P1口的口的P1.0P1.0P1.7P1.7連接八只發(fā)光二極管,作為輸出
43、端。要求連接八只發(fā)光二極管,作為輸出端。要求用用P3.0P3.0來控制來控制P1P1輸出的循環(huán)燈,即當(dāng)輸出的循環(huán)燈,即當(dāng)P3.0P3.0輸出高電平輸出高電平時,控制時,控制P1P1口的發(fā)光二極管左循環(huán)點亮;當(dāng)口的發(fā)光二極管左循環(huán)點亮;當(dāng)P3.0P3.0輸出輸出低電平時,控制低電平時,控制P1P1口的發(fā)光二極管右循環(huán)點亮口的發(fā)光二極管右循環(huán)點亮(P1(P1口輸口輸出低電平時發(fā)光二極管被點亮出低電平時發(fā)光二極管被點亮) )。 解:在主程序中要對P3.0的狀態(tài)進行判斷。 如果P3.0為高電平,則使用循環(huán)左移指令。 如果P3.0為低電平,則使用循環(huán)右移指令。 延時子程序同例1。 - 62 -參考程序:
44、參考程序:地址地址機器碼機器碼程序程序注釋注釋 ORG 0000H0000H02 30 00 LJMP MAINORG 3000H3000H74 FE MAIN: MOV A, #0FEH3002HF5 90 LOOP: MOV P1, A3004H12 30 10 LCALL DELAY;延時延時3007H20 B0 03 JB P3.0, L1300AH03 RR A;右移位右移位300BH80 F5 SJMP LOOP;循環(huán)循環(huán)300DH23 L1: RL A;左移位左移位300EH80 F2 SJMP LOOP;循環(huán)循環(huán)3010H7F FF DELAY: MOV R7, #0FFH;延時子程序延時子程序3012H7E FA L2: MOV R6, #0FAH3014HDE FE DJNZ R6, $3016HDF FA DJNZ R7, L23018H22 RET END - 63 -2021-12-19632.6 2.6 時鐘電路與時序時鐘電路與時序 2.6.12.6.1時鐘電路時鐘電路內(nèi)部時鐘方式內(nèi)部時鐘方式 外部時鐘方式外部時鐘方式 AT89S51AT89S51 - 64 -2021-12-1964 2.6.2 2.6.2 周期與時序周期與時序 - 65 -2021-12-1965典型時序典型時序 單字節(jié)指令單字節(jié)指令 雙字節(jié)指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省正陽縣第二高級中學(xué)2017-2018學(xué)年高一下學(xué)期數(shù)學(xué)周練(三)
- EasySMS短信收發(fā)系統(tǒng)中間件技術(shù)研究
- 家蠶二分濃核病毒NS1蛋白的表達及細胞毒性研究
- 我國土地資源利用和保護存在問題及對策分析
- 專家聘用合同范例
- 江蘇專用2025版高考語文精準(zhǔn)刷題3讀+3練第3周周四排序題專練含解析
- 書刊設(shè)計合同范例
- 人員解除合同范例
- 農(nóng)村房子贈予合同范例
- 公告類合同范例
- 足球迷互動活動策劃與執(zhí)行策略
- 公司內(nèi)部辦公用品采購預(yù)算表
- 四川省南充市2025屆高三下學(xué)期高考適應(yīng)性考試(二診)語文試題(含答案)
- 湖北省2025屆高三下學(xué)期2月調(diào)考語文試題及參考答案
- 2025年湖南國防工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫完整版
- ESC+2024+心房顫動(房顫)管理指南解讀
- 2025年《地陪導(dǎo)游服務(wù)程序》公開課標(biāo)準(zhǔn)教案
- 愛耳日完整課件
- 2025年國電投核能限公司招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 云南省2025年中考化學(xué)第三次模擬考試試題含答案
- 系統(tǒng)集成項目售后服務(wù)方案
評論
0/150
提交評論