第2章 AT89S51單片機的內(nèi)部結(jié)構_第1頁
第2章 AT89S51單片機的內(nèi)部結(jié)構_第2頁
第2章 AT89S51單片機的內(nèi)部結(jié)構_第3頁
第2章 AT89S51單片機的內(nèi)部結(jié)構_第4頁
第2章 AT89S51單片機的內(nèi)部結(jié)構_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1單片機原理及應用第2章AT89S51單片機的內(nèi)部結(jié)構12第2章AT89S51單片機的結(jié)構2.1AT89S51單片機的內(nèi)部結(jié)構2.2AT89S51單片機的引腳2.3AT89S51單片機的微處理器2.4AT89S51存儲器的結(jié)構2.5并行I/O端口2.6時鐘電路與時序2.7單片機的復位電路*2.8單片機的低功耗節(jié)電模式2內(nèi)容概要AT89S51的片內(nèi)硬件基本結(jié)構、引腳功能、存儲器結(jié)構、特殊功能寄存器功能、4個并行I/O口的結(jié)構和特點,復位電路和時鐘電路的設計,節(jié)電工作模式。3學習要求

本章學習,為AT89S51系統(tǒng)的應用設計打下基礎。在原理和結(jié)構上,單片機把微機的許多概念、技術與特點都繼承下來,可以用學習微機的思路來學習單片機。452.1AT89S51單片機的內(nèi)部結(jié)構片內(nèi)硬件組成結(jié)構如圖2-1所示。把作為控制應用所必需的基本功能部件都集成在一個尺寸有限的集成電路芯片上。有如下功能部件和特性:(1)8位微處理器(CPU);(2)數(shù)據(jù)存儲器(128BRAM);(3)程序存儲器(4KBFlashROM);(4)4個8位可編程并行I/O口(P0口、P1口、P2口、P3口);(5)1個全雙工的異步串行口;(6)2個可編程的16位定時器/計數(shù)器;單片機內(nèi)部結(jié)構56圖2-1

AT89S51單片機片內(nèi)結(jié)構67(7)1個看門狗定時器;(8)中斷系統(tǒng)具有5個中斷源、5個中斷向量;(9)特殊功能寄存器(SFR)26個;(10)低功耗模式有空閑模式和掉電模式,且具有掉電模式下的中斷恢復模式;(11)3個程序加密鎖定位。與AT89C51相比,AT89S51有更突出的優(yōu)點:(1)增加在線可編程功能ISP(InSystemProgram),字節(jié)和頁編程,現(xiàn)場程序調(diào)試和修改更加方便靈活;(2)數(shù)據(jù)指針增加到兩個,方便了對片外RAM的訪問過程;(3)增加了看門狗定時器,提高了系統(tǒng)的抗干擾能力;7(4)增加斷電標志;(5)增加掉電狀態(tài)下的中斷恢復模式。片內(nèi)各功能部件通過片內(nèi)單一總線連接而成(見圖2-1),基本結(jié)構依舊是CPU加上外圍芯片的傳統(tǒng)微機結(jié)構。CPU對各種功能部件的控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)的集中控制方式。下面介紹圖2-1中片內(nèi)各功能部件。(1)CPU(微處理器)

8位的CPU,與通用CPU基本相同,同樣包括了運算器和控制器兩大部分,還有面向控制的位處理功能。88(2)數(shù)據(jù)存儲器(RAM)片內(nèi)為128B(52子系列為256B),片外最多可擴64KB。片內(nèi)128B的RAM以高速RAM的形式集成,可加快單片機運行的速度和降低功耗。(3)程序存儲器(FlashROM)片內(nèi)集成有4KB的Flash存儲器(AT89S52則為8KB;AT89C55片內(nèi)20KB),如片內(nèi)容量不夠,片外可外擴至64KB。(4)中斷系統(tǒng)具有6個中斷源,2級中斷優(yōu)先權。(5)定時器/計數(shù)器2個16位定時器/計數(shù)器(52子系列有3個),4種工作方式。99(6)1個看門狗定時器WDT當CPU由于干擾使程序陷入死循環(huán)或跑飛時,WDT可使程序恢復正常運行。(7)串行口1個全雙工的異步串行口,4種工作方式??蛇M行串行通信,擴展并行I/O口,還可與多個單片機構成多機系統(tǒng)。(8)P1口、P2口、P3口、P0口4個8位并行I/O口。(9)特殊功能寄存器(SFR)26個,對片內(nèi)各功能部件管理、控制和監(jiān)視。是各個功能部件的控制寄存器和狀態(tài)寄存器,映射在片內(nèi)RAM區(qū)80H~FFH內(nèi)。1010小結(jié)及習題:

計算機中采用“存儲程序”的工作方式,即事先把程序加載到計算機中的存儲器中,當運行計算機后,計算機便自動進行工作,這是計算機的重要工作原理,這也是單片機的工作原理,了解單片機的內(nèi)部結(jié)構就必須了解單片機的基本工作原理。1、AT89S51系列單片機內(nèi)部有哪些主要部件各部分的作用是什么?2、AT89C51與AT89C52單片機的主要區(qū)別在哪里?112.2AT89S51的引腳功能 先了解引腳,牢記各引腳的功能。 AT89S51與51系列中各種型號芯片的引腳互相兼容。目前多采用40只引腳雙列直插,如圖2-2所示。 引腳按其功能可分為如下3類:(1)電源及時鐘引腳—VCC、VSS;XTAL1、XTAL2。(2)控制引腳—、ALE/、/VPP、RST(RESET)(3)I/O口引腳——P0、P1、P2、P3,為4個8位I/O口12122.2.1電源及時鐘引腳1.電源引腳(1)VCC(40腳):+5V電源。(2)VSS(20腳):數(shù)字地。13圖2-2

AT89S51雙列直插封裝方式的引腳132.時鐘引腳

(1)XTAL1(19腳):片內(nèi)振蕩器反相放大器和時鐘發(fā)生器電路輸入端。用片內(nèi)振蕩器時,該腳接外部石英晶體和微調(diào)電容。外接時鐘源時,該腳接外部時鐘振蕩器的信號。(2)XTAL2(18腳):片內(nèi)振蕩器反相放大器的輸出端。當使用片內(nèi)振蕩器,該腳連接外部石英晶體和微調(diào)電容。當使用外部時鐘源時,本腳懸空。2.2.2控制引腳(1)RST(RESET,9腳)復位信號輸入,在引腳加上持續(xù)時間大于2個機器周期的高電平,可使單片機復位。正常工作,此腳電平應≤0.5V。1414當看門狗定時器溢出輸出時,該腳將輸出長達96個時鐘振蕩周期的高電平。(2)/VPP(EnableAddress/VoltagePulseofPrograming,31腳) :引腳第一功能:外部程序存儲器訪問允許控制端。

=1,在PC值不超出0FFFH(即不超出片內(nèi)4KBFlash存儲器的地址范圍)時,單片機讀片內(nèi)程序存儲器(4KB)中的程序,但PC值超出0FFFH(即超出片內(nèi)4KBFlash地址范圍)時,將自動轉(zhuǎn)向讀取片外60KB(1000H-FFFFH)程序存儲器空間中的程序。15 =0,只讀取外部的程序存儲器中的內(nèi)容,讀取的地址范圍為0000H~FFFFH,片內(nèi)的4KBFlash程序存儲器不起作用。VPP:引腳第二功能,對片內(nèi)Flash編程,接編程電壓。(3)ALE/(AddressLatchEnable/PROGramming,30腳) ALE為CPU訪問外部程序存儲器或外部數(shù)據(jù)存儲器提供地址鎖存信號,將低8位地址鎖存在片外的地址鎖存器中。1616此外,單片機正常運行時,ALE端一直有正脈沖信號輸出,此頻率為時鐘振蕩器頻率fosc的1/6??捎米魍獠慷〞r或觸發(fā)信號。注意,每當AT89S51訪問外部RAM時(執(zhí)行MOVX類指令),要丟失一個ALE脈沖。如需要,可將特殊功能寄存器AUXR(地址為8EH,將在后面介紹)的第0位(ALE禁止位)置1,來禁止ALE操作,但執(zhí)行訪問外部程序存儲器或外部數(shù)據(jù)存儲器指令“MOVC”或“MOVX”時,ALE仍然有效。即ALE禁止位不影響對外部存儲器的訪問。

