硬件結(jié)構(gòu)最版_第1頁(yè)
硬件結(jié)構(gòu)最版_第2頁(yè)
硬件結(jié)構(gòu)最版_第3頁(yè)
硬件結(jié)構(gòu)最版_第4頁(yè)
硬件結(jié)構(gòu)最版_第5頁(yè)
已閱讀5頁(yè),還剩72頁(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)介

第二章硬件結(jié)構(gòu)——2本章內(nèi)容提要2.1MCS–51單片機(jī)內(nèi)部總體結(jié)構(gòu)2.2MCS-51的微處理器2.3MCS-51存儲(chǔ)器的結(jié)構(gòu)2.4MCS-51單片機(jī)的引腳第2章MCS–51單片機(jī)的硬件結(jié)構(gòu)2.1MCS-51單片機(jī)的內(nèi)部總體結(jié)構(gòu)2.1.1MCS-51單片機(jī)的基本組成圖2-1

MCS-51單片機(jī)的基本組成

(內(nèi)部單總線)圖2-2MCS-51單片機(jī)內(nèi)部詳細(xì)結(jié)構(gòu)MCS-51單片機(jī)的引腳及片外總線結(jié)構(gòu)單片機(jī)的引腳

8051單片機(jī)芯片采用40引腳,雙列直插封裝(DIP)方式,引腳和邏輯符號(hào)圖2-3MCS-51單片機(jī)的引腳MCS-51單片機(jī)的引腳及片外總線結(jié)構(gòu)圖2-4MCS-51單片機(jī)的外部總線片內(nèi)各功能部件通過(guò)片內(nèi)單一總線①連接而成(見(jiàn)圖2-1),基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)微機(jī)結(jié)構(gòu)。CPU對(duì)各種功能部件的控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)的集中控制方式。各主要部分的作用

中央處理器(CPU)數(shù)據(jù)存儲(chǔ)器(內(nèi)部RAM)程序存儲(chǔ)器(內(nèi)部ROM)定時(shí)/計(jì)數(shù)器并行I/O口串行口時(shí)鐘電路OSC:用于產(chǎn)生單片機(jī)中最基本的時(shí)間單位。中斷系統(tǒng)(1)CPU(微處理器)

8位的CPU,與通用CPU基本相同,同樣包括了運(yùn)算器和控制器兩大部分,還有面向控制的位處理功能。(2)數(shù)據(jù)存儲(chǔ)器(RAM)片內(nèi)為128B(52子系列為256B),片外最多可擴(kuò)64KB。片內(nèi)128B的RAM以高速RAM的形式集成,可加快單片機(jī)運(yùn)行的速度和降低功耗(3)程序存儲(chǔ)器片內(nèi)集成有4KB的程序存儲(chǔ)器,如片內(nèi)容量不夠,片外可外擴(kuò)至64KB。(4)中斷系統(tǒng)具有5個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。中斷處理系統(tǒng)靈活、方便,使單片機(jī)處理問(wèn)題的靈活性和工作的效率大大提高。(5)定時(shí)器/計(jì)數(shù)器2個(gè)16位定時(shí)器/計(jì)數(shù)器(52子系列有3個(gè)),4種工作方式。器用于定時(shí)和對(duì)外部事件進(jìn)行計(jì)數(shù)。

(6)串行口1個(gè)全雙工的異步串行口,4種工作方式。可進(jìn)行串行通信,擴(kuò)展并行I/O口,還可與多個(gè)單片機(jī)構(gòu)成多機(jī)系統(tǒng)。(7)P1口、P2口、P3口、P0口4個(gè)8位并行I/O口。每個(gè)口既可作為輸入,也可作為輸出。單片機(jī)在與外部存儲(chǔ)器及I/O端口設(shè)備交換信息時(shí),必須由P0~P3口完成。(8)特殊功能寄存器(SFR)26個(gè),對(duì)片內(nèi)各功能部件管理、控制和監(jiān)視。是各個(gè)功能部件的控制寄存器和狀態(tài)寄存器,映射在片內(nèi)RAM區(qū)80H~FFH內(nèi)2.2AT89S51的CPU由圖2-1可見(jiàn),CPU由控制器和運(yùn)算器構(gòu)成。2.2.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)算(加、減、乘、除)ALU還有位操作功能,對(duì)位變量進(jìn)行位處理,如置“1”、清“0”、求補(bǔ)、測(cè)試轉(zhuǎn)移及邏輯“與”、“或”等。122.累加器A使用最頻繁的寄存器,可寫(xiě)為Acc?!癆”與“Acc”

