第2章 硬件結(jié)構(gòu)課件_第1頁(yè)
第2章 硬件結(jié)構(gòu)課件_第2頁(yè)
第2章 硬件結(jié)構(gòu)課件_第3頁(yè)
第2章 硬件結(jié)構(gòu)課件_第4頁(yè)
第2章 硬件結(jié)構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章AT89S51單片機(jī)

硬件結(jié)構(gòu)

1第2章硬件結(jié)構(gòu)內(nèi)容概要AT89S51片內(nèi)硬件基本結(jié)構(gòu)、引腳功能、存儲(chǔ)器結(jié)構(gòu)、特殊功能寄存器功能、4個(gè)并行I/O口的結(jié)構(gòu)和特點(diǎn),復(fù)位電路和時(shí)鐘電路的設(shè)計(jì),節(jié)電工作模式。目的:為AT89S51系統(tǒng)的應(yīng)用設(shè)計(jì)打下基礎(chǔ)。在原理和結(jié)構(gòu)上,單片機(jī)把微機(jī)的許多概念、技術(shù)與特點(diǎn)都繼承下來(lái)。用學(xué)習(xí)微機(jī)的思路來(lái)學(xué)習(xí)單片機(jī)。2第2章硬件結(jié)構(gòu)2.1AT89S51單片機(jī)的硬件組成片內(nèi)結(jié)構(gòu)如圖2-1所示。把作為控制應(yīng)用所必需的基本功能部件都集成在一個(gè)集成電路芯片上。有如下功能部件和特性:(1)8位微處理器(CPU);(2)數(shù)據(jù)存儲(chǔ)器(128BRAM);(3)程序存儲(chǔ)器(4KBFlashROM);(4)4個(gè)8位可編程并行I/O口(P0口、P1口、P2口、P3口);(5)1個(gè)全雙工的異步串行口;(6)2個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器;3第2章硬件結(jié)構(gòu)圖2-1AT89S51單片機(jī)片內(nèi)結(jié)構(gòu)4第2章硬件結(jié)構(gòu)(7)1個(gè)看門狗定時(shí)器;(8)中斷系統(tǒng)具有5個(gè)中斷源、5個(gè)中斷向量;(9)特殊功能寄存器(SFR)26個(gè);(10)低功耗模式有空閑模式和掉電模式,且具有掉電模式下的中斷恢復(fù)模式;(11)3個(gè)程序加密鎖定位;與AT89C51比,AT89S51更突出的優(yōu)點(diǎn):(1)增加在線可編程功能ISP(InSystemProgram),字節(jié)和頁(yè)編程,現(xiàn)場(chǎng)程序調(diào)試和修改更加方便靈活;(2)數(shù)據(jù)指針增加到兩個(gè),方便了對(duì)片外RAM的訪問(wèn)過(guò)程;(3)增加了看門狗定時(shí)器,提高了系統(tǒng)的抗干擾能力;5第2章硬件結(jié)構(gòu)(4)增加斷電標(biāo)志;(5)增加掉電狀態(tài)下的中斷恢復(fù)模式;片內(nèi)的各功能部件通過(guò)片內(nèi)單一總線連接而成(見(jiàn)圖2-1),基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)微機(jī)結(jié)構(gòu)。CPU對(duì)各種功能部件的控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)的集中控制方式。介紹圖2-1中片內(nèi)各功能部件。(1)CPU(微處理器)8位的CPU,與通用CPU基本相同,包括了運(yùn)算器和控制器兩大部分,還有面向控制的位處理功能。6第2章硬件結(jié)構(gòu)(2)數(shù)據(jù)存儲(chǔ)器(RAM)片內(nèi)為128B(52子系列為256B),片外最多可擴(kuò)64KB。(3)程序存儲(chǔ)器(FlashROM)片內(nèi)集成有4KB的Flash存儲(chǔ)器(AT89S52則為8KB;AT89C55片內(nèi)20KB),如片內(nèi)容量不夠,片外可外擴(kuò)至64KB。(4)中斷系統(tǒng)具有6個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。(5)定時(shí)器/計(jì)數(shù)器2個(gè)16位定時(shí)器/計(jì)數(shù)器(52子系列有3個(gè)),4種工作方式。7第2章硬件結(jié)構(gòu)(6)1個(gè)看門狗定時(shí)器WDT當(dāng)CPU由于干擾使程序陷入死循環(huán)或跑飛時(shí),WDT可使程序恢復(fù)正常運(yùn)行。(7)串行口1個(gè)全雙工的異步串行口,4種工作方式??蛇M(jìn)行串行通信,擴(kuò)展并行I/O口,還可與多個(gè)單片機(jī)構(gòu)成多機(jī)系統(tǒng)。(8)P0、口P1口、P2口和P3口4個(gè)8位并行I/O口。(9)特殊功能寄存器(SFR)26個(gè),對(duì)片內(nèi)各功能部件管理、控制和監(jiān)視。是各個(gè)功能部件的控制寄存器和狀態(tài)寄存器,映射在片內(nèi)RAM區(qū)80H~FFH內(nèi)。8第2章硬件結(jié)構(gòu)AT89S51完全兼容AT89C51,在充分保留原來(lái)軟、硬件條件下,完全可以用AT89S51直接代換。2.2AT89S51的引腳功能 先了解引腳,牢記各引腳的功能。 AT89S51與51系列中各種型號(hào)芯片的引腳互相兼容。目前多采用40只引腳雙列直插,如圖2-2。此外,還有44引腳的PLCC和TQFP封裝方式的芯片。 引腳按其功能可分為如下3類:(1)電源及時(shí)鐘引腳—VCC、VSS;XTAL1、XTAL2。(2)控制引腳—PSEN*、ALE/PROG*、EA*/VPP、RST(RESET)(3)I/O口引腳——P0、P1、P2、P3,為4個(gè)8位I/O口9第2章硬件結(jié)構(gòu)2.2.1電源及時(shí)鐘引腳1.電源引腳(1)VCC(40腳):+5V電源。(2)VSS(20腳):數(shù)字地。圖2-2AT89S51雙列直插封裝方式的引腳10第2章硬件結(jié)構(gòu)2.時(shí)鐘引腳

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

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