:引腳第二功能,對片內(nèi)Flash編程,為編程脈沖輸入腳。1717(4)(ProgramStrobeENable,29腳)片外程序存儲器讀選通信號,低電平有效。2.2.3并行I/O口引腳(1)P0口:8位,漏極開路的雙向I/O口當外擴存儲器及I/O接口芯片時,P0口作為低8位地址總線及數(shù)據(jù)總線的分時復用端口。P0口也可用作通用的I/O口,需加上拉電阻,這時為準雙向口。作為通用I/O輸入,應先向端口寫入1??沈?qū)動8個LS型TTL負載。(2)P1口:8位,準雙向I/O口,具有內(nèi)部上拉電阻。準雙向I/O口,作為通用I/O輸入時,應先向端口鎖存器寫1。1818P1口可驅(qū)動4個LS型TTL負載。P1.5/MOSI、P1.6/MISO和P1.7/SCK可用于對片內(nèi)Flash存儲器串行編程和校驗,它們分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。(3)P2口:8位,準雙向I/O口,具有內(nèi)部上拉電阻。當AT89S51擴展外部存儲器及I/O口時,P2口作為高8位地址總線用,輸出高8位地址。19P2口也可作為普通的I/O口使用。當作為通用I/O輸入時,應先向端口輸出鎖存器寫1。P2口可驅(qū)動4個LS型TTL負載。(4)P3口:8位,準雙向I/O口,具有內(nèi)部上拉電阻。 可作為通用的I/O口使用。作為通用I/O輸入,應先向端口輸出鎖存器寫入1??沈?qū)動4個LS型TTL負載。 P3口還可提供第二功能。第二功能定義見表2-1,應熟記。20202121綜上所述,P0口可作為總線口,為雙向口。作為通用的I/O口使用時,為準雙向口,這時需加上拉電阻。P1口、P2口、P3口均為準雙向口。注意:準雙向口與雙向口的差別。準雙向口僅有兩個狀態(tài)。而P0口作為總線使用,口線內(nèi)無上拉電阻,處于高阻“懸浮”態(tài)。故P0口為雙向三態(tài)I/O口。為什么P0口要有高阻“懸浮”態(tài)?準雙向I/O口則無高阻的“懸浮”狀態(tài)。另外,準雙向口作通用I/O的輸入口使用時,一定要向該口先寫入“1”。以上的準雙向口與雙向口的差別,讀者在閱讀2.5節(jié)后,將會有深刻的理解。22222.3AT89S51的微處理器由圖2-1可見,CPU由運算器和控制器構成。2.3.1運算器對操作數(shù)進行算術、邏輯和位操作運算。主要包括算術邏輯運算單元ALU、累加器A、位處理器、程序狀態(tài)字寄存器PSW及兩個暫存器等。1.算術邏輯運算單元ALU可對8位變量邏輯運算(與、或、異或、循環(huán)、求補和清零),還可算術運算(加、減、乘、除)2323ALU還有位操作功能,對位變量進行位處理,如置“1”、清“0”、求補、測試轉(zhuǎn)移及邏輯“與”、“或”等。2.累加器A使用最頻繁的寄存器,可寫為Acc?!癆”與“Acc”書寫上的差別,將在第3章介紹。作用如下:(1)ALU單元的輸入數(shù)據(jù)源之一,又是ALU運算結(jié)果存放單元。(2)數(shù)據(jù)傳送大多都通過累加器A,相當于數(shù)據(jù)的中轉(zhuǎn)站。為解決“瓶頸堵塞”問題,AT89S51增加了一部分可以不經(jīng)過累加器的傳送指令。2424A的進位標志Cy是特殊的,因為它同時又是位處理機的位累加器3.程序狀態(tài)字寄存器PSWPSW(ProgramStatusWord)位于片內(nèi)特殊功能寄存器區(qū),字節(jié)地址為D0H。包含了程序運行狀態(tài)的信息,其中4位保存當前指令執(zhí)行后的狀態(tài),供程序查詢和判斷。格式如圖2-3所示。

圖2-3PSW的格式2525PSW中各個位的功能:(1)Cy(PSW.7)進位標志位可寫為C。在算術和邏輯運算時,若有進位/借位,Cy=1;否則,Cy=0。在位處理器中,它是位累加器。(2)Ac(PSW.6)輔助進位標志位在BCD碼運算時,用作十進位調(diào)整。即當D3位向D4位產(chǎn)生進位或借位時,Ac=1;否則,Ac=0。(3)F0(PSW.5)用戶設定標志位由用戶使用的一個狀態(tài)標志位,可用指令來使它置1或清0,控制程序的流向。用戶應充分利用。2626(4)RS1、RS0(PSW.4、PSW.3)4組工作寄存器區(qū)選擇 選擇片內(nèi)RAM區(qū)中的4組工作寄存器區(qū)中的某一組為當前工作寄存區(qū)見表2-2。(5)OV(PSW.2)溢出標志位 當執(zhí)行算術指令時,用來指示運算結(jié)果是否產(chǎn)生溢出。如果結(jié)果產(chǎn)生溢出,OV=1;否則,OV=0。(6)PSW.1位保留位(7)P(PSW.0)奇偶標志位

指令執(zhí)行完,累加器A中“1”的個數(shù)是奇數(shù)還是偶數(shù)。2727P=1,表示A中“1”的個數(shù)為奇數(shù)。

P=0,表示A中“1”的個數(shù)為偶數(shù)。

此標志位對串行通信有重要的意義,常用奇偶檢驗的方法來檢驗數(shù)據(jù)串行傳輸?shù)目煽啃浴?/p>

