第二章 80C51單片機的結構與原理_第1頁
第二章 80C51單片機的結構與原理_第2頁
第二章 80C51單片機的結構與原理_第3頁
第二章 80C51單片機的結構與原理_第4頁
第二章 80C51單片機的結構與原理_第5頁
已閱讀5頁,還剩119頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章80C51的結構和原理2.280C51單片機芯片的內(nèi)部結構及特點2.3單片機的CPU2.4輸出/輸入端口結構2.580C51單片機的存儲器2.6時鐘電路及CPU時序2.7復位操作2.880C51單片機的低功耗工作方式2.180C51單片機介紹2.1

80C51單片機介紹見概述2.2

80C51單片機芯片內(nèi)部結構及特點2.2.180C51單片機的基本組成2.2.280C51單片機芯片內(nèi)部結構2.2.380C51單片機的引腳分布2.2.180C51單片機的基本組成一、組成80C51單片機結構框圖80C51CPU振蕩器和時序OSC64KB總線擴展控制器數(shù)據(jù)存儲器256BRAM/SFR2×16位定時器/計數(shù)器可編程I/O程序存儲器4KBFLASHROM可編程全雙工串行口外中斷內(nèi)中斷控制并行口串行通信外部時鐘源外部事件計數(shù)一個8位的微處理器CPU。用以存放可以讀/寫的數(shù)據(jù),如運算的中間結果、最終結果以及欲顯示的數(shù)據(jù)等。片內(nèi)數(shù)據(jù)存儲器(RAM128B/256B)

用以存放程序、一些原始數(shù)據(jù)和表格。片內(nèi)4kB程序存儲器FlashROM(4KB)四個8位并行I/O(輸入/輸出)接口P0-P3每個口可以用作輸入,也可以用作輸出。

每個定時/計數(shù)器都可以設置成計數(shù)方式,用以對外部事件進行計數(shù),也可以設置成定時方式,并可以根據(jù)計數(shù)或定時的結果實現(xiàn)計算機控制。兩個或三個定時/計數(shù)器

可實現(xiàn)單片機與單片機或其它微機之間串行通信。一個全雙工UART的串行I/O口

需外接晶振和電容。片內(nèi)振蕩器和時鐘產(chǎn)生電路五個中斷源的中斷控制系統(tǒng)具有節(jié)電工作方式休閑方式及掉電方式。二、80C51系列單片機的性能80C51單片機具有節(jié)電工作方式,即休閑方式及掉電方式。各個部分通過片內(nèi)8位數(shù)據(jù)總線相連接。80C51是用靜態(tài)邏輯來設計的,其工作頻率可下降到0Hz,并提供兩種省電方式——空閑方式和掉電方式。低電壓型號89LV51,除了電壓范圍有區(qū)別之外,其余特性與80C51完全一致。80C51/LV51是一種低功耗/低電壓、高性能的8位單片機。它采用了CMOS工藝和高密度非易失性存儲器技術,其輸出引腳和指令系統(tǒng)與80C51兼容;片內(nèi)的FlashROM允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的非易失性存儲器編程器來編程。一、結構圖由中央處理單元(CPU)、存儲器(ROM及RAM)和I/O接口組成。80C51單片機內(nèi)部結構如圖2-2所示。2.2.280C51單片機芯片內(nèi)部結構P0驅(qū)動器P2驅(qū)動器P0鎖存器P2鎖存器RAM地址寄存器128BRAM4KBROMB寄存器暫存器1暫存器2ACCSP程序地址寄存器緩沖器PC增1PCDPTR中斷、串行口和定時器PSWP1鎖存器P1驅(qū)動器P3鎖存器P3驅(qū)動器定時控制指令寄存器指令譯碼器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARESET80C51單片機內(nèi)部結構圖運算器控制器存儲器I/O接口二、結構組成中央處理單元(CPU)存儲器I/O接口1、中央處理單元運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器16位程序計數(shù)器指令寄存器IR及指令譯碼器ID振蕩器和定時電路2、存儲器程序存儲器(ROM)數(shù)據(jù)存儲器(RAM)80C51片內(nèi)為4KBFlashROM。地址從0000H開始。用于存放程序和表格常數(shù)。

80C51RAM均為128B,地址為00H~7FH。用于存放運算的中間結果、數(shù)據(jù)暫存以及數(shù)據(jù)緩沖等。這128B的RAM中有32個字節(jié)單元可指定為工作寄存器。片內(nèi)還有21個特殊功能寄存器(SFR),它們同128字節(jié)RAM統(tǒng)一編址,地址為80H~FFH。后面詳細介紹。3、I/O接口80C51有四個8位并行I/O接口P0~P3。它們都是雙向端口,每個端口各有8條I/O線。P0-P3口四個鎖存器同RAM統(tǒng)一編址,可作為SFR來尋址。80C51有一個可編程的全雙工串行口(UART),可實現(xiàn)與外界的串行通信。一、80C51單片機引腳圖2-380C51/LV51的引腳結構(有雙列直插封裝(DIP)方式和方形封裝方式)2.2.380C51單片機引腳分布二、80C51單片機引腳功能電源引腳:Vcc和Vss時鐘電路引腳:XTAL1和XTAL2控制信號引腳RST、ALE、PSEN和EAI/O端口P0、P1、P2和P3電源引腳Vcc(40腳):電源端,為+5V。Vss(20腳):接地端。時鐘電路引腳XTAL2(18腳)接外部晶體和微調(diào)電容的一端;在80C51片內(nèi)它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時鐘電路時,該引腳輸入外部時鐘脈沖。80C51正常工作時,該引腳應有脈沖信號輸出。XTAL1(19腳)時鐘電路引腳XTAL2(18腳)接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反向放大器的輸入端,在采用外部時鐘時,該引腳接地。XTAL1(19腳)控制信號引腳

