單片機第二章._第1頁
單片機第二章._第2頁
單片機第二章._第3頁
單片機第二章._第4頁
單片機第二章._第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1 存儲器是單片機中一個非常重要的部件,專存儲器是單片機中一個非常重要的部件,專門用于存放指令、數據和運算結果。門用于存放指令、數據和運算結果。 分析分析F877F877單片機存儲器構架,可以從其配置單片機存儲器構架,可以從其配置的三大模塊著手進行,它們是:的三大模塊著手進行,它們是: 8 8K l4K l4位位FLASHFLASH程序存儲器程序存儲器 5128 5128位數據存儲器位數據存儲器RAMRAM 25682568位可掉電保護數據的位可掉電保護數據的EEPROMEEPROM存儲器模存儲器模塊。塊。 2 存儲器從使用功能上來分,可分為隨機存存儲器從使用功能上來分,可分為隨機存儲器儲器R

2、AMRAM(Random Access MemoryRandom Access Memory)和只讀存儲和只讀存儲器器ROMROM(Read Only MemoryRead Only Memory)兩類。兩類。 3 F877F877程序存儲器具有程序存儲器具有1313位寬的程序計數位寬的程序計數器器PCPC。PCPC指針所產生的指針所產生的1313位地址最大可尋址的位地址最大可尋址的程序存儲器空間為程序存儲器空間為8 8K K,相應的地址編碼范圍為相應的地址編碼范圍為00000000H H lFFFHlFFFH。 F877 F877歸屬于中檔單片機,其指令字節寬度歸屬于中檔單片機,其指令字節寬

3、度為為1414位,內部構架配置了位,內部構架配置了8 8K l4K l4位的閃爍位的閃爍FLASHFLASH程序存儲器。程序存儲器。 4 一般將整個程序存儲器以一般將整個程序存儲器以2 2KBKB為單位進行分為單位進行分頁(頁(PAGEPAGE),),如圖所示如圖所示F877F877單片機,單片機,8 8KBKB程序程序存儲器共分作存儲器共分作4 4頁,分別稱為頁,分別稱為“頁頁0”0”、“頁頁l”l”、“頁頁2”2”和和“頁頁3”3”。 程序計數器高程序計數器高8 8位位PCLATHPCLATH的的Bit4-Bit3Bit4-Bit3位構成程序存儲器分頁的位構成程序存儲器分頁的選擇位,對應的

4、地址空間如下:選擇位,對應的地址空間如下: PCLATH Bit4PCLATH Bit4:Bit3Bit3: 0 0 0 0 頁頁0 0:00000000H H 07FFH 07FFH 0 1 0 1 頁頁l l:0800H 0800H 0FFFH 0FFFH 1 0 1 0 頁頁2 2:10001000H H 17FFH 17FFH 1 1 1 1 頁頁3 3:18001800H H 1FFFH 1FFFH567最大最大8K字字(13 位位) 程序程序存儲空間存儲空間程序空間按頁面劃分,程序空間按頁面劃分,每頁每頁2K字字 (11 位位);最;最多四頁。多四頁。頁面選擇頁面選擇 PCLATH

5、復位向量地址復位向量地址 0000h中斷向量地址中斷向量地址 0004h8 程序存儲器中有程序存儲器中有2 2個單元地址比較特殊,除個單元地址比較特殊,除了具備同其他單元地址一樣的普通用途外,還了具備同其他單元地址一樣的普通用途外,還具有專門用途:具有專門用途: 0000 0000H H:用作單片機系統的復位矢量;用作單片機系統的復位矢量; 0004 0004H H:用作系統特殊模塊的中斷矢量。用作系統特殊模塊的中斷矢量。 9 F877F877用于存儲數據的用于存儲數據的RAMRAM單元比一般單片單元比一般單片機機RAMRAM的功能要強大得多,它除了具備普通的功能要強大得多,它除了具備普通RA

6、MRAM的功能之外,每一個單元都能實現移位、的功能之外,每一個單元都能實現移位、置位、復位和位測試等通常由寄存器才能完置位、復位和位測試等通常由寄存器才能完成的功能操作。成的功能操作。 10 RAMRAM數據存儲器和數據存儲器和FLASHFLASH程序存儲器一樣在空程序存儲器一樣在空間構架上,進行類似方式進行分區。按橫向排間構架上,進行類似方式進行分區。按橫向排列,分為列,分為4 4個個“體體”(BANKBANK),),從左到右分別記從左到右分別記為為“體體0”0”、“體體1”1”、“體體2”2”和和“體體3”3”,每,每個體為個體為128128個個8 8位寬的存儲器單元。位寬的存儲器單元。