片外程序存儲(chǔ)器讀選通信號(hào),低有效。2.2.3并行I/O口引腳(1)P0口:8位,漏極開(kāi)路的雙向I/O口當(dāng)外擴(kuò)存儲(chǔ)器及I/O接口芯片時(shí),P0口作為低8位地址總線及數(shù)據(jù)總線的分時(shí)復(fù)用端口。P0口也可作通用的I/O口用,需加上拉電阻,這時(shí)為準(zhǔn)雙向口。作為通用I/O輸入,應(yīng)先向端口寫入1??沈?qū)動(dòng)8個(gè)LS型TTL負(fù)載。(2)P1口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。準(zhǔn)雙向I/O口,作為通用I/O輸入時(shí),應(yīng)先向端口鎖存器寫115第2章硬件結(jié)構(gòu)P1口可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P1.5/MOSI、P1.6/MISO和P1.7/SCK可用于對(duì)片內(nèi)Flash存儲(chǔ)器串行編程和校驗(yàn),它們分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。(3)P2口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。當(dāng)AT89S51擴(kuò)展外部存儲(chǔ)器及I/O口時(shí),P2口作為高8位地址總線用,輸出高8位地址。第2章硬件結(jié)構(gòu)P2口也可作為普通的I/O口使用。當(dāng)作為通用I/O輸入時(shí),應(yīng)先向端口輸出鎖存器寫1。P2口可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。(4)P3口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻??勺鳛橥ㄓ玫腎/O口使用。作為通用I/O輸入,應(yīng)先向端口輸出鎖存器寫入1??沈?qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口還可提供第二功能。第二功能定義如表2-1,應(yīng)熟記。17第2章硬件結(jié)構(gòu)18第2章硬件結(jié)構(gòu)綜上所述,P0口可作為總線口,為雙向口。作為通用的I/O口使用時(shí),為準(zhǔn)雙向口,這時(shí)需加上拉電阻。P1口、P2口、P3口均為準(zhǔn)雙向口。注意:準(zhǔn)雙向口與雙向口的差別。準(zhǔn)雙向口僅有兩個(gè)狀態(tài)。而P0口作為總線使用,口線內(nèi)無(wú)上拉電阻,處于高阻“懸浮”態(tài)。故P0口為雙向三態(tài)I/O口。為什么P0口要有高阻“懸浮”態(tài)?準(zhǔn)雙向I/O口則無(wú)高阻的“懸浮”狀態(tài)。另外,準(zhǔn)雙向口作通用I/O的輸入口使用時(shí),一定要向該口先寫入“1”。以上的準(zhǔn)雙向口與雙向口的差別,讀者在學(xué)習(xí)第4章后,將會(huì)有深刻的理解。19第2章硬件結(jié)構(gòu)至此,40只引腳已介紹,應(yīng)熟記每一引腳功能,對(duì)應(yīng)用系統(tǒng)硬件電路設(shè)計(jì)十分重要。2.3AT89S51的CPU由圖2-1可見(jiàn),由運(yùn)算器和控制器構(gòu)成的。2.3.1運(yùn)算器對(duì)操作數(shù)進(jìn)行算術(shù)、邏輯和位操作運(yùn)算。主要包括算術(shù)邏輯運(yùn)算單元ALU、累加器A、位處理器、程序狀態(tài)字寄存器PSW及兩個(gè)暫存器等。1.算術(shù)邏輯運(yùn)算單元ALU可對(duì)8位變量邏輯運(yùn)算(與、或、異或、循環(huán)、求補(bǔ)和清零),還可算術(shù)運(yùn)算(加、減、乘、除)20第2章硬件結(jié)構(gòu)ALU還有位操作功能,對(duì)位變量進(jìn)行位處理,如置“1”、清“0”、求補(bǔ)、測(cè)試轉(zhuǎn)移及邏輯“與”、“或”等。2.累加器A累加器A是CPU中使用最頻繁的一個(gè)8位寄存器,在使用匯編語(yǔ)言編程時(shí),有些場(chǎng)合必須寫為Acc。作用如下:(1)ALU單元的輸入數(shù)據(jù)源之一,又是ALU運(yùn)算結(jié)果存放單元(2)數(shù)據(jù)傳送大多都通過(guò)累加器A,相當(dāng)于數(shù)據(jù)的中轉(zhuǎn)站。為解決“瓶頸堵塞”問(wèn)題,AT89S51增加了一部分可以不經(jīng)過(guò)累加器的傳送指令。21第2章硬件結(jié)構(gòu)A的進(jìn)位標(biāo)志Cy是特殊的,因?yàn)樗瑫r(shí)又是位處理機(jī)的位累加器3.程序狀態(tài)字寄存器PSWPSW(ProgramStatusWord)位于片內(nèi)特殊功能寄存器區(qū),字節(jié)地址為D0H。包含了程序運(yùn)行狀態(tài)的信息,其中4位保存當(dāng)前指令執(zhí)行后的狀態(tài),供程序查詢和判斷。格式如圖2-3。

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