2828292.3.2控制器任務識別指令,并根據(jù)指令的性質(zhì)控制單片機各功能部件,從而保證單片機各部分能自動協(xié)調(diào)地工作??刂破靼ǎ撼绦蛴嫈?shù)器、指令寄存器、指令譯碼器、定時及控制邏輯電路等。功能是控制指令的讀入、譯碼和執(zhí)行,從而對各功能部件進行定時和邏輯控制。程序計數(shù)器PC是一個獨立的16位計數(shù)器,不可訪問。單片機復位時,PC中內(nèi)容為0000H,從程序存儲器0000H單元取指令,開始執(zhí)行程序。PC工作過程是:CPU讀指令時,PC的內(nèi)容作為所取指令的地址,程序存儲器按此地址輸出指令字節(jié),同時PC自動加1。29PC中內(nèi)容變化軌跡決定程序流程。當順序執(zhí)行程序時自動加1;執(zhí)行轉(zhuǎn)移程序或子程序、中斷子程序調(diào)用時,自動將其內(nèi)容更改成所要轉(zhuǎn)移的目的地址。PC的計數(shù)寬度決定了程序存儲器的地址范圍。PC為16位,故可對64KB(=216B)尋址。3030小結(jié)及習題:

中央處理器CPU是單片機內(nèi)部的核心部件,它決定了單片機的指令系統(tǒng)及主要功能,CPU主要由運算器和控制器倆部分組成,控制器的功能較為復雜,在本章中只做原理介紹,不介紹內(nèi)部具體的工作流程。1、什么是ALU?簡述AT89S51系列單片機ALU的功能與特點。2、程序狀態(tài)字PSW包含哪些程序狀態(tài)信息?這些狀態(tài)信息的作用是什么?3、決定程序執(zhí)行順序的寄存器是哪個?它是幾位寄存器?它是不是特殊功能寄存器?

312.4AT89S51存儲器的結(jié)構

存儲器的結(jié)構特點之一是將程序存儲器和數(shù)據(jù)存儲器分開(哈佛結(jié)構),并有各自的訪問指令。存儲器空間可分為4類。321.程序存儲器空間片內(nèi)和片外兩部分。片內(nèi)4KBFlash,編程和擦除完全是電氣實現(xiàn)??捎猛ㄓ镁幊唐鲗ζ渚幊?,也可在線編程。當片內(nèi)4KBFlash存儲器不夠用時,可片外擴展,最多可擴展至64KB程序存儲器。2.數(shù)據(jù)存儲器空間

片內(nèi)與片外兩部分。

片內(nèi)有128BRAM(52子系列為256B)。 片內(nèi)RAM不夠用時,在片外可擴展至64KBRAM。33333.特殊功能寄存器SFR(SpecialFunctionRegister)片內(nèi)各功能部件的控制寄存器及狀態(tài)寄存器。SFR綜合反映了整個單片機基本系統(tǒng)內(nèi)部實際的工作狀態(tài)及工作方式。4.位地址空間共有211個可尋址位,構成了位地址空間。它們位于內(nèi)部RAM(共128位)和特殊功能寄存器區(qū)(共83位)中。2.4.1程序存儲器空間存放程序和表格之類的固定常數(shù)。片內(nèi)為4KB的Flash,地址為0000H~0FFFH。16位地址線,可外擴的程序存儲器空間最大為64KB,地址為0000H~FFFFH。使用時應注意以下問題:34程序存儲器34(1)分為片內(nèi)和片外兩部分,訪問片內(nèi)的還是片外的程序存儲器,由引腳電平確定。

