南京大學證券投資學課件_第1頁
南京大學證券投資學課件_第2頁
南京大學證券投資學課件_第3頁
南京大學證券投資學課件_第4頁
南京大學證券投資學課件_第5頁
已閱讀5頁,還剩118頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及應用單片機原理及應用 (C語言版)語言版)第第2章章 MCS-51單片機結構與原理單片機結構與原理主主 編:編:周國運周國運本章本章制作:制作:周國運周國運中國水利水電出版社中國水利水電出版社第第2章章 MCS-51單片機結構與原理單片機結構與原理目目 錄錄2.1 MCS-51單片機結構及單片機結構及CPU2.2 MCS-51單片機引腳與總線結構單片機引腳與總線結構2.3 MCS-51單片機的存儲器結構單片機的存儲器結構2.4 MCS-51單片機的輸入輸出端口單片機的輸入輸出端口2.5 MCS-51單片機的時鐘及單片機的時鐘及CPU時序時序2.6 MCS-51單片機的工作方式單片機

2、的工作方式第第2章章 MCS-51單片機結構與原理單片機結構與原理本章討論本章討論MCS-51單片機的結構和工作原單片機的結構和工作原理,理,內容主要有內容主要有MCS-51單片機結構、引腳單片機結構、引腳信號、存儲器配置、輸入信號、存儲器配置、輸入/輸出端口、時鐘與輸出端口、時鐘與CPU時序,以及單片機的工作方式等。時序,以及單片機的工作方式等。 本章是單片機的基本內容本章是單片機的基本內容,為學習后面,為學習后面各個章節的基礎,也是從事單片機應用開發各個章節的基礎,也是從事單片機應用開發的基礎。的基礎。2.1 MCS-51單片機內部結構及單片機內部結構及CPU 主要內容主要內容2.1.1

3、MCS-51單片機的功能結構及特點單片機的功能結構及特點2.1.2 MCS-51單片機的內部原理結構單片機的內部原理結構2.1.3 MCS-51單片機的單片機的CPU2.1.1 MCS-51單片機的功能結構及特點單片機的功能結構及特點 MCS-51單片機的內部功能結構如下頁單片機的內部功能結構如下頁圖所示,圖中是以增強型單片機的結構為圖所示,圖中是以增強型單片機的結構為對象。對象。 從圖中可以看到,從圖中可以看到,MCS-51單片機單片機在一在一塊芯片中集成了微型計算機所具有的所有塊芯片中集成了微型計算機所具有的所有部件部件,從功能的角度來看,主要包括,從功能的角度來看,主要包括9個個部分。部

4、分。 圖圖2.1 MCS-51(增強型增強型)單片機功能結構圖單片機功能結構圖時鐘信號源時鐘信號源外部事件信號外部事件信號BUS時鐘電路時鐘電路8KB FlashROM256B RAM128B SFR16位位3個個定時定時/計數器計數器64KB總線總線擴展控制器擴展控制器可編程可編程并行口并行口可編程全可編程全雙工串行口雙工串行口CPU中斷控制器中斷控制器外中斷外中斷8位位4個并行口個并行口串行通信串行通信總線控制總線控制BUS2.1.1 MCS-51單片機的功能結構及特點單片機的功能結構及特點 2.1.1 MCS-51單片機的功能結構及特點單片機的功能結構及特點 MCS-51單片機內部主要包

5、括單片機內部主要包括9個部分:個部分:一個一個8位的微處理器位的微處理器CPU8KB的片內的片內程序存儲器程序存儲器Flash ROM256B的片內的片內數據存儲器數據存儲器RAM、128B特殊功特殊功能寄存器能寄存器(SFR)3個個16位的位的定時器定時器/計數器計數器有一個管理有一個管理6個中斷源的個中斷源的中斷控制器中斷控制器4個個8位位并行并行I/O端端一個全雙工的一個全雙工的串行接口串行接口(UART)片內片內振蕩電路和時鐘發生器振蕩電路和時鐘發生器 可擴展可擴展64KB程序、程序、64KB數據存儲器的數據存儲器的三總三總線控制電路線控制電路2.1.2 MCS-51單片機的內部原理結

6、構單片機的內部原理結構MCS-51單片機的內部原理結構如圖單片機的內部原理結構如圖2-2所示。所示。與圖與圖2-1比較,比較,主要的區別是畫出了主要的區別是畫出了CPU的內部結構的內部結構,圖中的中間部分除了,圖中的中間部分除了“定時器、定時器、串行口串行口”大方框之外都屬于大方框之外都屬于CPU部件。部件。下面先介紹下面先介紹CPU部分,對于其它部件,部分,對于其它部件,將在本章和后面的章節講解。將在本章和后面的章節講解。 圖圖2-2 MCS-51(增強型增強型)單片機原理結構圖單片機原理結構圖XTAL2 XTAL1P3.0P3.7P1.0P1.7RAM地址地址端口端口0驅動器驅動器端口端口

7、2驅動器驅動器8KB FlashROM端口端口0鎖存器鎖存器端口端口2鎖存器鎖存器端口端口1驅動器驅動器端口端口3驅動器驅動器端口端口1鎖存器鎖存器端口端口3鎖存器鎖存器暫存器暫存器1SPPSWB寄存器寄存器暫存器暫存器2ACC256BRAM128B SFR緩沖器緩沖器PC加加1PC程序地址寄存器程序地址寄存器DPTR定時器、串行口定時器、串行口中斷部件及中斷部件及特殊功能寄存器特殊功能寄存器地址總線地址總線數據總線數據總線P2.0P2.7Vcc GND指令寄存器指令寄存器指令譯碼器指令譯碼器指令控制器指令控制器P0.0P0.7PSENALEEA RST ALU2.1.3 MCS-51單片機的