指令執(zhí)行完,累加器A中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù)。24第2章硬件結(jié)構(gòu)P=1,表示A中“1”的個(gè)數(shù)為奇數(shù)。

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

此標(biāo)志位對(duì)串行通信有重要的意義,常用奇偶檢驗(yàn)的方法來(lái)檢驗(yàn)數(shù)據(jù)串行傳輸?shù)目煽啃浴?/p>

表2-2RS1、RS0與4組工作寄存器區(qū)的對(duì)應(yīng)關(guān)系RS1RS0所選的4組寄存器000區(qū)(內(nèi)部RAM地址00H~07H)011區(qū)(內(nèi)部RAM地址08H~0FH)102區(qū)(內(nèi)部RAM地址10H~17H)113區(qū)(內(nèi)部RAM地址18H~1FH)25第2章硬件結(jié)構(gòu)2.3.2控制器 任務(wù)識(shí)別指令,并根據(jù)指令的性質(zhì)控制單片機(jī)各功能部件,從而保證單片機(jī)各部分能自動(dòng)協(xié)調(diào)地工作。 控制器包括:程序計(jì)數(shù)器、指令寄存器、指令譯碼器、定時(shí)及控制邏輯電路等。功能是控制指令的讀入、譯碼和執(zhí)行,從而對(duì)各功能部件進(jìn)行定時(shí)和邏輯控制。 程序計(jì)數(shù)器PC是一個(gè)獨(dú)立的16位計(jì)數(shù)器,不可訪問(wèn)。單片機(jī)復(fù)位時(shí),PC中的內(nèi)容為0000H,從程序存儲(chǔ)器0000H單元取指令,開(kāi)始執(zhí)行程序。 PC工作過(guò)程是:CPU讀指令時(shí),PC的內(nèi)容作為所取指令的地址,程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)PC自動(dòng)加1。26第2章硬件結(jié)構(gòu)PC中內(nèi)容變化軌跡決定程序流程。當(dāng)順序執(zhí)行程序時(shí)自動(dòng)加1;執(zhí)行轉(zhuǎn)移程序或子程序、中斷子程序調(diào)用時(shí),自動(dòng)將其內(nèi)容更改成所要轉(zhuǎn)移的目的地址。PC的計(jì)數(shù)寬度決定了程序存儲(chǔ)器的地址范圍。PC為16位,故可對(duì)64KB(=216B)尋址。2.4AT89S51存儲(chǔ)器的結(jié)構(gòu)存儲(chǔ)器結(jié)構(gòu)特點(diǎn)之一是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)(哈佛結(jié)構(gòu)),并有各自的訪問(wèn)指令。存儲(chǔ)器空間可分為4類。27第2章硬件結(jié)構(gòu)1.程序存儲(chǔ)器空間片內(nèi)和片外兩部分。片內(nèi)程序存儲(chǔ)器為4KB的Flash存儲(chǔ)器,編程和擦除全是電氣實(shí)現(xiàn),且速度快??捎猛ㄓ镁幊唐骶幊蹋部稍诰€編程。當(dāng)片內(nèi)的4KB的Flash存儲(chǔ)器不夠用時(shí),用戶可在片外可擴(kuò)展程序存儲(chǔ)器,最多可擴(kuò)展至64KB程序存儲(chǔ)器。。2.數(shù)據(jù)存儲(chǔ)器空間

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

片內(nèi)有128BRAM(52子系列為256B)。 片內(nèi)RAM不夠用時(shí),在片外可擴(kuò)展至64KBRAM