RST/VPD(9腳)ALE/PROG(30腳)PSEN(29腳)EA/VPP(31腳)RST:復位信號輸入端,高電平有效。當此輸入端保持兩個機器周期的高電平時,就可以完成復位操作。VPD

:RST引腳的第二功能,備用電源輸入端。當主電源Vcc發(fā)生故障,降低到低電平規(guī)定值時,將+5V電源自動接入該引腳,為RAM提供備用電源,以保證RAM中的信息不丟失,使得復位后能繼續(xù)正常運行??刂菩盘栆_

RST/VPD(9腳)ALE/PROG(30腳)PSEN(29腳)EA/VPP(31腳)ALE:地址鎖存允許信號端。正常工作時,該引腳以振蕩頻率的1/6固定輸出正脈沖。CPU訪問片外存儲器時,該引腳輸出信號作為鎖存低8位地址的控制信號。它的負載能力為8個LS型TTL負載。PROG:是對片內(nèi)帶有4KBFlashROM的80C51編程寫入時的編程脈沖輸入端。控制信號引腳

RST/VPD(9腳)ALE/PROG(30腳)PSEN(29腳)EA/VPP(31腳)程序存儲器允許信號輸出端。在訪問片外ROM時,定時輸出負脈沖作為讀片外ROM的選通信號,接片外ROM的OE端。它的負載能力為8個LS型TTL負載??刂菩盘栆_

RST/VPD(9腳)ALE/PROG(30腳)PSEN(29腳)EA/VPP(31腳)EA:

外部程序存儲器地址允許輸入端。當該引腳接高電平時,CPU訪問片內(nèi)ROM并執(zhí)行片內(nèi)程序存儲器中的指令,但當PC值超過0FFFH(片內(nèi)ROM為4KB)時,將自動轉向執(zhí)行片外ROM中的程序。當該引腳接低電平時,CPU只訪問片外ROM并執(zhí)行外部程序存儲器中的程序。Vpp:對80C51片內(nèi)FlashROM固化編程時,編程電壓輸入端(12-21V)。I/O端口P0、P1、P2和P3準雙向P0口P1口P2口P3口當I/O口作為輸入時,應先向此口鎖存器寫入全1,此時該口引腳浮空,可作高阻抗輸入。I/O端口P0、P1、P2和P3準雙向P0口P1口P2口P3口漏極開路的8位準雙向I/O口,每位能驅(qū)動8個LS型TTL負載。P0口可作為一個數(shù)據(jù)輸入/輸出口;在CPU訪問片外存儲器時,P0口為分時復用的低8位地址總線和8位數(shù)據(jù)總線。I/O端口P0、P1、P2和P3準雙向P0口P1口P2口P3口帶內(nèi)部上拉電阻的8位準雙向I/O端口,每位能驅(qū)動4個LS型TTL負載。I/O端口P0、P1、P2和P3準雙向P0口P1口P2口P3口帶內(nèi)部上拉電阻的8位準雙向I/O端口,每位能驅(qū)動4個LS型TTL負載。在CPU訪問片外存儲器時,它輸出高8位地址。I/O端口P0、P1、P2和P3準雙向P0口P1口P2口P3口帶內(nèi)部上拉電阻的8位準雙向I/O端口,每位能驅(qū)動4個LS型TTL負載。P3口除作為一般I/O口外,每個引腳都有第二功能。表2-1P3端口引腳與復用功能表運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器可對4位、8位、16位數(shù)據(jù)進行操作。2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器它經(jīng)常作為一個運算數(shù)經(jīng)暫存器2進入ALU的輸入端,與另一個來自暫存器1的運算數(shù)進行運算,運算結果又送回ACC。2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器指示指令執(zhí)行后的狀態(tài)信息供程序查詢和判別用。2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器在乘除運算時,用來存放一個操作數(shù)也用來存放運算后的一部分結果;如不能做乘除運算時,作為通用寄存器。2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器專門用于處理位操作的,以PSW中的C為其累加器。2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器ALU的兩個入口處。2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器16位程序計數(shù)器指令寄存器IR及指令譯碼器ID振蕩器和定時電路2.380C51單片機的CPU2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器16位程序計數(shù)器指令寄存器IR及指令譯碼器ID振蕩器和定時電路由兩個8位計數(shù)器PCH、PCL組成。PC是程序的字節(jié)地址計數(shù)器,PC內(nèi)容為將要執(zhí)行的指令地址。改變PC內(nèi)容,改變執(zhí)行的流向。PC可對64KB的ROM直接尋址,也可對80C51片內(nèi)RAM尋址。運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器16位程序計數(shù)器指令寄存器IR及指令譯碼器ID振蕩器和定時電路由PC中的內(nèi)容指定ROM地址取出來的指令經(jīng)IR送至ID由ID對指令譯碼產(chǎn)生一定序列的控制信號,以執(zhí)行指令所規(guī)定的操作。2.380C51單片機的CPU運算器控制器8位的ALU8位累加器ACC(A)8位程序狀態(tài)寄存器PSW8位寄存器B布爾處理器2個8位暫存器16位程序計數(shù)器指令寄存器IR及指令譯碼器ID振蕩器和定時電路80C51單片機片內(nèi)有振蕩電路,只需外接石英晶體和頻率微調(diào)電容(2個30pF左右),其頻率范圍為1.2MHz~12MHz。該信號作為80C51工作的基本節(jié)拍即時間的最小單位。2.380C51單片機的CPU2.4

