第2章89c51單片機硬件結構和原理_第1頁
第2章89c51單片機硬件結構和原理_第2頁
第2章89c51單片機硬件結構和原理_第3頁
第2章89c51單片機硬件結構和原理_第4頁
第2章89c51單片機硬件結構和原理_第5頁
已閱讀5頁,還剩157頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、14:472.189C51單片機芯片內部結構及特點2.289C51單片機引腳及其功能2.389C51單片機存儲器配置2.4時鐘電路及89C51CPU時序2.5復位操作2.6 89C51單片機的低功耗工作方式返回第2章89C51單片機的結構和原理2.7輸出/輸入端口結構14:472.1 89C51單片機芯片內部結構及特點2.1.1 89C51單片機的基本組成2.1.2 89C51單片機芯片內部結構返回14:472.1.1 89C51單片機的基本組成一、組成二、89C51系列單片機的性能返回14:47一、組成89C51單片機結構框圖 如 圖2-1所示返回89C51單片機結構框圖89C51CPU振蕩

2、器和時序OSC64KB 總線擴展控制器數據存儲器256B RAM/SFR216位定時器/計數器可編程I/O程序存儲器4KB FLASH ROM可編程全雙工串行口外中斷內中斷控制并行口串行通信外部時鐘源外部事件計數返回14:47一、組成1、一個8位 的微處理器CPU。返回用以存放可以讀/寫的數據,如運算的中間結果、最終結果以及欲顯示的數據等。2、片內數據存儲器(RAM128B/256B): 用以存放程序、一些原始數據和表格。3、片內4kB程序存儲器Flash ROM(4KB):4、四個8位并行I/O(輸入/輸出)接口 P0P3:每個口可以用作輸入,也可以用作輸出。14:47一、組成返回 每個定時

3、/計數器都可以設置成計數方式,用以 對 外部事件進行計數,也可以設置成定時方式,并可以根據計數或定時的結果 實現計算機控制。5、兩個或三個定時/計數器: 可實現單片機與單片機或其它微機之間串行通信。6、一個全雙工UART的串行I/O口: 但需外接晶振和電容。7、片內振蕩器和時鐘產生電路:8、五個中斷源的中斷控制系統。9、具有節電工作方式: 休閑方式及掉電方式。14:47二、89C51系列單片機的性能 89C51單片機與8051相比,具有節電工作方式,即休閑方式及掉電方式。以上各個部分通過片內8位數據總線(DBUS)相連接。另外89C51是用靜態邏輯來設計的,其工作頻率可下降到0 Hz,并提供兩

4、種可用軟件來選擇的省電方式空閑方式(Idle Mode)和掉電方式(Power Down Mode)。在空閑方式中,CPU停止工作,而RAM、定時器/計數器、串行口和中斷系統都繼續工作。此時的電流可降到大約為正常工作方式的15%。在掉電方式中,片內振蕩器停止工作,由于時鐘被“凍結”,使一切功能都暫停,故只保存片內RAM中的內容,直到下一次硬件復位為止。這種方式下的電流可降到15 A以下,最小可降到06 A。89C51單片機還有一種低電壓的型號,即89LV51,除了電壓范圍有區別之外,其余特性與89C51完全一致。89C51/LV51是一種低功耗/低電壓、高性能的8位單片機。它采用了CMOS工藝

5、和高密度非易失性存儲器(NURAM)技術,而且其輸出引腳和指令系統都與MCS51兼容;片內的Flash ROM允許在系統內改編程序或用常規的非易失性存儲器編程器來編程。因此89C51/LV51是一種功能強、靈活性高,且價格合理的單片機,可方便地應用在各種控制領域。返回14:472.1.2 89C51單片機芯片內部結構一、結構圖二、結構組成返回14:47一、結構圖由 中央處理單元(CPU)、存儲器(ROM及RAM)和I/O接口組成。89C51單片機內部結構如 圖2-2所示。返回P0驅動器P2驅動器P0鎖存器P2鎖存器RAM地址寄存器128BRAM4KBROMB寄存器暫存器1暫存器2ACCSP程序

6、地址寄存器 緩沖器PC增1PCDPTR中斷、串行口和定時器PSWP1鎖存器P1驅動器P3鎖存器P3驅動器定時控制指令寄存器指令譯碼器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1 XTAL2PSENALEEARESET89C51單片機內部結構圖返回運算器控制器存儲器I/O接口14:47P0驅動器P2驅動器P0鎖存器P2鎖存器RAM地址寄存器128BRAM4KBROMB寄存器暫存器1暫存器2ACCSP程序地址寄存器 緩沖器PC增1PCDPTR中斷、串行口和定時器PSWP1鎖存器P1驅動器P3鎖存器P3驅動器定時控制指令寄存器指令譯碼器OSCALUP