書(shū)寫(xiě)上的差別,將在第3章介紹。作用如下:(1)ALU單元的輸入數(shù)據(jù)源之一,又是ALU運(yùn)算結(jié)果存放單元。(2)數(shù)據(jù)傳送大多都通過(guò)累加器A,相當(dāng)于數(shù)據(jù)的中轉(zhuǎn)站。為解決“瓶頸堵塞”問(wèn)題,MCS-51增加了一部分可以不經(jīng)過(guò)累加器的傳送指令。A的進(jìn)位標(biāo)志Cy是特殊的,因?yàn)樗瑫r(shí)又是位處理機(jī)的位累加器133.程序狀態(tài)字寄存器PSWPSW(ProgramStatusWord)位于片內(nèi)特殊功能寄存器區(qū),字節(jié)地址為D0H。包含了程序運(yùn)行狀態(tài)的信息,其中4位保存當(dāng)前指令執(zhí)行后的狀態(tài),供程序查詢和判斷。格式如圖2-3所示。

14PSW中各個(gè)位的功能:(1)Cy(PSW.7)進(jìn)位標(biāo)志位可寫(xiě)為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)充分利用。(4)RS1、RS0(PSW.4、PSW.3)4組工作寄存器區(qū)選擇選擇片內(nèi)RAM區(qū)中的4組工作寄存器區(qū)中的某一組為當(dāng)前工作寄存區(qū)見(jiàn)表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。15(6)PSW.1位保留位(7)P(PSW.0)奇偶標(biāo)志位

指令執(zhí)行完,累加器A中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù)。16P=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>

172.2.2控制器

控制器包括:程序計(jì)數(shù)器、指令寄存器、指令譯碼器、定時(shí)及控制邏輯電路等。功能是控制指令的讀入、譯碼和執(zhí)行,接受來(lái)自程序存儲(chǔ)器ROM存儲(chǔ)單元的指令,并對(duì)其進(jìn)行譯碼,通過(guò)定時(shí)和控制電路,按時(shí)序規(guī)定發(fā)出指令功能所需要的各種(內(nèi)部和外部)控制信息,使各部分協(xié)調(diào)工作,完成指令功能所需的操作。

程序計(jì)數(shù)器特點(diǎn):

PC里存放的是要執(zhí)行的下一條指令的地址,其中內(nèi)容變化軌跡決定程序流程▼它是自動(dòng)增1計(jì)數(shù)器,即完成了一條指令的執(zhí)行后,其內(nèi)容自動(dòng)加1.▼本身沒(méi)有地址,因而不可尋址訪問(wèn)。但是可以通過(guò)分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位等操作的本質(zhì)就是:改變PC值,自動(dòng)將其內(nèi)容更改成所要轉(zhuǎn)移的目的地址。▼總指向下一條指令所在首地址(當(dāng)前PC值)▼單片機(jī)復(fù)位時(shí),PC中內(nèi)容為0000H,從程序存儲(chǔ)器0000H單元取指令,開(kāi)始執(zhí)行程序。即在系統(tǒng)的ROM中一定要存在0000這個(gè)單元,并且在0000單元中一定要存放一條指令。▼

PC的計(jì)數(shù)寬度決定了程序存儲(chǔ)器的地址范圍。PC為16位,故可對(duì)64KB(=216B)尋址。②單片機(jī)的工作過(guò)程——CPU周而復(fù)始執(zhí)行指令的過(guò)程

一條指令的執(zhí)行過(guò)程包括取指和執(zhí)指兩個(gè)階段。指令執(zhí)行前,首先要一條指令的地址送到程序計(jì)數(shù)器PC中,然后開(kāi)始執(zhí)行指令。具體過(guò)程如下:例如:執(zhí)行指令

MOVA,#05H

機(jī)器碼為:第一單元74H(指令碼);第二單元05H(數(shù)據(jù)碼)

2.4MCS-51的存儲(chǔ)器結(jié)構(gòu)

一般微機(jī)只有一個(gè)邏輯空間,可以隨意安排ROM或RAM。訪問(wèn)存儲(chǔ)器時(shí),同一地址對(duì)應(yīng)唯一的存儲(chǔ)空間,可以是ROM或RAM,并用同類(lèi)訪問(wèn)指令。

MCS-51單片機(jī)的存儲(chǔ)器將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)編址,在物理和邏輯上是各自獨(dú)立的,即哈佛(Harvard)結(jié)構(gòu),兩種存儲(chǔ)器有自己的尋址方式和尋址空間。這種結(jié)構(gòu)對(duì)于單片機(jī)“面向控制”的實(shí)際應(yīng)用極為方便、有利。