。28第2章硬件結(jié)構(gòu)3.特殊功能寄存器SFR(SpecialFunctionRegister)片內(nèi)各功能部件的控制寄存器及狀態(tài)寄存器。SFR綜合反映了整個(gè)單片機(jī)基本系統(tǒng)內(nèi)部實(shí)際的工作狀態(tài)及工作方式。4.位地址空間共有211個(gè)可尋址位,構(gòu)成了位地址空間。它們位于內(nèi)部RAM(共128位)和特殊功能寄存器區(qū)(共83位)中。2.4.1程序存儲(chǔ)器空間存放程序和表格之類的固定常數(shù)。片內(nèi)為4KB的Flash,地址為0000H~0FFFH。16位地址線,可外擴(kuò)的程序存儲(chǔ)器空間最大為64KB,地址為0000H~FFFFH。使用應(yīng)注意以下問(wèn)題29第2章硬件結(jié)構(gòu)(1)分為片內(nèi)和片外兩部分,訪問(wèn)片內(nèi)的還是片外的程序存儲(chǔ)器,由EA*引腳電平確定。

EA*=1時(shí),CPU從片內(nèi)0000H開(kāi)始取指令,當(dāng)PC值沒(méi)有超出0FFFH時(shí),只訪問(wèn)片內(nèi)Flash存儲(chǔ)器,當(dāng)PC值超出0FFFH自動(dòng)轉(zhuǎn)向讀片外程序存儲(chǔ)器空間1000H~FFFFH內(nèi)的程序。EA*=0時(shí),只能執(zhí)行片外程序存儲(chǔ)器(0000H~FFFFH)中的程序。不理會(huì)片內(nèi)4KBFlash存儲(chǔ)器。(2)程序存儲(chǔ)器某些固定單元用于各中斷源中斷服務(wù)程序入口。30第2章硬件結(jié)構(gòu)64KB程序存儲(chǔ)器空間中有5個(gè)特殊單元分別對(duì)應(yīng)于5個(gè)中斷源的中斷入口地址,見(jiàn)表2-3。通常這5個(gè)中斷入口地址處都放一條跳轉(zhuǎn)指令跳向?qū)?yīng)的中斷服務(wù)子程序,而不是直接存放中斷服務(wù)子程序。31第2章硬件結(jié)構(gòu)2.4.2數(shù)據(jù)存儲(chǔ)器空間片內(nèi)與片外兩部分。1.片內(nèi)數(shù)據(jù)存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM)共128個(gè)單元,字節(jié)地址為00H~7FH。圖2-4為片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)。圖2-4AT89S51片內(nèi)RAM結(jié)構(gòu)32第2章硬件結(jié)構(gòu)00H~1FH

的32個(gè)單元是4組通用工作寄存器區(qū),每區(qū)包含8B,為R7~R0。可通過(guò)指令改變RS1、RS0兩位來(lái)選擇。20H~2FH的16個(gè)單元的128位可位尋址,也可字節(jié)尋址。30H~7FH的單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。2.片外數(shù)據(jù)存儲(chǔ)器當(dāng)片內(nèi)128B的RAM不夠用時(shí),需外擴(kuò),最多可外擴(kuò)64KB的RAM。注意,片內(nèi)RAM與片外RAM兩個(gè)空間是相互獨(dú)立的,片內(nèi)RAM與片外RAM的低128B的地址是相同的,但由于使用的是不同的訪問(wèn)指令,所以不會(huì)發(fā)生沖突。33第2章硬件結(jié)構(gòu)2.4.3特殊功能寄存器(SFR)采用特殊功能寄存器集中控制各功能部件。特殊功能寄存器映射在片內(nèi)RAM的80H~FFH區(qū)域中,共26個(gè)。表2-4是SFR的名稱及其分布。有些還可位尋址,位地址見(jiàn)表2-4。與AT89C51相比,新增5個(gè)SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST,已在表2-4中標(biāo)出。凡是可位尋址的SFR,字節(jié)地址末位只能是0H或8H。另外,若讀/寫未定義單元,將得到一個(gè)不確定的隨機(jī)數(shù)。下面某些介紹SFR,余下的SFR將在后面介紹。34第2章硬件結(jié)構(gòu)35第2章硬件結(jié)構(gòu)第2章硬件結(jié)構(gòu)1.堆棧指針SP指示堆棧頂部在內(nèi)部RAM塊中的位置。堆棧結(jié)構(gòu)--向上生長(zhǎng)型。單片機(jī)復(fù)位后,SP為07H,使得堆棧實(shí)際上從08H單元開(kāi)始,由于08H~1FH單元分別是屬于1~3組的工作寄存器區(qū),最好在復(fù)位后把SP值改置為60H或更大的值,避免堆棧與工作寄存器沖突。堆棧主要是為子程序調(diào)用和中斷操作而設(shè)。保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)(1)保護(hù)斷點(diǎn)。無(wú)論是子程序調(diào)用操作還是中斷服務(wù)子程序調(diào)用,最終都要返回主程序。應(yīng)預(yù)先把主程序的斷點(diǎn)在堆棧中保護(hù)起來(lái),為程序正確返回做準(zhǔn)備。37第2章硬件結(jié)構(gòu)(2)現(xiàn)場(chǎng)保護(hù)。執(zhí)行子程序或中斷服務(wù)子程序時(shí),要用到一些寄存器單元,會(huì)破壞原有內(nèi)容。要把有關(guān)寄存器單元的內(nèi)容保存起來(lái),送入堆棧,這就是所謂的“現(xiàn)場(chǎng)保護(hù)”。兩種操作:數(shù)據(jù)壓入(PUSH)堆棧,數(shù)據(jù)彈出(POP)堆棧。數(shù)據(jù)壓入堆棧,SP自動(dòng)加1;數(shù)據(jù)彈出堆棧,SP自動(dòng)減1。2.寄存器B為執(zhí)行乘法和除法而設(shè)。在不執(zhí)行乘、除法操作的情況下,可把它當(dāng)作一個(gè)普通寄存器來(lái)使用。38第2章硬件結(jié)構(gòu)乘法,兩乘數(shù)分別在A、B中,執(zhí)行乘法指令后,乘積在BA中除法,被除數(shù)取自A,除數(shù)取自B,商存放在A中,余數(shù)存B中。3.AUXR寄存器AUXR是輔助寄存器,其格式如圖2-5:圖2-5AUXR寄存器的格式39第2章硬件結(jié)構(gòu)其中: DISALE:ALE的禁止/允許位。

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