7、0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1 XTAL2PSENALEEARESET89C51單片機內部結構圖返回運算器控制器存儲器I/O接口14:47二、結構組成(一)、中央處理單元(CPU)(二)、存儲器(三)、I/O接口返回14:471、中央處理單元(89C51CPU)1)運算器返回2)控制器14:471)運算器 (1)8位的ALU:返回(2)8位累加器ACC(A):(3)8位程序狀態寄存器PSW:(4)8位寄存器B:(5)布爾處理器:(6)2個8位暫存器:14:471)運算器可對4位、8位、16位數據進行操作。返回(1)8位的ALU:14:471)運

8、算器(2)8位累加器ACC(A): 它經常作為一個運算數經暫存器2進入ALU的輸入端,與另一個來自暫存器1的運算數進行運算,運算結果又送回ACC。返回14:471)運算器指示指令執行后的狀態信息供程序查詢和判別用。(3)8位程序狀態寄存器PSW:返回14:471)運算器(4)8位寄存器B: 在乘除運算時,用來存放一個操作數也用來存放運算后的一部分結果;如不能做乘除運算時,作為通用寄存器。返回14:471)運算器(5)布爾處理器:專門用于處理位操作的,以PSW中的C為其累加器。返回14:471)運算器(6)2個8位暫存器:ALU的兩個入口處。返回14:472)控制器(1)程序計數器PC(16位)

9、(2)指令寄存器IR及指令譯碼器ID(3)振蕩器和定時電路返回14:47(1)程序計數器PC(16位)由兩個8位計數器PCH、PCL組成。PC是程序的字節地址計數器,PC內容為將要執行的指令地址。改變PC內容,改變執行的流向。PC可對64KB的ROM直接尋址,也可對89C51片內RAM尋址。返回14:47(2)指令寄存器IR及指令譯碼器ID由PC中的內容指定ROM地址取出來的指令經IR送至ID由ID對指令譯碼產生一定序列的控制信號,以執行指令所規定的操作。返回14:47(3)振蕩器和定時電路89C51單片機片內有振蕩電路,只需外接石英晶體和頻率微調電容(2個30pF左右),其頻率范圍為1.2M

10、Hz12MHz。該信號作為89C51工作的基本節拍即時間的最小單位。返回14:472、存儲器1)程序存儲器(ROM)2)數據存儲器(RAM)返回14:471)程序存儲器(ROM)89C51片內為4KB Flash ROM。地址從0000H開始。用于存放程序和表格常數。返回14:472)數據存儲器(RAM)89C51RAM均為128B,地址為00H7FH。用于存放運算的中間結果、數據暫存以及數據緩沖等。這128B的RAM中有32個字節單元可指定為工作寄存器。片內還有21個特殊功能寄存器(SFR),它們同128字節RAM統一編址,地址為80HFFH。后面詳細介紹。返回14:473、I/O接口89C

11、51有四個8位并行I/O接口P0P3。它們都是雙向端口,每個端口各有8條I/O線。P0-P3口四個鎖存器同RAM統一編址,可作為SFR來尋址。返回14:472.289C51單片機引腳及其功能2.2.1 89C51單片機引腳2.2.2 89C51單片機引腳功能返回14:472.2.1 89C51單片機引腳圖2-3是 89C51/LV51的引腳結構圖,有雙列直插封裝(DIP)方式和方形封裝方式。返回14:47圖2-3 89C51/LV51的引腳結構 14:472.2.2 89C51單片機引腳功能一、電源引腳:Vcc和Vss二、時鐘電路引腳:XTAL1和XTAL2三、控制信號引腳RST、ALE、PS

12、EN和EA四、I/O端口P0、P1、P2和P3返回14:47一、電源引腳:Vcc和Vss1Vcc(40腳):電源端,為+5V。2Vss(20腳):接地端。返回14:47二、時鐘電路引腳:XTAL1和XTAL2XTAL2(18腳):接外部晶體和微調電容的一端;在89C51 片內它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時鐘電路時,該引腳輸入外部時鐘脈沖。89C51正常工作時,該引腳應有脈沖信號輸出。14:47XTAL1(19腳):接外部晶體和微調電容的另一端;在片內它是振蕩電路反向放大器的輸入端,在采用外部時鐘時,該引腳接地。二、時鐘電路引腳:XTAL1和XTA

13、L2返回14:47 三、控制信號引腳:RST、ALE、PSEN和EARST/VPD(9腳):RST:復位信號輸入端,高電平有效。當此輸入端保持兩個機器周期的高電平時,就可以完成復位操作。14:47RST/VPD(9腳):VPD :RST引腳的第二功能,備用電源輸入端。當主電源Vcc 發生故障,降低到低電平規定值時,將+5V電源自動接入該引腳,為RAM提供備用電源,以保證RAM中的信息不丟失,使得復位后能繼續正常運行。 三、控制信號引腳:RST、ALE、PSEN和EA14:47ALE/PROG(30腳):ALE:地址鎖存允許信號端。正常工作時,該引腳以振蕩頻率的1/6固定輸出正脈沖。CPU訪問片

