




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、AT89S51AT89S51單片機的硬件組成單片機內硬件組成結構如圖 2-1所示。XTAL1XTAL2 T816位2個JIAT89S518腎ALE,圖2-1AT89S51單片機片內結構特殊功能 寄存盞 (SFR)CPU(運算器)(控制器)飛疆器PO P2程序存儲器4KB Flash ROM看門 狗定 時器用行口定時器/計數器中斷系統PSEN RESETP1有如下功能部件和特性:(1) 8位微處理器(CPU);(2)數據存儲器(128B RAM);(3)程序存儲器(4KB Flash ROM );(4)4 個 8 位可編程并行 I/OD(P0 口、P1 口、P2 口和 P3 口);(5) 1個全
2、雙工的異步串行口;(6) 2個可編程的16位定時器/計數器;(7) 1個看門狗定時器;(8)中斷系統具有5個中斷源、5個中斷向量;(9)特殊功能寄存器(SFR) 26個;(10)低功耗模式有空閑模式和掉電模式,且具有掉電模式下的中斷恢復模式;(11) 3個程序加密鎖定位。與AT89C51相比,AT89S51有更突生的優點:(1)增加在線可編程功能 ISP (In System Program),字節和頁編程,現場程序調試和修改更加方便靈活;(2)數據指針增加到兩個,方便了對片外 RAM的訪問過程;(3)增加了看門狗定時器,提高了系統的抗干擾能力;(4)增加斷電標志;(5)增加掉電狀態下的中斷恢
3、復模式。單片機內各功能部件通過片內單一總線連接而成(見圖2-1),基本結構依舊是 CPU加上外圍芯片的傳統微機結構。CPU對各種功能部件的控制是采用特殊功能寄存器(SFR, Special Function Register)的集中控制方式。單片機內部件功能1) CPU (微處理器)8位的CPU,與通用CPU基本相同,同樣包括了運算器和控制器兩大部分,還有面向控制的位處理功能。2)數據存儲器(RAM )片內為128B (52子系列為256B),片外最多可擴 64KB。片內128B的RAM以高速RAM的形式集成,可 加快單片機運行的速度和降低功耗。3)程序存儲器(Flash ROM)片內集成有4
4、KB的Flash存儲器(AT89S52則為8KB ; AT89C55片內20KB),如片內容量不夠,片外可外 擴至64KB。4)中斷系統具有5個中斷源,2級中斷優先權。5)定時器/計數器2個16位定日寸器/計數器(52子系列有3個),4種工作方式。6) 1個看門狗定時器 WDT當CPU由于干擾使程序陷入死循環或跑飛時,WDT可使程序恢復正常運行。7)串行口 1個全雙工的異步串行口,4種工作方式??蛇M行串行通信,擴展并行I/O 口,還可與多個單片機構成多機系統。8) P0 口、P1 口、P2 口和 P3 口4個8位并行I/O 口。9)特殊功能寄存器(SFR)26個,對片內各功能部件管理、控制和監
5、視。是各個功能部件的控制寄存器和狀態寄存器,映射在片內RAM區80HFFH內。AT89S51完全兼容AT89C51,在充分保留原來軟、硬件條件下,完全可以用AT89S51直接代換。AT89S51的引腳功能AT89S51與51系列中各種型號芯片的引腳互相兼容。目前多采用40只引腳雙列直插,如圖2-2所示。引腳按其功能可分為如下 3類: 1)電源及時鐘引腳一VCC、 VSS; XTAL1 、XTAL2 。2)控制引腳一PSEN、ALE/ PROG、EA/VPP、RST (RESET)3) I/O 口引腳 P0、P1、P2、P3,為 4 個 8 位 I/O 口電源及時鐘引腳1 .電源引腳1) VCC
6、 (40 腳):+5V 電源。2) VSS (20腳):數字地。2 .時鐘引腳1) XTAL1 (19腳):片內振蕩器反相放大器和時鐘發生器電路輸入端。用片內振蕩器時,該腳接外部石英 晶體和微調電容。外接時鐘源時,該腳接外部時鐘振蕩器的信號。2) XTAL2 (18腳):片內振蕩器反相放大器的輸出端。當使用片內振蕩器,該腳連接外部石英晶體和微調 電容。當使用外部時鐘源時,本腳懸空。3 .控制引腳1) RST(RESET, 9腳)復位信號輸入,在引腳加上持續時間大于2個機器周期的高電平,可使單片機復位。正常工作,此腳電平應 0 0.5V。當看U定時器溢出輸出時,該腳將輸出長達96個時鐘振蕩周期的
7、高電平。2) EA /VPP (Enable Address/Voltage Pulse of Programing , 31 腳)EA引腳第一功能:外部程序存儲器訪問允許控制端。=1 :在PC值不超出0FFFH (即不超出片內4KB Flash存儲器的地址范圍)時,單片機讀片內程序存儲器 (4KB) 中的程序,但 PC值超出0FFFH (即超出片內 4KB Flash地址范圍)時,將自動轉向讀取片外60KB(1000H-FFFFH )程序存儲器空間中的程序。EA=0:只讀取外部的程序存儲器中的內容,讀取的地址范圍為0000HFFFFH,片內的4KB Flash程序存儲器不起作用。VPP:引腳
8、第二功能,對片內 Flash編程,接編程電壓。3) ALE/ PROG (Address Latch Enable/PROGramming , 30 腳)ALE為CPU訪問外部程序存儲器或外部數據存儲器提供地址鎖存信號,將低8位地址鎖存在片外的地址鎖存器中。此外,單片機正常運行時,ALE端一直有正脈沖信號輸出,此頻率為時鐘振蕩器頻率fosc的1/6??捎米魍獠慷〞r或觸發信號。注意,每當 AT89S51訪問外部RAM時(執行 MOVX類指令),要丟失一個 ALE脈沖。如需要,可將特殊功能寄存器 AUXR (地址為8EH,將在后面介紹)的第 0位(ALE禁止位)置1,來禁 止ALE操作,但執行訪問
9、外部程序存儲器或外部數據存儲器指令“MOVC ”或“ MOVX ”時,ALE仍然有效。即ALE禁止位不影響對外部存儲器的訪問。PROG :引腳第二功能,對片內 Flash編程,為編程脈沖輸入腳。prodPL1匚124039Ziv0cJPO-OPL2匚338 P0JPL3匚437 P0JP1.4C536 P0.3MOSDP1,5C635 P0.4MISO/P1.6C734 P0.5SCK7PL7 匚833二IP0.6RSTC932 P05RXD/P3.0C10 ATS9S51 31 EA/VppTXD/P3.1 匚1130 ALE/PROGNT0/P32 匚12293 PSENINT1/P33C
10、1328 P2.7T0/P3.4 匚1427 P2.6T1/P3.5 C1526 P2.5WR/P3 6 匚1625 P2.4RD/P3.7 匚1724 P23XTAL2C23 P2.2XTALI 匚V聆匚19202221 P2.1一)”門圖2-2 AT89S51雙列直插封裝方式的引腳Jr W4) PSEN (Program Strobe ENable , 29 腳)片外程序存儲器讀選通信號,低電平后效。弁行I/O 口引腳1) P0 口: 8位,漏極開路的雙向I/O 口當外擴存儲器及I/O接口芯片時,P0 口作為低8位地址總線及數據總線的分時復用端口。P0 口也可用作通用的I/O 口,需加上拉
11、電阻,這時為準雙向口。作為通用I/O輸入,應先向端口寫入 1??沈寗?個LS型TTL負載。2) P1 口: 8位,準雙向I/O 口,具有內部上拉電阻。準雙向I/O 口,作為通用I/O輸入時,應先向端口鎖存器寫1。P1 口可驅動4個LS型TTL負載。P1.5/MOSI、P1.6/MISO 和 P1.7/SCK可用于對片內Flash存儲器串行編程和校驗,它們分別是串行數據輸入、輸出和移位脈沖引腳。3) P2 口: 8位,準雙向I/O 口,具有內部上拉電阻。當AT89S51擴展外部存儲器及I/O 口時,P2 口作為高8位地址總線用,輸出高 8位地址。P2 口也可作為普通的I/O 口使用。當作為通用I
12、/O輸入時,應先向端口輸出鎖存器寫1。P2 口可驅動4個LS型TTL負載。4) P3 口: 8位,準雙向I/O 口,具有內部上拉電阻。可作為通用的I/O 口使用。作為通用I/O輸入,應先向端口輸出鎖存器寫入1??沈寗?個LS型TTL負載。P3 口還可提供第二功能。第二功能定義見表2-1,應熟記。引腳第二功能說明P3.0RXD串行數據輸入口P3.1TXD串行數據輸出口P3.2INT0外部中斷0輸入P3.3INT1外部中斷1輸入P3.4T0定時器0外部計數輸入P3.5T1定時器1外部計數輸入P3.6WR外部數據存儲器寫選通輸出P3.7rD外部數據存儲器讀寫通輸出表2-1 P3 口的第二功能定義綜上
13、所述,P0 口可作為總線口,為雙向口。作為通用的 I/O 口使用時,為準雙向口,這時需加上拉電阻。P1 口、P2 口、P3 口均為準雙向口。注意:準雙向口與雙向口的差別。準雙向口僅有兩個狀態。而P0 口作為總線使用,口線內無上拉電阻,處于高阻“懸浮”態。故 P0 口為雙向三態I/O 口。為什么P0 口要有高阻“懸浮”態?準雙向I/O 口則無高阻的“懸浮”狀態。另外,準雙向口作通用 I/O的輸入口使用時,一定要向該口先寫入“1”。以上的準雙向口與雙向口的差別,讀者在閱讀2.5節后,將會有深刻的理解。至此,40個引腳已介紹完,應熟記每一引腳功能對應用系統硬件電路設計十分重要。AT89S51 的 C
14、PU(p41)由圖2-1可見,CPU由運算器和控制器構成。一、運算器對操作數進行算術、邏輯和位操作運算。主要包括算術邏輯運算單元ALU、累加器A、位處理器、程序狀態字寄存器PSW及兩個暫存器等。1 .算術邏輯運算單元 ALU可對8位變量邏輯運算(與、或、異或、循環、求補和清零) ,還可算術運算(加、減、乘、除)ALU還有位操作功能,對位變量進行位處理,如置“1”、清“0”、求補、測試轉移及邏輯“與”、“或”等。2 .累加器A使用最頻繁的寄存器,可寫為 Acc。"A”與“Acc”書寫上的差別,將在第 3章介紹。作用如下:1) ALU單元的輸入數據源之一,又是 ALU運算結果存放單元。2
15、)數據傳送大多都通過累加器A,相當于數據的中轉站。為解決“瓶頸堵塞”問題, AT89S51增加了一部分可以不經過累加器的傳送指令。A的進位標志Cy是特殊的,因為它同時又是位處理機的位累加器3.程序狀態字寄存器 PSWPSW (Program Status Word)位于片內特殊功能寄存器區,字節地址為D0H。包含了程序運行狀態的信息,其中4位保存當前指令執行后的狀態,供程序查詢和判斷。格式如圖2-3所示。D7 D6 D5 D4 D3 D2 DI DOPSWcyAcFORSIRSOOVpDOH圖2-3 PSW的格式PSW中各個位的功能: 1) Cy (PSW.7)進位標志位可寫為Co在算術和邏輯
16、運算時,若有進位 /借位,Cy=1;否則,Cy=0o在位處理器中,它是位累加器。在BCD碼運算整。即當 D3位向位時,Ac = 1;否則,RS1 RS0所選的四組寄存器000區(內部RAM地址00H-07H)3) F0 ( PSW用由用戶使用的一指令來使它置 1或011區(內部 RAM地址08H-0FH)102區(內部 RAM地址10H-17H)向。用戶應充分利113區(內部RAM地址18H-1FH)4 ) RS1 、 RS0組工作寄存器區選擇2) Ac (PSW.6)輔助進位標志位選擇片內RAM區中的4組工作寄存器區中的某一組為當前工作寄存區見表2-2。5) OV (PSW.2)溢出標志位時
17、,用作十進位調D4位產生進位或借Ac = 0。戶設定標志位個狀態標志位,可用 清0,控制程序的流 用。(PSW.4、PSW.3) 4OV=1 ;否貝U, OV=0。當執行算術指令時,用來指示運算結果是否產生溢出。如果結果產生溢出,6) PSW.1 位 保留位7) P (PSW.0)奇偶標志位指令執行完,累加器 A中“ 1”的個數是奇數還是偶數。P=1,表示A中“1”的個數為奇數。P=0,表示A中“1”的個數為偶數。此標志位對串行通信有重要的意義,常用奇偶檢驗的方法來檢驗數據串行傳輸的可靠性。表2-2 RS1 RS0與四組寄存器區的對應關系二、控制器任務識別指令,并根據指令的性質控制單片機各功能
18、部件,從而保證單片機各部分能自動協調地工作??刂破靼ǎ撼绦蛴嫈灯?、指令寄存器、指令譯碼器、定時及控制邏輯電路等。功能是控制指令的讀入、 譯碼和執行,從而對各功能部件進行定時和邏輯控制。程序計數器PC是一個獨立的16位計數器,不可訪問。單片機復位時,PC中內容為0000H,從程序存儲器0000H單元取指令,開始執行程序。PC工作過程是:CPU讀指令時,PC的內容作為所取指令的地址,程序存儲器按此地址輸出指令字節,同時PC自動加1。PC中內容變化軌跡決定程序流程。當順序執行程序時自動加1;執行轉移程序或子程序、中斷子程序調用時,自動將其內容更改成所要轉移的目的地址。PC的計數寬度決定了程序存儲器
19、的地址范圍。PC為16位,故可對64KB (=216B)尋址?;竟ぷ鞣绞剑?)程序計數器自動加 12)執行有條件或無條件轉移指令時,程序計數器將被置入新的數值,從而使程序的流向發生變化。3)執行子程序調用或中斷調用時完成下列操作:PC的當前值保護 將子程序入口地址或中斷向量的地址送入PC。PC變化的軌跡決定程序的流程。AT89S51存儲器的結構存儲器的結構特點之一是將程序存儲器和數據存儲器分開(哈佛結構),并有各自的訪問指令。存儲器空間可分為 4類。1 .程序存儲器空間片內和片外兩部分。片內4KB Flash ,編程和擦除完全是電氣實現。可用通用編程器對其編程,也可在線編程。當片內4KB F
20、lash存儲器不夠用時,可片外擴展,最多可擴展至64KB程序存儲器。2 .數據存儲器空間片內與片外兩部分。片內有128 B RAM (52子系列為256B)。片內RAM 不夠用時,在片外可擴展至64KB RAM 。3 .特殊功能寄存器 SFR (Special Function Register)片內各功能部件的控制寄存器及狀態寄存器。SFR綜合反映了整個單片機基本系統內部實際的工作狀態及工作方式。4 .位地址空間共有211個可尋址位,構成了位地址空間。它們位于內部 RAM (共128位)和特殊功能寄存器區(共 83 位)中。程序存儲器空間存放程序和表格之類的固定常數。片內為4KB的Flash
21、 ,地址為0000H0FFFH。16位地址線,可外擴的程序存儲器空間最大為64KB,地址為0000HFFFFH。使用時應注意以下問題:1)分為片內和片外兩部分,訪問片內的還是片外的程序存儲器,由引腳電平確定。=1時,CPU從片內0000H開始取指令,當 PC值沒有超出0FFFH時,只訪問片內 Flash存儲器,當PC值超出0FFFH自動轉向讀片外程序存儲器空間1000HFFFFH內的程序。=0時,只能執行片外程序存儲器(0000HFFFFH)中的程序。不理會片內4KB Flash存儲器。2)程序存儲器某些固定單元用于各中斷源中斷服務程序入口。64KB程序存儲器空間中有 5個特殊單元分別對應于
22、5個中斷源的中斷入口地址,見表2-3。通常這5個中斷入口地址處都放一條跳轉指令跳向對應的中斷服務子程序,而不是直接存放中斷服務子程 序。表2-3五個中斷源的中斷入口地址中斷源入口地址外部中斷00003H定時器T0000BH外部中斷10013H定時器T1001BH串行口0023H用戶kame絳m缸十竹而在孱蟀Km 7和中r笆a潞X第,茸IFfb-*r而K內O的LF件安有希爾數據存儲器空間 片內與片外兩部分。1 .片內數據存儲器片內數據存儲器(RAM )共128個單元,字節地址為 00H7FH。圖2-4為片內數據存儲器的結構。00H1FH的32個單元是4組通用工作寄存器區,每區包含 8B,為R7R
23、0??赏ㄟ^指令改變 RS1、RS0 兩位來選擇。20H2FH的16個單元的128位可位尋址,也可字節尋址。30H7FH的單元只能字節尋址,用作存數據以及作為堆棧區。2 .片外數據存儲器當片內128B的RAM不夠用時,需外擴,最多可外擴64KB的RAM。注意,片內 RAM與片外RAM兩個空間是相互獨立的, 片內RAM與片外RAM的低128B的地址是相同的, 但由于使用的是不同的訪問指令, 所以不會發生沖突。特殊功能寄存器(SFR采用特殊功能寄存器集中控制各功能部件。特殊功能寄存器映射在片內RAM的80HFFH區域中,共26個。表2-4 SFR的名稱及其分布。有些還可位尋址,位地址見表2-4。與
24、AT89C51 相比,新增 5 個 SFR: DP1L、DP1H、AUXR、AUXR1 和 WDTRST ,已在表 2-4 中標出。凡是可位尋址的 SFR,字節地址末位只能是 0H或8H。另外,若讀/寫未定義單元,將得到一個不確定的隨 機數。下面介紹某些SFR,余下的SFR將在后面介紹。表2-4 EFR的名稱及其分布序號特殊功能 寄存器符號S 稱季節 地址位地址復位值1P0ponSOH87H£ OHFFH2Fsp雄核指81HL:匕DP0L數據指科口口 TRD候字節注組06H4DP OH數據指斜DPTRO高字節83HOCH5DPLL數據指針DPMI低字節E4HOCH6DFLfi數據指釬
25、DETK1高字節SdMOCH1 7PCON電源控制寄存器S7H-OX XX 0000B1 &TCON定時器計數器控制寄存器S8HSFH-SSHOCH【集TMOD定時器計數器方式控制&9HOCH10TLO定時器讓數睛口(低字節| iiIL!定時器計數器f (任字節)8BH00H|_12THO定時騫計數器0 (高字節)8 CH00H隼表T713TH1定時器注數器1 f高字節SDHOOH14AUXR鋪助寄存器SEHX X X Q ox XOE15PlPE口雷仔器FFH16SCON串行控寄存器98H(X)H17SELT串行發送救據緩沖器9gHX X X X X X X X B18P2F
26、二口擊仃器AOHA7H-AOHFFH19AUXIU輔助擊盲器A2 n-1X XX X X X X 0 B20V.TJTK5T著口狗復位寄殍器A5H冗X乂" X X XX B21IE中斷允許控制寄存器A8HATII- A8IIOX XO 0000B22P3P3 口寄存器BCHS7H-BflHFFH23IP中斷優先級控制寄存器X XQO OOOOB24PSW程序狀念宇宙存疆DOHD7H - DOHOOH25A 或 ACC)累加器EQHE7HE0HCKJH16BE寄存器FQHMH1 .堆棧指針SP指示堆棧頂部在內部 RAM塊中的位置。堆棧結構一向上生長型。單片機復位后,SP為07H,使得堆
27、棧實際上從 08H單元開始,由于08H1FH單元分別是屬于13組的工作寄存器區,最好在復位后把SP值改置為60H或更大的值,避免堆棧與工作寄存器沖突。堆棧是為子程序調用和中斷操作而設,主要用來保護斷點和現場。1)保護斷點。無論是子程序調用操作還是中斷服務子程序調用,最終都要返回主程序。應預先把主程序的 斷點在堆棧中保護起來,為程序正確返回做準備。2)現場保護。執行子程序或中斷服務子程序時,要用到一些寄存器單元,會破壞原有內容。要把有關寄存器單元的內容保存起來,送入堆棧,這就是所謂的“現場保護”。兩種操作:數據壓入(PUSH)堆棧,數據彈出(POP)堆棧。數據壓入堆棧,SP自動加1;數據彈出堆棧
28、, SP自動減1。2 .寄存器B為執行乘法和除法而設。在不執行乘、除法操作的情況下,可把它當作一個普通寄存器來使用。乘法,兩乘數分別在 A、B中,執行乘法指令后,乘積在 BA中除法,被除數取自 A,除數取自B,商存放在A中,余數存B中。3 . AUXR寄存器AUXR是輔助寄存器,其格式如圖 2-5所示:D7 D6 D5 D4 D3 D2 DI DOAUXRWDTDLEDISRTODISALE8EH圖2-5 AUXR?存器的格式其中:DISALE : ALE的禁止/允許位。0: ALE有效,發出脈沖;1: ALE僅在執行MOVC和MOVX類指令時有效,不訪問外部存儲器時,ALE不輸出脈沖信號。D
29、ISRTO :禁止/允許 WDT溢出時的復位輸出。0: WDT溢出時,在 RST引腳輸出一個高電平脈沖;1: RST引腳僅為輸入腳。WDIDLE : WDT在空閑模式下的禁止 /允許位。0: WDT在空閑模式下繼續計數;1: WDT在空閑模式下暫停計數。4 .數據指針DPTR0和DPTR1雙數據指針寄存器,便于訪問數據存儲器。DPTR0 : AT89C51單片機原有的數據指針;DPTR1 :新增加的數據指針。AUXR1的DPS位用于選擇兩個數據指針。當 DPS=0時,選用 DPTR0;當DPS=1時,選用 DPTR1。數據指針可彳為一個 16位寄存器來用,也可彳為兩個獨立的8位寄存器DP0H
30、(或DP1H)和DP0L (或DP1L)來用。5 . AUXR1寄存器AUXR1是輔助寄存器,格式如圖 2-6所示:DPS:數據指針寄存器選擇位。0:選擇數據指針寄存器 DPTR0 ;1 :選擇數據指針寄存器 DPTR1 。D7 D6 D5 D4 D3 D2 DI DOAUXR1-DPSA2H6.看門狗定時器WDTWDT包含一個14位計數器和看門狗定時器復位寄存器一一( WDTRST)。當CPU由于干擾,程序陷入死循環或跑飛狀態時,WDT提供了一種使程序恢復正常運行的有效手段。有關WDT在抗干擾設計中的應用以及低功耗模式下運行的狀態,將在相應的章節中具體介紹。上面介紹的特殊功能寄存器,除了前兩
31、個 SP和B以外,其余的均為 AT89S51在AT89C51基礎上新增加的SFR。位地址空間211個尋址位的位地址,位地址范圍為00HFFH,其中00H7FH這128位處于片內 RAM 字節地址20H2FH單元中,如表2-5所示。其余的83個可尋址位分布在特殊功能寄存器SFR中,見表2-6??杀晃粚ぶ返奶厥饧拇嫫饔?1個,共有位地址88個,5個位未用,其余 83個位的位地址離散地分布于片內數據存儲器區字節地址為80HFFH的范圍內,其最低的位地址等于其字節地址,且其字節地址的末位都為0H或8H。表2-5 AT89551片內RAM的可尋讓位及其位址比字節地址位地址D7D6D5D4D3D2DIDO
32、2FH7FH7EH7DH7 CH7BH7 AH79H78H2EH77H76H75H74H73H72H71H7OH2DH6FH6EH6DH6 CH6EH6 AH69H68H2CH67H66H65H64H63H62 H6LH60H2BH5FH5EHSDH5 CH5EH5 AH59H58H2AH57H56H55H?4H53H52H51H5 OH29H4FH4EH4DH4 CH4BH4 AH49H4SH28 H47H46H45H44H43H42H41H4 OH27H5FH3EH3DH3 CH3BH3 AH39H38H26H37H36H35H34H33H32H31H3 OH25H2FH2EH2DH2 C
33、H2BH2 AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H特殊功能 寄存器位地址字節地址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HAccE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HIP一BCHBBHBAHB9HB8HB8HP3B7HB6HB5HB4HB3HB2HB1HB0HB0HIEAFHACHABHAAHA9HA8HA8HP2A7HA6HA5HA4HA3HA2HA1HA0HA0HSCON9FH9EH9
34、DH9CH9BH9AH99H98H98HP197H96H95H94H93H92H91H90H90HTCON8FH8EH8DH8CH8BH8AH89H88H88HP087H86H85H84H83H82H81H80H80H作為對AT89S51存儲器結構的總結,圖 2-7為各類存儲器的結構圖。從圖中可清楚看出各類存儲器在存儲 器空間的位置。CFFFHOQOOHFFFFHFFFFHOtXWH片內ROM外部ROM片內RAM外部RAM外部RAM程序存儲器區圖2-7 AT89S51單片機的存儲器結構數據存儲器區AT89S51的弁行I/O端口4個雙向的8位并行I/O端口,分別記為 P0、P1、P2和P3,其中
35、輸出鎖存器屬于特殊功能寄存器。端口的每一位均由輸出鎖存器、輸出驅動器和輸入緩沖器組成,P0 口4個端口按字節輸入/輸出外,也可位尋址。P0 是一個雙功能的 8位并行端口,字節地址為80H,位地址為80H87H。端口的各位具有完全相同但又相互獨立的電路結構,P0 口某一位的位電路結構如圖2-8所示。地址/數據控制讀鎖存罌。內部總線寫入。BUF1Q鎖存器QBUF2讀引腳。圖2-8P0 某一位的位電路結構1 .位電路結構P0 口某一位的電路包括:1) 一個數據輸出的鎖存器,用于數據位的鎖存。2)兩個三態的數據輸入緩沖器,分別是用于讀鎖存器數據的輸入緩沖器BUF1和讀引腳數據的輸入緩沖器BUF2。3)
36、 一個多路轉接開關MUX ,它的一個輸入來自鎖存器的端,另一個輸入為地址/數據信號的反相輸出。MUX由“控制”信號控制,實現鎖存器的輸出和地址/數據信號之間的轉接。4)數據輸出的控制和驅動電路,由兩個場效應管( FET)組成。2工作過程分析1 ) P0 口用作地址/數據總線外擴存儲器或I/O時,P0 口作為單片機系統復用的地址/數據總線使用。當作為地址或數據輸出時, “控制”信號為 1 ,硬件自動使轉接開關MUX 打向上面,接通反相器的輸出,同時使與門處于開啟狀態。當輸出的地址/數據信息為1 時,與門輸出為1 ,上方的場效應管導通,下方的場效應管截止,P0.x 引腳輸出為1 ;當輸出的地址/數
37、據信息為0 時,上方的場效應管截止,下方的場效應管導通,P0.x 引腳輸出為 0。輸出電路是上、下兩個場效應管形成的推拉式結構,大大提高了負載能力,上方的場效應管這時起到內部上拉電阻的作用。當P0 口作為數據輸入時,僅從外部存儲器(或 I/O)讀入信息,對應的“控制”信號為0, MUX接通鎖存器的端。由于P0 口作為地址/數據復用方式訪問外部存儲器時,CPU自動向P0 口寫入FFH,使下方場效應管截止,上方場效應管由于控制信號為0 也截止,從而保證數據信息的高阻抗輸入,從外部存儲器輸入的數據信息直接由P0.x 引腳通過輸入緩沖器BUF2 進入內部總線。具有高阻抗輸入的I/O 口應具有高電平、低
38、電平和高阻抗3種狀態的端口。因此, P0 口作為地址/數據總線使用時是一個真正的雙向端口,簡稱雙向口。2 ) P0 口用作通用I/O 口當P0 口不作為系統的地址/數據總線使用時,此時P0 口也可作為通用的I/O 口使用。作通用的I/O 口時, 對應的 “控制” 信號為0, MUX 打向下面,接通鎖存器的端, “與門” 輸出為0,上方場效應管截止,形成的P0 口輸出電路為漏極開路輸出。P0 口作輸出口時,來自CPU 的“寫”脈沖加在 D 鎖存器的CP 端,內部總線上的數據寫入D 鎖存器,并由引腳P0.x 輸出。當 D 鎖存器為1 時, 端為0,下方場效應管截止,輸出為漏極開路,此時,必須外接上
39、拉電阻才能有高電平輸出;當D 鎖存器為0 時,下方場效應管導通,P0 口輸出為低電平。P0 口作輸入口使用時,有兩種讀入方式: “讀鎖存器”和“讀引腳”。當 CPU 發出“讀鎖存器”指令時,鎖存器的狀態由 Q 端經上方的三態緩沖器BUF1 進入內部總線;當 CPU 發出“讀引腳”指令時,鎖存器的輸出狀態 =1(即 端為0) ,而使下方場效應管截止,引腳的狀態經下方的三態緩沖器BUF2 進入內部總線。3 P0 口的特點P0 口為雙功能口地址/數據復用口和通用I/O 口。1)當P0 口用作地址/數據復用口時,是一個真正的雙向口,輸出低8位地址和輸出/輸入8位數據。2)當P0 口用作通用I/O 口時
40、,由于需要在片外接上拉電阻,端口不存在高阻抗(懸?。顟B,因此是一個準雙向口。為保證引腳信號的正確讀入,應首先向鎖存器寫1 。單片機復位后,鎖存器自動被置1 ;當 P0 口由原來輸出轉變為輸入時,應先置鎖存器為1 ,方可執行輸入操作。P0 口大多作為地址/數據復用口使用,就不能再作為通用I/O 口使用。P1 口單功能的I/O 口,字節地址為 90H,位地址為 90H97H。P1 口某一位的位電路結構如圖2-9所示。1 位電路結構P1 口位電路結構由以下三部分組成:2 )一個數據輸出鎖存器,用于輸出數據位的鎖存。2)兩個三態的數據輸入緩沖器BUF1和BUF2,分別用于讀鎖存器數據和讀引腳數據的輸
41、入緩沖。3)數據輸出驅動電路,由一個場效應管( FET)和一個片內上拉電阻組成。3 .工作過程分析P1 口只能作為通用的I/O 口使用。1) P1 口作輸出口時,若 CPU輸出1, Q=1,=0,場效應管截止,P1 口引腳的輸出為1;若CPU輸出0,Q=0,=1,場效應管導通,P1 口引腳的輸出為0。2) P1 口作為輸入口時,分為“讀鎖存器”和“讀引腳”兩種方式。“讀鎖存器”時,鎖存器的輸出端 Q的狀態經輸入緩沖器 BUF1進入內部總線;“讀引腳”時,先向鎖存器寫 1,使場效應管截止,P1.x引腳上的 電平經輸入緩沖器 BUF2進入內部總線。3) P1 口的特點由于內部上拉電阻,無高阻抗輸入
42、狀態,故為準雙向口。P1 口 “讀引腳”輸入時,必須先向鎖存器寫入1。P2 口1 .位電路結構P2 口某一位的電路包括:1) 一個數據輸出鎖存器,用于輸出數據位的鎖存。2)兩個三態數據輸入緩沖器BUF1和BUF2 ,分別用于讀鎖存器數據和讀引腳數據的輸入緩沖。3) 一個多路轉接開關 MUX , 一個輸入是鎖存器的 Q端,另一個輸入是高 8位地址。4)輸出驅動電路,由場效應管(FET)和內部上拉電阻組成。2.工作過程分析1) P2 口用作地址總線在控制信號作用下,MUX與“地址”接通。當“地址”為。時,場效應管導通,P2 口引腳輸出為0;當“地 址”線為1時,場效應管截止,P2 口引腳輸出1。2
43、) P2 口用作通用I/O 口在內部控制信號作用下,MUX與鎖存器的Q端接通。CPU輸出1時,Q=1,場效應管截止,P2.x引腳輸出1; CPU輸出0時,Q=0,場效應管導通,P2.x引腳輸出0。P2 口輸入時,分 “讀鎖存器”和“讀引腳”兩種方式 :“讀鎖存器”時,Q端信號經輸入緩沖器 BUF1進入內部總線“讀引腳”時,先向鎖存器寫1,使場效應管截止,P2.x引腳上的電平經輸入緩沖器BUF2進入內部總線。3) P2 口的特點作為地址輸出線時,P2 口高8位地址,P0 口輸出的低8位地址尋址64KB地址空間。作為通用I/O 口時,P2 口為準雙向口。功能與 P1 口一樣。一般情況下,P2 口大
44、多作為高8位地址總線口使用,這時就不能再作為通用I/O 口。P3 口由于引腳數目有限,在 P3 口增加了第二功能。每 1位都可以分別定義為第二輸入功能或第二輸出功能。P3口字節地址為 B0H,位地址B0HB7H。P3 口某一位的位電路結構見圖 2-11。1 .位電路結構P3 口某一位的電路包括:1) 1個數據輸出鎖存器,鎖存輸出數據位。2) 3個三態數據輸入緩沖器 BUF1、BUF2和BUF3 ,分別用于讀鎖存器、讀引腳數據和第二功能數據的輸3) 工作過程分析1) P3 口用作第二輸入/輸出功能當選擇第二輸出功能時,該位的鎖存器需要置1,使與非門為開啟狀態。當第二輸出為1時,場效應管截止,P3
45、.x引腳輸出為1;當第二輸出為。時,場效應管導通,P3.x引腳輸出為0。當選擇第二輸入功能時,該位的鎖存器和第二輸出功能端均應置1,保證場效應管截止,P3.x引腳的信息由輸入緩沖器BUF3的輸出獲得。2) P3 用作第一功能一一通用I/O 口用作第一功能通用輸出時,第二輸出功能端應保持高電平,與非門開啟。CPU輸出1時,Q=1,場效應管截止,P3.x引腳輸出為1; CPU輸出0時,Q=0,場效應管導通,P3.x引腳輸出為0。用作第一功能通用輸入時,P3.x位的輸出鎖存器和第二輸出功能均應置1,場效應管截止,P3.x引腳信息通過輸入BUF3和BUF2進入內部總線,完成“讀引腳”操作。當P3 第一
46、功能通用輸入時,也可執行“讀鎖存器”操作,此時Q端信息經過緩沖器 BUF1進入內部總線。3) P3 口的特點P3 口內部有上拉電阻,無高阻抗輸入態 -準雙向口。 P3 口作為第二功能的輸出/輸入,或第一功能通用 輸入,均須將相應位的鎖存器置 1。實際應用中,由于復位后 P3 口鎖存器自動置1,滿足第二功能所需的 條件,所以不需任何設置工作,就可以進入第二功能操作。當某位不作為第二功能用時,可作為第一功能通用I/O使用。引腳輸入部分有兩個緩沖器,第二功能的輸入信號取自緩沖器BUF3的輸出端,第一功能的輸入信號取自緩沖器BUF2的輸出端。P3 的第二功能定義見表 2-1,讀者應熟記。P1P3 口驅
47、動LED發光二極管P0 口與P1、P2、P3 口相比,P0 口的驅動能力較大,每位可驅動8個LSTTL輸入,而P1、P2、P3 口的每一位的驅動能力,只有 P0 口的一半。當P0 口某位為高電平時,可提供 400 A的電流;當P0 某位為低電平(0.45V)時,可提供3.2mA 的灌電流。如低電平允許提高,灌電流可相應加大。所以,任何一個口要想獲得較大的驅動能力,只能用低電平 輸出。例如,使用單片機的并行口 P1P3直接驅動發光二極管,電路如圖2-12。由于P1P3內部有30kQ左右的上拉電阻。如高電平輸出,則強行從 P1、P2和P3 口輸出的電流Id會造成單片機端口的損壞,如圖 2-12 (
48、a)所 示。如端口引腳為低電平, 能使電流Id從單片機外部流入內部, 則將大大增加流過的電流值,如圖2-12(b)所示。所以,當P1P3 口驅動LED發光二極管時,應該采用低電平驅動。4-5 Vc引腳ZTJ(a)不恰當的連接:高電平驅動圖2-12發光二極管與(b)恰當的連接:低電平驅動AT89S51并行口的直接連接AT89s51時鐘電路與時序時鐘電路產生AT89S51工作時所必需的控制信號,在時鐘信號的控制下,嚴格按時序執行指令。執行指令時,CPU首先到程序存儲器中取出需要執行的指令操作碼,然后譯碼,并由時序電路產生一 系列控制信號完成指令所規定的操作。CPU發的時序信號兩類,一類用對片內各個
49、功能部件控制,用戶無須了解;另一類用于對片外存儲器或I/O 的控制,這部分時序對于分析、設計硬件接口電路至關重要。 時鐘電路設計時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統的穩定性。常用的時鐘電路有兩種方式,一種是內部時鐘方式,另一種是外部時鐘方式。1 .內部時鐘方式AT89S51內部有一個用于構成振蕩器的高增益反相放大器,輸入端為芯片引腳XTAL1 ,輸出端為引腳XTAL2 。這兩個引腳跨接石英晶體振蕩器和微調電容,構成一個穩定的自激振蕩器,圖2-13是AT89S51內部時鐘方式的電路。AT89S51XIAL1外部提踢黑晶振信號懸空AT89S51X7AL1XIAL2 u
50、至內部時鈍電路X1AL2GND圖2-13內部時鐘方式電路圖2-14 AT89S51的外部時鐘方式電路C1和C2的典型值通常選擇為 30pF。電容大小會影響振蕩器頻率高低、振蕩器的穩定性和起振的快速性。 晶振頻率范圍通常是 1.212MHz。晶體頻率越高,單片機速度就越快。速度快對存儲器的速度要求就高, 印制電路板的工藝要求也高,即線間的寄生電容要小。晶體和電容應盡可能與單片機靠近,以減少寄生電 容,保證振蕩器穩定、可靠地工作。為提高溫度穩定性,采用溫度穩定性能好的電容。常選6MHz或12MHz的石英晶體。隨著集成電路制造工藝技術的發展,單片機的時鐘頻率也在逐步提高, 已達33MHz。2 .外部
51、時鐘方式用現成的外部振蕩器產生脈沖信號,常用于多片AT89S51同時工作,以便于多片 AT89S51單片機之間的同步,一般為低于12MHz的方波。外部時鐘源直接接到 XTAL1端,XTAL2端懸空,見圖2-14。機器周期、指令周期與指令時序各種指令時序與時鐘周期相關。1 .時鐘周期時鐘控制信號的基本時間單位。若晶振頻率為fosc,則時鐘周期 Tosc=1/fosc。如fosc=6MHz , Tosc=166.7ns。2 .機器周期CPU完成一個基本操作所需時間為機器周期。執行一條指令分為幾個機器周期。每個機器周期完成一個基本操作,如取指令、讀或寫數據等。每12個時鐘周期為1個機器周期。1個機器周期包括 12個時鐘周期,分 6個狀態:S1S6。每個狀態又分兩拍:P1和P2。因此,一個機器周期中的12個時鐘周期表示為 S1P1、S1P2、S2P1、S2P2、S6P2,如圖2-16所示。SI I S2 I S3 I S4 I S5 I S6 I SI I S2 I S3 I S4 I S5 I S6 I S1Pl Pz|pi P2|pi P2pi P2卜 1 Pa|pi P2卜 1 P2|pi P2卜】P2|pi P2)Pl Papi P2卜】ALE -j_I圖2-1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老人中考語文作文
- 玻璃熔化工藝模擬與優化考核試卷
- 什么中的身影初一語文作文
- 難忘的友誼初一語文作文
- 綠色初二語文作文
- 河南省洛陽市新安縣2023-2024學年七年級下學期期末考試數學試卷(含答案)
- 磷肥生產設備結構與原理考核卷考核試卷
- 玩具行業人才培養需求考核試卷
- 寧波九校高二上學期語文作文
- 烘爐設備維護與管理考核試卷
- GB/T 30727-2014固體生物質燃料發熱量測定方法
- GB/T 28731-2012固體生物質燃料工業分析方法
- 年度店長銷售工作總結5篇
- 中小學生學習心理問題與疏導課件
- 自然地理學-第五章-地貌精課件
- 《骨折概論》課件
- 暨南大學-蕭惠琳-畢業論文答辯PPT模板
- 數理統計(第三版)課后習題答案
- 工程竣工結算審計申請書
- (精選word)洪恩識字-生字卡片1-200
- CNC作業指導書及操作規范
評論
0/150
提交評論