8、單片機的CPU MCS-51單片機內部有一個功能強大的單片機內部有一個功能強大的8位位CPU,它包含兩個基本部分,運算器和控,它包含兩個基本部分,運算器和控制器。制器。一、運算器一、運算器運算器包括:運算器包括:算術和邏輯運算部件算術和邏輯運算部件ALU(Arithmetic Logic Unit)以及以及累加器累加器ACC、寄存器寄存器B、暫存器暫存器1、暫存器暫存器2、程序狀態字寄存器、程序狀態字寄存器PSW、布爾處布爾處理器理器等。等。2.1.3 MCS-51單片機的單片機的CPU1、算術邏輯運算部件、算術邏輯運算部件ALUALU可以對可以對4位(半字節)、位(半字節)、8位(一字位(一

9、字節)和節)和16位(雙字節)數據進行操作。位(雙字節)數據進行操作。這些操作可以是:這些操作可以是:算術運算:算術運算:加、減、乘、除、加加、減、乘、除、加1、減、減1、BCD碼數的十進制調整及比較等;碼數的十進制調整及比較等;邏輯運算:邏輯運算:與、或、異或、求補及循環與、或、異或、求補及循環移位等。移位等。 2.1.3 MCS-51單片機的單片機的CPU2、累加器、累加器ACCACC在在CPU結構中占有特殊的位置,所結構中占有特殊的位置,所以以ACC在指令中使用的非常多。在指令中使用的非常多。 ACC既做源操作數又做目的操作數既做源操作數又做目的操作數,如,如在加、減、乘、除算術運算指令

10、中,在與、在加、減、乘、除算術運算指令中,在與、或、異或、循環移位邏輯運算指令等。或、異或、循環移位邏輯運算指令等。ACC也作為通用寄存器使用也作為通用寄存器使用,并且可以,并且可以按位操作,所以按位操作,所以ACC是一個用處最多、最忙是一個用處最多、最忙碌的寄存器。碌的寄存器。在指令中用助記符在指令中用助記符A來表示來表示。 2.1.3 MCS-51單片機的單片機的CPU3、B寄存器寄存器B做專門應用:做專門應用:在乘、除運算時,用來存在乘、除運算時,用來存放一個操作數,并且存放運算后的部分結果。放一個操作數,并且存放運算后的部分結果。B做一般應用:做一般應用:在非乘、除運算中,在非乘、除運

11、算中,B可可以作為通用寄存器使用以作為通用寄存器使用。B可以按位操作可以按位操作2.1.3 MCS-51單片機的單片機的CPU4、程序狀態字、程序狀態字PSW功能:功能:用于設定用于設定CPU的狀態和指示指的狀態和指示指令執行后的狀態令執行后的狀態。PSW相當于其它微處理器中的相當于其它微處理器中的標志寄標志寄存器存器。格式如下:。格式如下:PSW(D0H)D7D6D5D4D3D2D1D0CYACF0RS1 RS0 OVF1P圖圖2-3 程序狀態字程序狀態字PSW格式格式2.1.3 MCS-51單片機的單片機的CPUCY(PSW.7):):進位、借位標志進位、借位標志在做位操作在做位操作(布爾

12、操作)(布爾操作)時時CY作作 為位累加器為位累加器。在指令中用。在指令中用C代替代替CYAC(PSW.6):):半進位、半借位標志半進位、半借位標志,也稱為輔助進位標志也稱為輔助進位標志F0、F1(PSW.5 、PSW.1):):用戶標志用戶標志位位,留給用戶使用,留給用戶使用D7D6D5D4D3D2D1D0CYACF0RS1 RS0 OVF1P2.1.3 MCS-51單片機的單片機的CPUOV(PSW.2):):溢出標志位溢出標志位有以下幾種情況:有以下幾種情況:加減運算:加減運算:OV1表示結果超出了表示結果超出了8位有符號位有符號數的有效范圍(數的有效范圍(128127),對無符號),

13、對無符號數數OV沒有意義。沒有意義。無符號數乘法運算:無符號數乘法運算: OV1表明結果超出了表明結果超出了8位數位數 無符號數除法運算:無符號數除法運算: OV1表明除數為表明除數為02.1.3 MCS-51單片機的單片機的CPUP(PSW.0):):累加器累加器A的奇偶標志位的奇偶標志位P表示累加器表示累加器A中中1的個數的奇偶性的個數的奇偶性P1,A中有奇數個中有奇數個1P0,A中有偶數個中有偶數個12.1.3 MCS-51單片機的單片機的CPURS1、RS0(PSW.4 和和PSW.3):):工作工作寄存器組選擇控制位。寄存器組選擇控制位。工作寄存器工作寄存器:R0、R1、R7表表2-

14、1 RS1、RS0的組合關系的組合關系RS1 RS0工作寄存器組工作寄存器組 片內片內RAM地址地址0 0第第0組組00H07H0 1第第1組組08H0FH1 0第第2組組10H17H1 1第第3組組18H1FH2.1.3 MCS-51單片機的單片機的CPU5、布爾處理器、布爾處理器 布爾處理器以布爾處理器以PSW中的進位標志位中的進位標志位CY作作為位累加器為位累加器(用(用C表示)。表示)。功能:功能:專門用于處理位操作專門用于處理位操作。MCS-51單片機有豐富的位處理指令:單片機有豐富的位處理指令:如如置位、位清置位、位清0、位取反、判斷位值(為、位取反、判斷位值(為1或為或為0)轉移

15、,以及通過轉移,以及通過C(指令中用(指令中用C代替代替CY)做)做位數據傳送、位邏輯與、位邏輯或等位操作。位數據傳送、位邏輯與、位邏輯或等位操作。 2.1.3 MCS-51單片機的單片機的CPU二、控制器二、控制器控制器控制器包括包括程序計數器程序計數器PC、指令寄存器、指令寄存器IR、指令譯碼器、指令譯碼器ID,以及,以及時鐘控制時鐘控制邏輯、堆邏輯、堆棧指針棧指針SP、地址指針、地址指針DPTR等。等。1、程序計數器、程序計數器PCPC是一個是一個具有自加具有自加1功能的功能的16位的計數器位的計數器PC的內容是將要執行的的內容是將要執行的下一條指令的地下一條指令的地址址改變改變PC的內

16、容就改變了程序執行的順序的內容就改變了程序執行的順序2.1.3 MCS-51單片機的單片機的CPU2、指令寄存器、指令寄存器IR和指令譯碼器和指令譯碼器IDIR:存放從存放從Flash ROM中讀取的指令中讀取的指令ID:進行譯碼,產生一定序列的控制信進行譯碼,產生一定序列的控制信號,完成指令所規定的操作。號,完成指令所規定的操作。3、堆棧、堆棧(1)堆棧的概念)堆棧的概念堆棧是在堆棧是在RAM中專門開辟的一個特殊用中專門開辟的一個特殊用途的存儲區途的存儲區。(2)堆棧的訪問原則)堆棧的訪問原則: “先進后出先進后出”、“后進先出后進先出” 。即先進入堆棧的數據后移出。即先進入堆棧的數據后移出