14、外存儲器時,該引腳輸出信號作為鎖存低8位地址的控制信號。它的負載能力為8個LS型TTL負載。三、控制信號引腳:RST、ALE、PSEN和EA14:47ALE/PROG(30腳):PROG:是對片內帶有4KB Flash ROM的89C51編程寫入時的編程脈沖輸入端。三、控制信號引腳:RST、ALE、PSEN和EA14:47PSEN(29腳):程序存儲器允許信號輸出端。在訪問片外ROM時,定時輸出負脈沖作為讀片外ROM的選通信號,接片外ROM 的OE端。它的負載能力為8個LS型TTL負載。三、控制信號引腳:RST、ALE、PSEN和EA14:47EA/Vpp(31腳):EA: 外部程序存儲器地址

15、允許輸入端。當該引腳接高電平時,CPU訪問片內ROM并執行片內程序存儲器中的指令,但當PC值超過0FFFH(片內ROM為4KB)時,將自動轉向執行片外ROM中的程序。當該引腳接低電平時,CPU只訪問片外ROM并執行外部程序存儲器中的程序。三、控制信號引腳:RST、ALE、PSEN和EA14:47EA/Vpp(31腳):Vpp:對89C51片內 Flash ROM固化編程時,編程電壓輸入端(12-21V)。三、控制信號引腳:RST、ALE、PSEN和EA返回14:47四、I/O端口P0、P1、P2和P31、準雙向2、P0口3、P1口4、P2口5、P3口返回14:471、準雙向當I/O口作為輸入時

16、,應先向此口鎖存器寫入全1, 此時該口引腳浮空,可作高阻抗輸入。返回14:472、P0口:漏極開路的8位準雙向I/O口,每位能驅動8個LS型TTL負載。P0口可作為一個數據輸入/輸出口;在CPU訪問片外存儲器時,P0口為分時復用的低8位地址總線和8位數據總線。返回14:473、P1口:帶內部上拉電阻的8位準雙向I/O端口,每位能驅動4個LS型TTL負載。返回14:474、P2口:P2口:帶內部上拉電阻的8位準雙向I/O端口,每位能驅動4個LS型TTL負載。在CPU訪問片外存儲器時,它輸出高8位地址。返回14:475、P3口:帶內部上拉電阻的8位準雙向I/O端口,每位能驅動4個LS型TTL負載。

17、P3口除作為一般I/O口外,每個引腳都有第二功能。返回14:47表2-1 P3端口引腳與復用功能表14:472.389C51存儲器配置2.3.189C51存儲器分類2.3.2程序存儲器地址空間2.3.3數據存儲器地址空間返回14:472.3.1 89C51存儲器分類一、物理結構(哈佛結構)二、用戶角度返回14:47片內程序存儲器片外程序存儲器片內數據存儲器片外數據存儲器一、物理結構(哈佛結構)89C51存儲器程序存儲器ROM數據存儲器RAM返回14:47二、用戶角度返回如圖2-4所示14:47二、用戶角度1、片內、外統一編址的64K程序存儲器地址空間。CPU訪問片內、片外ROM指令用MOVC。

18、返回14:47二、用戶角度2、64K的片外數據存儲器地址空間。訪問片外RAM指令用MOVX。返回14:47二、用戶角度3、256字節的片內數據存儲器地址空間。訪問片內RAM指令用MOV。返回上述三個存儲空間地址是重疊的,89C51的指令系統采用不同的數據傳送指令符號。14:472.3.2 程序存儲器地址空間一、用途:二、編址:三、尋址方式:返回14:47一、用途:用于存放編好的程序和表格常數。返回14:47二、編址:89C51片內Flash ROM的容量為4KB。地址為0000H0FFFH。片外最多可擴至64KB ROM/EPROM,地址為1000HFFFFH。片內外統一編址。返回14:47三

19、、尋址方式:1、當 EA=“1”時:89C51的PC在00000FFFH范圍內執行片內ROM中的程序,當指令地址超過0FFFH 后就自動轉向片外ROM中取指令。14:47三、尋址方式:2、當 EA=”0”時:89C51片內ROM不起作用,CPU只能從片ROM/EPROM中取指令。可以從 0000H 開始尋址。由于8031片內不帶ROM ,所以使用時必須 EA=”0”。14:47三、尋址方式:3、89C51從片內ROM和片外ROM取指的速度相同。14:47三、尋址方式:4、程序存儲器的保留存儲單元。如表2-2所示。 返回14:47表2-2 保留的存儲單元返回14:47三、尋址方式:1、0000H