7、RP1 RP1:RP0 RP0 體域體域 寄存器地址寄存器地址 0 0 0 0 體體0 0: 000 000H 07FHH 07FH 0 1 0 1 體體1 1: 080 080H 0FFHH 0FFH 1 0 1 0 體體2 2: 100 100H l7FHH l7FH 1 1 1 1 體體3 3: 180 180H H lFFHlFFH11四個存儲體每個 128 字節特殊功能寄存器 存儲體選擇通過 Status中的 RP0,1 和 IRP512單元368有效GPR1213 有些寄存器單元在有些寄存器單元在4 4個體上是互相映射的,個體上是互相映射的,如狀態寄存器如狀態寄存器STATUSST

8、ATUS、間接尋址寄存器間接尋址寄存器INDFINDF、程序計數器低程序計數器低8 8位位PCLPCL、文件選擇寄存器文件選擇寄存器FSRFSR、程序計數器高程序計數器高8 8位位PCLATHPCLATH和中斷控制寄存器和中斷控制寄存器INTCONINTCON。 所謂互為映射就是說,在所謂互為映射就是說,在4 4個體內的相同位個體內的相同位置,物理上對應同一個寄存器單元,所以該單置,物理上對應同一個寄存器單元,所以該單元具備元具備4 4個不同的地址。個不同的地址。 14 F877F877單片機的通用寄存器單片機的通用寄存器GPRGPR(General General Purpose Regis

9、tersPurpose Registers),),可由用戶自行支配存放可由用戶自行支配存放隨機數據。隨機數據。 地址區域:地址區域:F0HF0H- -FFHFFH、170H170H- -l7FHl7FH和和1 1F0HF0H- -1 1FFHFFH,都可以索引(或映射)到體都可以索引(或映射)到體0 0的的1616個個RAMRAM單元。單元。 這樣安排是為了便于中斷服務程序的設計和這樣安排是為了便于中斷服務程序的設計和數據處理,就可以在程序設計中能夠有效突破數據處理,就可以在程序設計中能夠有效突破體的限制而定義通用的變量函數。體的限制而定義通用的變量函數。15 特殊功能寄存器特殊功能寄存器SF

10、RSFR(Special Function Special Function RegistersRegisters)是用于專用目的的寄存器,每個寄是用于專用目的的寄存器,每個寄存器單元,甚至其中的每一位,都有它自己特存器單元,甚至其中的每一位,都有它自己特定的名稱和用途。定的名稱和用途。 主要涉及主要涉及PICPIC內核結構、外圍功能模塊的內核結構、外圍功能模塊的配置和數據通信方式的定義,是單片機賴于正配置和數據通信方式的定義,是單片機賴于正常運行的工作平臺。所以,特殊功能寄存器又常運行的工作平臺。所以,特殊功能寄存器又稱為專用寄存器。稱為專用寄存器。 可以依據它們不同的用途分為兩類:一類可以

11、依據它們不同的用途分為兩類:一類是與是與CPUCPU內核相關的寄存器;另一類是與外圍模內核相關的寄存器;另一類是與外圍模塊相關的寄存器。塊相關的寄存器。 16 狀態寄存器的內容用來記錄算術邏輯單元狀態寄存器的內容用來記錄算術邏輯單元ALUALU的運算結果狀態、的運算結果狀態、CPUCPU的特殊運行狀態以及的特殊運行狀態以及RAMRAM數據存儲器體間選擇等信息。數據存儲器體間選擇等信息。 Bit7Bit7Bit6Bit6Bit5Bit5Bit4Bit4Bit3Bit3Bit2Bit2Bit1Bit1Bit 0Bit 0IRPIRPRP1RP1RP0RP0T0 T0PD PDZ ZDC DCC C

12、17Bit0Bit0C C:進位進位/ /借位標志,被動參數。借位標志,被動參數。 0 0:執行加法(或減法)指令時,如果最高:執行加法(或減法)指令時,如果最高位無進位(或有借位);位無進位(或有借位); 1 1:執行加法(或減法)指令時,如果最高:執行加法(或減法)指令時,如果最高位有進位(或無借位)。位有進位(或無借位)。 18Bit1Bit1DCDC:輔助進位輔助進位/ /借位標志,被動參數。借位標志,被動參數。 0 0:執行加法(或減法)指令時,如果低:執行加法(或減法)指令時,如果低4 4位位向高向高4 4位無進位(或有借位);位無進位(或有借位); 1 1:執行加法(或減法)指令