17、堆棧,即后進入堆棧的數據先移出堆棧。堆棧,即后進入堆棧的數據先移出堆棧。2.1.3 MCS-51單片機的單片機的CPU(3)堆棧的結構)堆棧的結構堆棧的一端的地址是固定的,稱為堆棧的一端的地址是固定的,稱為棧底棧底;另一端的地址是動態變化的,稱為另一端的地址是動態變化的,稱為棧頂棧頂。 (4)堆棧的操作方式)堆棧的操作方式堆棧有兩種操作方式堆棧有兩種操作方式:數據:數據進棧進棧和數據和數據出棧出棧。,這就必然,這就必然是按照是按照“先進后出先進后出”、“后進先出后進先出”的方的方式存取數據。式存取數據。2.1.3 MCS-51單片機的單片機的CPU(5)堆棧的應用)堆棧的應用主要是用來暫時存放

18、數據,主要是用來暫時存放數據,有兩種情況有兩種情況使用堆棧:使用堆棧:一是一是CPU自動使用堆棧自動使用堆棧,當調用子程序,當調用子程序或響應中斷,處理中斷服務程序時,或響應中斷,處理中斷服務程序時,CPU自動將自動將返回地址存放到堆棧返回地址存放到堆棧中;中;通過堆通過堆棧傳遞參數棧傳遞參數。二是程序員使用堆棧二是程序員使用堆棧,用堆棧暫時存放,用堆棧暫時存放數據。數據。2.1.3 MCS-51單片機的單片機的CPU4、堆棧指針、堆棧指針SP堆棧指針堆棧指針SP(Stack Pointer)中為棧頂中為棧頂的地址的地址,即,即SP指向棧頂指向棧頂。SP是訪問堆棧的間址寄存器是訪問堆棧的間址寄

19、存器SP具有自動加具有自動加1、自動減、自動減1功能功能。當數據。當數據進棧時,進棧時,SP先自動加先自動加1,然后,然后CPU將數據存將數據存入;入;當數據出棧時,當數據出棧時,CPU先將數據送出,先將數據送出,然后然后SP自動減自動減1。2.1.3 MCS-51單片機的單片機的CPU下圖是數據進棧的情況下圖是數據進棧的情況數據從棧頂進入數據從棧頂進入 開始狀態開始狀態 58進棧后的狀態進棧后的狀態A6,7B進棧后的狀態進棧后的狀態E7E7E7E6E6E6SPE5SPE5SPE5E1E4E2E4E4E4E3E3E3E2E258E236E136E136E121E021E021E058A67B2

20、.1.3 MCS-51單片機的單片機的CPU由于進棧時由于進棧時SP的值增加,即的值增加,即堆棧向地堆棧向地址大的方向生長址大的方向生長,并且,并且棧頂是有效數據棧頂是有效數據,這種堆棧是這種堆棧是滿遞增型堆棧滿遞增型堆棧。 7B出棧后的狀態出棧后的狀態A6、58、36出棧后的狀態出棧后的狀態E7E7E6E6SPE5SPE5E37BE4E07BE4A6E3A6E358E258E236E136E121E021E07BA658362.1.3 MCS-51單片機的單片機的CPU5、數據指針、數據指針DPTRDPTR是唯一的是唯一的16位寄存器位寄存器。DPTR既可以作為一個既可以作為一個16位寄存器

21、使用,位寄存器使用,也可以作為兩個獨立的也可以作為兩個獨立的8位寄存器使用位寄存器使用。其。其高字節寄存器用高字節寄存器用DPH表示,低字節寄存器表示,低字節寄存器用用DPL表示。表示。DPTR的用途:的用途: (1)主要用于存放主要用于存放16位地位地址址,以便對,以便對64KB的片外的片外RAM和和64KB的程的程序存儲空間作間接訪問。序存儲空間作間接訪問。 (2)其次用于存放其次用于存放數據數據,作為一般寄存器使用。,作為一般寄存器使用。2.2 MCS-51單片機引腳與總線結構單片機引腳與總線結構 主要內容主要內容2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能2.2.2

22、 MCS-51單片機外部總線結構單片機外部總線結構2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 封裝:封裝:40DIP, 44PLCC。常用常用40DIP40個引腳分個引腳分為為4類:類:l 電源引腳電源引腳l 晶振引腳晶振引腳l 控制信號控制信號l 輸入輸入/輸出引輸出引腳腳T2/P1.0T2EX/P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1Vss89C5189C524039383736353433323

23、1302928272625242322211234567891011121314151617181920VccP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A82.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 一、電源引腳一、電源引腳 Vcc(40腳):接腳):接5V電源正端電源正端Vss(20腳):接腳):接5V電源地端電源地端二、晶振引腳二