80C51系列單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上有4個(gè)存儲(chǔ)空間:·片內(nèi)程序存儲(chǔ)器;·片外程序存儲(chǔ)器;·片內(nèi)數(shù)據(jù)存儲(chǔ)器;·片外數(shù)據(jù)存儲(chǔ)器。但在邏輯上,即從用戶使用的角度上,80C51系列有三個(gè)存儲(chǔ)空間:·片內(nèi)外統(tǒng)一編址的64KB的程序存儲(chǔ)器地址空間(用16位地址);·片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間,尋址范圍為00~FFH;·64KB片外數(shù)據(jù)存儲(chǔ)器地址空間?;?.4.1程序存儲(chǔ)器1.程序存儲(chǔ)器的結(jié)構(gòu)和地址分配程序存儲(chǔ)器用16位地址指針PC和DPTR,尋址范圍為64kB。可選擇片內(nèi)程序存儲(chǔ)器或片外程序存儲(chǔ)器。片外程序存儲(chǔ)器必須通過(guò)并行擴(kuò)展總線擴(kuò)展,同時(shí)應(yīng)將片外程序存儲(chǔ)器選擇引腳EA接地;選擇片內(nèi)程序存儲(chǔ)器時(shí),EA接高電平。2.在程序存儲(chǔ)器中,以下單元具有特殊功能,這些地址不得隨意被其它程序指令占用。0000H:復(fù)位后,程序?qū)⒆詣?dòng)從0000H開(kāi)始執(zhí)行。因復(fù)位時(shí)PC中內(nèi)容為0000H通常這5個(gè)中斷入口地址處都放一條跳轉(zhuǎn)指令跳向?qū)?yīng)的中斷服務(wù)子程序,而不是直接存放中斷服務(wù)子程序。程序存儲(chǔ)器用于存放編好的程序或表格常數(shù)程序存儲(chǔ)器通常稱為只讀存儲(chǔ)器ROM,用來(lái)存放預(yù)先編寫(xiě)好的程序。其尋址空間最大為64KB。但對(duì)不同型號(hào)的單片機(jī),其片上所帶的ROM空間是不一樣的,(1)分為片內(nèi)和片外兩部分,訪問(wèn)片內(nèi)的還是片外的程序存儲(chǔ)器,由

引腳電平確定。

=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)的程序。

=0時(shí),只能執(zhí)行片外程序存儲(chǔ)器(0000H~FFFFH)中的程序。不理會(huì)片內(nèi)4KBFlash存儲(chǔ)器。如8031,內(nèi)部無(wú)ROM,故程序存儲(chǔ)器必須外接,并將接地;對(duì)于內(nèi)部有ROM的8051單片機(jī),正常運(yùn)行時(shí),該引腳則需接高電平,使CPU先從內(nèi)部ROM中讀取程序,當(dāng)PC值超過(guò)內(nèi)部ROM容量時(shí),才會(huì)轉(zhuǎn)向外部ROM讀取程序。242.4MCS-51的存儲(chǔ)器結(jié)構(gòu)和地址空間雖然程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共用地址總線,但由于選通信號(hào)不同,即前者是用PSEN選通,后者是用WR和RD信號(hào)選通,故不會(huì)出現(xiàn)混亂。另外,對(duì)于程序存儲(chǔ)器保存的常數(shù)、表格等數(shù)據(jù),單片機(jī)可借助數(shù)據(jù)指針寄存器或程序計(jì)數(shù)器訪問(wèn)該單元讀取數(shù)據(jù)。2.4.2數(shù)據(jù)存儲(chǔ)器:用于存放程序執(zhí)行的中間結(jié)果和過(guò)程數(shù)據(jù)片內(nèi)數(shù)據(jù)存儲(chǔ)器有RAM和SFR之分,這幾個(gè)部分的訪問(wèn)指令不同。從這一點(diǎn)看,數(shù)據(jù)存儲(chǔ)器的使用比程序存儲(chǔ)器略微復(fù)雜點(diǎn)。采用C51語(yǔ)言編程則要簡(jiǎn)單許多。RAM共128個(gè)單元,字節(jié)地址為00H~7FH。但現(xiàn)在有些單片機(jī)擴(kuò)展了高128B(80~FFH)的內(nèi)部RAM,與特殊功能寄存器SFR的地址重疊,但單片機(jī)能依靠指令自動(dòng)區(qū)分。00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)51子系列數(shù)據(jù)存儲(chǔ)器配置

1.片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)及操作片內(nèi)數(shù)據(jù)存儲(chǔ)器采用8位地址指針,尋址范圍為256B,分為兩部分:00H~7FH為可直接尋址和間接尋址空間;80H~FFH直接尋址的空間為SFR空間,不能作數(shù)據(jù)存儲(chǔ)器用。對(duì)于AT89C52/S52還有一塊只能間接尋址的地址為80H~FFH的數(shù)據(jù)存儲(chǔ)器。

2.低128字節(jié)RAM·通用工作寄存器區(qū)

·位尋址區(qū)

·用戶RAM區(qū)

3.高128字節(jié)用戶RAM區(qū)僅AT89S52有

4.片外數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)及操作片外數(shù)據(jù)存儲(chǔ)器和外圍擴(kuò)展電路統(tǒng)一編址,可尋址范圍為64KB。片外數(shù)據(jù)存儲(chǔ)器尋址空間的數(shù)據(jù)傳送使用專門(mén)的MOVX指令。片外數(shù)據(jù)存儲(chǔ)器只能和累加器A交換數(shù)據(jù),通過(guò)地址指針DPTR或工作寄存器Ri間接尋址。00H~1FH