20、0002H三個單元:用作89C51上電復位后引導程序的存放單元。因為復位后PC的內容為0000H,CPU總是從0000H開始執行程序。將轉移指令存放到這三個單元,程序就被引導到指定的程序存儲器空間去執行。返回14:47三、尋址方式:(2)0003H002AH單元:均分為五段,用作五個中斷服務程序的入口。中斷矢量地址表如表2-3所示。返回14:47表2-3 中斷矢量表返回14:472.3.3 數據存儲器地址空間一、用途:二、片外RAM: 三、片內RAM: 返回14:47一、用途:用于存放運算的中間結果、數據暫存和緩沖、標志位等。返回14:47二、片外RAM:地址:0000HFFFFH 尋址:用M

21、OVX指令返回14:47三、片內RAM: (一)片內RAM地址空間(二)低128字節RAM(00H7FH)(三)高128字節RAM(80HFFH): 特殊功能寄存器SFR區返回14:47(一)片內RAM地址空間尋址:用指令MOV最大可尋址256個單元。返回低128B(00H-7FH):真正RAM區高128B(80H-FFH):特殊功能寄存器(SFR)區地址:00H-FFH如圖2-5所示。14:47(二)低128字節RAM(00H7FH)1、工作寄存器區(00H1FH)2、位尋址區(20H2FH) 3、用戶RAM區(30H7FH)返回14:471、工作寄存器區(00H1FH)由四組(32個)工作

22、寄存器組成,每組8個寄存器(R0-R7),共占32個單元。見 表2-4。通過程序狀態寄存器 PSW中RS1、RS0兩位設定來選擇CPU的當前工作寄存器組。復位時,第0組為當前的工作寄存器。若不需要四組,則其余可作為一般RAM單元。返回14:47表2-4 工作寄存器地址表返回14:472、位尋址區(20H2FH)位尋址區有16個單元,每個單元8位,共128位。位地址為00H-7FH。可用位尋址方式訪問其各位。RAM位尋址區位地址表如 表2-5所示。 這些可尋址位,通過執行指令可直接對某一位操作,如置1、清0、判斷轉移等。位尋址是89C51的一個重要特點。返回14:47表2-5 RAM位尋址區位地

23、址表返回14:473、用戶RAM區(30H7FH)用于堆棧和數據緩沖。返回14:47(三)高128字節RAM(80HFFH)返回有21個特殊功能功能寄存器。見表 2-6地址分布在80HFFH的RAM空間。只能用直接尋址方式。有11個具有位尋址能力。11個SFR的字節地址正好能被8整除。特殊功能寄存器的地址見表2-7。部分特殊功能寄存器介紹14:47表2-7 特殊功能寄存器地址表返回14:47表2-6 89C51系列單片機的特殊功能寄存器表返回14:47部分特殊功能寄存器介紹累加器ACC(E0H):用A作為ACC的助記符。用于存放第一個操作數及運算結果。返回14:47部分特殊功能寄存器介紹寄存器

24、B(F0H):在乘法指令中,B用于存放乘數和乘積的高8位。在除法指令中用于存放除數和余數。在其它指令中用作一般的寄存器或RAM單元。返回14:47部分特殊功能寄存器介紹PSW 程序狀態寄存器(D0H):PSW包含了程序執行后的狀態信息,供程序查詢或判斷用。PSW的格式PSW各位的含義返回14:47返回PSW的格式如下:ACCYPOVRS0RS1F0PSW(D0H)D7 D6 D5 D4 D3 D2 D1 D014:47PSW各位的含義(1)CY位(PSW.7):進(借)位標志位。執行加法(減法)運算指令時,如運算結果最高位(D7)向前有進位(借位),CY=1;否則,CY=0。在位操作指令中,C

25、Y位是布爾累加器,用C表示。返回14:47PSW各位的含義(2)AC位(PSW.6):半進位標志位(輔助進位標志)。執行加法(減法)運算指令時,如運算結果的低半字節(D3)向高半字節有進位(借位),AC=1;否則,AC=0。返回14:47PSW各位的含義(3)FO位(PSW.5):用戶標志。由用戶自己定義、置位、復位,以作為軟件標志。返回14:47PSW各位的含義(4)RS0、RS1位(PSW.3和PSW.4):工作寄存器組選擇控制位。由用戶用軟件改變RS0和RS1的值,以切換當前選用的工作寄存器組。RS0,RS1的組合關系如 表2-8 所示。上電復位時,(RS0)=(RS1)=0,CPU自然