=1時,CPU從片內(nèi)0000H開始取指令,當PC值沒有超出0FFFH時,只訪問片內(nèi)Flash存儲器,當PC值超出0FFFH自動轉(zhuǎn)向讀片外程序存儲器空間1000H~FFFFH內(nèi)的程序。=0時,只能執(zhí)行片外程序存儲器(0000H~FFFFH)中的程序。不理會片內(nèi)4KBFlash存儲器。(2)程序存儲器某些固定單元用于各中斷源中斷服務程序入口。35353664KB程序存儲器空間中有5個特殊單元分別對應于5個中斷源的中斷入口地址,見表2-3。通常這5個中斷入口地址處都放一條跳轉(zhuǎn)指令跳向?qū)闹袛喾兆映绦?,而不是直接存放中斷服務子程序?62.4.2數(shù)據(jù)存儲器空間片內(nèi)與片外兩部分。1.片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器(RAM)共128個單元,字節(jié)地址為00H~7FH。圖2-4為片內(nèi)數(shù)據(jù)存儲器的結(jié)構。37圖2-4AT89S51片內(nèi)RAM結(jié)構數(shù)據(jù)存儲器3700H~1FH的32個單元是4組通用工作寄存器區(qū),每區(qū)包含8B,為R7~R0??赏ㄟ^指令改變RS1、RS0兩位來選擇。20H~2FH的16個單元的128位可位尋址,也可字節(jié)尋址。30H~7FH的單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。2.片外數(shù)據(jù)存儲器當片內(nèi)128B的RAM不夠用時,需外擴,最多可外擴64KB的RAM。注意,片內(nèi)RAM與片外RAM兩個空間是相互獨立的,片內(nèi)RAM與片外RAM的低128B的地址是相同的,但由于使用的是不同的訪問指令,所以不會發(fā)生沖突。38382.4.3特殊功能寄存器(SFR)采用特殊功能寄存器集中控制各功能部件。特殊功能寄存器映射在片內(nèi)RAM的80H~FFH區(qū)域中,共26個。表2-4SFR的名稱及其分布。有些還可位尋址,位地址見表2-4。與AT89C51相比,新增5個SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST,已在表2-4中標出。凡是可位尋址的SFR,字節(jié)地址末位只能是0H或8H。另外,若讀/寫未定義單元,將得到一個不確定的隨機數(shù)。下面介紹某些SFR,余下的SFR將在后面介紹。39394040411.堆棧指針SP指示堆棧頂部在內(nèi)部RAM塊中的位置。堆棧結(jié)構—向上生長型。單片機復位后,SP為07H,使得堆棧實際上從08H單元開始,由于08H~1FH單元分別是屬于1~3組的工作寄存器區(qū),最好在復位后把SP值改置為60H或更大的值,避免堆棧與工作寄存器沖突。堆棧是為子程序調(diào)用和中斷操作而設,主要用來保護斷點和現(xiàn)場。(1)保護斷點。無論是子程序調(diào)用操作還是中斷服務子程序調(diào)用,最終都要返回主程序。應預先把主程序的斷點在堆棧中保護起來,為程序正確返回做準備。4242(2)現(xiàn)場保護。執(zhí)行子程序或中斷服務子程序時,要用到一些寄存器單元,會破壞原有內(nèi)容。要把有關寄存器單元的內(nèi)容保存起來,送入堆棧,這就是所謂的“現(xiàn)場保護”。兩種操作:數(shù)據(jù)壓入(PUSH)堆棧,數(shù)據(jù)彈出(POP)堆棧。數(shù)據(jù)壓入堆棧,SP自動加1;數(shù)據(jù)彈出堆棧,SP自動減1。2.寄存器B為執(zhí)行乘法和除法而設。在不執(zhí)行乘、除法操作的情況下,可把它當作一個普通寄存器來使用。434344乘法,兩乘數(shù)分別在A、B中,執(zhí)行乘法指令后,乘積在BA中除法,被除數(shù)取自A,除數(shù)取自B,商存放在A中,余數(shù)存B中。3.AUXR寄存器AUXR是輔助寄存器,其格式如圖2-5所示:圖2-5

AUXR寄存器的格式4445其中: DISALE:ALE的禁止/允許位。

0:ALE有效,發(fā)出脈沖;

1:ALE僅在執(zhí)行MOVC和MOVX類指令時有效,不訪問外部存儲器時,ALE不輸出脈沖信號。

DISRTO:禁止/允許WDT溢出時的復位輸出。

0:WDT溢出時,在RST引腳輸出一個高電平脈沖;

1:RST引腳僅為輸入腳。 WDIDLE:WDT在空閑模式下的禁止/允許位。

0:WDT在空閑模式下繼續(xù)計數(shù);

1:WDT在空閑模式下暫停計數(shù)。。45464.數(shù)據(jù)指針DPTR0和DPTR1雙數(shù)據(jù)指針寄存器,便于訪問數(shù)據(jù)存儲器。DPTR0:AT89C51單片機原有的數(shù)據(jù)指針;DPTR1:新增加的數(shù)據(jù)指針。AUXR1的DPS位用于選擇兩個數(shù)據(jù)指針。當DPS=0時,選用DPTR0;當DPS=1時,選用DPTR1。數(shù)據(jù)指針可作為一個16位寄存器來用,也可作為兩個獨立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)來用。46475.AUXR1寄存器AUXR1是輔助寄存器,格式如圖2-6所示:DPS:數(shù)據(jù)指針寄存器選擇位。

0:選擇數(shù)據(jù)指針寄存器DPTR0;

1:選擇數(shù)據(jù)指針寄存器DPTR1。圖2-6