的32個(gè)單元是4組通用工作寄存器區(qū),每區(qū)包含8B,為R7~R0??赏ㄟ^(guò)指令改變RS1、RS0兩位來(lái)選擇。在主程序和子程序間調(diào)用和返回時(shí),通過(guò)對(duì)RS0和RS1的設(shè)置,方便地切換工作寄存器組。20H~2FH的16個(gè)單元的128位可位尋址,也可字節(jié)尋址。30H~7FH的單元只能字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)共80個(gè)單元。PSW.4(RS1)

PSW.3(RS0)

當(dāng)前使用的工作寄存器組R0~R7

000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)2.4.3特殊功能寄存器(SFR)80C51單片機(jī)中,在片內(nèi)RAM的80H~FFH空間建立了集中的特殊功能寄存器SFR空間,通過(guò)該空間的SFR實(shí)現(xiàn)對(duì)80C51系列單片機(jī)內(nèi)部資源的運(yùn)行管理操作、位地址空間的操作等。這種集中的、歸一化操作管理寄存器的模式是單片機(jī)內(nèi)部資源操作管理的重要方式。 采用SFR操作管理方式后,單片機(jī)內(nèi)各種單元電路都可按照可編程集成器件的運(yùn)行管理方式,通過(guò)對(duì)SFR的讀寫(xiě)來(lái)實(shí)現(xiàn)操作管理。訪問(wèn)這些專用寄存器僅允許使用直接尋址的方式。與AT89C51相比,新增5個(gè)SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST。29低128字節(jié)RAM區(qū)高128字節(jié)SFR區(qū)3180C51系列的SFR80C51系列的SFR在數(shù)量與功能上大同小異,

它們離散地分布在片內(nèi)數(shù)據(jù)存儲(chǔ)器的高128字節(jié)地址80H~FFH中,但他們是不能作為數(shù)據(jù)存儲(chǔ)器使用的,所以對(duì)這些特殊功能寄存器是不能隨意寫(xiě)入數(shù)字的,特別是功能部件中的控制寄存器,不同的數(shù)字將使它們具有不同的工作方式。特殊功能寄存器并未占滿80H~FFH整個(gè)地址空間,對(duì)空閑地址的操作是無(wú)意義的。若訪問(wèn)到空閑地址,則讀出的是隨機(jī)數(shù)。AT89S51/S52的SFR地址分布及尋址1.訪問(wèn)這些專用寄存器僅允許使用直接尋址的方式。2.對(duì)于AT89S52單片機(jī),其片內(nèi)RAM的80H~FFH地址上有2個(gè)物理空間(見(jiàn)圖2-6),一個(gè)是SFR的物理空間,一個(gè)是擴(kuò)展的高128字節(jié)的數(shù)據(jù)存儲(chǔ)器物理空間,他們所用的地址單元相同,通過(guò)不同的尋址方式區(qū)分這2個(gè)空間。3.這26/32個(gè)專用寄存器都可以字節(jié)尋址,其中有11/12個(gè)專用寄存器還具有位尋址能力,它們的字節(jié)地址正好能被8整除。(參考書(shū)中表)4.SFR的位尋址與字節(jié)尋址

80C51中可位尋址SFR的直接地址為×OH或×8H,相鄰的8個(gè)地址號(hào)依次作為相應(yīng)的8個(gè)位地址號(hào)。

例如:P1口的口地址是90H(字節(jié)地址),而位地址90H是P1.0,位地址91H是P1.1等等依次類(lèi)推。

1.程序狀態(tài)字寄存器PSW

D7HD6HD5HD4HD3HD2HD1HD0HCACF0RS1RS0OV-P(1)Cy(PSW.7)進(jìn)位標(biāo)志位可寫(xiě)為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)充分利用。(4)RS1、RS0(PSW.4、PSW.3)當(dāng)前工作寄存器組的選擇位選擇片內(nèi)RAM區(qū)中的4組工作寄存器區(qū)中的某一組為當(dāng)前工作寄存區(qū)見(jiàn)表2-2。34常用SFR的功能及應(yīng)用(5)OV(PSW.2)溢出標(biāo)志位 該位表示在有符號(hào)數(shù)進(jìn)行加、減運(yùn)算時(shí),是否發(fā)生了溢出。如果結(jié)果產(chǎn)生溢出,OV=1;否則,OV=0。(6)PSW.1位保留位(7)P(PSW.0)奇偶標(biāo)志位

指令執(zhí)行完,累加器A中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù)。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ù)目煽啃浴?5

2.A—累加器,自帶有全零標(biāo)志Z,A=0則Z=1;A≠0則Z=0。該標(biāo)志常用于程序分支轉(zhuǎn)移的判斷條件。B—寄存器,常用于乘除法運(yùn)算。