26、選擇第0組為當前工作寄存器組。返回14:47RS1RS0寄存器組片內RAM地址00第0組 00H07H01第1組 08H0FH10第2組 10H17H11第3組 18H1FH表2-8 RS0,RS1的組合關系返回14:47PSW各位的含義(5)OV位(PSW.2):溢出標志位。如有溢出,即運算結果超出-128 +127的范圍時,OV=1;無溢出時,OV=0。返回14:47PSW各位的含義(6)P位(PSW.0):奇偶檢驗位。 每條指令執行后,A中“1”的個數為奇數,則P=1;否則,P=0。返回14:47PSW各位的含義(7)PSW.1:為保留位。返回14:47部分特殊功能寄存器介紹堆棧指針SP

27、(81H):堆棧:在片內RAM中,開辟的一個按“先進后出”的結構方式處理數據的區域。SP的內容可指向片內RAM00H7FH的任何單元。系統復位時,SP初始化為07H。堆棧的操作:如 圖2-6 所示。返回14:47部分特殊功能寄存器介紹返回數據指針DPTR(83H,82H):DPTR是一個16位的特殊功能寄存器。由DPH(83H),DPL(82H)組成。DPH,DPL可以單獨使用。14:47部分特殊功能寄存器介紹返回I/O端口P0、P1、P2、P3(80H、90H、A0H、B0H):分別為四個并行端口的鎖存器,每一個口鎖存器還有位地址,所以每一條I/O線可獨立輸入或輸出。輸出時,可以鎖存;輸入時

28、,可以緩沖。14:472.4時鐘電路及89C51 CPU時序2.4.1 片內時鐘信號的產生返回2.4.2CPU取指、執指時序14:472.4.1片內時鐘信號的產生返回89C51芯片內部有一個高增益反相放大器,用于構成振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體及兩個電容就可以構成穩定的自激振蕩器。電容器和通常取30 pF左右,可穩定頻率并對振蕩頻率有微調作用。振蕩脈沖頻率范圍為fOSC=024 MHz。晶體振蕩器的頻率為fOSC,振蕩信號從XTAL2端輸入到片內的時鐘發生器上,如圖2-12所示。14:47圖2-12 89C51的片內振蕩器及時鐘發生器 14:47

29、2.4.1片內時鐘信號的產生1、節拍與狀態周期 2、機器周期和指令周期3、基本時序定時單位返回14:471、節拍與狀態周期 時鐘發生器是一個2分頻的觸發器電路,它將振蕩器的信號頻率fOSC除以2,向CPU提供兩相時鐘信號P1和P2。時鐘信號的周期稱為機器狀態周期S(STATE),是振蕩周期的2倍。在每個時鐘周期(即機器狀態周期S)的前半周期,相位1(P1)信號有效,在每個時鐘周期的后半周期,相位2(P2,節拍2)信號有效。每個時鐘周期(以后常稱狀態S)有兩個節拍(相)P1和P2,CPU就以兩相時鐘P1和P2為基本節拍指揮89C51單片機各個部件協調地工作。返回14:472、機器周期和指令周期二

30、、指令周期:一、機器周期:返回計算機的一計算機的一條指令由若干個字節組成。執行一條指令需要多長時間則以機器周期為單位。一個機器周期是指CPU訪問存儲器一次所需的時間。例如,取指令、讀存儲器、寫存儲器等等。一個機器周期包括12個振蕩周期,分為6個S狀態:S1S6。每個狀態又分為兩拍,稱為P1和P2。因此,一個機器周期中的12個振蕩周期表示為S1P1,S1P2,S2P1,S6P1,S6P2。若采用6MHz晶體振蕩器,則每個機器周期為多少?機器周期如圖所示返回14:47返回設:晶體振蕩器頻率 fosc=6MHz,則:振蕩周期=1/fosc=1/6 s(微秒)因為:一個機器周期包括12個振蕩周期,所以

31、:一個機器周期=12*(1/6) s(微秒) = 2s(微秒)問:如果fosc=12MHz, 一個機器周期為多少?答案1s(微秒)機器周期14:47每條指令都由一個或幾個機器周期組成。指令周期:執行一條指令所需的時間。每條指令由一個或若干個字節組成。有單字節指令,雙字節指令,多字節指令等。字節數少則占存儲器空間少。每條指令的指令周期都由一個或幾個 機器周期 組成。有單周期指令、雙周期指令、和四周期指令。機器周期數少則執行速度快。其指令周期各為多少?指令周期如圖所示返回例如14:47指令周期設振蕩周期為6MHz,則一個機器周期為 2s(微秒)。單周期指令:指令周期為 2s(微秒)雙周期指令:指令