24、、晶振引腳XTAL1(19腳)腳)XTAL2(18腳)腳)晶晶振振 XTAL2XTAL1單片機單片機C1 C2 18 19 2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 三、控制信號引腳三、控制信號引腳1、RST/VPD(9腳)腳)RST:復位信號輸入端復位信號輸入端,高電平有效高電平有效。單片機正常工作時:單片機正常工作時:RST保持兩個機器保持兩個機器周期的高電平就會使單片機復位;周期的高電平就會使單片機復位;上電時:上電時:RST上的高電平必須保持上的高電平必須保持10ms以上才能保證有效復位,由于振蕩器需要以上才能保證有效復位,由于振蕩器需要一定的起振時間。一定的起

25、振時間。VPD:備用電源輸入端備用電源輸入端,以保持內部,以保持內部RAM中的數據不丟失。中的數據不丟失。當當Vcc的電壓降低的電壓降低到低電平規定的值或掉電時到低電平規定的值或掉電時,接入電源。,接入電源。 2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 2、ALE/PROG(30引腳)引腳)ALE:地址鎖存信號地址鎖存信號,每個機器周期輸,每個機器周期輸出兩個正脈沖,下降沿或低電平用于控制出兩個正脈沖,下降沿或低電平用于控制外接的地址鎖存器,鎖存從外接的地址鎖存器,鎖存從P0口輸出的低口輸出的低8位地址。位地址。可以將可以將ALE作為時鐘信號使用作為時鐘信號使用。PROG

26、:片內程序存儲器的編程脈沖輸片內程序存儲器的編程脈沖輸入端入端,低電平有效。,低電平有效。2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 3、PSEN(29引腳)引腳)片外程序存儲器讀選通信號輸出端片外程序存儲器讀選通信號輸出端,每,每個機器周期輸出兩個負脈沖,低電平有效。個機器周期輸出兩個負脈沖,低電平有效。在訪問片外數據存儲器時,該信號不出現。在訪問片外數據存儲器時,該信號不出現。4、EA/Vpp(31引腳)引腳)EA:程序存儲器選擇輸入端程序存儲器選擇輸入端。低電平低電平時,使用片外程序存儲器;高電平時,使時,使用片外程序存儲器;高電平時,使用片內程序存儲器用片內程序存

27、儲器。Vpp:片內程序存儲器編程電壓輸入端。片內程序存儲器編程電壓輸入端。2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 五、輸入五、輸入/輸出引腳輸出引腳1、P0口,口,P0.0P0.7(3239引腳)引腳)P0口是一個口是一個8位漏極開路的位漏極開路的I/O口。口。P0口作總線口:口作總線口:當當CPU以總線方式訪問片外存儲器以總線方式訪問片外存儲器時,時,P0口口分時地輸出低分時地輸出低8位地址、讀入指令位地址、讀入指令和輸入和輸入/輸出數據輸出數據。P0口作為一般口作為一般I/O口:口:此時此時P0口為準雙向口口為準雙向口(各位輸入(各位輸入前必須先輸出前必須先輸出1

28、)。)。 2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 2、P1口,口,P1.0P1.7(18引腳)引腳)P1口是一個口是一個8位準雙向位準雙向I/O口口P1.0、P1.1的第二功能:的第二功能:對于增強型,對于增強型, 第二功能的信號分別為第二功能的信號分別為T2和和T2EXT2(P1.0):):定時器定時器/計數器計數器2的計數脈的計數脈沖輸入和時鐘輸出。沖輸入和時鐘輸出。T2EX(P1.1):):定時器定時器/計數器計數器2的重的重 裝、捕獲和計數方向控制輸入。裝、捕獲和計數方向控制輸入。 2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 3、P2口,

29、口,P2.0P2.7(2128引腳)引腳)當當CPU以總線方式訪問片外存儲器時,以總線方式訪問片外存儲器時,P2口輸出高口輸出高8位地址位地址。作為一般作為一般I/O口使用時,為準雙向口口使用時,為準雙向口。4、P3口,口,P3.0P3.7(1017引腳)引腳)P3口是一個口是一個8位位I/O口口,還是一個雙功能口還是一個雙功能口作為一般作為一般I/O口使用時,口使用時,為準雙向口為準雙向口。各引腳第二功能如下頁表各引腳第二功能如下頁表2-2所示。所示。 2.2.1 MCS-51單片機引腳信號及功能單片機引腳信號及功能 表表2-2 P3口各引腳第二功能定義口各引腳第二功能定義引引 腳腳第第 二

30、二 功功 能能P3.0RXD:串行口輸入:串行口輸入P3.1TXD:串行口輸出:串行口輸出P3.2INT0:外部中斷:外部中斷0請求輸入請求輸入P3.3INT1:外部中斷:外部中斷1請求輸入請求輸入P3.4T0:定時器:定時器/計數器計數器0外部計數脈沖輸入外部計數脈沖輸入P3.5T1:定時器:定時器/計數器計數器1外部計數脈沖輸入外部計數脈沖輸入P3.6WR:外部數據存儲器寫控制信號輸出:外部數據存儲器寫控制信號輸出P3.7RD:外部數據存儲器讀控制信號輸出:外部數據存儲器讀控制信號輸出2.2.2 MCS-51單片機總線結構單片機總線結構總線的概念:總線的概念:總線即三總線總線即三總線,指數

31、據總線指數據總線、地址總線、控制總線。地址總線、控制總線。一般說法為:一般說法為:多個部件信息的電氣連接。多個部件信息的電氣連接。MCS-51單片機的總線:單片機的總線:內部具有產生總內部具有產生總線的結構。線的結構。如圖如圖2-6所示。所示。 單片機總線的應用:單片機總線的應用:擴展數據存儲器擴展數據存儲器擴展程序存儲器擴展程序存儲器2.2.2 MCS-51單片機總線結構單片機總線結構圖圖2-6 MCS-51單片機總線結構單片機總線結構地址鎖存器地址鎖存器74LS573A15 : : : : : :A8A7 : : : : : :A0D7 : : :D0數據總線數據總線(DB)I/O口口控制