3.DPTR0和DPTR1——數(shù)據(jù)指針寄存器由于單片機(jī)可外接64KB的數(shù)據(jù)存儲(chǔ)器和I/O接口電路,故設(shè)置16位的數(shù)據(jù)指針DPTR(DataPointer)。可對(duì)64KB的外部數(shù)據(jù)存儲(chǔ)器和I/O進(jìn)行尋址。它既可以作為一個(gè)16位的寄存器來(lái)使用,也可作為兩個(gè)8位的的寄存器DPH和DPL使用。DPTR在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)既可用來(lái)存放16位地址,也可作地址指針使用。也可作為訪問(wèn)程序存儲(chǔ)器時(shí)的基址寄存器,此時(shí)是尋址程序存儲(chǔ)器中的表格、常數(shù)等單元,而不是尋址指令。MOVDPTR,#data16MOVX@DPTR,A。4.SP堆棧指針(StackPointer)

堆棧是在片內(nèi)RAM的128B中開(kāi)辟棧區(qū),主要功能是暫時(shí)存放數(shù)據(jù)和地址,通常用來(lái)保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。堆棧指針SP始終存放著堆棧棧頂?shù)牡刂贰C看嫒牖蛉〕鲆粋€(gè)字節(jié)數(shù)據(jù),SP就自動(dòng)加1或減1,指向新的棧頂。按先進(jìn)后出的原則存取數(shù)據(jù),開(kāi)機(jī)復(fù)位后,棧底地址為07H。注意:堆棧棧頂超出內(nèi)部RAM單元時(shí),會(huì)引起程序運(yùn)行出錯(cuò)。對(duì)51子系列不要超出7FH,對(duì)52子系列不要超出FFH。這常常是單片機(jī)初學(xué)者和使用高級(jí)語(yǔ)言編程者易犯的錯(cuò)誤之一。《單片微機(jī)原理及應(yīng)用》教學(xué)課件21DQCK/Q讀引腳=0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:(1)輸出地址/數(shù)據(jù)

=0

時(shí)1011=0導(dǎo)通截止=0Vcc用作地址/數(shù)據(jù)總線

2.5單片機(jī)的引腳(P0口)P0.0—P0.7:雙向I/O

(內(nèi)置場(chǎng)效應(yīng)管上拉)

尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。《單片微機(jī)原理及應(yīng)用》教學(xué)課件21DQCK/Q讀引腳=0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:(2)輸出地址/數(shù)據(jù)

=1

時(shí)1100=1截止導(dǎo)通=1Vcc用作地址/數(shù)據(jù)復(fù)用口輸出時(shí),不必外接上拉電阻!直接通過(guò)推挽結(jié)構(gòu)輸出用作地址/數(shù)據(jù)總線

由于P0口作為地址/數(shù)據(jù)復(fù)用方式訪問(wèn)外部存儲(chǔ)器時(shí),CPU自動(dòng)向P0口寫(xiě)入FFH,使下方場(chǎng)效應(yīng)管截止,上方場(chǎng)效應(yīng)管由于控制信號(hào)為0也截止,從而保證數(shù)據(jù)信息的高阻抗(上下都截止)輸入,從外部存儲(chǔ)器輸入的數(shù)據(jù)信息直接由P0.x引腳通過(guò)輸入緩沖器BUF2進(jìn)入內(nèi)部總線。(1)具有高阻抗輸入的I/O口應(yīng)具有高電平、低電平和高阻抗3種狀態(tài)的端口。因此,P0口作為地址/數(shù)據(jù)總線使用時(shí)是一個(gè)真正的雙向端口,簡(jiǎn)稱雙向口。21DQCK/Q讀引腳=1讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X3400100截止截止=0Vcc控制=0(自動(dòng))時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:(3)輸入數(shù)據(jù)時(shí),輸入指令將使引腳與內(nèi)部總線直通21DQCK/Q讀引腳=1讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34控制=0時(shí),此腳作輸出口時(shí),為漏極開(kāi)路,當(dāng)輸出數(shù)據(jù)=1時(shí),須外接上拉電阻才能有高電平輸出。00100截止截止=0Vcc用作通用I/O口

21DQCK/Q讀引腳=1讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34控制=0時(shí),此腳作輸入口(事先必須對(duì)它寫(xiě)“1”)00100截止截止=0Vcc用作通用I/O口