AUXR1寄存器的格式476.看門狗定時器WDTWDT包含一個14位計數(shù)器和看門狗定時器復位寄存器——(WDTRST)。當CPU由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時,WDT提供了一種使程序恢復正常運行的有效手段。有關WDT在抗干擾設計中的應用以及低功耗模式下運行的狀態(tài),將在相應的章節(jié)中具體介紹。上面介紹的特殊功能寄存器,除了前兩個SP和B以外,其余的均為AT89S51在AT89C51基礎上新增加的SFR。48482.4.4位地址空間211個尋址位的位地址,位地址范圍為00H~FFH,其中00H~7FH這128位處于片內(nèi)RAM字節(jié)地址20H~2FH單元中,如表2-5所示。其余的83個可尋址位分布在特殊功能寄存器SFR中,見表2-6。可被位尋址的特殊寄存器有11個,共有位地址88個,5個位未用,其余83個位的位地址離散地分布于片內(nèi)數(shù)據(jù)存儲器區(qū)字節(jié)地址為80H~FFH的范圍內(nèi),其最低的位地址等于其字節(jié)地址,且其字節(jié)地址的末位都為0H或8H。49495051表2-6SFR中的位地址分布51作為對AT89S51存儲器結(jié)構的總結(jié),圖2-7為各類存儲器的結(jié)構圖。從圖中可清楚看出各類存儲器在存儲器空間的位置。52圖2-7AT89S51單片機的存儲器結(jié)構單片機存儲器52小結(jié)及習題:在51系列單片機片內(nèi)有若干特殊功能寄存器,如SP、DPTR的功能都很重要,要了解單片機的存儲器的結(jié)構的特點。在計算機中,存儲器是個十分重要的部分,單片機的存儲器結(jié)構的特點是我們在學習中需要重點掌握的內(nèi)容。1、堆棧有哪些功能?堆棧寄存器(SP)的作用是什么?在程序設計時,為什么要對SP重新賦值。2、簡述51單片機片內(nèi)RAM區(qū)地址空間的分配特點及各部分的作用532.5AT89S51的并行I/O端口4個雙向的8位并行I/O端口,分別記為P0、P1、P2和P3,其中輸出鎖存器屬于特殊功能寄存器。端口的每一位均由輸出鎖存器、輸出驅(qū)動器和輸入緩沖器組成,4個端口按字節(jié)輸入/輸出外,也可位尋址。2.5.1P0口P0口是一個雙功能的8位并行端口,字節(jié)地址為80H,位地址為80H~87H。端口的各位具有完全相同但又相互獨立的電路結(jié)構,P0口某一位的位電路結(jié)構如圖2-8所示。545455圖2-8P0口某一位的位電路結(jié)構551.位電路結(jié)構P0口某一位的電路包括:(1)一個數(shù)據(jù)輸出的鎖存器,用于數(shù)據(jù)位的鎖存。(2)兩個三態(tài)的數(shù)據(jù)輸入緩沖器,分別是用于讀鎖存器數(shù)據(jù)的輸入緩沖器BUF1和讀引腳數(shù)據(jù)的輸入緩沖器BUF2。(3)一個多路轉(zhuǎn)接開關MUX,它的一個輸入來自鎖存器的端,另一個輸入為地址/數(shù)據(jù)信號的反相輸出。MUX由“控制”信號控制,實現(xiàn)鎖存器的輸出和地址/數(shù)據(jù)信號之間的轉(zhuǎn)接。(4)數(shù)據(jù)輸出的控制和驅(qū)動電路,由兩個場效應管(FET)組成。56562.工作過程分析(1)P0口用作地址/數(shù)據(jù)總線外擴存儲器或I/O時,P0口作為單片機系統(tǒng)復用的地址/數(shù)據(jù)總線使用。當作為地址或數(shù)據(jù)輸出時,“控制”信號為1,硬件自動使轉(zhuǎn)接開關MUX打向上面,接通反相器的輸出,同時使與門處于開啟狀態(tài)。當輸出的地址/數(shù)據(jù)信息為1時,與門輸出為1,上方的場效應管導通,下方的場效應管截止,P0.x引腳輸出為1;當輸出的地址/數(shù)據(jù)信息為0時,上方的場效應管截止,下方的場效應管導通,P0.x引腳輸出為0。5757輸出電路是上、下兩個場效應管形成的推拉式結(jié)構,大大提高了負載能力,上方的場效應管這時起到內(nèi)部上拉電阻的作用。當P0口作為數(shù)據(jù)輸入時,僅從外部存儲器(或I/O)讀入信息,對應的“控制”信號為0,MUX接通鎖存器的端。由于P0口作為地址/數(shù)據(jù)復用方式訪問外部存儲器時,CPU自動向P0口寫入FFH,使下方場效應管截止,上方場效應管由于控制信號為0也截止,從而保證數(shù)據(jù)信息的高阻抗輸入,從外部存儲器輸入的數(shù)據(jù)信息直接由P0.x引腳通過輸入緩沖器BUF2進入內(nèi)部總線。58具有高阻抗輸入的I/O口應具有高電平、低電平和高阻抗3種狀態(tài)的端口。因此,P0口作為地址/數(shù)據(jù)總線使用時是一個真正的雙向端口,簡稱雙向口。(2)P0口用作通用I/O口當P0口不作為系統(tǒng)的地址/數(shù)據(jù)總線使用時,此時P0口也可作為通用的I/O口使用。作通用的I/O口時,對應的“控制”信號為0,MUX打向下面,接通鎖存器的端,“與門”輸出為0,上方場效應管截止,形成的P0口輸出電路為漏極開路輸出。P0口作輸出口時,來自CPU的“寫”脈沖加在D鎖存器的CP端,內(nèi)部總線上的數(shù)據(jù)寫入D鎖存器,并由引腳P0.x輸出。5959當D鎖存器為1時,端為0,下方場效應管截止,輸出為漏極開路,此時,必須外接上拉電阻才能有高電平輸出;當D鎖存器為0時,下方場效應管導通,P0口輸出為低電平。P0口作輸入口使用時,有兩種讀入方式:“讀鎖存器”和“讀引腳”。當CPU發(fā)出“讀鎖存器”指令時,鎖存器的狀態(tài)由Q端經(jīng)上方的三態(tài)緩沖器BUF1進入內(nèi)部總線;當CPU發(fā)出“讀引腳”指令時,鎖存器的輸出狀態(tài)=1(即端為0),而使下方場效應管截止,引腳的狀態(tài)經(jīng)下方的三態(tài)緩沖器BUF2進入內(nèi)部總線。60603.P0口的特點P0口為雙功能口——地址/數(shù)據(jù)復用口和通用I/O口。(1)當P0口用作地址/數(shù)據(jù)復用口時,是一個真正的雙向口,輸出低8位地址和輸出/輸入8位數(shù)據(jù)。(2)當P0口用作通用I/O口時,由于需要在片外接上拉電阻,端口不存在高阻抗(懸浮)狀態(tài),因此是一個準雙向口。為保證引腳信號的正確讀入,應首先向鎖存器寫1。單片機復位后,鎖存器自動被置1;當P0口由原來輸出轉(zhuǎn)變?yōu)檩斎霑r,應先置鎖存器為1,方可執(zhí)行輸入操作。61P0口61P0口大多作為地址/數(shù)據(jù)復用口使用,就不能再作為通用I/O口使用。2.5.2P1口單功能的I/O口,字節(jié)地址為90H,位地址為90H~97H。P1口某一位的位電路結(jié)構如圖2-9所示。1.位電路結(jié)構P1口位電路結(jié)構由以下三部分組成:(1)一個數(shù)據(jù)輸出鎖存器,用于輸出數(shù)據(jù)位的鎖存。6262圖2-9