輸出/輸入端口結構

I/O端口概述2.4.1P1口2.4.2P2口2.4.3P0口2.4.4P3口2.4.5端口的負載能力和接口要求I/O端口概述80C51單片機有四個8位并行I/O端口:P0、P1、P2和P3。每個端口都是8位準雙向口,共占32根引腳。每一條I/O線都能獨立地用作輸入或輸出。每個端口都包括一個鎖存器(即特殊功能寄存器P0-P3),一個輸出驅(qū)動器和輸入緩沖器,作輸出是數(shù)據(jù)可以鎖存,作輸入時數(shù)據(jù)可以緩沖。P1口結構:輸出驅(qū)動部分與P0口不同,內(nèi)部有上拉負載電阻與電源相連。實質(zhì)上,電阻是兩個場效應管FET并在一起:一個FET為負載管,其電阻固定;另一個FET可工作在導通或截止兩種狀態(tài),使其總電阻值變化近似為0或阻值很大兩種情況。當阻值近似為0時,可將引腳快速上拉至高電平;當阻值很大,P1口為高阻輸入狀態(tài)。2.4.1P1口——準雙向口,用作通用I/O口圖2-19

P1口某位的結構P1口用作通用I/OP1口是一個準雙向口。在端口用作輸入時,也必須先向?qū)逆i存器寫入1,使FET截止。當P1口輸出高電平時,能向外提供拉電流負載,所以不必再接上拉電阻。

P2口結構P2口某位的結構與P0口類似,有MUX開關。驅(qū)動部分與P1口類似,但比P1口多了一個轉換控制部分。2.4.2P2口圖2-20

P2口某位的結構圖

P2口用作一般I/O口當CPU對片內(nèi)存儲器和I/O口進行讀/寫時,由內(nèi)部硬件自動使開關MUX倒向鎖存器的Q端,這時,P2口為一般I/O口。在只需擴展256B片外RAM的系統(tǒng)中,使用“MOVXA,@Ri”類指令訪問片外RAM時,尋址范圍是256B,只需低8位地址線就可以實現(xiàn)。P2口不受該指令影響,仍可作通用I/O口。若擴展的RAM容量超過256B,使用“MOVXA,@DPTR”類指令的尋址范圍是64KB,此時,高8位地址總線用P2口輸出。在片外RAM讀/寫周期內(nèi),P2口鎖存器仍保持原來端口的數(shù)據(jù);在訪問片外RAM周期結束后,多路開關MUX自動切換倒鎖存器Q端。由于CPU對RAM的訪問不是經(jīng)常的,在這種情況下,P2口在一定的限度內(nèi)仍可用作通用I/O口。P2口用作高8位地址總線當CPU對片外存儲器或I/O口進行讀/寫(執(zhí)行MOVX指令或EA=0時執(zhí)行MOVC指令)時,開關倒向地址線(右)端,這時,P2口只輸出高8位地址。因為訪問片外EPROM和RAM的操作往往接連不斷,所以,P2口要不斷送出高8位地址,此時P2口無法再用作通用I/O口。

P0口結構P0口某位的結構由一個輸出鎖存器、二個三態(tài)輸入緩沖器和輸出驅(qū)動電路及控制電路組成。如圖2-21所示。當C=0時,開關MUX被控為如圖示位置,P0口為通用I/O口;當C=1時,開關撥向反相器3的輸出端,P0口分時作為地址/數(shù)據(jù)總線使用。2.4.3P0口圖2-21

P0口某位的結構圖

P0口作為一般I/O口使用P0口用作輸出口當CPU執(zhí)行輸出指令時,寫脈沖加在D鎖存器的CL上,這樣,與內(nèi)部總線相連的D端的數(shù)據(jù)取反后就出現(xiàn)在Q端上,又經(jīng)輸出級FET(T2)反相,在P0端口上出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。這是一般的數(shù)據(jù)輸出情況。P0口作輸入口當執(zhí)行一條由端口輸入的指令時,“讀引腳”脈沖把三態(tài)緩沖器2打開,這樣,端口上的數(shù)據(jù)經(jīng)過緩沖器2讀入到內(nèi)部總線。在端口進行輸入操作前,應先向端口鎖存器寫入1,即使鎖存器Q=0。因為控制線C=0,因此T1和T2全截止,引腳處于懸浮狀態(tài),可作高阻抗輸入。