32、周期為 4s(微秒)四周期指令:指令周期為 8s(微秒)如果振蕩周期為12MHz,則其指令周期分別為 1s、2s 和4s。返回14:47單字節指令:如,INC A;機器碼格式:0000 0100B 雙字節指令:如,MOV A,#data;機器碼格式: 0111 0100B data 返回14:473、基本時序定時單位 綜上所述,89C51或其他80C51單片機的基本時序定時單位有如下4個。 振蕩周期: 晶振的振蕩周期,為最小的時序單位。 狀態周期: 振蕩頻率經單片機內的二分頻器分頻后提供給片內CPU的時鐘周期。因此,一個狀態周期包含2個振蕩周期。 機器周期(MC): 1個機器周期由6個狀態周期

33、即12個振蕩周期組成,是計算機執行一種基本操作的時間單位。 指令周期: 執行一條指令所需的時間。一個指令周期由14個機器周期組成,依據指令不同而不同,見附錄A。返回14:47 4種時序單位中,振蕩周期和機器周期是單片機內計算其他時間值(例如,波特率、定時器的定時時間等)的基本時序單位。下面是單片機外接晶振頻率12 MHz時的各種時序單位的大小。振蕩周期=1/fOSC=1/12 MHz=0.083 3 s狀態周期=2/fOSC=2/12 MHz=0.167 s機器周期=12/fOSC=12/12 MHz=1 s指令周期=(14)機器周期=14 s 4個時序單位從小到大依次是節拍(振蕩脈沖周期,1

34、/fOSC)、狀態周期(時鐘周期)、機器周期和指令周期,如圖2-13所示。返回14:47圖2-13 89C51單片機各種周期的相互關系 14:472.4.2 CPU取指、執指時序每條指令的執行都可以包括取指和執指兩個階段。在取指階段,CPU從內部或外部ROM中取出指令操作碼及操作數,然后再執行這條指令。單字節和雙字節的指令都可能是單機器周期或雙周期,而三字節指令都是雙周期的,只有乘、除指令占四周期。CPU取指、執指時序如 圖2-14所示返回圖2-14 89C51單片機的取指/執行時序 14:472.5復位操作2.5.1復位操作的主要功能2.5.2復位信號及其產生2.5.3復位電路返回14:47

35、2.5.1復位操作的主要功能一、復位是單片機的初始化操作。二、主要功能: 三、寄存器的復位狀態:返回14:47復位操作主要功能程序地址指針PC初始化為0000H,使單片機從0000H單元開始執行程序當由于程序運行出錯或操作錯誤使系統死鎖狀態時,為擺脫困境,也需要按復位鍵重新啟動。返回14:47表2-8 各特殊寄存器的復位值返回14:472.5.2復位信號及其產生一、復位信號:RST引腳為復位信號輸入端。當RST引腳為高電平,且有效時間持續24個振蕩周期以上,才能復位。二、產生復位信號的電路邏輯圖:如圖2-15所示。返回14:47 圖 2-15復位電路邏輯圖返回 復位電路施密特觸發器片內RAMR

36、ST/VPDVCCVSSD1D214:472.5.3復位電路1、上電自動復位:是通過外部復位電路的電容充電實現。如圖2-16(a)所示。2、手動復位:按鍵電平復位方式:如圖2-16(b)所示。按鍵脈沖復位方式:如圖2-12(c)所示。返回14:47圖 2-16 (a) 上電復位電路只要Vcc的上升時間不超過1ms,就自動上電復位,即接通電源就完成了系統復位。返回VCCCRVCCRST/VPDVSS1K 22F89C5114:47圖 2-16 (b) 按鍵電平復位電路通過使復位端經電阻與VCC電源接通而實現。VCCCR2VCCRST/VPDVSS1K22F89C51R1200RESET返回14:

37、472.689C51單片機的低功耗工作方式89C51屬于CHMOS的單片機,運行時耗電少,而且還提供兩種節電工作方式,即空閑(等待、待機)方式和掉電(停機)工作方式,以進一步降低功耗。圖2-17所示為實現這兩種方式的內部電路。由圖2-17可見,若IDL=0,則89C51將進入空閑運作方式。在這種方式下,振蕩器仍繼續運行,但IDL封鎖了去CPU的“與”門,故CPU此時得不到時鐘信號。而中斷、串行口和定時器等環節卻仍在時鐘控制下正常運行。掉電方式下(PD=0),振蕩器凍結。返回14:472.689C51單片機的低功耗工作方式返回圖2-17 空閑和掉電方式控制電路圖2-17中,PD和IDL均為PCO