(2)當(dāng)P0口用作通用I/O口時(shí),由于需要在片外接上拉電阻,端口不存在高阻抗(懸浮)狀態(tài),因此是一個(gè)準(zhǔn)雙向口(本身輸出高電平不是真正的外部信號(hào),當(dāng)然對(duì)輸入信號(hào)的邏輯無(wú)影響

,但實(shí)際參數(shù)呢)。為保證引腳信號(hào)的正確讀入,應(yīng)首先向鎖存器寫(xiě)1(MOVP0,#FFH)。單片機(jī)復(fù)位后,鎖存器自動(dòng)被置1;當(dāng)P0口由原來(lái)輸出轉(zhuǎn)變?yōu)檩斎霑r(shí),應(yīng)先置鎖存器為1,(避免上次輸出0使引腳鉗位為低的作用)方可執(zhí)行輸入操作。雙向與準(zhǔn)雙向,根本原則是雙向包含了高阻這個(gè)狀態(tài),而不在于是否需要先寫(xiě)1或者不寫(xiě),P1~P3口因?yàn)橛袃?nèi)部上拉電阻,因此無(wú)論如何不是雙向;P0口內(nèi)部無(wú)上拉電阻,在處于數(shù)據(jù)/地址功能時(shí),自動(dòng)完成3態(tài)的轉(zhuǎn)換,是雙向,處于一般I/O口時(shí),當(dāng)作為輸入使用時(shí),就將開(kāi)關(guān)斷開(kāi),這樣就只剩下上拉(或者下拉)電阻,因而阻抗比較高,可以由其它設(shè)備驅(qū)動(dòng)該IO口。準(zhǔn)雙向口在做為輸入使用時(shí),實(shí)際上還是一種輸出狀態(tài).只是該輸出狀態(tài)的內(nèi)阻比較大而已.而真正的雙向IO口,有方向控制寄存器,作為輸入使用時(shí)輸出部分被斷開(kāi).雙向口與準(zhǔn)雙向口的區(qū)別為雙向口有高阻態(tài),輸入為真正的外部信號(hào),準(zhǔn)雙向口內(nèi)部有上拉,故高電平為內(nèi)部給出不是真正的外部信號(hào)!軟件做處理時(shí)都要先向口寫(xiě)“1”!/view/74f33207eff9aef8941e06c0.html由其內(nèi)部結(jié)構(gòu)決定,當(dāng)作輸出口時(shí),必須外接上拉電阻。P1口的特點(diǎn)由于內(nèi)部上拉電阻,無(wú)高阻抗輸入狀態(tài),故為準(zhǔn)雙向口。

同樣,P1口“讀引腳”輸入時(shí),必須先向鎖存器寫(xiě)入1。(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)部控制信號(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。P2口(內(nèi)置了上拉電阻)《單片微機(jī)原理及應(yīng)用》教學(xué)課件21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線第二功能輸出(WR,RD,TxD)引腳P3.X3內(nèi)部上拉電阻Vcc4第二功能輸出時(shí),內(nèi)部自動(dòng)D=1111反相器單片機(jī)的引腳(P3口)P3.0—P3.7:雙功能口(內(nèi)置了上拉電阻)

它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(zhǔn)雙向I/O口。實(shí)際應(yīng)用中,由于復(fù)位后P3口鎖存器自動(dòng)置1,滿足第二功能所需的條件,所以不需任何設(shè)置工作,就可以進(jìn)入第二功能操作。《單片微機(jī)原理及應(yīng)用》教學(xué)課件21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線此端自動(dòng)=1引腳P3.X3內(nèi)部上拉電阻Vcc

第二功能輸入(RxD,T0,T1,INT0,INT1)4第二功能輸入時(shí),信號(hào)經(jīng)緩沖器4直接進(jìn)入內(nèi)總線1110截止《單片微機(jī)原理及應(yīng)用》教學(xué)課件P3口第二功能表引腳第二功能

P3.0RxD:

串行口接收數(shù)據(jù)輸入端P3.1TxD:

串行口發(fā)送數(shù)據(jù)輸出端P3.2INT0:

外部中斷申請(qǐng)輸入端0P3.3INT1:

外部中斷申請(qǐng)輸入端1P3.4T0:

外部計(jì)數(shù)脈沖輸入端0P3.5T1:

外部計(jì)數(shù)脈沖輸入端1P3.6WR:

寫(xiě)外設(shè)控制信號(hào)輸出端P3.7RD:

讀外設(shè)控制信號(hào)輸出端2.5.5P1~P3口驅(qū)動(dòng)LED發(fā)光二極管下面討論P(yáng)1~P3口與LED發(fā)光二極管的驅(qū)動(dòng)連接問(wèn)題。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的灌電流。如低電平允許提高,灌電流可相應(yīng)加大。所以,任何一個(gè)口要想獲得較大的驅(qū)動(dòng)能力,只能用低電平輸出。53例如,使用單片機(jī)的并行口P1~P3直接驅(qū)動(dòng)發(fā)光二極管,由于P1~P3內(nèi)部有30kΩ左右的上拉電阻。如高電平輸出,則強(qiáng)行從P1、P2和P3口輸出的電流Id會(huì)造成單片機(jī)端口的損壞如端口引腳為低電平,能使電流Id

從單片機(jī)外部流入內(nèi)部,則將大大增加流過(guò)的電流值所以,當(dāng)P1~P3口驅(qū)動(dòng)LED發(fā)光二極管時(shí),應(yīng)該采用低電平驅(qū)動(dòng)。(a)不恰當(dāng)?shù)倪B接:高電平驅(qū)動(dòng)(b)恰當(dāng)?shù)倪B接:低電平驅(qū)動(dòng)4個(gè)I/0端口的主要異同點(diǎn)