P0口作為地址/數(shù)據(jù)總線使用P0口用作輸出地址/數(shù)據(jù)總線以P0口引腳輸出低8位地址或數(shù)據(jù)信息,MUX開關把CPU內(nèi)部地址/數(shù)據(jù)線經(jīng)反向器3與驅(qū)動場效應管FET(T2)柵極接通。上下兩個FET處于反相,構成推拉式的輸出電路(T1導通時上拉,T2導通時下拉),提高了負載能力。當P0口被地址/數(shù)據(jù)總線占用時,就無法再作I/O口使用了。由P0口輸入數(shù)據(jù):“讀引腳”信號有效時,打開輸入緩沖器2,使數(shù)據(jù)進入內(nèi)部總線。

P3口結構P3口是一個多功能端口,其某一位的結構見圖2-22。P3口與P1口的差別在于多了“與非”門3和緩沖器4。使得P3口除了具有P1口的準雙向I/O功能外,還可以使用各引腳所具有的第二功能。2.4.4P3口圖2-22

P3口某位的結構圖“與非”門3的作用實際上是一個開關,決定是輸出鎖存器上的數(shù)據(jù)還是輸出第二功能(W)的信號。當W=1時,輸出Q端信號;當Q=1時,可輸出W線信號。編程時,可不必事先由軟件設置P3口為第一功能(通用I/O口)還是第二功能。當CPU對P3口進行SFR尋址(位或字節(jié))訪問時,由內(nèi)部硬件自動將第二功能輸出線W置1,這時,P3口為通用I/O口。當CPU不對P3口進行SFR尋址(位或字節(jié))訪問時,即用作第二功能輸出/輸入線時,由內(nèi)部硬件使鎖存器Q=1。當把P3口作為通用I/O口進行SFR尋址時“第二輸出功能端”W保持高電平,打開“與非”門3,D鎖存器輸出端Q的狀態(tài)可通過“與非”門3送至FET場效應管輸出。當P3口作為輸入使用(即CPU讀引腳狀態(tài))時,同P0—P2口一樣應由軟件向口鎖存器寫1。P3口作為通用I/O口使用P3口用作第二功能使用

當端口用于第二功能時,8個引腳可按位獨立定義。表2-10P3各口線與第2功能表2.4.5端口的負載能力和接口要求P0口:

P0口與其他口不同,它的輸出級無上拉電阻。當把它用作通用I/O口時,輸出級是開漏電路,故用其輸出去驅(qū)動NMOS輸入時須外接上拉電阻。用作輸入時,應先向口鎖存器(80H)寫1。把它當作地址/數(shù)據(jù)總線時(片外擴展ROM或RAM的情況),則無須外接上拉電阻。P0口的每一位輸出可驅(qū)動8個LS型TTL負載。P1~P3口

P1~P3口的輸出級接有內(nèi)部上拉負載電阻,它們的每一位輸出可驅(qū)動4個LS型TTL負載。作為輸入口時,任何TTL或NMOS電路都能以正常的方式驅(qū)動80C51單片機(CHMOS)的P1~P3口。由于它們的輸出級具有上拉電阻,所以也可以被集電極開路(OC門)或漏極開路所驅(qū)動,而無須外接上拉電阻。對于80C51單片機(CHMOS),端口只能提供幾毫安的輸出電流,故當作輸出口去驅(qū)動一個普通晶體管的基極(或TTL電路輸入端)時,應在端口與晶體管基極間串聯(lián)一個電阻,以限制高電平輸出時的電流。P1~P3口也都是準雙向口。作為輸入時,必須先對相應端口鎖存器寫1。2.580C51單片機的存儲器2.5.1

80C51存儲器分類2.5.2

程序存儲器地址空間2.5.3

數(shù)據(jù)存儲器地址空間2.5.180C51存儲器分類物理結構(哈佛結構)片內(nèi)程序存儲器片外程序存儲器片內(nèi)數(shù)據(jù)存儲器片外數(shù)據(jù)存儲器80C51存儲器程序存儲器ROM數(shù)據(jù)存儲器RAM圖2-480C51存儲器配置用戶角度上述三個存儲空間地址是重疊的,80C51的指令系統(tǒng)采用不同的數(shù)據(jù)傳送指令符號。片內(nèi)、外統(tǒng)一編址的64K程序存儲器地址空間。CPU訪問片內(nèi)、片外ROM指令用MOVC。64K的片外數(shù)據(jù)存儲器地址空間。訪問片外RAM指令用MOVX。256字節(jié)的片內(nèi)數(shù)據(jù)存儲器地址空間。訪問片內(nèi)RAM指令用MOV。2.5.2程序存儲器地址空間用途編址尋址方式用于存放編好的程序和表格常數(shù)。2.5.2程序存儲器地址空間用途編址尋址方式80C51片內(nèi)FlashROM的容量為4KB。地址為0000H~0FFFH。片外最多可擴至64KBROM/EPROM,地址為1000H~FFFFH。片內(nèi)外統(tǒng)一編址。尋址方式當EA=“1”時80C51的PC在0000~0FFFH范圍內(nèi)執(zhí)行片內(nèi)ROM中的程序,當指令地址超過0FFFH后就自動轉向片外ROM中取指令。尋址方式當EA=“1”時當EA=“0”時80C51片內(nèi)ROM不起作用,CPU只能從片ROM/EPROM中取指令。可以從0000H