38、N中PD和IDL觸發器的輸出端。14:472.6.1方式的設定返回圖2-18 電源控制寄存器PCON空閑方式和掉電方式是通過對SFR中的PCON(地址87H)相應位置1而啟動的。圖2-18所示為89C51電源控制寄存器PCON各位的分布情況。HMOS器件的PCON只包括一個SMOD位,其他4位是CHMOS器件獨有的。3個保留位用戶不得使用,因為硬件沒有做出安排,可能在今后的MCS51新產品中代表某特定的功能。14:472.6.1方式的設定返回圖2-18 電源控制寄存器PCON圖2-18中各符號的名稱和功能如下。 SMOD: 波特率倍頻位。若此位為1,則串行口方式1、方式2和方式3的波特率加倍。

39、 GF1和GF0: 通用標志位。 PD: 掉電方式位。此位寫1即啟動掉電方式。由圖217可見,此時時鐘凍結。 IDL: 空閑方式位。此位寫1即啟動空閑方式。這時CPU因無時鐘控制而停止運作。如果同時向PD和IDL兩位寫1,則PD優先。89C51中PCON的復位值為00000B。14:472.6.2空閑(等待、待機)工作方式返回當CPU執行完置IDL=1(PCON.1)的指令后,系統進入空閑工作方式。這時,內部時鐘不向CPU提供,而只供給中斷、串行口、定時器部分。CPU的內部狀態維持,即包括堆棧指針SP、程序計數器PC、程序狀態字PSW、累加器ACC所有的內容保持不變,端口狀態也保持不變。ALE

40、和PSEN保持邏輯高電平。14:472.6.2空閑(等待、待機)工作方式返回進入空閑方式后,有兩種方法可以使系統退出空閑方式。一是任何的中斷請求被響應都可以由硬件將PCON.0(IDL)清0而中止空閑工作方式。當執行完中斷服務程序返回到主程序時,在主程序中,下一條要執行的指令將是原先使IDL置位指令后面的那條指令。PCON中的通用標志位GF1和GF0可以用來指明中斷是在正常操作還是在待機方式期間發生的。在待機方式時,除用指令使IDL=1外,還可先用指令使GF1或GF0置1。當由于中斷而停止待機方式時,在中斷服務程序中可以檢查這些標志位,說明是從待機方式進入中斷的。14:472.6.2空閑(等待

41、、待機)工作方式返回另一種退出空閑方式的方法是硬件復位,由于在空閑工作方式下振蕩器仍然工作,因此硬件復位僅需2個機器周期便可完成。而RST端的復位信號直接將PCON.0(IDL)清0,從而退出空閑狀態,CPU則從進入空閑方式的下一條指令開始重新執行程序。14:472.6.3掉電(停機)工作方式返回當CPU執行一條置PCON.1位(PD)為1的指令后,系統進入掉電工作方式。在這種工作方式下,內部振蕩器停止工作。由于沒有振蕩時鐘,因此,所有的功能部件都停止工作。但內部RAM區和特殊功能寄存器的內容被保留,而端口的輸出狀態值都保存在對應的SFR中,ALE和PSEN都為低電平。退出掉電方式的惟一方法是

42、由硬件復位,復位后將所有特殊功能寄存器的內容初始化,但不改變片內RAM區的數據。在掉電工作方式下,VCC可以降到2 V,但在進入掉電方式之前,VCC不能降低。而在準備退出掉電方式之前,VCC必須恢復正常的工作電壓值,并維持一段時間(約10 ms),使振蕩器重新啟動并穩定后方可退出掉電方式。14:472.7輸出/輸入端口結構 I/O端口概述2.7.1 P1口2.7.2 P2口2.7.3 P0口2.7.4 P3口2.7.5 端口的負載能力和接口要求返回14:47I/O端口概述返回189C51單片機有四個8位并行I/O端口:P0、P1、P2和P3。2每個端口都是8位準雙向口,共占32根引腳。3每一條

43、I/O線都能獨立地用作輸入或輸出。4每個端口都包括一個鎖存器(即特殊功能寄存器P0P3),一個輸出驅動器和輸入緩沖器,作輸出是數據可以鎖存,作輸入時數據可以緩沖。14:472.7.1 P1口一、P1口結構二、P1口用作通用I/O返回14:472.7.1 P1口一、P1口結構:其電路結構見圖2-19,輸出驅動部分與P0口不同,內部有上拉負載電阻與電源相連。實質上,電阻是兩個場效應管FET并在一起:一個FET為負載管,其電阻固定。另一個FET可工作在導通或截止兩種狀態,使其總電阻值變化近似為0或阻值很大兩種情況。當阻值近似為0時,可將引腳快速上拉至高電平;當阻值很大時,P1口為高阻輸入狀態。返回1

