單片機(jī)第二章、單片機(jī)的結(jié)構(gòu)和原理.ppt
《單片機(jī)第二章、單片機(jī)的結(jié)構(gòu)和原理.ppt》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)第二章、單片機(jī)的結(jié)構(gòu)和原理.ppt(44頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第2章單片機(jī)的結(jié)構(gòu)和原理,2.180C51系列單片機(jī)總體基本結(jié)構(gòu)組成2.280C51單片機(jī)的引腳功能及結(jié)構(gòu)框圖2.380C51CPU的結(jié)構(gòu)和特點(diǎn)2.4存儲器結(jié)構(gòu)和地址空間2.5布爾(位)處理器2.680C51單片機(jī)的工作方式,,2.180C51系列單片機(jī)總體基本結(jié)構(gòu),8051/8052系列單片機(jī)主要包括以下功能部件:8位CPU:(1)運(yùn)算器:由ALU、暫存器(1、2)、ACC、B、PSW和一個(gè)布爾處理器(作位運(yùn)算)等組成。用于實(shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算。(2)控制器:由PC、DPTR、IR、ID等組成。是計(jì)算機(jī)的控制指揮部件,使計(jì)算機(jī)各部份能自動協(xié)調(diào)的工作。存儲器:用于存放程序和數(shù)據(jù)4K/8K片內(nèi)程序存儲器(ROM/EPROM/EEPROM);128/256字節(jié)的片內(nèi)RAM;可尋址外部程序存儲器和數(shù)據(jù)存儲器各64K;Princeton結(jié)構(gòu),Har-vard結(jié)構(gòu)介紹,2/3個(gè)16位定時(shí)器/計(jì)數(shù)器(timer/counter);精確定時(shí)、對外部事件計(jì)數(shù);1個(gè)全雙工異步串行口(serilport、UART),以實(shí)現(xiàn)單片機(jī)和其它設(shè)備之間的串行數(shù)據(jù)傳送。;5/6個(gè)中斷源,2個(gè)中斷優(yōu)先級,51單片機(jī)的中斷功能較強(qiáng),以滿足不同控制應(yīng)用的需要。具有位尋址能力(bit);片內(nèi)振蕩器和時(shí)鐘電路(osc),時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列。,2.280C51單片機(jī)的引腳功能及結(jié)構(gòu)框圖,2.2.18051單片機(jī)的引腳功能80C51雙列直插式封裝PDIP的引腳圖。,,AT89C51有PDIP、PQFP、TQFPPLCC、LCC等多種封裝形式,根據(jù)引腳功能可分為4類:(1)電源引腳:Vcc(40)、Vss(20)(2)時(shí)鐘電路引腳:XTAL1(19):反相振蕩放大器輸入端和內(nèi)部時(shí)鐘發(fā)生電路輸入。XTAL2(18):片內(nèi)振蕩器反向器輸出端。(3)控制信號引腳RST/Vpd:復(fù)位輸入/備用電源輸入,當(dāng)晶振在運(yùn)行中只要復(fù)位管腳出現(xiàn)2個(gè)機(jī)器周期高電平即可復(fù)位。ALE//PROG:地址鎖存輸出信號/編程脈沖輸入信號/PSEN:片外程序存儲器選通信號(從EPROM/ROM中讀取指令)/EA/Vpp:外部程序存儲器訪問允許信號,輸入/編程電壓輸入當(dāng)/EA接高電平時(shí),CPU只訪問及執(zhí)行片內(nèi)EPROM/ROM,但當(dāng)PC的值超過0FFFH(對8751/8051為4KB)時(shí),將自動轉(zhuǎn)去執(zhí)行片外程序存儲器的內(nèi)容;當(dāng)/EA接低電平時(shí),CPU只訪問及執(zhí)行片外EPROM/ROM中的程序;Vpp=12V~21V,對8751片內(nèi)的EPROM固化程序ALE、/PSEN的負(fù)載能力:8個(gè)LS型TTL,(4)輸入/輸出端口:P0--P3P0口:8位漏極開路雙向I/O口,尋址外部存儲器時(shí),分時(shí)使用(復(fù)用)作數(shù)據(jù)和外部存儲器低8位地址,有8個(gè)TTL負(fù)載的驅(qū)動能力。作輸出口時(shí),輸出高電平要接上拉電阻。P1口:8位準(zhǔn)雙向I/O口,4個(gè)TTL負(fù)載的驅(qū)動能力。P2口:8位準(zhǔn)雙向I/O口,尋址外部存儲器時(shí)作外部存儲器高8位地址,具有4個(gè)TTL負(fù)載的驅(qū)動能力。P3口:8位準(zhǔn)雙向I/O口,有4個(gè)TTL負(fù)載的驅(qū)動能力,同時(shí)具有第二功能。P3.0:RXD串行接收,輸入。P3.1:TXD串行發(fā)送,輸出。P3.2:/INT0外部中斷0請求,輸入,低電平或下降沿有效。P3.3:/INT1外部中斷1請求,輸入,低電平或下降沿有效。P3.4:T0定時(shí)/計(jì)數(shù)器0外部,輸入。P3.5:T1定時(shí)/計(jì)數(shù)器1外部,輸入。P3.6:/WR外部RAM寫信號,輸出,低電平有效。P3.7:/RD外部RAM讀信號,輸出,低電平有效。,2.2.28051單片機(jī)的內(nèi)部結(jié)構(gòu)框圖及組成,,,2.380C51CPU的結(jié)構(gòu)和特點(diǎn)CPU包括:控制器、運(yùn)算器、工作寄存器及時(shí)序電路。2.3.1中央控制器由PC、DPTR(DPH、DPL)、IR、ID等組成地址寄存器PC和DPTR程序計(jì)數(shù)器PC指明即將執(zhí)行的下一條指令的地址,16位,尋址64KB范圍,復(fù)位時(shí)PC=0000H。PC的作用是用來存放將要執(zhí)行的指令地址,共16位,可對64KROM直接尋址,在外擴(kuò)存儲器時(shí),PC低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。也就是說,程序執(zhí)行到什么地方,程序計(jì)數(shù)器PC就指到哪里,它始終是跟著程序的執(zhí)行。我們知道,用戶程序是存放在內(nèi)部的ROM中的,我們要執(zhí)行程序就要從ROM中一個(gè)個(gè)字節(jié)的讀出來,然后到CPU中去執(zhí)行,那么ROM具體執(zhí)行到哪一條呢?這就需要我們的程序計(jì)數(shù)器PC來指示。程序計(jì)數(shù)器PC的基本工作方式:具有自動加1的功能,即從存儲器中讀出一個(gè)字節(jié)的指令碼后,PC自動加1(指向下一個(gè)存儲單元),這是最基本工作方式。執(zhí)行轉(zhuǎn)移時(shí),PC被置入新值,程序的流程就發(fā)生變化。在執(zhí)行調(diào)用、或響應(yīng)中斷時(shí),PC被保護(hù)后被置入新值。,數(shù)據(jù)指針DPTR是一個(gè)16位的特殊功能寄存器,可分為2個(gè)8位的寄存器(DPH、DPL)在訪問外部數(shù)據(jù)存儲器和程序存儲器時(shí),必須以DPTR為數(shù)據(jù)指針通過ACC進(jìn)行訪問。PC與DPTR的比較:兩者都是與地址有關(guān),PC與程序存儲器的地址有關(guān),DPTR與數(shù)據(jù)存儲器的地址有關(guān);PC只能作為16位的寄存器,能自動加1,是不可以訪問的,它的變化改變程序的執(zhí)行流程;而DPTR可以作為16位的寄存器,也可分為2個(gè)8位的寄存器,是可以訪問的。3)指令寄存器IR、指令譯碼器ID、及控制邏輯指令寄存器IR的作用就是用來存放即將執(zhí)行的指令代碼。指令譯碼器ID用于對送入指令寄存器中的指令進(jìn)行譯碼,所謂譯碼就是把指令轉(zhuǎn)變成執(zhí)行此指令所需要的電信號。定時(shí)控制邏輯電路根據(jù)指令的性質(zhì)發(fā)出一系列定時(shí)控制信號,控制計(jì)算機(jī)的各個(gè)組成部分進(jìn)行相應(yīng)的工作,執(zhí)行指令。CPU執(zhí)行指令的過程,首先由程序存儲器(ROM)中讀取指令代碼送入到指令寄存器,經(jīng)譯碼器譯碼后再由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號,從而完成指令的功能。,2.3.2運(yùn)算器運(yùn)算器由ALU、暫存器(1、2)、累加器ACC、寄存器B、程序狀態(tài)字PSW、BCD運(yùn)算修正電路和一個(gè)布爾處理器(作位運(yùn)算)等組成。1.算術(shù)邏輯運(yùn)算單元ALU,,運(yùn)算器主要功能8位算術(shù)運(yùn)算;增量或減量;8位邏輯運(yùn)算;十進(jìn)制數(shù)調(diào)整(BCD);位操作(置‘1’清‘0’取反);左移位、右移位;半字節(jié)交換;2.累加器通常用A或ACC表示,使用最頻繁。其作用:因?yàn)樵谶\(yùn)算器做運(yùn)算時(shí)其中一個(gè)數(shù)一定是在ACC中的緣故。所有的運(yùn)算類指令都離不開它。CPU中的數(shù)據(jù)傳送大多都通過累加器,是一個(gè)數(shù)據(jù)的中轉(zhuǎn)站。自身帶有全零標(biāo)志Z,若A=0則Z=1;若A≠0則z=0。該標(biāo)志常用作程序分枝轉(zhuǎn)移的判斷條件。3.B寄存器。在做乘、除法時(shí)放乘數(shù)或除數(shù),不做乘除法時(shí),可做通用寄存器用。,4.程序狀態(tài)字PSW:(ProgramStatusWord)是一個(gè)8位特殊功能寄存器,這是存放CPU工作時(shí)的很多狀態(tài),通過它可以了解CPU的當(dāng)前狀態(tài),并作出相應(yīng)的處理。它的各位功能請看下表,,下面我們逐一介紹各位的用途:(1)CY:進(jìn)位標(biāo)志。8051中的運(yùn)算器是一種8位的運(yùn)算器,8位運(yùn)算器放最大數(shù)255,如果做加法的話,兩數(shù)相加可能會超過255,這樣最高位就會丟失,最高位就進(jìn)到這里。例:78H+97H(01111000+10010111)(2)AC:輔助進(jìn)位標(biāo)志(半進(jìn)位標(biāo)志)例:57H+3AH(01010111+00111010)(3)F0:用戶標(biāo)志位,由編程人員決定什么時(shí)候用,什么時(shí)候不用。,(4)RS1、RS0:工作寄存器組選擇位。(5)0V:溢出標(biāo)志位。(6)P:奇偶校驗(yàn)位:它用來表示ALU運(yùn)算結(jié)果中二進(jìn)制數(shù)位“1”的個(gè)數(shù)的奇偶性。若為奇數(shù),則P=1,否則為0。例:某運(yùn)算結(jié)果是78H(01111000),顯然1的個(gè)數(shù)為偶數(shù),所以P=0。,,2.3.3時(shí)鐘電路及CPU的工作時(shí)序1.時(shí)鐘電路計(jì)算機(jī)工作時(shí),是在統(tǒng)一的時(shí)鐘脈沖控制下一拍一拍地進(jìn)行的。這個(gè)脈沖是由單片機(jī)控制器中的時(shí)序電路發(fā)出的。單片機(jī)的時(shí)序就是CPU在執(zhí)行指令時(shí)所需控制信號的時(shí)間順序,為了保證各部件間的同步工作,單片機(jī)內(nèi)部電路應(yīng)在唯一的時(shí)鐘信號下嚴(yán)格地控時(shí)序進(jìn)行工作,在學(xué)習(xí)51單片機(jī)的時(shí)序之前,我們先來了解下時(shí)序相關(guān)的一些概念。8051單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,這個(gè)反相放大器的作用就是用于構(gòu)成振蕩器用的,但要形成時(shí)鐘,外部還需要加一些附加電路。8051單片機(jī)的時(shí)鐘產(chǎn)生有以下兩種方法:一、內(nèi)部時(shí)鐘方式:利用單片機(jī)內(nèi)部的振蕩器,然后在引腳XTAL1(18腳)和XTAL2(19腳)兩端接晶振,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路,外接晶振時(shí),晶振兩端的電容一般選擇為30PF左右;這兩個(gè)電容對頻率有微調(diào)的作用,晶振的頻率范圍可在1.2MHz-12MHz之間選擇。為了減少寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。二、外部時(shí)鐘方式:此方式是利用外部振蕩脈沖接入XTAL1或XTAL2。HMOS和CHMOS單片機(jī)外時(shí)鐘信號接入方式不同,HMOS型單片機(jī)(8051)外時(shí)鐘信號由XTAL2端腳注入后直接送至內(nèi)部時(shí)鐘電路,輸入端XTAL1應(yīng)接地。對于CHMOS型的單片機(jī)(80C51),因內(nèi)部時(shí)鐘發(fā)生器的信號取自反相器的輸入端,故采用外部時(shí)鐘源時(shí),接線方式為外時(shí)鐘信號接到XTAL1而XTAL2懸空。如下圖,,80C51的時(shí)鐘電路:,2、時(shí)序定時(shí)單位:一般按指令的執(zhí)行過程規(guī)定了幾中周期,即時(shí)鐘周期、機(jī)器周期和指令周期,也稱為時(shí)序定時(shí)單位,下面分別予以講解。一、時(shí)鐘周期時(shí)鐘周期也稱為振蕩周期,定義為時(shí)鐘脈沖的倒數(shù)(時(shí)鐘周期就是單片機(jī)外接晶振的倒數(shù),例如12M的晶振,它的時(shí)間周期就是1/12us),是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)最基本的動作。對于某種單片機(jī),若采用了1MHZ的時(shí)鐘頻率,則時(shí)鐘周期為1us;若采用4MHZ的時(shí)鐘頻率,則時(shí)鐘周期為250us。由于時(shí)鐘脈沖是計(jì)算機(jī)的基本工作脈沖,它控制著計(jì)算機(jī)的工作節(jié)奏(使計(jì)算機(jī)的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機(jī)型的計(jì)算機(jī),時(shí)鐘頻率越高,計(jì)算機(jī)的工作速度就越快。但是,由于不同的計(jì)算機(jī)硬件電路和器件的不完全相同,所以其所需要的時(shí)鐘周頻率范圍也不一定相同。我們學(xué)習(xí)的80C51單片機(jī)的時(shí)鐘范圍是1.2MHz-40MHz。在8051單片機(jī)中把一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示)二、機(jī)器周期在計(jì)算機(jī)中,常把一條指令的執(zhí)行過程劃分為若干個(gè)階段,每一階段完成一項(xiàng)工作。例如,取指令、存儲器讀、存儲器寫等,這每一項(xiàng)工作稱為一個(gè)基本操作。完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。一般情況下,一個(gè)機(jī)器周期由若干個(gè)S周期(狀態(tài)周期)組成。80C51系列單片機(jī)的一個(gè)機(jī)器周期同6個(gè)S周期(狀態(tài)周期)組成。前面已說過一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示),8051單片機(jī)的機(jī)器周期由6個(gè)狀態(tài)周期組成,也就是說一個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期。,3、指令周期指令周期是執(zhí)行一條指令所需要的時(shí)間,一般由若干個(gè)機(jī)器周期組成。指令不同,所需的機(jī)器周期數(shù)也不同。對于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個(gè)或者兩個(gè)以上的機(jī)器周期。時(shí)鐘周期、狀態(tài)周期、機(jī)器周期、指令周期之間的關(guān)系圖如下。,,2.4存儲器結(jié)構(gòu)和地址空間,一般的微機(jī)的只有一個(gè)存儲空間,統(tǒng)一編址,ROM和RAM可以安排在任一范圍內(nèi),用相同的指令訪問ROM或RAM,程序和數(shù)據(jù)共用一個(gè)存儲器邏輯空間,統(tǒng)一編址。這種結(jié)構(gòu)稱為普林斯頓結(jié)構(gòu)。80C51的存儲器在物理上分為四個(gè)存儲空間:片內(nèi)程序存儲器、片外程序存儲器和片內(nèi)數(shù)據(jù)存儲器、片外數(shù)據(jù)存儲器,這種程序存儲器和數(shù)據(jù)存儲器分開的結(jié)構(gòu)稱為哈佛結(jié)構(gòu)。,80C51單片機(jī)在物理結(jié)構(gòu)上有四個(gè)存儲空間:1、片內(nèi)程序存儲器2、片外程序存儲器3、片內(nèi)數(shù)據(jù)存儲器4、片外數(shù)據(jù)存儲器但在邏輯上,即從用戶的角度上,8051單片機(jī)有三個(gè)存儲空間:1、片內(nèi)外統(tǒng)一編址的64K的程序存儲器地址空間(MOVC)2、256B的片內(nèi)數(shù)據(jù)存儲器的地址空間(MOV)3、64K片外數(shù)據(jù)存儲器的地址空間(MOVX)在訪問三個(gè)不同的邏輯空間時(shí),應(yīng)采用不同形式的指令(具體我們在后面的指令系統(tǒng)學(xué)習(xí)時(shí)將會講解),以產(chǎn)生不同的存儲器空間的選通信號。,8051單片機(jī)存儲器的空間結(jié)構(gòu)圖,,2.4.1程序存儲器,對于80C51來說,片內(nèi)程序存儲器(ROM)共有4KB,內(nèi)部地址為0000H-0FFFH;外部地址為1000H-FFFFH,共60KB。當(dāng)程序計(jì)數(shù)器由內(nèi)部0FFFH執(zhí)行到外部1000H時(shí),會自動跳轉(zhuǎn)。對于8751來說,內(nèi)部有4KB的EPROM,將它作為內(nèi)部程序存儲器;8031內(nèi)部無程序存儲器,必須外接程序存儲器。80C51最大具有片內(nèi)外統(tǒng)一編址64KB程序存儲器尋址空間,它是用于存放用戶程序、數(shù)據(jù)和表格等信息。1、程序存儲器分片內(nèi)程序存儲器和片外程序存儲器當(dāng)/EA=1時(shí),程序從片內(nèi)ROM開始執(zhí)行,當(dāng)PC值超過片內(nèi)ROM容量時(shí)會自動轉(zhuǎn)向外部ROM空間。當(dāng)/EA=0時(shí),程序從外部存儲器開始執(zhí)行,例如前面提到的片內(nèi)無ROM的8031單片機(jī),在實(shí)際應(yīng)用中就要把80C31的引腳接為低電平。2.程序運(yùn)行的入口地址實(shí)際應(yīng)用時(shí),程序存儲器的容量由用戶根據(jù)需要擴(kuò)展,而程序地址空間原則上也可由用戶任意安排。但程序最初運(yùn)行的入口地址,51單片機(jī)是固定的,用戶不能更改。程序存儲器中有復(fù)位和中斷源共7個(gè)固定的入口地址見下表:,,51單片機(jī)復(fù)位、中斷入口地址,單片機(jī)復(fù)位后程序計(jì)數(shù)器PC的內(nèi)容為0000H,故必須從0000H單元開始取指令來執(zhí)行程序。0000H單元是系統(tǒng)的起始地址,一般在該單元存放一條無條件轉(zhuǎn)移指令,用戶設(shè)計(jì)的程序是從轉(zhuǎn)移后的地址開始存放執(zhí)行的。,2.4.2數(shù)據(jù)存儲器數(shù)據(jù)存儲器也稱為隨機(jī)存取數(shù)據(jù)存儲器。數(shù)據(jù)存儲器分為片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。80C51系列內(nèi)部RAM有128(51子系列)或256(52子系列)個(gè)字節(jié)的用戶數(shù)據(jù)存儲器(不同的型號有分別),片外最多可擴(kuò)展64KB的RAM,構(gòu)成兩個(gè)地址空間,訪問片內(nèi)RAM用“MOV”指令,訪問片外RAM用“MOVX”指令。它們是用于存放執(zhí)行的中間結(jié)果和過程數(shù)據(jù)的。數(shù)據(jù)存儲器均可讀寫,部分單元還可以位尋址。1、片內(nèi)數(shù)據(jù)存儲器1)內(nèi)部數(shù)據(jù)存儲器的編址51系列單片機(jī)的內(nèi)部數(shù)據(jù)存儲器由讀寫存儲器RAM組成,用于存儲數(shù)據(jù)。它由RAM塊和特殊功能寄存器(SFR)塊組成,其結(jié)構(gòu)如上圖所示。51子系列有128KB;52子系列有256KB。2)內(nèi)部數(shù)據(jù)存儲器RAM塊由上圖可見,內(nèi)部數(shù)據(jù)存儲器RAM塊共分為工作寄存器區(qū)、位尋址區(qū)、字節(jié)尋址區(qū)和堆棧區(qū)4個(gè)部分。,,A)工作寄存器區(qū)內(nèi)部RAM塊的00H~1FH區(qū),共分4個(gè)組,每組有8個(gè)工作寄存器R0~R7,共32個(gè)內(nèi)部RAM單元。寄存器和RAM地址的對應(yīng)關(guān)系如下表所示。,工作寄存器和RAM地址對照表,工作寄存器共有4組,但程序每次只用1組,其它各組不工作。哪1組寄存器工作由程序狀態(tài)字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來選擇,其對應(yīng)關(guān)系如下表所示。CPU通過軟件修改PSW中RS0和RS1兩位的狀態(tài),就可任選一個(gè)工作寄存器工作,這個(gè)特點(diǎn)使80C51單片機(jī)具有快速現(xiàn)場保護(hù)功能,對于提高程序的效率和響應(yīng)中斷的速度是很有利的,若程序中并不要4個(gè)工作寄存器組,那么剩下的工作寄存器組所對應(yīng)的單元也可以作為一般的數(shù)據(jù)緩沖區(qū)使用。,表工作寄存器組的選擇表,B)位尋址區(qū)(20H-2FH)片內(nèi)RAM的20H—2FH單元為位尋址區(qū),既可作為一般單元用字節(jié)尋址,也可對它們的位進(jìn)行尋址。位尋址區(qū)共有16個(gè)字節(jié),128個(gè)位,位地址為00H—7FH。位地址分配如下表所示:CPU能直接尋址這些位,執(zhí)行例如置“1”、清“0”、求“反”、轉(zhuǎn)移,傳送和邏輯等操作。我們常稱80C51具有布爾處理功能,布爾處理的存儲空間指的就是這些位尋址區(qū)。C)字節(jié)尋址區(qū)(30H-7FH)在片內(nèi)RAM低128單元中,工作寄存器占去32個(gè)單元,位尋址區(qū)占去16個(gè)單元,剩下的80個(gè)單元就是供用戶使用的一般RAM區(qū)了,地址單元為30H-7FH。對這部份區(qū)域的使用不作任何規(guī)定和限制,但應(yīng)說明的是,堆棧一般開辟在這個(gè)區(qū)域。52子系列片內(nèi)RAM有256個(gè)單元,前兩個(gè)的單元數(shù)與地址都和51子系列一致。用戶RAM區(qū)從30H~FFH,共208個(gè)單元。,表內(nèi)部RAM中位地址表,D)堆棧區(qū)與堆棧指針在程序?qū)嶋H運(yùn)行中,往往需要一個(gè)后進(jìn)先出的RAM區(qū),在子程序調(diào)用、中斷服務(wù)處理等場合用以保護(hù)CPU的現(xiàn)場,這種后進(jìn)先出的緩沖區(qū)稱為堆棧。80C51單片機(jī)堆棧區(qū)不是固定的,原則上可設(shè)在內(nèi)部RAM的任意區(qū)域內(nèi),但為了避開工作寄存器區(qū)和位尋址區(qū),一般設(shè)在30H以后的范圍內(nèi),棧頂?shù)奈恢糜蓪iT設(shè)置的堆棧指針寄存器SP(8位)指出。80C51單片機(jī)的堆棧屬向上生長型,如圖所示。有兩個(gè)操作:進(jìn)棧、出棧。,圖80C51單片機(jī)堆棧,3)特殊功能寄存器SFR區(qū)(SpecialFunctionRegister)特殊功能寄存器SFR,又稱為專用寄存器。它專用于控制、管理單片機(jī)內(nèi)算術(shù)邏輯部件、并行I/O口鎖存器、串行口數(shù)據(jù)緩沖器、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作。SFR的地址空間為80H~FFH。特殊功能寄存器區(qū)的SFR只能通過直接尋址的方式進(jìn)行訪問。80C51單片機(jī)共定義了21個(gè)特殊功能寄存器,52子系列增加5個(gè)特殊功能寄存器。,表特殊功能寄存器名稱、標(biāo)識符、地址一覽表,4)位尋址空間在80C51單片機(jī)的內(nèi)部數(shù)據(jù)寄存器RAM塊和特殊功能寄存器SFR塊中,有一部分地址空間可以按位尋址,按位尋址的地址空間又稱之為位尋址空間。位尋址空間一部分在內(nèi)部RAM的20H~2FH的16個(gè)字節(jié)內(nèi),共128位;另一部分在SFR的80H~FFH空間內(nèi),凡字節(jié)地址能被8整除的專用寄存器都有位地址,共93位。因此,80C51系列單片機(jī)共有221個(gè)可尋址位,其位地址見上表所示。,2、外部數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器一般由靜態(tài)RAM芯片組成。擴(kuò)展存儲器容量的大小,由用戶根據(jù)需要而定,但80C51單片機(jī)訪問外部數(shù)據(jù)存儲器可用1個(gè)特殊功能寄存器——數(shù)據(jù)指針寄存器DPTR進(jìn)行尋址。由于DPTR為16位,可尋址的范圍可達(dá)64KB,所以擴(kuò)展外部數(shù)據(jù)存儲器的最大容量是64KB。訪問外部數(shù)據(jù)存儲器只能用間接尋址方式。2.5布爾處理機(jī)布爾處理(即位處理)是51單片機(jī)ALU所具有的一種功能。單片機(jī)指令系統(tǒng)中的布爾指令集(17條位操作指令),存儲器中的位地址空間,以及借用程序狀態(tài)標(biāo)志寄存器PSW中的進(jìn)位標(biāo)志CY作為位操作“累加器”,構(gòu)成了單片機(jī)內(nèi)的布爾處理機(jī)。給“面向控制”的實(shí)際運(yùn)用帶來了極大的方便。,2.680C51單片機(jī)的工作方式80C51有復(fù)位、程序執(zhí)行、低功耗及編程和校驗(yàn)4種工作方式。2.6.1復(fù)位方式1.復(fù)位電路通過某種方式,使單片機(jī)內(nèi)各寄存器的值變?yōu)槌跏紶顟B(tài)的操作稱為復(fù)位。80C51單片機(jī)在時(shí)鐘電路工作以后,在RST/VPD端持續(xù)給出2個(gè)機(jī)器周期的高電平就可以完成復(fù)位操作(一般復(fù)位正脈沖寬度大于10ms)。復(fù)位時(shí)PC值為0000H。當(dāng)程序運(yùn)行時(shí)出錯(cuò)使系統(tǒng)處于死鎖狀態(tài)時(shí),這時(shí)需按復(fù)位鍵以重新啟動。復(fù)位分為上電復(fù)位和外部復(fù)位兩種方式。,80C51單片機(jī)復(fù)位參考電路(a)上電復(fù)位電路;(b)上電/外部復(fù)位電路,2.復(fù)位狀態(tài)80C51單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC和特殊功能寄存器復(fù)位的狀態(tài)如下表所示。復(fù)位不影響片內(nèi)RAM存放的內(nèi)容,而ALE、I/O在復(fù)位期間將輸出高電平。由表可以看出:(1)(PC)=0000H表示復(fù)位后程序的入口地址為0000H;(2)(PSW)=00H,其中RS1(PSW.4)=0,RS0(PSW.3)=0,表示復(fù)位后單片機(jī)選擇工作寄存器0組;(3)(SP)=07H表示復(fù)位后堆棧在片內(nèi)RAM的08H單元處建立;(4)P0口~P3口鎖存器為全1狀態(tài),說明復(fù)位后這些并行接口可以直接作輸入口,無須向端口寫1;(5)定時(shí)器/計(jì)數(shù)器、串行口、中斷系統(tǒng)等特殊功能寄存器復(fù)位后的狀態(tài)對各功能部件工作狀態(tài)的影響,將在后續(xù)有關(guān)章節(jié)介紹。,表PC與SFR復(fù)位狀態(tài)表,2.6.2程序執(zhí)行方式程序執(zhí)行方式是單片機(jī)的基本工作方式。由于復(fù)位后(PC)=0000H,因此程序從地址0000H開始執(zhí)行。2.6.3低功耗各種方式80C51有兩種低功耗方式:待機(jī)方式和掉電保護(hù)方式。其硬件如下圖所示:,待機(jī)方式和掉電方式都是由電源控制寄存器(PCON)的有關(guān)位來控制的。PCON:(97H),SMOD波特率倍增位,在串行口通信時(shí)使用。GF1通用標(biāo)志位1。GF0通用標(biāo)志位0。PD掉電方式位,PD=1,則進(jìn)入掉電方式。IDL待機(jī)方式位,IDL=1,則進(jìn)入待機(jī)方式。,1、待機(jī)方式(休眠方式)當(dāng)利用軟件使待機(jī)方式位IDL(PCON.0)=0時(shí),單片機(jī)進(jìn)入空閑方式。此時(shí),CPU處于休眠狀態(tài),而片內(nèi)所有其它外圍設(shè)備都保持工作狀態(tài),片內(nèi)RAM和所有特殊功能寄存器內(nèi)容保持不變。在待機(jī)方式下,當(dāng)晶振fOSC=12MHz,電源電壓VCC=6V時(shí),電源電流ICC從20mA降至5mA;而VCC=3V時(shí),ICC由5.5mA降至1mA。中斷或硬件復(fù)位可以終止待機(jī)方式。2)掉電方式掉電方式由掉電方式位PD(PCON.1)=1設(shè)置。此時(shí),振蕩器停止工作,設(shè)置掉電方式的指令成為最后執(zhí)行的一條指令,片內(nèi)RAM和特殊功能寄存器內(nèi)容保持不變。在掉電方式下,VCCmin=2V。當(dāng)VCC=6V時(shí),ICCmax=100μA;當(dāng)VCC=3V時(shí),ICCmax=20μA。退出掉電方式的唯一方式是硬件復(fù)位。,硬件復(fù)位將重新定義特殊功能寄存器,但不影響片內(nèi)RAM。復(fù)位的保持時(shí)間應(yīng)足夠長,以便振蕩器能重新開始工作并穩(wěn)定下來。在VCC沒有恢復(fù)到正常工作電壓之前,不應(yīng)進(jìn)行復(fù)位。,作業(yè)80C51單片機(jī)低128字節(jié)是如何組織的?,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī) 第二 結(jié)構(gòu) 原理
鏈接地址:http://www.3dchina-expo.com/p-11648793.html