開始尋址。由于8031片內(nèi)不帶ROM

,所以使用時必須EA=”0”。尋址方式當EA=“1”時當EA=“0”時80C51從片內(nèi)ROM和片外ROM取指的速度相同。程序存儲器的保留存儲單元。如表2-2所示。

用作80C51上電復位后引導程序的存放單元。因為復位后PC的內(nèi)容為0000H,CPU總是從0000H開始執(zhí)行程序。將轉移指令存放到這三個單元,程序就被引導到指定的程序存儲器空間去執(zhí)行。尋址方式當EA=“1”時當EA=“0”時80C51從片內(nèi)ROM和片外ROM取指的速度相同。程序存儲器的保留存儲單元。如表2-2所示。

均分為五段,用作五個中斷服務程序的入口。中斷矢量地址表如表2-3所示。2.5.3數(shù)據(jù)存儲器地址空間用途片外RAM片內(nèi)RAM用于存放運算的中間結果、數(shù)據(jù)暫存和緩沖、標志位等。2.3.3數(shù)據(jù)存儲器地址空間用途片外RAM片內(nèi)RAM地址:0000H-FFFFH尋址:用MOVX指令2.3.3數(shù)據(jù)存儲器地址空間用途片外RAM片內(nèi)RAM片內(nèi)RAM地址空間低128字節(jié)RAM(00H~7FH)高128字節(jié)RAM(80H~FFH):—特殊功能寄存器SFR區(qū)片內(nèi)RAM地址空間尋址:用指令MOV最大可尋址256個單元。低128B(00H-7FH):真正RAM區(qū)高128B(80H-FFH):特殊功能寄存器(SFR)區(qū)地址:00H-FFH低128字節(jié)RAM(00H-7FH)1、工作寄存器區(qū)(00H-1FH)2、位尋址區(qū)(20H-2FH)3、用戶RAM區(qū)(30H-7FH)由四組(32個)工作寄存器組成,每組8個寄存器(R0-R7),共占32個單元。見表2-4。低128字節(jié)RAM(00H-7FH)1、工作寄存器區(qū)(00H-1FH)2、位尋址區(qū)(20H-2FH)3、用戶RAM區(qū)(30H-7FH)由四組(32個)工作寄存器組成,每組8個寄存器(R0-R7),共占32個單元。見表2-4。通過程序狀態(tài)寄存器PSW中RS1、RS0兩位設定來選擇CPU的當前工作寄存器組。復位時,第0組為當前的工作寄存器。若不需要四組,則其余可作為一般RAM單元。低128字節(jié)RAM(00H-7FH)1、工作寄存器區(qū)(00H-1FH)2、位尋址區(qū)(20H-2FH)3、用戶RAM區(qū)(30H-7FH)位尋址區(qū)有16個單元,每個單元8位,共128位。位地址為00H-7FH。可用位尋址方式訪問其各位。RAM位尋址區(qū)位地址表如表2-5所示。低128字節(jié)RAM(00H-7FH)1、工作寄存器區(qū)(00H-1FH)2、位尋址區(qū)(20H-2FH)3、用戶RAM區(qū)(30H-7FH)位尋址區(qū)有16個單元,每個單元8位,共128位。位地址為00H-7FH??捎梦粚ぶ贩绞皆L問其各位。RAM位尋址區(qū)位地址表如表2-5所示。