1:ALE僅在執(zhí)行MOVC和MOVX類指令時(shí)有效,不訪問(wèn)外部存儲(chǔ)器時(shí),ALE不輸出脈沖信號(hào);

DISRTO:禁止/允許WDT溢出時(shí)的復(fù)位輸出。

0:WDT溢出時(shí),在RST引腳輸出一個(gè)高電平脈沖;

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

0:

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

1:

WDT在空閑模式下暫停計(jì)數(shù)。。40第2章硬件結(jié)構(gòu)4.數(shù)據(jù)指針DPTR0和DPTR1雙數(shù)據(jù)指針寄存器,便于訪問(wèn)數(shù)據(jù)存儲(chǔ)器。DPTR0:AT89C51單片機(jī)原有的數(shù)據(jù)指針,DPTR1:新增加的數(shù)據(jù)指針。AUXR1的DPS位用于選擇兩個(gè)數(shù)據(jù)指針。當(dāng)DPS=0時(shí),選用DPTR0;當(dāng)DPS=1時(shí),選用DPTR1。數(shù)據(jù)指針可作為一個(gè)16位寄存器來(lái)用,也可作為兩個(gè)獨(dú)立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)來(lái)用。41第2章硬件結(jié)構(gòu)5.AUXR1寄存器AUXR1是輔助寄存器,格式如圖2-6:

DPS:數(shù)據(jù)指針寄存器選擇位。

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

1:選擇數(shù)據(jù)指針寄存器DPTR1。圖2-6AUXR1寄存器的格式42第2章硬件結(jié)構(gòu)6.看門狗定時(shí)器WDT包含1個(gè)14位計(jì)數(shù)器和看門狗定時(shí)器復(fù)位寄存器(WDTRST)。用于當(dāng)CPU由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時(shí),WDT提供了一種使程序恢復(fù)正常運(yùn)行的有效手段。有關(guān)WDT在抗干擾設(shè)計(jì)中的應(yīng)用以及低功耗模式下運(yùn)行的狀態(tài),將在相應(yīng)的章節(jié)中具體介紹。上面介紹的特殊功能寄存器,除了前兩個(gè)SP和B以外,其余的均為AT89S51在AT89C51基礎(chǔ)上新增加的SFR。43第2章硬件結(jié)構(gòu)2.4.4位地址空間211個(gè)尋址位的位地址,位地址范圍為00H~FFH,其中00H~7FH

這128位處于片內(nèi)RAM字節(jié)地址20H~2FH

單元中,如表2-5所示。其余的83個(gè)可尋址位分布在特殊功能寄存器SFR中,如表2-6??杀晃粚ぶ返奶厥饧拇嫫饔?1個(gè),共有位地址88個(gè),5個(gè)位未用,其余83個(gè)位的位地址離散地分布于片內(nèi)數(shù)據(jù)存儲(chǔ)器區(qū)字節(jié)地址為80H~FFH的范圍內(nèi),其最低的位地址等于其字節(jié)地址,且其字節(jié)地址的末位都為0H或8H。44第2章硬件結(jié)構(gòu)第2章硬件結(jié)構(gòu)特殊功能寄存器位地址字節(jié)地址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HAccE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HIP———BCHBBHBAHB9HB8HB8HP3B7HB6HB5HB4HB3HB2HB1HB0HB0HIEAFH——ACHABHAAHA9HA8HA8HP2A7HA6HA5HA4HA3HA2HA1HA0HA0HSCON9FH9EH9DH9CH9BH9AH99H98H98HP197H96H95H94H93H92H91H90H90HTCON8FH8EH8DH8CH8BH8AH89H88H88HP087H86H85H84H83H82H81H80H80H表2-6SFR中的位地址分布46第2章硬件結(jié)構(gòu)