P1口某一位的位電路結(jié)構63(2)兩個三態(tài)的數(shù)據(jù)輸入緩沖器BUF1和BUF2,分別用于讀鎖存器數(shù)據(jù)和讀引腳數(shù)據(jù)的輸入緩沖。(3)數(shù)據(jù)輸出驅(qū)動電路,由一個場效應管(FET)和一個片內(nèi)上拉電阻組成。2.工作過程分析P1口只能作為通用的I/O口使用。(1)P1口作輸出口時,若CPU輸出1,Q=1,=0,場效應管截止,P1口引腳的輸出為1;若CPU輸出0,Q=0,=1,場效應管導通,P1口引腳的輸出為0。64P1口64(2)P1口作為輸入口時,分為“讀鎖存器”和“讀引腳”兩種方式?!白x鎖存器”時,鎖存器的輸出端Q的狀態(tài)經(jīng)輸入緩沖器BUF1進入內(nèi)部總線;“讀引腳”時,先向鎖存器寫1,使場效應管截止,P1.x引腳上的電平經(jīng)輸入緩沖器BUF2進入內(nèi)部總線。3.P1口的特點由于內(nèi)部上拉電阻,無高阻抗輸入狀態(tài),故為準雙向口。P1口“讀引腳”輸入時,必須先向鎖存器寫入1。2.5.3P2口雙功能口,字節(jié)地址為A0H,位地址為A0H~A7H。P2口某一位的位電路結(jié)構如圖2-10所示。656566圖2-10P2口某一位的位電路結(jié)構661.位電路結(jié)構P2口某一位的電路包括:(1)一個數(shù)據(jù)輸出鎖存器,用于輸出數(shù)據(jù)位的鎖存。(2)兩個三態(tài)數(shù)據(jù)輸入緩沖器BUF1和BUF2,分別用于讀鎖存器數(shù)據(jù)和讀引腳數(shù)據(jù)的輸入緩沖。(3)一個多路轉(zhuǎn)接開關MUX,一個輸入是鎖存器的Q端,另一個輸入是高8位地址。(4)輸出驅(qū)動電路,由場效應管(FET)和內(nèi)部上拉電阻組成。67672.工作過程分析(1)P2口用作地址總線在控制信號作用下,MUX與“地址”接通。當“地址”為0時,場效應管導通,P2口引腳輸出為0;當“地址”線為1時,場效應管截止,P2口引腳輸出1。(2)P2口用作通用I/O口在內(nèi)部控制信號作用下,MUX與鎖存器的Q端接通。CPU輸出1時,Q=1,場效應管截止,P2.x引腳輸出1;