這些可尋址位,通過執(zhí)行指令可直接對某一位操作,如置1、清0、判斷轉移等。位尋址是80C51的一個重要特點。低128字節(jié)RAM(00H-7FH)1、工作寄存器區(qū)(00H-1FH)2、位尋址區(qū)(20H-2FH)3、用戶RAM區(qū)(30H-7FH)用于堆棧和數(shù)據(jù)緩沖。高128字節(jié)RAM(80H-FFH)1、有21個特殊功能功能寄存器。見表2-6高128字節(jié)RAM(80H-FFH)1、有21個特殊功能功能寄存器。見表2-62、地址分布在80H~FFH的RAM空間。3、只能用直接尋址方式。4、有11個具有位尋址能力。11個SFR的字節(jié)地址正好能被8整除。特殊功能寄存器的地址見表2-7。高128字節(jié)RAM(80H-FFH)1、有21個特殊功能功能寄存器。見表2-62、地址分布在80H~FFH的RAM空間。3、只能用直接尋址方式。4、有11個具有位尋址能力。11個SFR的字節(jié)地址正好能被8整除。特殊功能寄存器的地址見表2-7。5、部分特殊功能寄存器介紹5、部分特殊功能寄存器介紹累加器ACC(E0H)用A作為ACC的助記符。用于存放第一個操作數(shù)及運算結果。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)在乘法指令中,B用于存放乘數(shù)和乘積的高8位。在除法指令中用于存放除數(shù)和余數(shù)。在其它指令中用作一般的寄存器或RAM單元。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式D7D6D5D4D3D2D1D0CYACF0RS1RS0OV--P5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式PSW各位的含義D7D6D5D4D3D2D1D0CYACF0RS1RS0OV--PCY位(PSW.7):進(借)位標志位。執(zhí)行加法(減法)運算指令時,如運算結果最高位(D7)向前有進位(借位),CY=1;否則,CY=0。在位操作指令中,CY位是布爾累加器,用C表示。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式PSW各位的含義D7D6D5D4D3D2D1D0CYACF0RS1RS0OV--PAC位(PSW.6):半進位標志位(輔助進位標志)。執(zhí)行加法(減法)運算指令時,如運算結果的低半字節(jié)(D3)向高半字節(jié)有進位(借位),AC=1;否則,AC=0。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式PSW各位的含義D7D6D5D4D3D2D1D0CYACF0RS1RS0OV--PFO位(PSW.5):用戶標志。由用戶自己定義、置位、復位,以作為軟件標志。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式PSW各位的含義D7D6D5D4D3D2D1D0CYACF0RS1RS2OV--PRS0、RS1位(PSW.3和PSW.4):工作寄存器組選擇控制位。由用戶用軟件改變RS0和RS1的值,以切換當前選用的工作寄存器組。RS0,RS1的組合關系如表2-8

所示。上電復位時,(RS0)=(RS1)=0,CPU自然選擇第0組為當前工作寄存器組。RS1 RS0 寄存器組 片內(nèi)RAM地址0 0 第0組

00H~07H 0 1 第1組 08H~0FH 1 0 第2組 10H~17H 1 1 第3組 18H~1FH 5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式PSW各位的含義D7D6D5D4D3D2D1D0CYACF0RS1RS0OV--POV位(PSW.2):溢出標志位。如有溢出,即運算結果超出-128~+127的范圍時,OV=1;無溢出時,OV=0。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式PSW各位的含義D7D6D5D4D3D2D1D0CYACF0RS1RS0OV--PP位(PSW.0):奇偶檢驗位。每條指令執(zhí)行后,A中“1”的個數(shù)為奇數(shù),則P=1;否則,P=0。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)PSW包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判斷用。PSW的格式PSW各位的含義D7D6D5D4D3D2D1D0CYACF0RS1RS0OV--PPSW.1:為保留位。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)堆棧指針SP(81H)堆棧:在片內(nèi)RAM中,開辟的一個按“先進后出”的結構方式處理數(shù)據(jù)的區(qū)域。SP的內(nèi)容可指向片內(nèi)RAM00H—7FH的任何單元。系統(tǒng)復位時,SP初始化為07H。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)堆棧指針SP(81H)數(shù)據(jù)指針DPTR(83H,82H)DPTR是一個16位的特殊功能寄存器。由DPH(83H),DPL(82H)組成。DPH,DPL可以單獨使用。5、部分特殊功能寄存器介紹累加器ACC(E0H)寄存器B(F0H)程序狀態(tài)字寄存器PSW(D0H)堆棧指針SP(81H)數(shù)據(jù)指針DPTR(83H,82H)I/O端口P0-P3(80H,90H,A0H,B0H)分別為四個并行端口的鎖存器,每一個口鎖存器還有位地址,所以每一條I/O線可獨立輸入或輸出。輸出時,可以鎖存;輸入時,可以緩沖。2.6

時鐘電路及