13、時,如果低:執行加法(或減法)指令時,如果低4 4位位向高向高4 4位有進位(或無借位)。位有進位(或無借位)。Bit2Bit2Z Z:零標志,被動參數。零標志,被動參數。 0 0:算術或邏輯運算結果不為:算術或邏輯運算結果不為0 0; 1 1:算術或邏輯運算結果為全:算術或邏輯運算結果為全0 0。 19Bit6-Bit5Bit6-Bit5RP1-RP0RP1-RP0:RAMRAM數據存儲器體選位,數據存儲器體選位,僅用于直接尋址。僅用于直接尋址。 兩位復合選擇兩位復合選擇RAMRAM數據存儲器數據存儲器4 4個體,具個體,具體關系如下:體關系如下: RP1RP1、RP0 = 0 0 RP0

14、= 0 0 選中體選中體0 0 RP1RP1、RP0 = 0 1 RP0 = 0 1 選中體選中體1 1 RP1RP1、RP0 = 1 0 RP0 = 1 0 選中體選中體2 2 RP1RP1、RP0 = 1 1 RP0 = 1 1 選中體選中體3 320Bit7Bit7IRPIRP:RAMRAM數據存儲器體選位,僅用于間數據存儲器體選位,僅用于間接尋址。接尋址。 0 0:選擇數據存儲器低位體:選擇數據存儲器低位體: 即體即體0 0(FSRFSR的的Bit7=0Bit7=0)或體或體1 1(FSRFSR的的Bit7=1Bit7=1);); 1: 1: 選擇數據存儲器高位體:選擇數據存儲器高位體

15、: 即體即體2 2(FSRFSR的的Bit7=0Bit7=0)或體或體3 3(FSRFSR的的Bit7=1Bit7=1)。)。 21 在在RAMRAM數據存儲器中,有一個非常特別的寄數據存儲器中,有一個非常特別的寄存器存器INDFINDF它的專有功能是與它的專有功能是與FSRFSR寄存器配合,實寄存器配合,實現間接尋址。現間接尋址。 當訪問地址當訪問地址INDFINDF時,實際上是訪問以時,實際上是訪問以FSRFSR內內容為地址的數據存儲器容為地址的數據存儲器RAMRAM單元。單元。 22 在直接尋址中,體選碼來自狀態寄存器在直接尋址中,體選碼來自狀態寄存器STATUSSTATUS的的RP1R

16、P1和和RPORPO位,體內的單元地址直接來位,體內的單元地址直接來自指令機器碼。而在間接尋址中,體選碼由自指令機器碼。而在間接尋址中,體選碼由STATUSSTATUS的的IRPIRP位和位和FSRFSR寄存器的寄存器的BIT7BIT7組成。組成。 23 程序計數器程序計數器PCPC指針寬指針寬1313位,它的內容指向位,它的內容指向CPUCPU將要執行的下一條指令所在程序存儲器單元將要執行的下一條指令所在程序存儲器單元的地址。的地址。 低低8 8位位PCLPCL有自己的地址,可讀可寫;而高有自己的地址,可讀可寫;而高5 5位位PCHPCH和其它單片機不一樣,即沒有自己的地址,和其它單片機不一

17、樣,即沒有自己的地址,不能用軟件訪問,也就不能直接寫人,只能用不能用軟件訪問,也就不能直接寫人,只能用寄存器寄存器PCLATHPCLATH裝載的方式進行間接寫人。裝載的方式進行間接寫人。 24 PCLATHPCLATH對于高對于高5 5位位PCHPCH的裝載分兩種情況:的裝載分兩種情況: 一種情況是當執行以一種情況是當執行以PCLPCL為目標的寫操作指令為目標的寫操作指令時,時,PCPC的低的低8 8位來自算術邏輯單元位來自算術邏輯單元ALUALU,PCPC的高的高5 5位來自位來自PCLATHPCLATH的低的低5 5位;位; 另一種情況是當執行跳轉指令另一種情況是當執行跳轉指令GOTOGO