CPU輸出0時,Q=0,場效應管導通,P2.x引腳輸出0。68

P2口輸入時,分“讀鎖存器”和“讀引腳”兩種方式:“讀鎖存器”時,Q端信號經(jīng)輸入緩沖器BUF1進入內(nèi)部總線“讀引腳”時,先向鎖存器寫1,使場效應管截止,P2.x引腳上的電平經(jīng)輸入緩沖器BUF2進入內(nèi)部總線。3.P2口的特點作為地址輸出線時,P2口高8位地址,P0口輸出的低8位地址尋址64KB地址空間。作為通用I/O口時,P2口為準雙向口。功能與P1口一樣。一般情況下,P2口大多作為高8位地址總線口使用,這時就不能再作為通用I/O口。6969

2.5.4P3口由于引腳數(shù)目有限,在P3口增加了第二功能。每1位都可以分別定義為第二輸入功能或第二輸出功能。P3口字節(jié)地址為B0H,位地址B0H~B7H。P3口某一位的位電路結(jié)構見圖2-11。1.位電路結(jié)構P3口某一位的電路包括:(1)1個數(shù)據(jù)輸出鎖存器,鎖存輸出數(shù)據(jù)位。(2)3個三態(tài)數(shù)據(jù)輸入緩沖器BUF1、BUF2和BUF3,分別用于讀鎖存器、讀引腳數(shù)據(jù)和第二功能數(shù)據(jù)的輸入緩沖。(3)輸出驅(qū)動,由與非門、場效應管(FET)和內(nèi)部上拉電阻組成。707071圖2-11

P3口某一位的位電路結(jié)構712.工作過程分析(1)P3口用作第二輸入/輸出功能當選擇第二輸出功能時,該位的鎖存器需要置1,使與非門為開啟狀態(tài)。當?shù)诙敵鰹?時,場效應管截止,P3.x引腳輸出為1;當?shù)诙敵鰹?時,場效應管導通,P3.x引腳輸出為0。當選擇第二輸入功能時,該位的鎖存器和第二輸出功能端均應置1,保證場效應管截止,P3.x引腳的信息由輸入緩沖器BUF3的輸出獲得。7272(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進入內(nèi)部總線,完成“讀引腳”操作。當P3口第一功能通用輸入時,也可執(zhí)行“讀鎖存器”操作,此時Q端信息經(jīng)過緩沖器BUF1進入內(nèi)部總線。73733.P3口的特點P3口內(nèi)部有上拉電阻,無高阻抗輸入態(tài)-準雙向口。P3口作為第二功能的輸出/輸入,或第一功能通用輸入,均須將相應位的鎖存器置1。實際應用中,由于復位后P3口鎖存器自動置1,滿足第二功能所需的條件,所以不需任何設置工作,就可以進入第二功能操作。當某位不作為第二功能用時,可作為第一功能通用I/O使用。引腳輸入部分有兩個緩沖器,第二功能的輸入信號取自緩沖器BUF3的輸出端,第一功能的輸入信號取自緩沖器BUF2的輸出端。

7474P3口的第二功能定義見表2-1,讀者應熟記。2.5.5P1~P3口驅(qū)動LED發(fā)光二極管下面討論P1~P3口與LED發(fā)光二極管的驅(qū)動連接問題。P0口與P1、P2、P3口相比,P0口的驅(qū)動能力較大,每位可驅(qū)動8個LSTTL輸入,而P1、P2、P3口的每一位的驅(qū)動能力,只有P0口的一半。當P0口某位為高電平時,可提供400

A的電流;當P0口某位為低電平(0.45V)時,可提供3.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論