版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,1,單片機(jī)原理及應(yīng)用 第2章 AT89S51單片機(jī)的 內(nèi)部結(jié)構(gòu),2020/8/23,2,2,第2章 AT89S51單片機(jī)的結(jié)構(gòu),2.1 AT89S51單片機(jī)的內(nèi)部結(jié)構(gòu),2.2 AT89S51單片機(jī)的引腳,2.3 AT89S51單片機(jī)的微處理器,2.4 AT89S51存儲(chǔ)器的結(jié)構(gòu),2.5 并行I/O端口,2.6 時(shí)鐘電路與時(shí)序,2.7 單片機(jī)的復(fù)位電路,*2.8 單片機(jī)的低功耗節(jié)電模式,2020/8/23,3,內(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é)電工作模式。,2020/8/23,4,學(xué)
2、習(xí)要求,本章學(xué)習(xí),為AT89S51系統(tǒng)的應(yīng)用設(shè)計(jì)打下基礎(chǔ)。在原理和結(jié)構(gòu)上,單片機(jī)把微機(jī)的許多概念、技術(shù)與特點(diǎn)都繼承下來,可以用學(xué)習(xí)微機(jī)的思路來學(xué)習(xí)單片機(jī)。,2020/8/23,5,5,2.1 AT89S51單片機(jī)的內(nèi)部結(jié)構(gòu) 片內(nèi)硬件組成結(jié)構(gòu)如圖2-1所示。把作為控制應(yīng)用所必需的基本功能部件都集成在一個(gè)尺寸有限的集成電路芯片上。 有如下功能部件和特性: (1)8位微處理器(CPU); (2)數(shù)據(jù)存儲(chǔ)器(128B RAM); (3)程序存儲(chǔ)器(4KB Flash ROM); (4)4個(gè)8位可編程并行I/O口(P0口、P1口、P2口、P3口); (5)1個(gè)全雙工的異步串行口; (6)2個(gè)可編程的16
3、位定時(shí)器/計(jì)數(shù)器;,單片機(jī)內(nèi)部結(jié)構(gòu),2020/8/23,6,6,圖2-1 AT89S51單片機(jī)片內(nèi)結(jié)構(gòu),2020/8/23,7,7,(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(In System Program),字節(jié)和頁編程,現(xiàn)場(chǎng)程序調(diào)試和修改更加方便靈活; (2)數(shù)據(jù)指針增加到兩個(gè),方便了對(duì)片外RAM的訪問過程; (3)增加了看門狗定
4、時(shí)器,提高了系統(tǒng)的抗干擾能力;,2020/8/23,8,(4)增加斷電標(biāo)志; (5)增加掉電狀態(tài)下的中斷恢復(fù)模式。 片內(nèi)各功能部件通過片內(nèi)單一總線連接而成(見圖2-1),基本結(jié)構(gòu)依舊是CPU 加上外圍芯片的傳統(tǒng)微機(jī)結(jié)構(gòu)。 CPU對(duì)各種功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。 下面介紹圖2-1中片內(nèi)各功能部件。 (1)CPU(微處理器) 8位的CPU,與通用CPU基本相同,同樣包括了運(yùn)算器和控制器兩大部分,還有面向控制的位處理功能。,8,2020/8/23,9,(2)數(shù)據(jù)存儲(chǔ)器(RAM) 片內(nèi)為128B(52子系列為256B
5、),片外最多可擴(kuò)64KB。片內(nèi)128B的RAM以高速RAM的形式集成,可加快單片機(jī)運(yùn)行的速度和降低功耗。 (3)程序存儲(chǔ)器(Flash ROM) 片內(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種工作方式。,9,2020/8/23,10,(6)1個(gè)看門狗定時(shí)器WDT 當(dāng)CPU由于干擾使程序陷入死循環(huán)或跑飛時(shí),WDT可使程序恢復(fù)正常運(yùn)行。 (7)串行口 1個(gè)全雙工的異步串行口,4種工作方式???/p>
6、進(jìn)行串行通信,擴(kuò)展并行I/O口,還可與多個(gè)單片機(jī)構(gòu)成多機(jī)系統(tǒng)。 (8)P1口、P2口、P3口、P0口 4個(gè)8位并行I/O口。 (9)特殊功能寄存器(SFR) 26個(gè),對(duì)片內(nèi)各功能部件管理、控制和監(jiān)視。是各個(gè)功能部件的控制寄存器和狀態(tài)寄存器,映射在片內(nèi)RAM區(qū)80HFFH內(nèi)。,10,2020/8/23,11,小結(jié)及習(xí)題:,計(jì)算機(jī)中采用“存儲(chǔ)程序”的工作方式,即事先把程序加載到計(jì)算機(jī)中的存儲(chǔ)器中,當(dāng)運(yùn)行計(jì)算機(jī)后,計(jì)算機(jī)便自動(dòng)進(jìn)行工作,這是計(jì)算機(jī)的重要工作原理,這也是單片機(jī)的工作原理,了解單片機(jī)的內(nèi)部結(jié)構(gòu)就必須了解單片機(jī)的基本工作原理 。 1、AT89S51系列單片機(jī)內(nèi)部有哪些主要部件各部分的作用是
7、什么? 2、AT89C51與AT89C52單片機(jī)的主要區(qū)別在哪里?,2020/8/23,12,2.2 AT89S51的引腳功能 先了解引腳,牢記各引腳的功能。 AT89S51與51系列中各種型號(hào)芯片的引腳互相兼容。目前多采用40只引腳雙列直插,如圖2-2所示。 引腳按其功能可分為如下3類: (1)電源及時(shí)鐘引腳VCC、VSS;XTAL1、XTAL2。 (2)控制引腳 、ALE/ 、 /VPP、RST(RESET) (3)I/O口引腳P0、P1、P2、P3,為4個(gè)8位I/O口,12,2020/8/23,13,2.2.1 電源及時(shí)鐘引腳 1電源引腳 (1)VCC(40腳):+5V電源。 (2)VS
8、S(20腳):數(shù)字地。,13,圖2-2 AT89S51雙列直插封裝方式的引腳,2020/8/23,14,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。,14,2020/
9、8/23,15,當(dāng)看門狗定時(shí)器溢出輸出時(shí),該腳將輸出長(zhǎng)達(dá)96個(gè)時(shí)鐘振蕩周期的高電平。 (2) /VPP (Enable Address/Voltage Pulse of Programing,31腳) :引腳第一功能:外部程序存儲(chǔ)器訪問允許控制端。 =1,在PC值不超出0FFFH(即不超出片內(nèi)4KB Flash存儲(chǔ)器的地址范圍)時(shí),單片機(jī)讀片內(nèi)程序存儲(chǔ)器(4KB)中的程序,但PC值超出0FFFH (即超出片內(nèi)4KB Flash地址范圍)時(shí),將自動(dòng)轉(zhuǎn)向讀取片外60KB(1000H-FFFFH)程序存儲(chǔ)器空間中的程序。,2020/8/23,16,=0,只讀取外部的程序存儲(chǔ)器中的內(nèi)容,讀取的地址范圍
10、為0000HFFFFH,片內(nèi)的4KB Flash 程序存儲(chǔ)器不起作用。 VPP:引腳第二功能,對(duì)片內(nèi)Flash編程,接編程電壓。 (3)ALE/ (Address Latch Enable/PROGramming,30腳) ALE為CPU訪問外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器提供地址鎖存信號(hào),將低8位地址鎖存在片外的地址鎖存器中。,16,2020/8/23,17,此外,單片機(jī)正常運(yùn)行時(shí),ALE端一直有正脈沖信號(hào)輸出,此頻率為時(shí)鐘振蕩器頻率fosc的1/6??捎米魍獠慷〞r(shí)或觸發(fā)信號(hào)。 注意,每當(dāng)AT89S51訪問外部RAM時(shí)(執(zhí)行MOVX類指令),要丟失一個(gè)ALE脈沖。 如需要,可將特殊功能寄存器A
11、UXR(地址為8EH,將在后面介紹)的第0位(ALE禁止位)置1,來禁止ALE操作,但執(zhí)行訪問外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器指令“MOVC”或“MOVX”時(shí),ALE仍然有效。即ALE禁止位不影響對(duì)外部存儲(chǔ)器的訪問。 :引腳第二功能,對(duì)片內(nèi) Flash編程,為編程脈沖輸入 腳。,17,2020/8/23,18,(4) (Program Strobe ENable,29腳) 片外程序存儲(chǔ)器讀選通信號(hào),低電平有效。 2.2.3 并行I/O口引腳 (1)P0口:8位,漏極開路的雙向I/O口 當(dāng)外擴(kuò)存儲(chǔ)器及I/O接口芯片時(shí),P0口作為低8位地址總線及數(shù)據(jù)總線的分時(shí)復(fù)用端口。 P0口也可用作通用的I/O口
12、,需加上拉電阻,這時(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)先向端口鎖存器寫1。,18,2020/8/23,19,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位地址。,2020/8/23,
13、20,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)部上拉電阻。 可作為通用的I/O口使用。作為通用I/O輸入,應(yīng)先向端口輸出鎖存器寫入1??沈?qū)動(dòng)4個(gè)LS型TTL負(fù)載。 P3口還可提供第二功能。第二功能定義見表2-1,應(yīng)熟記。,20,2020/8/23,21,21,2020/8/23,22,綜上所述,P0口可作為總線口,為雙向口。作為通用的I/O口使用時(shí),為準(zhǔn)雙向口,這時(shí)需加上拉電阻。P1口、P2口、P3口均為準(zhǔn)雙向口。 注意:準(zhǔn)雙向口與雙向口的差別。準(zhǔn)雙向口僅有兩個(gè)狀態(tài)。而P
14、0口作為總線使用,口線內(nèi)無上拉電阻,處于高阻“懸浮”態(tài)。故P0口為雙向三態(tài)I/O口。 為什么P0口要有高阻“懸浮”態(tài)? 準(zhǔn)雙向I/O口則無高阻的“懸浮”狀態(tài)。 另外,準(zhǔn)雙向口作通用I/O的輸入口使用時(shí),一定要向該口先寫入“1”。以上的準(zhǔn)雙向口與雙向口的差別,讀者在閱讀2.5節(jié)后,將會(huì)有深刻的理解。,22,2020/8/23,23,2.3 AT89S51的微處理器 由圖2-1可見,CPU由運(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位變量邏
15、輯運(yùn)算(與、或、異或、循環(huán)、求補(bǔ)和清零),還可算術(shù)運(yùn)算(加、減、乘、除),23,2020/8/23,24,ALU還有位操作功能,對(duì)位變量進(jìn)行位處理,如置“1”、清“0”、求補(bǔ)、測(cè)試轉(zhuǎn)移及邏輯“與”、“或”等。 2累加器A 使用最頻繁的寄存器,可寫為Acc?!癆”與“Acc” 書寫上的差別,將在第3章介紹。 作用如下: (1)ALU單元的輸入數(shù)據(jù)源之一,又是ALU運(yùn)算結(jié)果存放單元。 (2)數(shù)據(jù)傳送大多都通過累加器A,相當(dāng)于數(shù)據(jù)的中轉(zhuǎn)站。為解決“瓶頸堵塞”問題,AT89S51增加了一部分可以不經(jīng)過累加器的傳送指令。,24,2020/8/23,25,A的進(jìn)位標(biāo)志Cy是特殊的,因?yàn)樗瑫r(shí)又是位處理機(jī)的
16、位累加器 3程序狀態(tài)字寄存器PSW PSW(Program Status Word)位于片內(nèi)特殊功能寄存器區(qū),字節(jié)地址為D0H。 包含了程序運(yùn)行狀態(tài)的信息,其中4位保存當(dāng)前指令執(zhí)行后的狀態(tài),供程序查詢和判斷。格式如圖2-3所示。 圖2-3 PSW的格式,25,2020/8/23,26,PSW中各個(gè)位的功能: (1)Cy(PSW.7)進(jìn)位標(biāo)志位 可寫為C。在算術(shù)和邏輯運(yùn)算時(shí),若有進(jìn)位/借位,Cy1;否則,Cy0。在位處理器中,它是位累加器。 (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í),Ac1;否則,Ac0。 (3)F0(PSW.5
17、)用戶設(shè)定標(biāo)志位 由用戶使用的一個(gè)狀態(tài)標(biāo)志位,可用指令來使它置1或清0,控制程序的流向。用戶應(yīng)充分利用。,26,2020/8/23,27,(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í),用來指示運(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ù)。,27,2020/8/23,28,P=1,表示A中“1”的個(gè)數(shù)為奇數(shù)。P=0,
18、表示A中“1”的個(gè)數(shù)為偶數(shù)。此標(biāo)志位對(duì)串行通信有重要的意義,常用奇偶檢驗(yàn)的方法來檢驗(yàn)數(shù)據(jù)串行傳輸?shù)目煽啃浴?28,2020/8/23,29,29,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ù)器,不可訪問。單片機(jī)復(fù)位時(shí),PC中內(nèi)容為0000H,從程序存儲(chǔ)器0000H單元取指令,開始執(zhí)行程序。 PC工作過程是:CPU讀指令時(shí),PC的內(nèi)容作為所取指令的地址,
19、程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)PC自動(dòng)加1。,2020/8/23,30,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)尋址。,30,2020/8/23,31,小結(jié)及習(xí)題:,中央處理器CPU是單片機(jī)內(nèi)部的核心部件,它決定了單片機(jī)的指令系統(tǒng)及主要功能,CPU主要由運(yùn)算器和控制器倆部分組成,控制器的功能較為復(fù)雜,在本章中只做原理介紹,不介紹內(nèi)部具體的工作流程。 1、什么是ALU?簡(jiǎn)述AT89S51系列單片機(jī)ALU的功能與
20、特點(diǎn)。 2、程序狀態(tài)字PSW包含哪些程序狀態(tài)信息?這些狀態(tài)信息的作用是什么? 3、決定程序執(zhí)行順序的寄存器是哪個(gè)?它是幾位寄存器?它是不是特殊功能寄存器?,2020/8/23,32,2.4 AT89S51存儲(chǔ)器的結(jié)構(gòu),存儲(chǔ)器的結(jié)構(gòu)特點(diǎn)之一是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(哈佛結(jié)構(gòu)),并有各自的訪問指令。 存儲(chǔ)器空間可分為4類。,2020/8/23,33,.程序存儲(chǔ)器空間 片內(nèi)和片外兩部分。 片內(nèi)4KB Flash ,編程和擦除完全是電氣實(shí)現(xiàn)??捎猛ㄓ镁幊唐鲗?duì)其編程,也可在線編程。 當(dāng)片內(nèi)4KB Flash 存儲(chǔ)器不夠用時(shí),可片外擴(kuò)展,最多可擴(kuò)展至64KB程序存儲(chǔ)器。 .數(shù)據(jù)存儲(chǔ)器空間 片內(nèi)與片外
21、兩部分。 片內(nèi)有128 B RAM(52子系列為256B)。 片內(nèi)RAM 不夠用時(shí),在片外可擴(kuò)展至64KB RAM 。,33,2020/8/23,34,.特殊功能寄存器SFR (Special Function Register) 片內(nèi)各功能部件的控制寄存器及狀態(tài)寄存器。SFR綜合反映了整個(gè)單片機(jī)基本系統(tǒng)內(nèi)部實(shí)際的工作狀態(tài)及工作方式。 .位地址空間 共有211個(gè)可尋址位,構(gòu)成了位地址空間。它們位于內(nèi)部 RAM(共128位)和特殊功能寄存器區(qū)(共83位)中。 2.4.1 程序存儲(chǔ)器空間 存放程序和表格之類的固定常數(shù)。片內(nèi)為4KB的 Flash ,地址為0000H0FFFH。16位地址線,可外擴(kuò)的
22、程序存儲(chǔ)器空間最大為64KB,地址為0000HFFFFH。使用時(shí)應(yīng)注意以下問題:,34,程序存儲(chǔ)器,2020/8/23,35,(1)分為片內(nèi)和片外兩部分,訪問片內(nèi)的還是片外的程序存儲(chǔ)器,由 引腳電平確定。 =1時(shí),CPU從片內(nèi)0000H開始取指令,當(dāng)PC值沒有超出0FFFH時(shí),只訪問片內(nèi)Flash 存儲(chǔ)器,當(dāng)PC值超出0FFFH自動(dòng)轉(zhuǎn)向讀片外程序存儲(chǔ)器空間1000HFFFFH 內(nèi)的程序。 =0時(shí),只能執(zhí)行片外程序存儲(chǔ)器(0000HFFFFH)中的程序。不理會(huì)片內(nèi)4KB Flash 存儲(chǔ)器。 (2)程序存儲(chǔ)器某些固定單元用于各中斷源中斷服務(wù)程序入口。,35,2020/8/23,36,36,64K
23、B程序存儲(chǔ)器空間中有5個(gè)特殊單元分別對(duì)應(yīng)于5個(gè)中斷源 的中斷入口地址,見表2-3。 通常這5個(gè)中斷入口地址處都放一條跳轉(zhuǎn)指令跳向?qū)?yīng)的 中斷服務(wù)子程序,而不是直接存放中斷服務(wù)子程序。,2020/8/23,37,2.4.2 數(shù)據(jù)存儲(chǔ)器空間 片內(nèi)與片外兩部分。 .片內(nèi)數(shù)據(jù)存儲(chǔ)器 片內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM)共128個(gè)單元,字節(jié)地址為00H7FH。圖2-4為片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)。,37,圖2-4 AT89S51片內(nèi)RAM結(jié)構(gòu),數(shù)據(jù)存儲(chǔ)器,2020/8/23,38,00H1FH 的32個(gè)單元是4組通用工作寄存器區(qū),每區(qū)包含8B,為R7R0??赏ㄟ^指令改變RS1、RS0兩位來選擇。 20H2FH的16個(gè)單元
24、的128位可位尋址,也可字節(jié)尋址。 30H7FH的單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。 .片外數(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的地址是相同的,但由于使用的是不同的訪問指令,所以不會(huì)發(fā)生沖突。,38,2020/8/23,39,2.4.3 特殊功能寄存器(SFR) 采用特殊功能寄存器集中控制各功能部件。特殊功能寄存器映射在片內(nèi)RAM的 80HFFH 區(qū)域中,共26個(gè)。表2-4 SFR的名稱及其分布。有些還可位尋址,位地址見表2-4。 與AT89C51相比,新增
25、5個(gè)SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST,已在表2-4中標(biāo)出。 凡是可位尋址的SFR,字節(jié)地址末位只能是0H或8H。另外,若讀/寫未定義單元,將得到一個(gè)不確定的隨機(jī)數(shù)。 下面介紹某些SFR,余下的SFR將在后面介紹。,39,2020/8/23,40,40,2020/8/23,41,2020/8/23,42,1堆棧指針SP 指示堆棧頂部在內(nèi)部RAM塊中的位置。 堆棧結(jié)構(gòu)向上生長(zhǎng)型。單片機(jī)復(fù)位后,SP為07H,使得堆棧實(shí)際上從08H單元開始,由于08H1FH單元分別是屬于13組的工作寄存器區(qū),最好在復(fù)位后把SP值改置為60H或更大的值,避免堆棧與工作寄存器沖突。 堆棧是為
26、子程序調(diào)用和中斷操作而設(shè),主要用來保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。 (1)保護(hù)斷點(diǎn)。無論是子程序調(diào)用操作還是中斷服務(wù)子程序調(diào)用,最終都要返回主程序。應(yīng)預(yù)先把主程序的斷點(diǎn)在堆棧中保護(hù)起來,為程序正確返回做準(zhǔn)備。,42,2020/8/23,43,(2)現(xiàn)場(chǎng)保護(hù)。執(zhí)行子程序或中斷服務(wù)子程序時(shí),要用到一些寄存器單元,會(huì)破壞原有內(nèi)容。要把有關(guān)寄存器單元的內(nè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è)普通寄存器來使用。,4
27、3,2020/8/23,44,44,乘法,兩乘數(shù)分別在A、B中,執(zhí)行乘法指令后,乘積在BA中 除法,被除數(shù)取自A,除數(shù)取自B,商存放在A中,余數(shù)存B中。 3AUXR寄存器 AUXR是輔助寄存器,其格式如圖2-5所示:,圖2-5 AUXR寄存器的格式,2020/8/23,45,45,其中: DISALE:ALE的禁止/允許位。 0:ALE有效,發(fā)出脈沖; 1:ALE僅在執(zhí)行MOVC和MOVX類指令時(shí)有效,不訪問外部存儲(chǔ)器時(shí),ALE不輸出脈沖信號(hào)。 DISRTO:禁止/允許WDT溢出時(shí)的復(fù)位輸出。 0:WDT溢出時(shí),在RST引腳輸出一個(gè)高電平脈沖; 1:RST引腳僅為輸入腳。 WDIDLE:WDT
28、在空閑模式下的禁止/允許位。 0: WDT在空閑模式下繼續(xù)計(jì)數(shù); 1: WDT在空閑模式下暫停計(jì)數(shù)。,2020/8/23,46,46,4. 數(shù)據(jù)指針DPTR0和DPTR1 雙數(shù)據(jù)指針寄存器,便于訪問數(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位寄存器來用,也可作為兩個(gè)獨(dú)立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)來用。,2020/8/23,47,47,5. AUXR1寄存器 AUXR1是輔助寄存器,
29、格式如圖2-6所示: DPS:數(shù)據(jù)指針寄存器選擇位。 0:選擇數(shù)據(jù)指針寄存器DPTR0; 1:選擇數(shù)據(jù)指針寄存器DPTR1。,圖2-6 AUXR1寄存器的格式,2020/8/23,48,6. 看門狗定時(shí)器WDT WDT包含一個(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。,48,2020/8/2
30、3,49,2.4.4 位地址空間 211個(gè)尋址位的位地址,位地址范圍為 00HFFH,其中 00H7FH 這128位處于片內(nèi)RAM 字節(jié)地址 20H2FH 單元中,如表2-5所示。其余的83個(gè)可尋址位分布在特殊功能寄存器SFR中,見表2-6。 可被位尋址的特殊寄存器有11個(gè),共有位地址88個(gè),5個(gè)位未用,其余83個(gè)位的位地址離散地分布于片內(nèi)數(shù)據(jù)存儲(chǔ)器區(qū)字節(jié)地址為80HFFH的范圍內(nèi),其最低的位地址等于其字節(jié)地址,且其字節(jié)地址的末位都為0H或8H。,49,2020/8/23,50,2020/8/23,51,51,表2-6 SFR中的位地址分布,2020/8/23,52,作為對(duì)AT89S51存儲(chǔ)器
31、結(jié)構(gòu)的總結(jié),圖2-7為各類存儲(chǔ)器的結(jié)構(gòu)圖。從圖中可清楚看出各類存儲(chǔ)器在存儲(chǔ)器空間的位置。,52,圖2-7 AT89S51單片機(jī)的存儲(chǔ)器結(jié)構(gòu),單片機(jī)存儲(chǔ)器,2020/8/23,53,小結(jié)及習(xí)題:,在51系列單片機(jī)片內(nèi)有若干特殊功能寄存器,如SP、DPTR的功能都很重要,要了解單片機(jī)的存儲(chǔ)器的結(jié)構(gòu)的特點(diǎn)。在計(jì)算機(jī)中,存儲(chǔ)器是個(gè)十分重要的部分,單片機(jī)的存儲(chǔ)器結(jié)構(gòu)的特點(diǎn)是我們?cè)趯W(xué)習(xí)中需要重點(diǎn)掌握的內(nèi)容。 1、堆棧有哪些功能?堆棧寄存器(SP)的作用是什么?在程序設(shè)計(jì)時(shí),為什么要對(duì)SP重新賦值。 2、簡(jiǎn)述51單片機(jī)片內(nèi)RAM區(qū)地址空間的分配特點(diǎn)及各部分的作用,2020/8/23,54,2.5 AT89S
32、51的并行I/O端口 4個(gè)雙向的8位并行I/O端口,分別記為P0、P1、P2和P3,其中輸出鎖存器屬于特殊功能寄存器。端口的每一位均由輸出鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成,4個(gè)端口按字節(jié)輸入/輸出外,也可位尋址。 2.5.1 P0口 P0口是一個(gè)雙功能的8位并行端口,字節(jié)地址為80H,位地址為80H87H。端口的各位具有完全相同但又相互獨(dú)立的電路結(jié)構(gòu),P0口某一位的位電路結(jié)構(gòu)如圖2-8所示。,54,2020/8/23,55,55,圖2-8 P0口某一位的位電路結(jié)構(gòu),2020/8/23,56,1位電路結(jié)構(gòu) P0口某一位的電路包括: (1)一個(gè)數(shù)據(jù)輸出的鎖存器,用于數(shù)據(jù)位的鎖存。 (2)兩個(gè)三態(tài)
33、的數(shù)據(jù)輸入緩沖器,分別是用于讀鎖存器數(shù)據(jù)的輸入緩沖器BUF1和讀引腳數(shù)據(jù)的輸入緩沖器BUF2。 (3)一個(gè)多路轉(zhuǎn)接開關(guān)MUX,它的一個(gè)輸入來自鎖存器的 端,另一個(gè)輸入為地址/數(shù)據(jù)信號(hào)的反相輸出。MUX由“控制”信號(hào)控制,實(shí)現(xiàn)鎖存器的輸出和地址/數(shù)據(jù)信號(hào)之間的轉(zhuǎn)接。 (4)數(shù)據(jù)輸出的控制和驅(qū)動(dòng)電路,由兩個(gè)場(chǎng)效應(yīng)管(FET)組成。,56,2020/8/23,57,2工作過程分析 (1)P0口用作地址/數(shù)據(jù)總線 外擴(kuò)存儲(chǔ)器或I/O時(shí),P0口作為單片機(jī)系統(tǒng)復(fù)用的地址/數(shù)據(jù)總線使用。 當(dāng)作為地址或數(shù)據(jù)輸出時(shí),“控制”信號(hào)為1,硬件自動(dòng)使轉(zhuǎn)接開關(guān)MUX打向上面,接通反相器的輸出,同時(shí)使與門處于開啟狀態(tài)。
34、當(dāng)輸出的地址/數(shù)據(jù)信息為1時(shí),與門輸出為1,上方的場(chǎng)效應(yīng)管導(dǎo)通,下方的場(chǎng)效應(yīng)管截止,P0.x引腳輸出為1;當(dāng)輸出的地址/數(shù)據(jù)信息為0時(shí),上方的場(chǎng)效應(yīng)管截止,下方的場(chǎng)效應(yīng)管導(dǎo)通,P0.x引腳輸出為0。,57,2020/8/23,58,輸出電路是上、下兩個(gè)場(chǎng)效應(yīng)管形成的推拉式結(jié)構(gòu),大大提高了負(fù)載能力,上方的場(chǎng)效應(yīng)管這時(shí)起到內(nèi)部上拉電阻的作用。 當(dāng)P0口作為數(shù)據(jù)輸入時(shí),僅從外部存儲(chǔ)器(或I/O)讀入信息,對(duì)應(yīng)的“控制”信號(hào)為0,MUX接通鎖存器的 端。 由于P0口作為地址/數(shù)據(jù)復(fù)用方式訪問外部存儲(chǔ)器時(shí),CPU自動(dòng)向P0口寫入FFH,使下方場(chǎng)效應(yīng)管截止,上方場(chǎng)效應(yīng)管由于控制信號(hào)為0也截止,從而保證數(shù)據(jù)
35、信息的高阻抗輸入,從外部存儲(chǔ)器輸入的數(shù)據(jù)信息直接由P0.x引腳通過輸入緩沖器BUF2進(jìn)入內(nèi)部總線。,2020/8/23,59,具有高阻抗輸入的I/O口應(yīng)具有高電平、低電平和高阻抗3種狀態(tài)的端口。因此,P0口作為地址/數(shù)據(jù)總線使用時(shí)是一個(gè)真正的雙向端口,簡(jiǎn)稱雙向口。 (2)P0口用作通用I/O口 當(dāng)P0口不作為系統(tǒng)的地址/數(shù)據(jù)總線使用時(shí),此時(shí)P0口也可作為通用的I/O口使用。 作通用的I/O口時(shí),對(duì)應(yīng)的“控制”信號(hào)為0,MUX打向下面,接通鎖存器的 端,“與門”輸出為0,上方場(chǎng)效應(yīng)管截止,形成的P0口輸出電路為漏極開路輸出。 P0口作輸出口時(shí),來自CPU的“寫”脈沖加在D鎖存器的CP端,內(nèi)部總線
36、上的數(shù)據(jù)寫入D鎖存器,并由引腳P0.x輸出。,59,2020/8/23,60,當(dāng)D鎖存器為1時(shí), 端為0,下方場(chǎng)效應(yīng)管截止,輸出為漏極開路,此時(shí),必須外接上拉電阻才能有高電平輸出;當(dāng)D鎖存器為0時(shí),下方場(chǎng)效應(yīng)管導(dǎo)通,P0口輸出為低電平。 P0口作輸入口使用時(shí),有兩種讀入方式:“讀鎖存器”和“讀引腳”。 當(dāng)CPU發(fā)出“讀鎖存器”指令時(shí),鎖存器的狀態(tài)由Q端經(jīng)上方的三態(tài)緩沖器BUF1進(jìn)入內(nèi)部總線; 當(dāng)CPU發(fā)出“讀引腳”指令時(shí),鎖存器的輸出狀態(tài)=1(即 端為0),而使下方場(chǎng)效應(yīng)管截止,引腳的狀態(tài)經(jīng)下方的三態(tài)緩沖器BUF2進(jìn)入內(nèi)部總線。,60,2020/8/23,61,3P0口的特點(diǎn) P0口為雙功能口
37、地址/數(shù)據(jù)復(fù)用口和通用I/O口。 (1)當(dāng)P0口用作地址/數(shù)據(jù)復(fù)用口時(shí),是一個(gè)真正的雙向口, 輸出低8位地址和輸出/輸入8位數(shù)據(jù)。 (2)當(dāng)P0口用作通用I/O口時(shí),由于需要在片外接上拉電阻,端口不存在高阻抗(懸?。顟B(tài),因此是一個(gè)準(zhǔn)雙向口。 為保證引腳信號(hào)的正確讀入,應(yīng)首先向鎖存器寫1。單片機(jī)復(fù)位后,鎖存器自動(dòng)被置1;當(dāng)P0口由原來輸出轉(zhuǎn)變?yōu)檩斎霑r(shí),應(yīng)先置鎖存器為1,方可執(zhí)行輸入操作。,61,P0口,2020/8/23,62,P0口大多作為地址/數(shù)據(jù)復(fù)用口使用,就不能再作為通用I/O口使用。 2.5.2 P1口 單功能的I/O口,字節(jié)地址為 90H,位地址為 90H97H。P1口某一位的位電
38、路結(jié)構(gòu)如圖2-9所示。 1位電路結(jié)構(gòu) P1口位電路結(jié)構(gòu)由以下三部分組成: (1)一個(gè)數(shù)據(jù)輸出鎖存器,用于輸出數(shù)據(jù)位的鎖存。,62,2020/8/23,63,圖2-9 P1口某一位的位電路結(jié)構(gòu),2020/8/23,64,(2)兩個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器BUF1和BUF2,分別用于讀鎖存器數(shù)據(jù)和讀引腳數(shù)據(jù)的輸入緩沖。 (3)數(shù)據(jù)輸出驅(qū)動(dòng)電路,由一個(gè)場(chǎng)效應(yīng)管(FET)和一個(gè)片內(nèi)上拉電阻組成。 2工作過程分析 P1口只能作為通用的I/O口使用。 (1)P1口作輸出口時(shí),若CPU輸出1,Q=1, =0,場(chǎng)效應(yīng)管截止,P1口引腳的輸出為1;若CPU輸出0,Q=0, =1,場(chǎng)效應(yīng)管導(dǎo)通,P1口引腳的輸出為0。
39、,64,P1口,2020/8/23,65,(2)P1口作為輸入口時(shí),分為“讀鎖存器”和“讀引腳”兩種方式?!白x鎖存器”時(shí),鎖存器的輸出端Q的狀態(tài)經(jīng)輸入緩沖器BUF1進(jìn)入內(nèi)部總線;“讀引腳”時(shí),先向鎖存器寫1,使場(chǎng)效應(yīng)管截止,P1.x引腳上的電平經(jīng)輸入緩沖器BUF2進(jìn)入內(nèi)部總線。 3P1口的特點(diǎn) 由于內(nèi)部上拉電阻,無高阻抗輸入狀態(tài),故為準(zhǔn)雙向口。 P1口“讀引腳”輸入時(shí),必須先向鎖存器寫入1。 2.5.3 P2口 雙功能口,字節(jié)地址為A0H,位地址為A0HA7H。P2口某一位的位電路結(jié)構(gòu)如圖2-10所示。,65,2020/8/23,66,66,圖2-10 P2口某一位的位電路結(jié)構(gòu),2020/8/
40、23,67,1位電路結(jié)構(gòu) P2口某一位的電路包括: (1)一個(gè)數(shù)據(jù)輸出鎖存器,用于輸出數(shù)據(jù)位的鎖存。 (2)兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器BUF1和BUF2,分別用于讀鎖存器數(shù)據(jù)和讀引腳數(shù)據(jù)的輸入緩沖。 (3)一個(gè)多路轉(zhuǎn)接開關(guān)MUX,一個(gè)輸入是鎖存器的Q端,另一個(gè)輸入是高8位地址。 (4)輸出驅(qū)動(dòng)電路,由場(chǎng)效應(yīng)管(FET)和內(nèi)部上拉電阻組成。,67,2020/8/23,68,2工作過程分析 (1)P2口用作地址總線 在控制信號(hào)作用下,MUX與“地址”接通。當(dāng)“地址”為0時(shí),場(chǎng)效應(yīng)管導(dǎo)通,P2口引腳輸出為0;當(dāng)“地址”線為1時(shí),場(chǎng)效應(yīng)管截止,P2口引腳輸出1。 (2)P2口用作通用I/O口 在內(nèi)部控制信
41、號(hào)作用下,MUX與 鎖存器的Q端接通。 CPU輸出1時(shí),Q=1,場(chǎng)效應(yīng)管截止,P2.x引腳輸出1; CPU輸出0時(shí),Q=0,場(chǎng)效應(yīng)管導(dǎo)通,P2.x引腳輸出0。,2020/8/23,69,P2口輸入時(shí),分 “讀鎖存器”和“讀引腳”兩種方式: “讀鎖存器”時(shí),Q端信號(hào)經(jīng)輸入緩沖器BUF1進(jìn)入內(nèi)部總線 “讀引腳”時(shí),先向鎖存器寫1,使場(chǎng)效應(yīng)管截止,P2.x引腳上的電平經(jīng)輸入緩沖器BUF2進(jìn)入內(nèi)部總線。 3P2口的特點(diǎn) 作為地址輸出線時(shí),P2口高8位地址,P0口輸出的低8位地址尋址64KB地址空間。 作為通用I/O口時(shí),P2口為準(zhǔn)雙向口。功能與P1口一樣。 一般情況下,P2口大多作為高8位地址總線口使
42、用,這時(shí)就不能再作為通用I/O口。,69,2020/8/23,70,2.5.4 P3口 由于引腳數(shù)目有限,在P3口增加了第二功能。每1位都可以分別定義為第二輸入功能或第二輸出功能。P3口字節(jié)地址為B0H,位地址B0HB7H。P3口某一位的位電路結(jié)構(gòu)見圖2-11。 1位電路結(jié)構(gòu) P3口某一位的電路包括: (1)1個(gè)數(shù)據(jù)輸出鎖存器,鎖存輸出數(shù)據(jù)位。 (2)3個(gè)三態(tài)數(shù)據(jù)輸入緩沖器BUF1、BUF2和BUF3,分別用于讀鎖存器、讀引腳數(shù)據(jù)和第二功能數(shù)據(jù)的輸入緩沖。 (3)輸出驅(qū)動(dòng),由與非門、場(chǎng)效應(yīng)管(FET)和內(nèi)部上拉電阻組成。,70,2020/8/23,71,71,圖2-11 P3口某一位的位電路結(jié)
43、構(gòu),2020/8/23,72,2工作過程分析 (1)P3口用作第二輸入/輸出功能 當(dāng)選擇第二輸出功能時(shí),該位的鎖存器需要置1,使與非門為開啟狀態(tài)。 當(dāng)?shù)诙敵鰹?時(shí),場(chǎng)效應(yīng)管截止,P3.x引腳輸出為1; 當(dāng)?shù)诙敵鰹?時(shí),場(chǎng)效應(yīng)管導(dǎo)通,P3.x引腳輸出為0。 當(dāng)選擇第二輸入功能時(shí),該位的鎖存器和第二輸出功能端均應(yīng)置1,保證場(chǎng)效應(yīng)管截止,P3.x引腳的信息由輸入緩沖器BUF3的輸出獲得。,72,2020/8/23,73,(2)P3口用作第一功能通用I/O口 用作第一功能通用輸出時(shí),第二輸出功能端應(yīng)保持高電平,與非門開啟。CPU輸出1時(shí),Q=1,場(chǎng)效應(yīng)管截止,P3.x引腳輸出為1;CPU輸出0時(shí),
44、Q=0,場(chǎng)效應(yīng)管導(dǎo)通,P3.x引腳輸出為0。 用作第一功能通用輸入時(shí),P3.x位的輸出鎖存器和第二輸出功能均應(yīng)置1,場(chǎng)效應(yīng)管截止,P3.x引腳信息通過輸入BUF3和BUF2進(jìn)入內(nèi)部總線,完成“讀引腳”操作。 當(dāng)P3口第一功能通用輸入時(shí),也可執(zhí)行“讀鎖存器”操作,此時(shí)Q端信息經(jīng)過緩沖器BUF1進(jìn)入內(nèi)部總線。,73,2020/8/23,74,3P3口的特點(diǎn) P3口內(nèi)部有上拉電阻,無高阻抗輸入態(tài)-準(zhǔn)雙向口。P3口作為第二功能的輸出/輸入,或第一功能通用輸入,均須將相應(yīng)位的鎖存器置1。實(shí)際應(yīng)用中,由于復(fù)位后P3口鎖存器自動(dòng)置1,滿足第二功能所需的條件,所以不需任何設(shè)置工作,就可以進(jìn)入第二功能操作。 當(dāng)
45、某位不作為第二功能用時(shí),可作為第一功能通用I/O使用。 引腳輸入部分有兩個(gè)緩沖器,第二功能的輸入信號(hào)取自緩沖器BUF3的輸出端,第一功能的輸入信號(hào)取自緩沖器BUF2的輸出端。,74,2020/8/23,75,P3口的第二功能定義見表2-1,讀者應(yīng)熟記。 2.5.5 P1P3口驅(qū)動(dòng)LED發(fā)光二極管 下面討論P(yáng)1P3口與LED發(fā)光二極管的驅(qū)動(dòng)連接問題。 P0口與P1、P2、P3口相比,P0口的驅(qū)動(dòng)能力較大,每位可驅(qū)動(dòng)8個(gè)LSTTL輸入,而P1、P2、P3口的每一位的驅(qū)動(dòng)能力,只有P0口的一半。 當(dāng)P0口某位為高電平時(shí),可提供400A的電流; 當(dāng)P0口某位為低電平(0.45V)時(shí),可提供3.2mA的
46、灌電流。,2020/8/23,76,76,如低電平允許提高,灌電流可相應(yīng)加大。所以,任何一個(gè)口要想獲得較大的驅(qū)動(dòng)能力,只能用低電平輸出。 例如,使用單片機(jī)的并行口P1P3直接驅(qū)動(dòng)發(fā)光二極管,電路如圖2-12。由于P1P3內(nèi)部有30k左右的上拉電阻。 如高電平輸出,則強(qiáng)行從P1、P2和P3口輸出的電流Id會(huì)造成單片機(jī)端口的損壞,如圖2-12(a)所示。 如端口引腳為低電平,能使電流Id 從單片機(jī)外部流入內(nèi)部,則將大大增加流過的電流值,如圖2-12(b)所示。 所以,當(dāng)P1P3口驅(qū)動(dòng)LED發(fā)光二極管時(shí),應(yīng)該采用低電平驅(qū)動(dòng)。,2020/8/23,77,77,(a)不恰當(dāng)?shù)倪B接:高電平驅(qū)動(dòng) (b)恰當(dāng)
47、的連接:低電平驅(qū)動(dòng) 圖2-12 發(fā)光二極管與AT89S51并行口的直接連接,2020/8/23,78,小結(jié)及習(xí)題:,單片機(jī)的I/O口是單片機(jī)和外部設(shè)備的連接通道,對(duì)于四個(gè)I/O口的作用和功能在實(shí)際使用中可以得到更清楚的認(rèn)識(shí)。 AT89S51單片機(jī)共有多少I/O引腳?它們和單片機(jī)對(duì)外的地址總線和數(shù)據(jù)總線有何關(guān)系,2020/8/23,79,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)兩
48、類,一類用對(duì)片內(nèi)各個(gè)功能部件控制,用戶無須了解;另一類用于對(duì)片外存儲(chǔ)器或I/O口的控制,這部分時(shí)序?qū)τ诜治?、設(shè)計(jì)硬件接口電路至關(guān)重要。,79,2020/8/23,80,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-13是AT89S51內(nèi)部時(shí)鐘方式的電路。,80,2020/8/2
49、3,81,圖2-13 內(nèi)部時(shí)鐘方式電路,2020/8/23,82,C1和C2的典型值通常選擇為30pF。電容大小會(huì)影響振蕩器頻率高低、振蕩器的穩(wěn)定性和起振的快速性。晶振頻率范圍通常是1.212MHz。晶體頻率越高,單片機(jī)速度就越快。速度快對(duì)存儲(chǔ)器的速度要求就高,印制電路板的工藝要求也高,即線間的寄生電容要小。晶體和電容應(yīng)盡可能與單片機(jī)靠近,以減少寄生電容,保證振蕩器穩(wěn)定、可靠地工作。為提高溫度穩(wěn)定性,采用溫度穩(wěn)定性能好的電容。 常選6MHz或12MHz的石英晶體。隨著集成電路制造工藝技術(shù)的發(fā)展,單片機(jī)的時(shí)鐘頻率也在逐步提高,已達(dá)33MHz。,82,2020/8/23,83,83,2外部時(shí)鐘方式
50、 用現(xiàn)成的外部振蕩器產(chǎn)生脈沖信號(hào),常用于多片AT89S51同時(shí)工作,以便于多片AT89S51單片機(jī)之間的同步,一般為低于12MHz的方波。 外部時(shí)鐘源直接接到XTAL1端,XTAL2端懸空,見圖2-14。,圖2-14 AT89S51的外部時(shí)鐘方式電路,2020/8/23,84,3時(shí)鐘信號(hào)的輸出 當(dāng)使用片內(nèi)振蕩器,XTAL1、XTAL2引腳還能為應(yīng)用系統(tǒng)中的其他芯片提供時(shí)鐘,但需增加驅(qū)動(dòng)能力。其引出的方式有兩種,如圖2-15所示。,84,2020/8/23,85,圖2-15 時(shí)鐘信號(hào)的兩種引出方式,2020/8/23,86,2.6.2 機(jī)器周期、指令周期與指令時(shí)序 各種指令時(shí)序與時(shí)鐘周期相關(guān)。
51、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ī)器周期。,86,2020/8/23,87,1個(gè)機(jī)器周期包括12個(gè)時(shí)鐘周期,分6個(gè)狀態(tài):S1S6。每個(gè)狀態(tài)又分兩拍:P1和P2。因此,一個(gè)機(jī)器周期中的12個(gè)時(shí)鐘周期表示為S1P1、S1P2、S2P1、S2P2、S6P2,如圖2-16所示。,87,圖2-16 AT89S51的機(jī)器周期,2020/
52、8/23,88,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ī)器周期。,88,2020/8/23,89,2.7 復(fù)位操作和復(fù)位電路 單片機(jī)的初始化操作,給復(fù)位腳RST加上大于2個(gè)機(jī)器周期(即24個(gè)時(shí)鐘振蕩周期)的高電平就使AT89S51復(fù)位。 2.7.1 復(fù)位操作 復(fù)位時(shí),PC初始化為0000H,程序從0000H單元開始執(zhí)行。 除系統(tǒng)的正常初始化外,當(dāng)程序出錯(cuò)(如程序
53、跑飛)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),需按復(fù)位鍵使RST腳為高電平,使AT89S51擺脫“跑飛”或“死鎖”狀態(tài)而重新啟動(dòng)程序。,2020/8/23,90,復(fù)位操作還對(duì)其他一些寄存器有影響,這些寄存器復(fù)位時(shí)的狀態(tài)見表2-7。 由表2-7可看出,復(fù)位時(shí),SP=07H ,而P0P3引腳均為高電平。 在某些控制應(yīng)用中,要注意考慮P0P3引腳的高電平對(duì)接在這些引腳上的外部電路的影響。 例如,當(dāng)P1口某個(gè)引腳外接一個(gè)繼電器繞組,當(dāng)復(fù)位時(shí),該引腳為高電平,繼電器繞組就會(huì)有電流通過,就會(huì)吸合繼電器開關(guān),使開關(guān)接通,可能會(huì)引起意想不到的后果。,90,2020/8/23,91,2020/8/23,92,2.7.2
54、 復(fù)位電路設(shè)計(jì) 由復(fù)位電路實(shí)現(xiàn)。AT89S51片內(nèi)復(fù)位電路結(jié)構(gòu)見圖2-17。 復(fù)位引腳RST通過一個(gè)施密特觸發(fā)器與復(fù)位電路相連,施密特觸發(fā)器用來抑制噪聲,在每個(gè)機(jī)器周期的S5P2,施密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。 復(fù)位電路采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。最簡(jiǎn)單的上電自動(dòng)復(fù)位電路如圖2-18所示。 對(duì)于CMOS型單片機(jī),由于在RST引腳內(nèi)部有一個(gè)下拉電阻,可將電阻R去掉,而將電容C選為10F。,92,2020/8/23,93,圖2-17 片內(nèi)復(fù)位電路結(jié)構(gòu) 圖2-18 上電復(fù)位電路,2020/8/23,94,上電自動(dòng)復(fù)位是給電容C 充電加給RST
55、引腳一個(gè)短的高電平信號(hào),此信號(hào)隨著VCC對(duì)電容C 的充電過程而逐漸回落,即RST引腳上的高電平持續(xù)時(shí)間取決于電容C 充電時(shí)間。為保證系統(tǒng)可靠復(fù)位,RST引腳上的高電平必須維持足夠長(zhǎng)的時(shí)間。 除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平和脈沖兩種方式。 按鍵手動(dòng)復(fù)位電路見圖2-19。 脈沖復(fù)位是利用RC 微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的,脈沖復(fù)位電路見圖2-20。圖中阻容參數(shù)適于6MHz時(shí)鐘。,94,2020/8/23,95,95,圖2-19 按鍵電平復(fù)位電路 圖2-20 按鍵脈沖復(fù)位電路,2020/8/23,96,96,圖2-21所示電路能輸出高、低兩種電平的復(fù)位控制信號(hào),以適應(yīng)外圍I/O接口芯片所要求的不同復(fù)位電平信號(hào)。圖2-2174LS122為單穩(wěn)電路,實(shí)驗(yàn)表明,電容C 的選擇約為0.1F較好。,圖2-21 兩種實(shí)用的兼有上電復(fù)位與按鍵復(fù)位的電路,2020/8/23,97,小結(jié)及習(xí)題:,時(shí)序是計(jì)算機(jī)中的重要概念,所有單片機(jī)內(nèi)部的工作都是按照一定的時(shí)序來進(jìn)行的,有了時(shí)鐘電路及復(fù)位電路,單片機(jī)就可以構(gòu)成最小系統(tǒng)工作。 1、51系列單片機(jī)怎樣進(jìn)行復(fù)位。復(fù)位后內(nèi)部寄存器的狀態(tài)是什么? 2、當(dāng)單片機(jī)時(shí)鐘頻率為12MHZ時(shí),一個(gè)機(jī)器周期是多少? 3、試列舉幾種復(fù)位電路,說明它們是如何完成復(fù)位功能的?,2020/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職園林技術(shù)(園林植物病蟲害防治)試題及答案
- 2025年高職預(yù)防醫(yī)學(xué)(流行病調(diào)查)試題及答案
- 2025年高職??疲ㄞr(nóng)產(chǎn)品加工與質(zhì)量檢測(cè))食品檢測(cè)綜合測(cè)試題及答案
- 2025年大學(xué)電氣工程及其自動(dòng)化(智能控制技術(shù))試題及答案
- 2025年中職(客戶信息服務(wù))客戶溝通階段測(cè)試試題及答案
- 2025年高職土地資源管理(土地登記代理)試題及答案
- 2026年冶金工程師(冶金工藝)考題及答案
- 2026年注冊(cè)公用設(shè)備工程師給水排水(基礎(chǔ)考試下)試題及答案
- 2025年高職影視動(dòng)畫(二維動(dòng)畫制作)試題及答案
- 2025年中職(焊接技術(shù)應(yīng)用)焊接質(zhì)量控制綜合測(cè)試題及答案
- 電子數(shù)據(jù)取證分析師安全培訓(xùn)水平考核試卷含答案
- 上海市園林工程估算指標(biāo)(SHA2-12-2025)
- 涉水工程影響國(guó)家基本水文測(cè)站影響評(píng)價(jià)分析報(bào)告
- 黃芪中藥課件
- 沈陽盛京軍勝農(nóng)業(yè)發(fā)展科技有限公司及所屬企業(yè)2025年面向社會(huì)招聘?jìng)淇碱}庫帶答案詳解
- 入駐直播協(xié)議書
- 血液凈化中心(透析室)年度述職報(bào)告
- 酒吧消防安培訓(xùn)
- 養(yǎng)老院消防培訓(xùn)方案2025年課件
- Smaart7產(chǎn)品使用說明手冊(cè)
- 煙站述職報(bào)告(4篇)
評(píng)論
0/150
提交評(píng)論