18、TO或調用子或調用子程序指令程序指令CALLCALL時,時,PCPC的低的低1111位來自指令碼中直接位來自指令碼中直接攜帶的攜帶的1111位地址,高位地址,高2 2位由位由PCLATHPCLATH3-43-4提供。提供。 2526 通過通過 CALL 和和 GOTO修改修改 PC (程序指針程序指針)2728 主要用于設置定時主要用于設置定時/ /計數器計數器TMR0TMR0、前后分頻前后分頻器、外部器、外部INTINT中斷以及中斷以及B B端口的弱上拉功能等各端口的弱上拉功能等各種控制位。種控制位。 Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit0RBPUIN

19、TEDGT0CST0SEPSAPS2PS1PS029PS2-PS0TMR0倍率WDT倍率0 0 01:021:010 0 11:041:020 1 01:081:040 1 11:161:081 0 01:321:161 0 11:641:321 1 01:1281:641 1 11:2561:12830Bit3Bit3PSAPSA:前后分頻器分配位,主動參數。前后分頻器分配位,主動參數。0 0: 分配給分配給TMR0TMR0,作為作為TMR0TMR0的前分頻器;的前分頻器;1 1: 分配給分配給WDTWDT,作為作為WDTWDT的后分頻器。的后分頻器。31Bit4Bit4T0SET0SE:T

20、MR0TMR0用于計數器,計數脈沖信用于計數器,計數脈沖信號邊沿選擇位,主動參數。號邊沿選擇位,主動參數。0 0: RA4/T0CKIRA4/T0CKI引腳上的上升沿增量;引腳上的上升沿增量;1 1: RA4/T0CKIRA4/T0CKI引腳上的下降沿增量。引腳上的下降沿增量。Bit5Bit5T0CST0CS:定時定時/ /計數器計數器TMR0TMR0時鐘源選擇時鐘源選擇位,主動參數。位,主動參數。0 0: 用內部指令周期時鐘(用內部指令周期時鐘(CLKOUTCLKOUT)作為作為TMR0TMR0的觸發脈沖;的觸發脈沖;1 1: 用用T0CKIT0CKI引腳上的外部時鐘作為引腳上的外部時鐘作為

21、TMR0TMR0的的觸發脈沖。觸發脈沖。32Bit6Bit6INTEDGINTEDG:INTINT中斷信號觸發邊沿選擇位,中斷信號觸發邊沿選擇位,主動參數。主動參數。0 0: BR0/INTBR0/INT引腳上的上升沿觸發;引腳上的上升沿觸發;1 1: BR0/INTBR0/INT引腳上的下降沿觸發。引腳上的下降沿觸發。Bit7Bit7RBPURBPU:B B端口弱上拉使能位,主動參數。端口弱上拉使能位,主動參數。0 0: RB0-RB7RB0-RB7引腳弱上拉使能;引腳弱上拉使能;1 1: RB0-RB7RB0-RB7引腳弱上拉不使能。引腳弱上拉不使能。 33 主要用于中斷控制主要用于中斷控

22、制方式的方式的設置設置。bit7bit7bit6bit6bit5bit5bit4bit4bit3bit3bit2bit2bit1bit1bit0bit0GIEGIEPEIEPEIET0IET0IEINTEINTERBIERBIET0IFT0IFINTFINTFRBIFRBIF343536EEDATA:是一個專用數據讀是一個專用數據讀/寫寄存器,用寫寄存器,用于臨時存放對于臨時存放對EEPROM數據存儲器進行讀數據存儲器進行讀/寫操作的數據。寫操作的數據。 EEADR:是一個專用地址讀是一個專用地址讀/寫寄存器,用寫寄存器,用于臨時存放對于臨時存放對EEPROM數據存儲器進行讀數據存儲器進行讀/

23、寫訪問的單元地址。寫訪問的單元地址。 37EECON1:EEPROM數據存儲器讀數據存儲器讀/寫控制第寫控制第一寄存器,主要用于讀一寄存器,主要用于讀/寫方式的設定和初寫方式的設定和初始化尋址控制。始化尋址控制。 bit7bit7bit6bit6bit5bit5bit4bit4bit3bit3bit2bit2bit1bit1bit0bit0EEPGDEEPGD - - - -WRERRWRERRWRENWRENWR WRRD RD38394041EECON2:EEPROMEEPROM數據存儲器讀數據存儲器讀/ /寫控制第二寫控制第二寄存器,是一個虛擬寄存器,專門用于寄存器,是一個虛擬寄存器,專門用于EEPROMEEPROM數據存儲器寫操作的次序控制。數

溫馨提示

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

評論

0/150

提交評論