32、總線控制總線(CB)地址總線地址總線(AB)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6/WRP3.7/RDALEPSENEARSTP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.02.3 MCS-51單片機的存儲器結構單片機的存儲器結構主要內容主要內容2.3.1 程序存儲器結構程序存儲器結構2.3.2 片內數據存儲器結構片內數據存儲器結構2.3.3 片外數據存儲器結構片外數據存儲器結構 MCS-51單片機存儲器概述單片機存儲器概述1、單片機

33、的哈佛結構存儲器、單片機的哈佛結構存儲器MCS-51單片機為哈佛結構:單片機為哈佛結構:程序存儲器程序存儲器ROM和數據存儲器和數據存儲器RAM分開編址分開編址PC機為偌依曼:機為偌依曼:ROM和和RAM統一編址統一編址程序存儲器:程序存儲器:固化程序、常數和數據表固化程序、常數和數據表數據存儲器:數據存儲器:存放程序運行中產生的各種存放程序運行中產生的各種數據、用作堆棧等數據、用作堆棧等 2、單片機的存儲器空間及分類、單片機的存儲器空間及分類MCS-51單片機有單片機有4個存儲空間:個存儲空間:片內片內程序存儲器、片內數據存儲器,片外程序存程序存儲器、片內數據存儲器,片外程序存儲器、片外數據

34、存儲器。儲器、片外數據存儲器。4個存儲空間可以分成三類:個存儲空間可以分成三類:片內數據片內數據存儲空間(存儲空間(256B的的RAM和和128B的特殊功能的特殊功能寄存器)、片外數據存儲空間(寄存器)、片外數據存儲空間(64KB)、片)、片內和片外統一編址的程序存儲空間內和片外統一編址的程序存儲空間(64KB)不同類型的存儲空間,有各自的尋址方式不同類型的存儲空間,有各自的尋址方式和訪問指令和訪問指令。 2.3.1 程序存儲器結構程序存儲器結構一、程序存儲器結構一、程序存儲器結構51基本型片內有基本型片內有4KB的的Flash ROM,地,地址為址為0000H0FFFH,片外最多可以擴展,片

35、外最多可以擴展60KB,地址為,地址為1000HFFFFH。增強型片內有增強型片內有8KB的的Flash ROM,地址,地址為為0000H1FFFH,片外最多可以擴展,片外最多可以擴展56KB,地址為,地址為2000HFFFFH,片內外是,片內外是統一編址的。統一編址的。程序存儲器空間的配置如圖程序存儲器空間的配置如圖2-7所示所示2.3.1 程序存儲器結構程序存儲器結構圖圖2-7 MCS-51單片機程序存儲空間的配置單片機程序存儲空間的配置片片 外外ROM片片 內內ROMEA=1片片 外外ROMEA=00000H0FFFH1000HFFFFH(a)片內有)片內有4KB的的ROM (b)片內有

36、)片內有8KB的的ROM片片 外外ROM片片 內內ROMEA=1片片 外外ROMEA=00000H1FFFH2000HFFFFH2.3.1 程序存儲器結構程序存儲器結構單片機在執行指令時,單片機在執行指令時,對于低地址部分,對于低地址部分,究竟是從究竟是從片內程序存儲器片內程序存儲器取指令取指令,還是從片,還是從片外程序存儲器取指令?外程序存儲器取指令?決定于程序存儲器選擇引腳決定于程序存儲器選擇引腳EA的電平:的電平:EA接低電平,讀片外程序存儲器接低電平,讀片外程序存儲器EA接高電平,接高電平,CPU從片內程序存儲從片內程序存儲器取指令。器取指令。當取指令的地址大于片內存儲器的最大地當取指

37、令的地址大于片內存儲器的最大地址時,址時,CPU自動轉到片外程序存儲器取指令自動轉到片外程序存儲器取指令。 2.3.1 程序存儲器結構程序存儲器結構二、程序存儲器的專用區域二、程序存儲器的專用區域用作復位和中斷入口用作復位和中斷入口表表2-3 ROM中專用存儲區域中專用存儲區域存儲單元存儲單元應應 用用0000H0002H復位后引導程序地址復位后引導程序地址0003H000AH外中斷外中斷0000BH0012H定時器定時器0中斷中斷0013H001AH外中斷外中斷1001BH0022H定時器定時器1中斷中斷0023H002AH串行口中斷串行口中斷002BH0032H定時器定時器2中斷(增強型機

38、)中斷(增強型機)2.3.1 程序存儲器結構程序存儲器結構中斷向量:中斷向量:即中斷入口地址。即中斷入口地址。如下表如下表注意區分:注意區分:中斷入口地址、中斷入口地址、中斷服務程中斷服務程序入口地址序入口地址、中斷服務程序。、中斷服務程序。表表2-4 中斷向量表中斷向量表中中 斷斷 源源中斷入口地址中斷入口地址外中斷外中斷00003H定時器定時器0中斷中斷000BH外中斷外中斷10013H定時器定時器1中斷中斷001BH串行口中斷串行口中斷0023H定時器定時器2中斷(增強型機)中斷(增強型機)002BH2.3.1 程序存儲器結構程序存儲器結構C語言編程所考慮的問題語言編程所考慮的問題如果用

39、如果用C語言編寫程序,不需要考慮語言編寫程序,不需要考慮以上這些問題,即以上這些問題,即不用考慮引導程序問不用考慮引導程序問題題,中斷入口與跳轉問題中斷入口與跳轉問題,這些問題均,這些問題均由編譯系統安排好。由編譯系統安排好。main( )函數起到引導程序的作用函數起到引導程序的作用。對于中斷處理,只要按照格式編寫中對于中斷處理,只要按照格式編寫中斷處理函數即可斷處理函數即可(見第(見第4章)。章)。 2.3.2 片內數據存儲器結構片內數據存儲器結構片內數據存儲器按照尋址方式,可以分片內數據存儲器按照尋址方式,可以分為三個部分為三個部分:低:低128字節數據區,高字節數據區,高128字節字節數