作為對(duì)AT89S51存儲(chǔ)器結(jié)構(gòu)的總結(jié),圖2-7為各類存儲(chǔ)器的結(jié)構(gòu)圖。清楚看出各類存儲(chǔ)器在存儲(chǔ)器空間的位置。圖2-7AT89S51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)47第2章硬件結(jié)構(gòu)2.5AT89S51的并行I/O端口4個(gè)雙向的8位并行I/O端口,分別記為P0、P1、P2和P3,其中輸出鎖存器屬于特殊功能寄存器。端口的每一位均由輸出鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成,4個(gè)端口按字節(jié)輸入/輸出外,也可位尋址。1P0口P0口字節(jié)地址為80H,位地址為80H~87H。P0口可作為雙功能口:在外擴(kuò)程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器(或外擴(kuò)I/O)情況下,只能作為系統(tǒng)的低8位地址/數(shù)據(jù)總線端口來(lái)使用,否則可作為通用I/O端口使用。48第2章硬件結(jié)構(gòu)P0口具有如下特點(diǎn)。(1)當(dāng)P0口用作地址/數(shù)據(jù)復(fù)用口時(shí),是一個(gè)真正的雙向口,用作與外部存儲(chǔ)器的連接,輸出低8位地址和輸出/輸入8位數(shù)據(jù)。(2)當(dāng)P0口用作通用I/O口時(shí),由于需在片外接上拉電阻,端口不存在高阻抗(懸?。顟B(tài),因此是一準(zhǔn)雙向口。為保證正確讀入引腳信號(hào),應(yīng)首先向鎖存器寫1。單片機(jī)復(fù)位后,鎖存器自動(dòng)被置1;當(dāng)P0口由原來(lái)的輸出狀態(tài)轉(zhuǎn)變?yōu)檩斎霠顟B(tài)時(shí),應(yīng)首先向鎖存器寫1,方可執(zhí)行輸入操作。一般情況下,P0口大多作為地址/數(shù)據(jù)復(fù)用口使用,這時(shí)就不能再作為通用I/O口使用。49第2章硬件結(jié)構(gòu)2.P1口單功能的I/O口,字節(jié)地址為90H,位地址為90H~97H。特點(diǎn)如下。(1)P1口由于有內(nèi)部上拉電阻,沒(méi)有高阻抗輸入狀態(tài),故為準(zhǔn)雙向口。作為輸出口時(shí),不需要在片外接上拉電阻。(2)P1口“讀引腳”輸入時(shí),必須先向P1口鎖存器先寫入1。50第2章硬件結(jié)構(gòu)3.P2口是一個(gè)雙功能口,字節(jié)地址為A0H,位地址為A0H~A7H。P2口某一位的位電路結(jié)構(gòu)如圖4-3所示。在片外擴(kuò)有存儲(chǔ)器或I/O的情況下,P2口大多作為高8位地址總線口使用,這時(shí)就不能再作為通用I/O口。特點(diǎn)如下:(1)作為地址輸出線使用時(shí),P2口可輸出外部存儲(chǔ)器的高8位地址,與P0口輸出的低8位一起構(gòu)成16位地址,可尋址64KB的地址空間。當(dāng)P2口作為高8位地址輸出口時(shí),輸出鎖存器的內(nèi)容保持不變。(2)作通用I/O口使用時(shí),P2口為準(zhǔn)雙向口,功能與P1口一樣51第2章硬件結(jié)構(gòu)4.P3口由于AT89S51的引腳數(shù)目有限,因此在P3口電路中增加了引腳的第二功能。P3口的第二功能定義如表2-7所示,讀者應(yīng)熟記。P3口的每一位都可定義為第二輸入功能或第二輸出功能。P3口的字節(jié)地址為B0H,位地址為B0H~B7H。P3口的特點(diǎn)如下:(1)P3口內(nèi)部有上拉電阻,不存在高阻抗輸入狀態(tài),為準(zhǔn)雙向口。(2)P3口作為第二功能的輸出/輸入,或第一功能通用輸入,需要先將相應(yīng)位的鎖存器置1。52第2章硬件結(jié)構(gòu)第2章硬件結(jié)構(gòu)實(shí)際應(yīng)用中,由于復(fù)位后P3口鎖存器自動(dòng)置1,滿足第二功能所需的條件,所以不需要任何設(shè)置工作,就可以進(jìn)入第二功能操作。當(dāng)某位不作為第二功能使用時(shí),可作為第一功能通用I/O使用。第2章硬件結(jié)構(gòu)2.6時(shí)鐘電路與時(shí)序時(shí)鐘電路產(chǎn)生AT89S51工作時(shí)所必需的控制信號(hào),在時(shí)鐘信號(hào)的控制下,嚴(yán)格按時(shí)序執(zhí)行指令。執(zhí)行指令時(shí),CPU首先到程序存儲(chǔ)器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時(shí)序電路產(chǎn)生一系列控制信號(hào)完成指令所規(guī)定的操作。CPU發(fā)的時(shí)序信號(hào)兩類,一類用對(duì)片內(nèi)各個(gè)功能部件控制,用戶無(wú)須了解;另一類用于對(duì)片外存儲(chǔ)器或I/O端口的控制,這部分時(shí)序?qū)τ诜治觥⒃O(shè)計(jì)硬件接口電路至關(guān)重要。55第2章硬件結(jié)構(gòu)2.6.1時(shí)鐘電路設(shè)計(jì)時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式。1.內(nèi)部時(shí)鐘方式AT89S51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,圖2-8是AT89S51內(nèi)部時(shí)鐘方式的電路。56第2章硬件結(jié)構(gòu)圖2-8