1.主要相同點(diǎn)1)鎖存器加引腳的典型結(jié)構(gòu)2)I/O的復(fù)用結(jié)構(gòu)

I/O端口的總線復(fù)用

I/O端口的功能復(fù)用(即將某一端口輸出信號(hào)用以不同的目的。比如在顯示器鍵盤(pán)控制器8279中,將顯示數(shù)碼管掃描線同時(shí)作為鍵盤(pán)掃描線。)3)在對(duì)雙向口作輸入操作時(shí),一定要先向鎖存器寫(xiě)“1”,然后才能正確讀入引腳狀態(tài)。

2.主要不同點(diǎn)1)P1~P3為準(zhǔn)雙向口結(jié)構(gòu)2)驅(qū)動(dòng)能力不同3)功能不同MCS-51單片機(jī)的引腳及片外總線結(jié)構(gòu)單片機(jī)的引腳

8051單片機(jī)芯片采用40引腳,雙列直插封裝(DIP)方式,引腳和邏輯符號(hào)圖2-3MCS-51單片機(jī)的引腳MCS-51單片機(jī)的引腳及片外總線結(jié)構(gòu)圖2-4MCS-51單片機(jī)的外部總線《單片微機(jī)原理及應(yīng)用》教學(xué)課件認(rèn)識(shí)單片機(jī)的引腳MCS-51單片機(jī)40腳Vcc,GND

2XTAL1,XTAL2

2RESET

1EA/Vpp

1ALE/PROG

1PSEN

1P0.0—P0.7

8

P1.0—P1.7

8P2.0—P2.7

8

P3.0—P3.7

8《單片微機(jī)原理及應(yīng)用》教學(xué)課件單片機(jī)的引腳定義從一片集成電路的角度去認(rèn)識(shí)單片機(jī)《單片微機(jī)原理及應(yīng)用》教學(xué)課件單片機(jī)的引腳(電源端)Vcc,GND:

正電源端與接地端(+5V/3.3V/2.7V)不同的單片機(jī)可以允許不同的工作電壓,不同的單片機(jī)表現(xiàn)出的功耗也不同。單片機(jī)內(nèi)部設(shè)有定時(shí)電路,只須外接振蕩元件即可工作。外接振蕩元件一般選用晶體振蕩器,或廉價(jià)的RC振蕩器,也可用外部時(shí)鐘源作振蕩元件。甚至將振蕩元件集成在單片機(jī)芯片內(nèi)部。②單片機(jī)的工作過(guò)程——CPU周而復(fù)始執(zhí)行指令的過(guò)程

一條指令的執(zhí)行過(guò)程包括取指和執(zhí)指兩個(gè)階段。指令執(zhí)行前,首先要一條指令的地址送到程序計(jì)數(shù)器PC中,然后開(kāi)始執(zhí)行指令。具體過(guò)程如下:例如:執(zhí)行指令

MOVA,#05H

機(jī)器碼為:第一單元74H(指令碼);第二單元05H(數(shù)據(jù)碼)

1.單片機(jī)的工作原理:取一條指令、譯碼、進(jìn)行微操作,再取一條指令、譯碼、進(jìn)行微操作,這樣自動(dòng)地、—步一步地由微操作按次序完成相應(yīng)指令規(guī)定的功能。單片機(jī)的時(shí)鐘信號(hào)用來(lái)為單片機(jī)芯片內(nèi)部的各種微操作提供時(shí)間基準(zhǔn),機(jī)器啟動(dòng)后,指令的執(zhí)行順序如下圖2.10所示:

時(shí)鐘的基本概念取指分析執(zhí)行2.概念⑴時(shí)序:各指令的微操作在時(shí)間上有嚴(yán)格的次序,這種微操作的時(shí)間次序稱作時(shí)序。

時(shí)鐘電路:用于產(chǎn)生單片機(jī)工作所需要時(shí)鐘信號(hào)的電路成為時(shí)鐘電路。單片機(jī)的時(shí)鐘電路單片機(jī)時(shí)鐘電路通常有兩種形式:1.內(nèi)部振蕩方式:MCS-51單片機(jī)片內(nèi)有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。把放大器與作為反饋元件的晶體振蕩器或陶瓷諧振器連接,就構(gòu)成了內(nèi)部自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖(如圖1.25所示)?!秵纹C(jī)原理及應(yīng)用》教學(xué)課件單片機(jī)的引腳(晶振端)XTAL1(18),XTAL2(19):片內(nèi)振蕩電路輸入/輸出端利用內(nèi)部時(shí)鐘電路時(shí),XTAL1與XTAL2之間接一晶體振蕩器,XTAL1為內(nèi)部放大電路輸入端,XTAL2為輸出端。5~30pfx2通常外接一個(gè)晶振兩個(gè)電容在XTAL1、XTAL2跨接定時(shí)元件和兩個(gè)電容就構(gòu)成了自激振蕩器。C1、C2取5~30PF,起微調(diào)和穩(wěn)定作用。晶振頻率:fosc=1.2~12MHZ 常用頻率為6、12、11.0592MHz?!秵纹C(jī)原理及應(yīng)用》教學(xué)課件XTAL1XTAL2外部時(shí)鐘外部振蕩器的信號(hào)接至XTAL2,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,而內(nèi)部反相放大器的輸入端XTAL1接地,片內(nèi)振蕩電路不起作用。由于XTAL2端的邏輯電平不是TTL的,故建議外接一個(gè)上拉電阻。