40、據區,特殊功能寄存器區。如下圖所示。數據區,特殊功能寄存器區。如下圖所示。 低低128B RAMdata區區特殊功能特殊功能寄存器寄存器80HFFH00H7FH(a)89C51片內片內RAM低低128BRAMdata區區高高128BRAMidata區區特殊功能特殊功能寄存器寄存器00H7FH80HFFH80HFFH(b)增強型單片機片內)增強型單片機片內RAM2.3.2 片內數據存儲器結構片內數據存儲器結構一、低一、低128字節字節RAM地址范圍:地址范圍:00H7FH,128字節字節應用特點:應用特點:有多種用途、且使用最頻繁有多種用途、且使用最頻繁功能作用:功能作用:分為三個區域,分為三個

41、區域,即工作寄存即工作寄存器區、位尋找區、通用數據區。器區、位尋找區、通用數據區。尋址方式:尋址方式:直接、間接、位尋址直接、間接、位尋址低低128字節字節RAM的配置如圖的配置如圖2-9所示。所示。 7F30堆棧和堆棧和數據緩存數據緩存通通用用數數據據區區2F20位地址為位地址為00H7FH(128位位)位位尋尋址址區區1F18R0、R1R7(第(第3組)組)工工1710R0、R1R7(第(第2組)組)作作寄寄0F08R0、R1R7(第(第1組)組)存存器器0700R0、R1R7(第(第0組)組)區區圖圖2-9 低低128字節字節RAM區區2.3.2 片內數據存儲器結構片內數據存儲器結構1、

42、工作寄存器區、工作寄存器區范圍:范圍:地址從地址從00H到到1FH,共,共32字節。字節。分分4個組:個組:第第0組、第組、第1組、第組、第2組、第組、第3組組工作寄存器名:工作寄存器名:R0、R1R7。 不同的組對應的不同的組對應的8個寄存器的地址不同,個寄存器的地址不同,如表如表2-1所示。所示。工作寄存器組的選擇:工作寄存器組的選擇:決定于程序狀態字決定于程序狀態字PSW的的RS1和和RS0位位。見表。見表2-1。C語言下選寄存器組:語言下選寄存器組:在定義函數時,通在定義函數時,通過過使用關鍵字使用關鍵字“using”來選擇來選擇(如如using m) 。 2.3.2 片內數據存儲器結

43、構片內數據存儲器結構2、位尋址區、位尋址區范圍:范圍:字節地址從字節地址從20H到到2FH,16字節。字節。位地址:位地址:00H到到7FH ,128位位。用途:用途:既可以做位操作,也可以字節操既可以做位操作,也可以字節操作。作。C語言編程:語言編程:用關鍵字用關鍵字“bit”定義的位變定義的位變量量在該區域;在該區域;用關鍵字用關鍵字“bdata”將一般變量將一般變量定義在該區域定義在該區域,并且定義的變量還可以進行,并且定義的變量還可以進行位尋址。位尋址。 2.3.2 片內數據存儲器結構片內數據存儲器結構3、通用數據區、通用數據區范圍:范圍:地址從地址從30H到到7FH,共,共80字節。

44、字節。用途:用途:用于堆棧、存放數據、存放程序運用于堆棧、存放數據、存放程序運行時的中間結果等行時的中間結果等。4、尋址方式、尋址方式直接、間接、位尋址方式訪問直接、間接、位尋址方式訪問直接、間接范圍:直接、間接范圍:字節地址從字節地址從00H到到7FH位尋址范圍:位尋址范圍:字節地址從字節地址從20H到到2FH,16字節;位地址字節;位地址00H到到7FH、128位位2.3.2 片內數據存儲器結構片內數據存儲器結構二、高二、高128字節字節RAM地址范圍:地址范圍:80HFFH,128字節字節用途:用途:與低與低128字節中的字節中的30H到到7FH完全完全一樣,一樣,用于堆棧、存放程序運行

45、時的數據和用于堆棧、存放程序運行時的數據和中間結果等中間結果等。尋址方式:尋址方式:間接訪問間接訪問。C語言編程:語言編程:使用關鍵字使用關鍵字“idata”定義變量定義變量 2.3.2 片內數據存儲器結構片內數據存儲器結構三、特殊功能寄存器(三、特殊功能寄存器(SFR)也稱為也稱為專用寄存器專用寄存器,是單片機中最重要,是單片機中最重要的部分。的部分。地址范圍:地址范圍:80HFFH,128字節字節功能作用:功能作用:控制單片機各個部件的運行控制單片機各個部件的運行反映各部件的運行狀態反映各部件的運行狀態存放數據或地址存放數據或地址尋址方式:尋址方式:直接訪問直接訪問2.3.2 片內數據存儲

46、器結構片內數據存儲器結構1、具體特殊功能寄存器具體特殊功能寄存器SFR的數量:的數量:基本型只有基本型只有21個,增強型有個,增強型有27個;分別有個;分別有11個、個、12個可以按位操作個可以按位操作。(1)與)與CPU相關的相關的(7個)個)PWS*:程序狀態寄存器:程序狀態寄存器A*:累加器:累加器B*:輔助運算寄存器:輔助運算寄存器SP:堆棧指針:堆棧指針PCON:電源控制寄存器:電源控制寄存器DPL、DPH:數據指針的低字節、高字節:數據指針的低字節、高字節2.3.2 片內數據存儲器結構片內數據存儲器結構(2)與定時器相關的)與定時器相關的(12個)個)TMOD:模式寄存器:模式寄存