44、4:47圖2-19 P1口某位的結構返回14:472.7.1 P1口二、P1口用作通用I/OP1口也是一個準雙向口。在端口用作輸入時,也必須先向對應的鎖存器寫入1,使FET截止。當P1口輸出高電平時,能向外提供拉電流負載,所以不必再接上拉電阻。返回14:472.7.2 P2口一、P2口結構二、P2口用作一般I/O口三、P2口用作高8位地址總線返回14:47一、P2口結構如圖2-20所示,P2口某位的結構與P0口類似,有MUX開關。驅動部分與P1口類似,但比P1口多了一個轉換控制部分。返回14:47圖2-20 P2口某位的結構圖返回14:47二、P2口用作一般I/O口1、當CPU對片內存儲器和I

45、/O口進行讀/寫(執行MOV 指令或EA=1時,執行MOVC指令)時,由內部硬件自動使開關MUX倒向鎖存器的Q端,這時,P2口為一般I/O口。14:47二、P2口用作一般I/O口2、在只需擴展256B片外RAM的系統中,使用“MOVX A, Ri”類指令訪問片外RAM時,尋址范圍是256B,只需低8位地址線就可以實現。P2口不受該指令影響,仍可作通用I/O口。14:47二、P2口用作一般I/O口3、若擴展的RAM容量超過256B,使用“MOVX A,DPTR”類指令的尋址范圍是64KB,此時,高8位地址總線用P2口輸出。在片外RAM讀/寫周期內,P2口鎖存器仍保持原來端口的數據;在訪問片外RA

46、M周期結束后,多路開關MUX自動切換倒鎖存器Q端。由于CPU對RAM的訪問不是經常的,在這種情況下,P2口在一定的限度內仍可用作通用I/O口。返回14:47三、P2口用作高8位地址總線當CPU對片外存儲器或I/O口進行讀/寫(執行MOVX指令或EA=0時執行MOVC指令)時,開關倒向地址線(右)端,這時,P2口只輸出高8位地址。因為訪問片外EPROM和RAM的操作往往接連不斷,所以,P2口要不斷送出高8位地址,此時P2口無法再用作通用I/O口。返回14:472.7.3 P0口一、結構二、P0口作為一般I/O口使用三、P0口作為地址/數據總線使用返回14:47一、結構P0口某位的結構由一個輸出鎖

47、存器、二個三態輸入緩沖器和輸出驅動電路及控制電路組成。如圖2-21所示。當C=0時,開關MUX被控為如圖示位置,P0口為通用I/O口;當C=1時,開關撥向反相器3的輸出端,P0口分時作為地址/數據總線使用。返回14:47圖2-21 P0口某位的結構圖當C=0時,開關MUX被控為如圖示位置,P0口為通用I/O口;當C=1時,開關撥向反相器3的輸出端,P0口分時作為地址/數據總線使用。返回14:47二、P0口作為一般I/O口使用1、P0口用作輸出口2、P0口作輸入口返回14:471、P0口用作輸出口當CPU執行輸出指令時,寫脈沖加在D鎖存器的CP上,這樣,與內部總線相連的D端的數據取反后就出現在Q

48、端上,又經輸出級FET(T2)反相,在P0端口上出現的數據正好是內部總線的數據。這是一般的數據輸出情況。返回14:472、P0口作輸入口當執行一條由端口輸入的指令時,“讀引腳”脈沖把三態緩沖器2打開,這樣,端口上的數據經過緩沖器2讀入到內部總線。在端口進行輸入操作前,應先向端口鎖存器寫入1,也就是使鎖存器Q=0。因為控制線C=0,因此T1和T2全截止,引腳處于懸浮狀態,可作高阻抗輸入。返回14:47三、P0口作為地址/數據總線使用1P0口用作輸出地址/數據總線以P0口引腳輸出低8位地址或數據信息,MUX開關把CPU內部地址/數據線經反向器3與驅動場效應管FET(T2)柵極接通。上下兩個FET處

49、于反相,構成推拉式的輸出電路(T1導通時上拉,T2導通時下拉),提高了負載能力。當P0口被地址/數據總線占用時,就無法再作I/O口使用了。14:472由P0口輸入數據:在“讀引腳”信號有效時,打開輸入緩沖器2,使數據進入內部總線。三、P0口作為地址/數據總線使用返回14:472.7.4 P3口一、結構二、P3口作為通用I/O口使用三、P3口用作第二功能使用返回14:47一、結構1、P3口是一個多功能端口,其某一位的結構見圖2-22。P3口與P1口的差別在于多了“與非”門3和緩沖器4。使得P3口除了具有P1口的準雙向I/O功能外,還可以使用各引腳所具有的第二功能。2、“與非”門3的作用實際上是一個開關,決定是輸出鎖存器上的數據還是輸出第二功能(W)的信號。當W=1時,輸出Q端信號;當Q=1時,可輸出W線信號。 編程時,可不必事先由軟件設置P3口為第一功能(通用I/O口)還是第二功能。3、當CPU對P3

溫馨提示

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

評論

0/150

提交評論