CPU時序2.6.1片內(nèi)時鐘信號的產(chǎn)生2.6.2 CPU取指、執(zhí)指時序2.6.1 片內(nèi)時鐘信號的產(chǎn)生80C51芯片內(nèi)部有一個高增益反相放大器,用于構成振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體及兩個電容就可以構成穩(wěn)定的自激振蕩器。電容器C1和C2通常取30pF左右,可穩(wěn)定頻率并對振蕩頻率有微調(diào)作用。振蕩脈沖頻率范圍為fOSC=1.2~12MHz。晶體振蕩器的頻率為fOSC,振蕩信號從XTAL2端輸入到片內(nèi)的時鐘發(fā)生器上,如圖2-12所示。圖2-1280C51的片內(nèi)振蕩器及時鐘發(fā)生器時鐘發(fā)生器是一個2分頻的觸發(fā)器電路,它將振蕩器的信號頻率fOSC除以2,向CPU提供兩相時鐘信號P1和P2。時鐘信號的周期稱為機器狀態(tài)周期S,是振蕩周期的2倍。在每個時鐘周期(即S)的前半周期,相位1(P1)信號有效,在每個時鐘周期的后半周期,相位2(P2,節(jié)拍2)信號有效。每個時鐘周期有兩個節(jié)拍(相)P1和P2,CPU就以兩相時鐘P1和P2為基本節(jié)拍指揮80C51單片機各個部件協(xié)調(diào)地工作。節(jié)拍與狀態(tài)周期機器周期機器周期和指令周期計算機程序中的一條指令由若干個字節(jié)組成,執(zhí)行一條指令需要多長時間則以機器周期為單位。一個機器周期是指CPU訪問存儲器一次所需的時間。例如:取指令、讀存儲器、寫存儲器等。一個機器周期包括12個振蕩周期,分為6個S狀態(tài):S1-S6。每個狀態(tài)又分為兩拍,稱為P1和P2。因此,一個機器周期中的12個振蕩周期表示為S1P1,S1P2,S2P1,···,S6P1,S6P2。若采用6MHz晶體振蕩器,則每個機器周期為多少?設:晶體振蕩器頻率fosc=6MHz,則:振蕩周期=1/fosc=1/6μs(微秒),因為:一個機器周期包括12個振蕩周期,所以:一個機器周期=12*(1/6)μs(微秒)=2μs(微秒)問:如果fosc=12MHz,一個機器周期為多少?答案1μs(微秒)指令周期每條指令都由一個或幾個機器周期組成。指令周期:執(zhí)行一條指令所需的時間。每條指令由一個或若干個字節(jié)組成。有單字節(jié)指令,雙字節(jié)指令,…多字節(jié)指令等。字節(jié)數(shù)少則占存儲器空間少。例如單字節(jié)指令:如,INCA;機器碼格式:00000100B雙字節(jié)指令:如,MOVA,#data機器碼格式:01110100Bdata

指令周期每條指令都由一個或幾個機器周期組成。指令周期:執(zhí)行一條指令所需的時間。每條指令由一個或若干個字節(jié)組成。有單字節(jié)指令,雙字節(jié)指令,…多字節(jié)指令等。字節(jié)數(shù)少則占存儲器空間少。例如每條指令的指令周期都由一個或幾個機器周期組成。有單周期指令、雙周期指令、和四周期指令。機器周期數(shù)少則執(zhí)行速度快。振蕩周期為6MHz,則其指令周期各為多少?設振蕩周期為6MHz,則一個機器周期為2μs(微秒)單周期指令:指令周期為2μs(微秒)雙周期指令:指令周期為4μs(微秒)四周期指令:指令周期為8μs(微秒)如果振蕩周期為12MHz,則其指令周期分別為1μs、2μs和4μs。80C51或其他C51系列單片機的基本時序定時單位有4個:振蕩周期:晶振的振蕩周期,為最小的時序單位。狀態(tài)周期:振蕩頻率經(jīng)單片機內(nèi)的二分頻器分頻后提供給片內(nèi)CPU的時鐘周期。因此,一個狀態(tài)周期包含2個振蕩周期。機器周期:1個機器周期由6個狀態(tài)周期即12個振蕩周期組成,是計算機執(zhí)行一種基本操作的時間單位。指令周期:執(zhí)行一條指令所需的時間。一個指令周期由1~4個機器周期組成,依據(jù)指令不同而不同。

4種時序單位中,振蕩周期和機器周期是單片機內(nèi)計算其他時間值(例如,波特率、定時器的定時時間等)的基本時序單位?;緯r序定時單位假設單片機外接晶振頻率12MHz,則:

振蕩周期=1/fOSC=1/12MHz=0.0833μs

狀態(tài)周期=2/fOSC=2/12MHz=0.167μs

機器周期=12/fOSC=12/12MHz=1μs

指令周期=(1~4)機器周期=1~4μs4個時序單位從小到大依次是節(jié)拍(振蕩脈沖周期,1/fOSC)、狀態(tài)周期(時鐘周期)、機器周期和指令周期,如圖2-13所示。圖2-1380C51單片機各種周期的相互關系2.6.2CPU取指、執(zhí)指時序每條指令的執(zhí)行都可以包括取指和執(zhí)指兩個階段。在取指階段,CPU從內(nèi)部或外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令。單字節(jié)和雙字節(jié)的指令都可能是單機器周期或雙周期,而三字節(jié)指令都是雙周期的,只有乘、除指令占四周期。CPU取指、執(zhí)指時序如

圖2-14所示。圖2-1480C51單片機的取指/執(zhí)行時序

2.7

復位操作2.7.1復位操作的主要功能2.7.2復位信號及其產(chǎn)生2.7.3復位電路2.7.1復位操作的主要功能復位是單片機的初始化操作主要功能程序地址指針PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。當由于程序運行出錯或操作錯誤使系統(tǒng)死鎖狀態(tài)時,為擺脫困境,也需要按復位鍵重新啟動。2.7.1復位操作的主要功能復位是單片機的初始化操作主要功能寄存器的復位狀態(tài)2.7.2

復位信號及其產(chǎn)生復位信號:RST引腳為復位信號輸入端。當RST引腳為高電平,且有效時間持續(xù)24個振蕩周期以上,才能復位。產(chǎn)生復位信號的電路邏輯圖:如圖2-15所示。

圖2-15 復位電路邏輯圖