常用于多塊8051同時(shí)工作,以便同步,要求信號(hào)頻率低于12MHz。而對(duì)于CHMOS型單片機(jī)XTAL1為驅(qū)動(dòng)端,XTAL2懸空。2.外部振蕩方式:外部振蕩方式就是把外部已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。

XTAL2XTAL1MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSSTTL外部時(shí)鐘源圖

內(nèi)部振蕩方式圖

外部振蕩方式返回本節(jié)3.振蕩脈沖并不直接使用,由XTAL2端送往內(nèi)部時(shí)鐘電路: 經(jīng)過(guò)2分頻,向CPU提供2相時(shí)鐘信號(hào)P1和P2; 再經(jīng)3分頻,產(chǎn)生ALE時(shí)序; 經(jīng)過(guò)12分頻,成為機(jī)器周期信號(hào)《單片微機(jī)原理及應(yīng)用》教學(xué)課件CPU總是按照一定的時(shí)鐘節(jié)拍與時(shí)序工作:振蕩周期/時(shí)鐘周期:Tc=晶振頻率fosc(或外加頻率)的倒數(shù)狀態(tài)周期:Ts=2個(gè)時(shí)鐘周期(Tc)(很少用到此概念)機(jī)器周期:Tm=6個(gè)狀態(tài)周期(Ts)=12個(gè)振蕩周期(Tc)

對(duì)應(yīng)計(jì)算機(jī)執(zhí)行一個(gè)基本操作所需的時(shí)間,如讀操作或?qū)懖僮?,或單片機(jī)訪問(wèn)一次存儲(chǔ)器的時(shí)間。指令周期:

Ti:執(zhí)行一條指令所需的機(jī)器周期(Tm)數(shù)牢牢記住:

振蕩周期=晶振頻率fosc的倒數(shù);

1個(gè)機(jī)器周期=12個(gè)振蕩周期;

1個(gè)指令周期=1、2、4個(gè)機(jī)器周期時(shí)序的共同點(diǎn):每一次ALE信號(hào)有效,CPU均從ROM中讀取指令碼(包括操作碼和操作數(shù)),但不一定有效,讀了之后再丟棄(假讀)。有效時(shí),PC+1→PC不變(程序計(jì)數(shù)器PC不加1);無(wú)效時(shí)不變。其余時(shí)間用于執(zhí)行指令操作功能,但在時(shí)序中沒(méi)有完全反映出。如雙字節(jié)單機(jī)器周期,分別在S1、S4讀操作碼和操作數(shù),執(zhí)行指令就一定在S2、S3、S5、S6中完成。《單片微機(jī)原理及應(yīng)用》教學(xué)課件單片機(jī)的引腳(復(fù)位端)Vcc,GND:電源端(+5V/3.3V/2.7V)XTAL1,XTAL2:片內(nèi)振蕩電路輸入、輸出端RESET:復(fù)位端(正脈沖有效,寬度8mS)復(fù)位使單片機(jī)進(jìn)入某種確定的初始狀態(tài):

PC值歸零(0000H);▼各個(gè)SFR被賦予初始值

P0~P3=0FFH,Acc=0,B=0,TH0=0,TL0=0,TH1=0,TL0=0,SP=7,PSW=0……▼退出處于節(jié)電工作方式的停頓狀態(tài)、退出一切程序進(jìn)程、退出程序的死循環(huán),從頭開(kāi)始(重啟)。MCS-51單片機(jī)的復(fù)位信號(hào),高電平有效。RST/VPD引腳至少保持2個(gè)機(jī)器周期(或10ms)的高電平,才能復(fù)位。直至RST端變?yōu)榈碗娖綍r(shí),單片機(jī)開(kāi)始正常工作!1)上電自動(dòng)復(fù)位接通電源瞬間電容充電產(chǎn)生正脈沖2)手動(dòng)電平復(fù)位(上電+按鍵,按鍵不是瞬時(shí)的):按鍵按下時(shí),復(fù)位端出現(xiàn)兩個(gè)電阻分壓的電平使單片機(jī)復(fù)位。(微分電路)復(fù)位按鍵按下后:RST端通過(guò)小電阻與電源VCC接通,電容器迅速放電、使RST引腳為高電平按鍵松開(kāi)后:電源重新通過(guò)1K電阻對(duì)電容器充電,同上,RST引腳又逐漸降為低電平,直至復(fù)位結(jié)

溫馨提示

  • 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)論