內(nèi)部時(shí)鐘方式電路第2章硬件結(jié)構(gòu)電路中的電容

C1和

C2

的典型值通常選擇為

30pF。晶體振蕩頻率的范圍通常是在

1.2~12MHz。AT89S51單片機(jī)常選擇振蕩頻率6MHz或12MHz的石英晶體。58第2章硬件結(jié)構(gòu)2.外部時(shí)鐘方式

用現(xiàn)成的外部振蕩器產(chǎn)生脈沖信號(hào),常用于多片AT89S51同時(shí)工作,以便于多片AT89S51單片機(jī)之間的同步。

外部時(shí)鐘源直接接到XTAL1端,XTAL2端懸空,見(jiàn)圖2-9。圖2-9AT89S51的外部時(shí)鐘方式電路59第2章硬件結(jié)構(gòu)3.時(shí)鐘信號(hào)的輸出當(dāng)使用片內(nèi)振蕩器,XTAL1、XTAL2引腳還能為應(yīng)用系統(tǒng)中的其他芯片提供時(shí)鐘,但需增加驅(qū)動(dòng)能力。其引出的方式有兩種,如圖2-10。60第2章硬件結(jié)構(gòu)圖2-10

時(shí)鐘信號(hào)的兩種引出方式第2章硬件結(jié)構(gòu)2.6.2機(jī)器周期、指令周期與指令時(shí)序各種指令時(shí)序與時(shí)鐘周期相關(guān)。1.時(shí)鐘周期時(shí)鐘控制信號(hào)的基本時(shí)間單位。若晶振頻率為fosc,則時(shí)鐘周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。2.機(jī)器周期CPU完成一個(gè)基本操作所需時(shí)間為機(jī)器周期。執(zhí)行一條指令分為幾個(gè)機(jī)器周期。每個(gè)機(jī)器周期完成一個(gè)基本操作,如取指令、讀或?qū)憯?shù)據(jù)等。每12個(gè)時(shí)鐘周期為1個(gè)機(jī)器周期62第2章硬件結(jié)構(gòu)1個(gè)機(jī)器周期包括12個(gè)時(shí)鐘周期,分6個(gè)狀態(tài):S1~S6。每個(gè)狀態(tài)又分兩拍:P1和P2。因此,一個(gè)機(jī)器周期中的12個(gè)時(shí)鐘周期表示為S1P1、S1P2、S2P1、S2P2、…、S6P2,如圖2-11。圖2-11AT89S51的機(jī)器周期63第2章硬件結(jié)構(gòu)3.指令周期執(zhí)行一條指令所需的時(shí)間。簡(jiǎn)單的單字節(jié)指令,取出指令立即執(zhí)行,只需一個(gè)機(jī)器周期的時(shí)間。而有些復(fù)雜的指令,如轉(zhuǎn)移、乘、除指令則需兩個(gè)或多個(gè)機(jī)器周期。從指令執(zhí)行時(shí)間看:單字節(jié)和雙字節(jié)指令一般為單機(jī)器周期和雙機(jī)器周期;三字節(jié)指令都是雙機(jī)器周期;乘、除指令占用4個(gè)機(jī)器周期。64第2章硬件結(jié)構(gòu)2.7復(fù)位操作和復(fù)位電路單片機(jī)的初始化操作,給復(fù)位腳RST加上大于2個(gè)機(jī)器周期(即24個(gè)時(shí)鐘振蕩周期)的高電平就使AT89S51復(fù)位。2.7.1復(fù)位操作復(fù)位時(shí),PC初始化為0000H,程序從0000H單元開(kāi)始執(zhí)行。除系統(tǒng)的正常初始化外,當(dāng)程序出錯(cuò)(如程序跑飛)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),需按復(fù)位鍵使RST腳為高電平,使AT89S51擺脫“跑飛”或“死鎖”狀態(tài)而重新啟動(dòng)程序。第2章硬件結(jié)構(gòu)復(fù)位操作還對(duì)其他一些寄存器有影響,這些寄存器復(fù)位時(shí)的狀態(tài)如表2-8。由表2-8可看出,復(fù)位時(shí),SP=07H