復位電路施密特觸發(fā)器片內(nèi)RAMRST/VPDVCCVSSD1D22.7.3 復位電路上電自動復位:是通過外部復位電路的電容充電實現(xiàn)。如圖2-16(a)所示。只要Vcc的上升時間不超過1ms,就自動上電復位,即接通電源就完成了系統(tǒng)復位。圖2-16(a)上電復位電路VCCCRVCCRST/VPDVSS1KΩ22μF80C512.7.3 復位電路上電自動復位:是通過外部復位電路的電容充電實現(xiàn)。如圖2-16(a)所示。手動復位:按鍵電平復位方式:如圖2-16(b)所示。按鍵脈沖復位方式圖2-16(b)按鍵電平復位電路通過使復位端經(jīng)電阻與VCC電源接通而實現(xiàn)。VCCCR2VCCRST/VPDVSS1KΩ22μF80C51R1200ΩRESET2.8

80C51單片機的低功耗工作方式80C51屬于CHMOS的單片機,運行時耗電少,提供兩種節(jié)電工作方式,即空閑方式和掉電方式。圖2-17

空閑和掉電方式控制電路圖2-17中,PD和IDL均為PCON中PD和IDL觸發(fā)器的輸出端。2.8.1

方式的設定圖2-18電源控制寄存器PCON空閑方式和掉電方式是通過對SFR中的PCON(地址87H)相應位置1而啟動的。HMOS器件的PCON只包括一個SMOD位,其他4位是CHMOS器件獨有的。80C51中PCON的復位值為0×××0000B。2.8.2

空閑(等待、待機)工作方式當CPU執(zhí)行完置IDL=1(PCON.1)的指令后,系統(tǒng)進入空閑工作方式。這時,內(nèi)部時鐘不向CPU提供,而只供給中斷、串行口、定時器部分。CPU的內(nèi)部狀態(tài)維持,即包括堆棧指針SP、程序計數(shù)器PC、程序狀態(tài)字PSW、累加器ACC所有的內(nèi)容保持不變,端口狀態(tài)也保持不變.進入空閑方式后,有兩種方法可以使系統(tǒng)退出空閑方式。由硬件將PCON.0(IDL)清0當執(zhí)行完中斷服務程序返回到主程序時,在主程序中,下一條要執(zhí)行的指令將是原先使IDL置位指令后面的那條指令。PCON中的通用標志位GF1和GF0可以用來指明中斷是在正常操作還是在待機方式期間發(fā)生的。在待機方式時,除用指令使IDL=1外,還可先用指令使GF1或GF0置1。當由于中斷而停止待機方式時,在中斷服務程序中可以檢查這些標志位,說明是從待機方式進入中斷的。硬件復位由于在空閑工作方式下振蕩器仍然工作,因此硬件復位僅需2個機器周期便可完成。而RST端的復位信號直接將PCON.0(IDL)清0,從而退出空閑狀態(tài),CPU則從進入空閑方式的下一條指令開始重新執(zhí)行程序。2.8.3

掉電(停機)工作方式當CPU執(zhí)行一條置PCON.1位(PD)為1的指令后,系統(tǒng)進入掉電工作方式。在這種工作方式下,內(nèi)部振蕩器停止工作。內(nèi)部RAM區(qū)和特殊功能寄存器的內(nèi)容被保留,而端口的輸出狀態(tài)值都保存在對應的SFR中。退出掉電方式的惟一方法是由硬件復位。復位后將所有SFR的內(nèi)容初始化,但不改變片內(nèi)RAM區(qū)的數(shù)據(jù)。在掉電工作方式下,VCC可以降到2V,但在進入掉電方式之前,VCC不能降低。而在準備退出掉電方式之前,VCC必須恢復正常的工作電壓值,并維持一段時間(約10ms),使振蕩器重新啟動并穩(wěn)定后方可退出掉電方式。選擇:1、單片機應用程序一般存放在(

A、RAM

B、ROM

C、寄存器

D、CPU

2.在單片機中,通常將一些中間計算結果放在(

)中

A、累加器

B、控制器

C、程序存儲器

D、數(shù)據(jù)存儲器

3.CPU主要的組成部部分為(

A、運算器、控制器

B、加法器、寄存器

C、運算器、寄存器

D、運算器、指令譯碼器4、80C51單片機的堆棧區(qū)應建立在()。

A.

片內(nèi)數(shù)據(jù)存儲區(qū)的低128字節(jié)單元

B.

片內(nèi)數(shù)據(jù)存儲區(qū)

C.片內(nèi)數(shù)據(jù)存儲區(qū)的高128字節(jié)單元

D.程序存儲區(qū)5、

80C51單片機中既可位尋址又可字節(jié)尋址的單元是(

A、20H

B、30H

C、00H

D、70H6、在80C51單片機中,PC存放的是()A、正在執(zhí)行指令的地址B、將要執(zhí)行的下一條指令的地址C、正在執(zhí)行指令的操作碼D、對已執(zhí)行過的指令條數(shù)計數(shù)7、為了使10H—17H作工作寄存器使用RS1、RS0的取值為()A、0,0B、0,1C、1,0D、1,18.下述哪條引腳為輸入腳()A、RESETB、ALE

溫馨提示

  • 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

提交評論