47、器TCON*:控制寄存器:控制寄存器TL0、TH0:T0低低8位、高位、高8位計數器位計數器TL1、TH1:T1低低8位、高位、高8位計數器位計數器T2MOD:T2模式寄存器模式寄存器T2CON*:T2控制寄存器控制寄存器TL2、TH2:T2低低8位、高位、高8位計數器位計數器RCAP2L、RCAP2H:T2捕獲寄存器捕獲寄存器2.3.2 片內數據存儲器結構片內數據存儲器結構(3)與中斷相關的)與中斷相關的(2個)個)IE*:中斷允許(控制)寄存器:中斷允許(控制)寄存器IP*:中斷優先級寄存器:中斷優先級寄存器(4)與串行口相關的)與串行口相關的(2個)個)SCON*:串行口控制寄存器:串行

48、口控制寄存器SBUF:串行口數據緩沖寄存器,:串行口數據緩沖寄存器,2個個(5)與)與I/O口相關的口相關的(4個)個)P0*、P1*、P2*、P3*4個并行口映射寄存器個并行口映射寄存器2.3.2 片內數據存儲器結構片內數據存儲器結構2、一些最重要的寄存器、一些最重要的寄存器在表在表2-5中有格式的特殊功能寄存器最重中有格式的特殊功能寄存器最重要,它們是(要,它們是(9個):個):PSW*、IE*、IP*、TCON*、TMODPCON、SCON*、T2CON*、T2MOD應用單片機,主要就是掌握這應用單片機,主要就是掌握這9個有格式個有格式的特殊功能寄存器,對基本型僅有的特殊功能寄存器,對基

49、本型僅有7個。個。 2.3.2 片內數據存儲器結構片內數據存儲器結構3、特殊功能寄存器在、特殊功能寄存器在C語言中的表示語言中的表示這些特殊功能寄存器及各位位名在匯編這些特殊功能寄存器及各位位名在匯編語言中能夠識別,但在語言中能夠識別,但在C語言中并不識別。語言中并不識別。為了在為了在C語言中使用,必須先做定義語言中使用,必須先做定義,它,它們多數在們多數在“reg51.h”、“reg52.h”等頭文件等頭文件做了定義。做了定義。但有一些未做定義,如但有一些未做定義,如4個并行口個并行口P0P3各位,累加器各位,累加器A,寄存器,寄存器B等,在使用時需等,在使用時需要用戶定義。要用戶定義。 2

50、.3.3 片外數據存儲器結構片外數據存儲器結構地址范圍:地址范圍:0000HFFFFH容量:容量:共共64KB訪問指令:訪問指令:“MOVX”(片內用(片內用MOV)使用使用“MOVX”指令指令對片外對片外RAM進行讀進行讀/寫操作時,寫操作時,會自動產生讀會自動產生讀/寫控制信號寫控制信號RD和和WR,作用于片外,作用于片外RAM實現讀實現讀/寫操作。寫操作。2.3.3 片外數據存儲器結構片外數據存儲器結構片外片外RAM的用途:的用途:(1)沒有特別的用途)沒有特別的用途,不像片內,不像片內RAM,不劃分區域。不劃分區域。(2)片外)片外RAM做通用做通用RAM使用使用,主要,主要存放大量采

51、集的或接收的數據、運算的中間存放大量采集的或接收的數據、運算的中間數據、最后結果、用作堆棧等。數據、最后結果、用作堆棧等。 C語言編程:語言編程:使用關鍵字使用關鍵字“xdata”或或“pdata”將變量、數組、堆棧定義到片外將變量、數組、堆棧定義到片外RAM區。區。 2.4 MCS-51單片機的輸入單片機的輸入/輸出端口輸出端口主要內容主要內容2.4.1 P1口口2.4.2 P2口口2.4.3 P3口口2.4.4 P0口口2.4.5 端口的負載能力端口的負載能力和接口要求和接口要求I/O口概述口概述MCS-51單片機的單片機的4個個8位端口:位端口:均可作一般均可作一般I/O口,都是準雙向口

52、。口,都是準雙向口。每個端口都可以按位作輸入或輸出每個端口都可以按位作輸入或輸出端口結構:端口結構:每個端口都有一個每個端口都有一個(1)輸出鎖輸出鎖存器存器;(2)輸出驅動器輸出驅動器;(3) 輸入緩沖器輸入緩沖器。輸出時鎖存數據,輸入時數據緩沖輸出時鎖存數據,輸入時數據緩沖。4個端口的差別:個端口的差別:功能不盡相同、內部結功能不盡相同、內部結構有區別構有區別 2.4.1 P1口口P1口是唯一的靜態準雙向口口是唯一的靜態準雙向口,用作通用,用作通用I/O口。口。P1口的結構:口的結構:主要由(主要由(1)輸出鎖存器輸出鎖存器;(2)驅動器場效應管驅動器場效應管(FET);();(3)兩個)

53、兩個三態緩緩沖器三態緩緩沖器;(;(4)端口上)端口上拉電阻拉電阻(實為(實為FET)等部分組成。)等部分組成。P1口相對來說是最簡單的,其電路結構口相對來說是最簡單的,其電路結構如圖如圖2-10所示。所示。2.4.1 P1口口 讀引腳讀引腳內部總線內部總線寫鎖存器寫鎖存器DQ鎖存器鎖存器CL QVcc讀鎖存器讀鎖存器P1.xT圖圖2-10 P1口某一位的原理結構口某一位的原理結構R122.4.1 P1口口一、一、P1口輸出口輸出輸出輸出1:將將1寫入寫入P1口某一位的鎖存器,口某一位的鎖存器,使輸出驅動器的場效應管使輸出驅動器的場效應管T截止,該位的引截止,該位的引腳由內部上拉電阻拉成高電平