,而P0~P3引腳均為高電平。在某些控制應(yīng)用中,要注意考慮P0~P3引腳的高電平對(duì)接在這些引腳上的外部電路的影響。例如,當(dāng)P1口某個(gè)引腳外接一個(gè)繼電器繞組,當(dāng)復(fù)位時(shí),該引腳為高電平,繼電器繞組就會(huì)有電流通過(guò),就會(huì)吸合繼電器開(kāi)關(guān),使開(kāi)關(guān)接通,可能會(huì)引起意想不到的后果。66第2章硬件結(jié)構(gòu)第2章硬件結(jié)構(gòu)2.7.2復(fù)位電路設(shè)計(jì)由復(fù)位電路實(shí)現(xiàn)。AT89S51片內(nèi)復(fù)位電路結(jié)構(gòu)見(jiàn)圖2-12。復(fù)位引腳RST通過(guò)一個(gè)施密特觸發(fā)器與復(fù)位電路相連,施密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的S5P2,施密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位電路采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。最簡(jiǎn)單的上電自動(dòng)復(fù)位電路如圖2-13所示。對(duì)于CMOS型單片機(jī),由于在RST引腳內(nèi)部有一個(gè)下拉電阻,可將電阻R去掉,而將電容C選為10

F。68第2章硬件結(jié)構(gòu)圖2-12

片內(nèi)復(fù)位電路結(jié)構(gòu)圖2-13上電復(fù)位電路第2章硬件結(jié)構(gòu)上電自動(dòng)復(fù)位是給電容C充電加給RST引腳一個(gè)短的高電平信號(hào),此信號(hào)隨著VCC對(duì)電容C的充電過(guò)程而逐漸回落,即RST引腳上的高電平持續(xù)時(shí)間取決于電容C充電時(shí)間。為保證系統(tǒng)可靠復(fù)位,RST引腳上的高電平必須維持足夠長(zhǎng)的時(shí)間。除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平和脈沖兩種方式。按鍵手動(dòng)復(fù)位電路見(jiàn)圖2-14。脈沖復(fù)位是利用RC微分電路產(chǎn)生的正脈沖來(lái)實(shí)現(xiàn)的,脈沖復(fù)位電路見(jiàn)圖2-15。圖中阻容參數(shù)適于6MHz時(shí)鐘。70第2章硬件結(jié)構(gòu)圖2-14按鍵電平復(fù)位電路圖2-15按鍵脈沖復(fù)位電路71第2章硬件結(jié)構(gòu)圖2-16的電路能輸出高、低兩種電平的復(fù)位控制信號(hào),以適應(yīng)外圍I/O接口芯片所要求的不同復(fù)位電平信號(hào)。圖2-1674LS122為單穩(wěn)電路,實(shí)驗(yàn)表明,電容C的選擇約為0.1

F較好。圖2-16

兩種實(shí)用的兼有上電復(fù)位與按鍵復(fù)位的電路72第2章硬件結(jié)構(gòu)在實(shí)際設(shè)計(jì)中,若有外部擴(kuò)展的I/O接口電路也需初始復(fù)位,若它們的復(fù)位端和AT89S51的復(fù)位端相連,復(fù)位電路中的R、C參數(shù)要受到影響,這時(shí)復(fù)位電路中的R、C參數(shù)要統(tǒng)一考慮,以保證可靠的復(fù)位。如果AT89S51單片機(jī)與外圍I/O接口電路的復(fù)位電路和復(fù)位時(shí)間不完全一致,使單片機(jī)初始化程序不能正常運(yùn)行,外圍I/O接口電路的復(fù)位也可以不與AT89S51單片機(jī)復(fù)位端相連,采用獨(dú)立的上電復(fù)位電路。若RC上電復(fù)位電路接施密特電路輸入端,施密特電路輸出接AT89S51單片機(jī)和外圍電路復(fù)位端,則能使系統(tǒng)可靠地同步復(fù)位。一般來(lái)說(shuō),第2章硬件結(jié)構(gòu)單片機(jī)的復(fù)位速度比外圍I/O接口電路快些。為保證系統(tǒng)可靠復(fù)位,在單片機(jī)應(yīng)用程序的初始化程序段應(yīng)安排一定的復(fù)位延遲時(shí)間。第2章硬件結(jié)構(gòu)2.8低功耗節(jié)電模式兩種低功耗節(jié)電工作模式:空閑模式(idlemode)和掉電保持模式(powerdownmode)。掉電保持模式

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論