54、,輸出為腳由內部上拉電阻拉成高電平,輸出為1。輸出輸出0:將將0寫入鎖存器,使場效應管導寫入鎖存器,使場效應管導通,則輸出引腳為低電平。通,則輸出引腳為低電平。不需要外接上拉電阻:不需要外接上拉電阻:因因P1口內各位有口內各位有上拉電阻上拉電阻,所以在輸出高電平時,能向外提,所以在輸出高電平時,能向外提供拉電流負載。供拉電流負載。 2.4.1 P1口口二、二、P1口輸入口輸入輸入通道建立:輸入通道建立:當當P1口的某位用作輸入口的某位用作輸入時,該位的鎖存器必須鎖存輸出時,該位的鎖存器必須鎖存輸出1(該位先(該位先寫寫1),使輸出場效應管),使輸出場效應管T截止,才能夠正確截止,才能夠正確輸入

55、。輸入。輸入:輸入:這時從引腳輸入的值決定于外部這時從引腳輸入的值決定于外部信號的高低,引腳狀態經信號的高低,引腳狀態經“讀引腳讀引腳”信號打信號打開的三態緩沖器開的三態緩沖器2,送入內部總線。,送入內部總線。2.4.1 P1口口輸入時必須向對應位先寫輸入時必須向對應位先寫1:因為有可能因為有可能前面的操作使引腳輸出前面的操作使引腳輸出0,場效應管,場效應管T處于導處于導通狀態,引腳被箝位為通狀態,引腳被箝位為0,這樣,不管外部,這樣,不管外部信號為何狀態,從信號為何狀態,從引腳輸入的永遠為引腳輸入的永遠為0,不,不能夠正確輸入能夠正確輸入。單片機端口輸入前必須先向端口輸出單片機端口輸入前必須

56、先向端口輸出1這這種特性,稱為準雙向口種特性,稱為準雙向口。MCS-51單片機的單片機的P0P3口作為通用口作為通用I/O口使用時,都是準雙向口口使用時,都是準雙向口。2.4.1 P1口口三、三、P1口作口作“讀讀修改修改寫寫”操作操作 “讀讀修改修改寫寫”操作概念:操作概念:在在CPU執執行某些指令時,需要先從行某些指令時,需要先從P1口讀入數據,經口讀入數據,經過某些操作后,再從過某些操作后,再從P1口輸出,這樣的操作口輸出,這樣的操作稱為稱為“讀讀修改修改寫寫”操作。操作。例如:例如:指令指令“INC P1”,其操作先把,其操作先把P1口原來的值讀入(讀入的是鎖存器中的值,口原來的值讀入

57、(讀入的是鎖存器中的值,而不是引腳的值),然后加上而不是引腳的值),然后加上1,最后把結,最后把結果再從果再從P1口輸出。口輸出。表表2-6給出了給出了P0P3口所有的口所有的“讀讀修修改改寫寫”指令。指令。2.4.1 P1口口表表2-6 Px口的口的“讀讀修改修改寫寫”指令指令助記符助記符功功 能能實實 例例INC增增1INC P0DEC減減1DEC P1ANL邏輯與邏輯與ANL P2,AORL邏輯或邏輯或ORL P3,AXRL邏輯異或邏輯異或XRL P1,ADJNZ減減1,結果不為,結果不為0轉轉DJNZ P2,LABELCPL位求反位求反CPL P3.0JBC測試位為測試位為1轉并清轉并

58、清0JBC P0.1,LABEL2.4.2 P2口口P2口是一個雙功能口口是一個雙功能口,一是通用,一是通用I/O口,口,二是以總線方式訪問外存時的高二是以總線方式訪問外存時的高8位地址口。位地址口。端口結構:端口結構:與與P1口的結構類似,但口的結構類似,但比比P1口多了一個多路切換開關口多了一個多路切換開關MUX和反相器和反相器3。讀引腳讀引腳內部總線內部總線寫鎖存器寫鎖存器讀鎖存器讀鎖存器12VccP2.xTRMUX地址地址控制控制3DQ鎖存器鎖存器CL Q2.4.2 P2口口一、一、P2口作通用口作通用I/O口口一般一般I/O讀讀/寫操作指令:寫操作指令:如執行如執行“MOV A,P2

59、”指令、執行指令、執行“MOV P2,B”指令。指令。I/O口通道:口通道:由內部硬件自動使開關由內部硬件自動使開關MUX撥向下邊,與鎖存器的輸出端撥向下邊,與鎖存器的輸出端Q接通,這時接通,這時P2口為通用口為通用I/O口口,與,與P1口一樣。口一樣。I/O口讀口讀/寫操作:寫操作:可以隨時做輸出,輸入可以隨時做輸出,輸入時要考慮其準雙向口,先輸出時要考慮其準雙向口,先輸出1。 2.4.2 P2口口二、二、P2口輸出高口輸出高8位地址位地址高高8位地址輸出通道:位地址輸出通道:當進行總線讀當進行總線讀/寫操寫操作(執行作(執行“MOVX”指令)時,指令)時, MUX開關在開關在硬件控制下自動

60、撥向上邊,硬件控制下自動撥向上邊,P2口輸出高口輸出高8位位地址地址。總線操作指令:總線操作指令:對于對于“MOVX A,Ri”或或“MOVX Ri,A”與與“MOVX A,DPTR”、“MOVX DPTR,A”指令也指令也一樣,一樣,P2口始終輸出高口始終輸出高8位地址。位地址。此時,此時,P2口不能作為一般口不能作為一般I/O口使用。口使用。 2.4.2 P2口口使用片外程序存儲器:使用片外程序存儲器:CPU從片外程序存儲器每讀一條指令,從片外程序存儲器每讀一條指令,P2口就輸出一次高口就輸出一次高8位地址位地址。由于由于CPU需要一直讀取指令,需要一直讀取指令,P2口始終口始終要輸出高要輸出高8位地址位

溫馨提示

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

評論

0/150

提交評論