單片機(jī)-06_XRAM_第1頁
單片機(jī)-06_XRAM_第2頁
單片機(jī)-06_XRAM_第3頁
單片機(jī)-06_XRAM_第4頁
單片機(jī)-06_XRAM_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、5外部數(shù)據(jù)存儲(chǔ)器接口和片內(nèi)外部數(shù)據(jù)存儲(chǔ)器接口和片內(nèi)XRAMC8051F020/1/1/3 MCU 內(nèi)部有位于外部數(shù)據(jù)存儲(chǔ)器空間的內(nèi)部有位于外部數(shù)據(jù)存儲(chǔ)器空間的4096 字節(jié)片上字節(jié)片上RAM(XRAM),還有外部數(shù)據(jù)存儲(chǔ)器接),還有外部數(shù)據(jù)存儲(chǔ)器接口(口(EMIF),可用于訪問片外存儲(chǔ)器和存儲(chǔ)器映射的),可用于訪問片外存儲(chǔ)器和存儲(chǔ)器映射的I/O 器件。器件。5.1 訪問訪問XRAMXRAM 存儲(chǔ)器空間用存儲(chǔ)器空間用MOVX 指令訪問。指令訪問。MOVX 指令有兩種指令有兩種形式,這兩種形式都使用間接尋址方式。形式,這兩種形式都使用間接尋址方式。第一種方法使用數(shù)據(jù)指針第一種方法使用數(shù)據(jù)指針DPT

2、R,該寄存器中含有待讀或?qū)?,該寄存器中含有待讀或?qū)懙牡腦RAM 單元的有效地址。單元的有效地址。第二種方法使用第二種方法使用R0 或或R1,與,與EMI0CN 寄存器一起形成有寄存器一起形成有效效XRAM 地址。地址。下面舉例說明這兩種方法。下面舉例說明這兩種方法。5.1.1 16 位位MOVX 示例示例16 位形式的位形式的MOVX 指令訪問由指令訪問由DPTR 寄存器的內(nèi)容所指向寄存器的內(nèi)容所指向的存儲(chǔ)器單元。下面的指令將地址的存儲(chǔ)器單元。下面的指令將地址0 x1234 的內(nèi)容讀入累加的內(nèi)容讀入累加器器A:MOV DPTR, #1234h ; 將待讀單元的將待讀單元的16 位地址(位地址(

3、0 x1234)裝入)裝入DPTRMOVX A, DPTR ; 將地址將地址0 x1234 的內(nèi)容裝入累加器的內(nèi)容裝入累加器A上面的例子使用上面的例子使用16 位立即數(shù)位立即數(shù)MOV 指令設(shè)置指令設(shè)置DPTR 的內(nèi)容。的內(nèi)容。還可以通過訪問特殊功能寄存器還可以通過訪問特殊功能寄存器DPH(DPTR 的高的高8 位)位)和和DPL(DPTR 的低的低8 位)來改變位)來改變DPTR 的內(nèi)容。的內(nèi)容。位位7-0: PGSEL7:0:XRAM 頁選擇位頁選擇位當(dāng)使用當(dāng)使用8 位的位的MOVX 命令時(shí),命令時(shí),XRAM 頁選擇位提供頁選擇位提供16 位外位外部數(shù)據(jù)存儲(chǔ)器地址的高字節(jié),實(shí)際上是選擇一個(gè)部

4、數(shù)據(jù)存儲(chǔ)器地址的高字節(jié),實(shí)際上是選擇一個(gè)256 字節(jié)的字節(jié)的RAM 頁。頁。0 x00:0 x0000 0 x00FF0 x01:0 x0100 0 x01FF0 xFE:0 xFE00 0 xFEFF0 xFF:0 xFF00 0 xFFFFEMI0CN: 外部存儲(chǔ)器接口控制外部存儲(chǔ)器接口控制5.1.2 8 位MOVX 示例8 位形式的位形式的MOVX 指令使用特殊功能寄存器指令使用特殊功能寄存器EMI0CN 的內(nèi)的內(nèi)容給出待訪問地址的高容給出待訪問地址的高8 位,由位,由R0 或或R1 的內(nèi)容給出待訪的內(nèi)容給出待訪問地址的低問地址的低8 位。下面的指令將地址位。下面的指令將地址0 x123

5、4 的內(nèi)容讀入累的內(nèi)容讀入累加器加器A:MOV EMI0CN, #12h ; 將地址的高字節(jié)裝入將地址的高字節(jié)裝入EMI0CNMOV R0, #34h ; 將地址的低字節(jié)裝入將地址的低字節(jié)裝入R0(或(或R1)MOVX A, R0 ; 將地址將地址0 x1234 的內(nèi)容裝入累加器的內(nèi)容裝入累加器A位位7-6: 未用。讀未用。讀 = 00b,寫,寫 = 忽略。忽略。位位5: PRTSEL:EMIF 端口選擇位端口選擇位0:EMIF 在在P0-P3。1:EMIF 在在P4-P7。位位4: EMD2:EMIF 復(fù)用方式選擇位復(fù)用方式選擇位0:EMIF 工作在地址工作在地址/數(shù)據(jù)復(fù)用方式。數(shù)據(jù)復(fù)用方式

6、。1:EMIF 工作在非復(fù)用方式(分離的地址和數(shù)據(jù)引腳)。工作在非復(fù)用方式(分離的地址和數(shù)據(jù)引腳)。EMI0CF: 外部存儲(chǔ)器接口配置外部存儲(chǔ)器接口配置位位3-2: EMD1-0:EMIF 工作模式選擇位工作模式選擇位這兩位控制外部存儲(chǔ)器接口的工作模式。這兩位控制外部存儲(chǔ)器接口的工作模式。00:只用內(nèi)部存儲(chǔ)器:只用內(nèi)部存儲(chǔ)器:MOVX 只尋址片內(nèi)只尋址片內(nèi)XRAM。所有有效。所有有效地址都指向片內(nèi)存儲(chǔ)器空間。地址都指向片內(nèi)存儲(chǔ)器空間。01:不帶塊選擇的分片方式。尋址低于:不帶塊選擇的分片方式。尋址低于4K 邊界的地址時(shí)訪問邊界的地址時(shí)訪問片內(nèi)存儲(chǔ)器,尋址高于片內(nèi)存儲(chǔ)器,尋址高于4K 邊界的地址

7、時(shí)訪問片外存儲(chǔ)器。邊界的地址時(shí)訪問片外存儲(chǔ)器。8 位片外位片外MOVX 操作使用地址高端口鎖存器的當(dāng)前內(nèi)容作為地操作使用地址高端口鎖存器的當(dāng)前內(nèi)容作為地址的高字節(jié)。注意:為了能訪問片外存儲(chǔ)器空間,址的高字節(jié)。注意:為了能訪問片外存儲(chǔ)器空間,EMI0CN 必須被設(shè)置成一個(gè)不屬于片內(nèi)地址空間的頁地址。必須被設(shè)置成一個(gè)不屬于片內(nèi)地址空間的頁地址。10:帶塊選擇的分片方式。尋址低于:帶塊選擇的分片方式。尋址低于4K 邊界的地址時(shí)訪問片邊界的地址時(shí)訪問片內(nèi)存儲(chǔ)器,尋址高于內(nèi)存儲(chǔ)器,尋址高于4K 邊界的地址時(shí)訪問片外存儲(chǔ)器。邊界的地址時(shí)訪問片外存儲(chǔ)器。8 位位片外片外MOVX 操作使用操作使用EMI0CN

8、的內(nèi)容作為地址的高字節(jié)。的內(nèi)容作為地址的高字節(jié)。11:只用外部存儲(chǔ)器:只用外部存儲(chǔ)器:MOVX 只尋址片外只尋址片外XRAM。片內(nèi)。片內(nèi)XRAM 對對CPU 為不可見。為不可見。EMI0CF: 外部存儲(chǔ)器接口配置外部存儲(chǔ)器接口配置位位1-0: EALE1-0:ALE 脈沖寬度選擇位(只在脈沖寬度選擇位(只在EMD2 =0 時(shí)有效)時(shí)有效)00:ALE 高和高和ALE 低脈沖寬度低脈沖寬度 = 1 個(gè)個(gè)SYSCLK 周期。周期。01:ALE 高和高和ALE 低脈沖寬度低脈沖寬度 = 2 個(gè)個(gè)SYSCLK 周期。周期。10:ALE 高和高和ALE 低脈沖寬度低脈沖寬度 = 3 個(gè)個(gè)SYSCLK 周

9、期。周期。11:ALE 高和高和ALE 低脈沖寬度低脈沖寬度 = 4 個(gè)個(gè)SYSCLK 周期。周期。5.2 配置外部存儲(chǔ)器接口配置外部存儲(chǔ)器接口配置外部存儲(chǔ)器接口的過程包括下面配置外部存儲(chǔ)器接口的過程包括下面4 個(gè)步驟:個(gè)步驟:1. 將將EMIF 選到低端口(選到低端口(P3、P2、P1 和和P0)或選到高端)或選到高端口(口(P7、P6、P5 和和P4)。)。2. 選擇復(fù)用方式或非復(fù)用方式。選擇復(fù)用方式或非復(fù)用方式。3. 選擇存儲(chǔ)器模式(只用片內(nèi)存儲(chǔ)器、不帶塊選擇的分片選擇存儲(chǔ)器模式(只用片內(nèi)存儲(chǔ)器、不帶塊選擇的分片方式、帶塊選擇的分片方式或只用片外存儲(chǔ)器)。方式、帶塊選擇的分片方式或只用片

10、外存儲(chǔ)器)。4. 設(shè)置與片外存儲(chǔ)器或外設(shè)接口的時(shí)序。設(shè)置與片外存儲(chǔ)器或外設(shè)接口的時(shí)序。5. 選擇所需要的相關(guān)端口的輸出方式(寄存器選擇所需要的相關(guān)端口的輸出方式(寄存器PnMDOUT 和和P74OUT)。)。下面將對上述每個(gè)步驟作出詳細(xì)說明。端口選擇、復(fù)用方下面將對上述每個(gè)步驟作出詳細(xì)說明。端口選擇、復(fù)用方式選擇和存儲(chǔ)器模式位都位于式選擇和存儲(chǔ)器模式位都位于EMI0CN 寄存器中,如下寄存器中,如下 所示。所示。5.3 端口選擇和配置端口選擇和配置外部存儲(chǔ)器接口可以位于低端口(外部存儲(chǔ)器接口可以位于低端口(C8051F020/1/2/3)或高)或高端口(只限于端口(只限于C8051F020/2

11、),由),由PRTSEL 位位(EMI0CF.5)的狀態(tài)決定。如果選擇低端口,則的狀態(tài)決定。如果選擇低端口,則EMIFLE位(位(XBR2.1)必須被置必須被置1,以使交叉開關(guān)跳過,以使交叉開關(guān)跳過P0.7(W/R)、P0.6(R/D)和和P0.5(ALE,如果選擇復(fù)用方式,如果選擇復(fù)用方式)。5.4 復(fù)用和非復(fù)用選擇復(fù)用和非復(fù)用選擇外部存儲(chǔ)器接口可以工作在復(fù)用方式或非復(fù)用方式,由外部存儲(chǔ)器接口可以工作在復(fù)用方式或非復(fù)用方式,由EMD2 位(位(EMI0CF.4)的狀態(tài)決定。)的狀態(tài)決定。5.4.1 復(fù)用方式配置復(fù)用方式配置在復(fù)用方式,數(shù)據(jù)總線和地址總線的低在復(fù)用方式,數(shù)據(jù)總線和地址總線的低8

12、 位共享相同的端位共享相同的端口引腳:口引腳:AD7:0。在該方式下,要用一個(gè)外部鎖存器。在該方式下,要用一個(gè)外部鎖存器(74HC373 或相同功能的邏輯門)保持或相同功能的邏輯門)保持RAM 地址的低地址的低8 位。外部鎖存器由位。外部鎖存器由ALE(地址鎖存使能)信號控制,(地址鎖存使能)信號控制,ALE 信號由外部存儲(chǔ)器接口邏輯驅(qū)動(dòng)。圖信號由外部存儲(chǔ)器接口邏輯驅(qū)動(dòng)。圖5.1 給出了復(fù)用方式配給出了復(fù)用方式配置的一個(gè)例子。置的一個(gè)例子。圖5.1 復(fù)用方式配置示例在復(fù)用方式,可以根據(jù)在復(fù)用方式,可以根據(jù)ALE 信號的狀態(tài)將外部信號的狀態(tài)將外部MOVX 操作操作分成兩個(gè)階段。在第一個(gè)階段,分成

13、兩個(gè)階段。在第一個(gè)階段,ALE 為高電平,地址總線為高電平,地址總線的低的低8 位出現(xiàn)在位出現(xiàn)在AD7:0。在該階段,地址鎖存器的。在該階段,地址鎖存器的Q輸輸出與出與D輸入的狀態(tài)相同。輸入的狀態(tài)相同。ALE 由高變低時(shí)標(biāo)志第二階段由高變低時(shí)標(biāo)志第二階段開始,地址鎖存器的輸出保持不變,即與鎖存器的輸入無開始,地址鎖存器的輸出保持不變,即與鎖存器的輸入無關(guān)。在第二階段稍后,當(dāng)關(guān)。在第二階段稍后,當(dāng)/RD 或或/WR 有效時(shí),數(shù)據(jù)總線控有效時(shí),數(shù)據(jù)總線控制制AD7:0端口的狀態(tài)。端口的狀態(tài)。5.4.2 非復(fù)用方式配置非復(fù)用方式配置在非復(fù)用方式,數(shù)據(jù)總線和地址總線是分開的。圖在非復(fù)用方式,數(shù)據(jù)總線和

14、地址總線是分開的。圖5.2 給出給出了非復(fù)用方式配置的一個(gè)例子。了非復(fù)用方式配置的一個(gè)例子。圖5.4 非復(fù)用方式配置示例5.5 存儲(chǔ)器模式選擇存儲(chǔ)器模式選擇可以用可以用EMI0CF 寄存器中寄存器中EMIF 模式選擇位將外部數(shù)據(jù)存模式選擇位將外部數(shù)據(jù)存儲(chǔ)器空間配置為四種工作模式之一。下面簡要介紹這些模儲(chǔ)器空間配置為四種工作模式之一。下面簡要介紹這些模式。式。5.5.1 只用內(nèi)部只用內(nèi)部XRAM當(dāng)當(dāng)EMI0CF.3:2被設(shè)置為被設(shè)置為00時(shí),所有時(shí),所有MOVX 指令都將訪問指令都將訪問器件內(nèi)部的器件內(nèi)部的XRAM 空間。存儲(chǔ)器尋址的地址大于實(shí)際地址空空間。存儲(chǔ)器尋址的地址大于實(shí)際地址空間時(shí)將以

15、間時(shí)將以4K 為邊界回繞。例如:地址為邊界回繞。例如:地址0 x1000 和和0 x2000 都都指向片內(nèi)指向片內(nèi)XRAM 空間的空間的0 x0000 地址。地址。 8 位位MOVX 操作使用特殊功能寄存器操作使用特殊功能寄存器EMI0CN 的內(nèi)容作的內(nèi)容作為有效地址的高字節(jié),由為有效地址的高字節(jié),由R0或或R1 給出有效地址的低字節(jié)。給出有效地址的低字節(jié)。 16 位位MOVX 操作使用操作使用16 位寄存器位寄存器DPTR 的內(nèi)容作為有的內(nèi)容作為有效地址。效地址。16.5.2 無塊選擇的分片模式無塊選擇的分片模式當(dāng)當(dāng)EMI0CF.3:2被設(shè)置為被設(shè)置為01時(shí),時(shí),XRAM 存儲(chǔ)器空間被分成存

16、儲(chǔ)器空間被分成兩個(gè)區(qū)域(片),即片內(nèi)空間和片外空間。兩個(gè)區(qū)域(片),即片內(nèi)空間和片外空間。 有效地址低于有效地址低于4K 將訪問片內(nèi)將訪問片內(nèi)XRAM 空間。空間。 有效地址高于有效地址高于4K 將訪問片外將訪問片外XRAM 空間??臻g。 8 位位MOVX 操作使用特殊功能寄存器操作使用特殊功能寄存器EMI0CN 的內(nèi)容確的內(nèi)容確定是訪問片內(nèi)還是片外存儲(chǔ)器,地址總線的低定是訪問片內(nèi)還是片外存儲(chǔ)器,地址總線的低8 位位A7:0由由R0 或或R1 給出。給出。然而對于然而對于“無塊選擇無塊選擇”模式,在訪問片外存儲(chǔ)器期間一個(gè)模式,在訪問片外存儲(chǔ)器期間一個(gè)8 位位MOVX 操作不驅(qū)動(dòng)地址總線的高操作

17、不驅(qū)動(dòng)地址總線的高8 位位A15:8。這就允許用。這就允許用戶通過直接設(shè)置端口的狀態(tài)來按自己的意愿操作高位地址。戶通過直接設(shè)置端口的狀態(tài)來按自己的意愿操作高位地址。下面將要描述的下面將要描述的“帶塊選擇的分片模式帶塊選擇的分片模式”則與此相反。則與此相反。 16 位位MOVX 操作使用操作使用DPTR 的內(nèi)容確定是訪問片內(nèi)還的內(nèi)容確定是訪問片內(nèi)還是片外存儲(chǔ)器,與是片外存儲(chǔ)器,與8 位位MOVX操作不同的是,在訪問片外存操作不同的是,在訪問片外存儲(chǔ)器時(shí)地址總線儲(chǔ)器時(shí)地址總線A15:0的全部的全部16 位都被驅(qū)動(dòng)。位都被驅(qū)動(dòng)。5.5.3 帶塊選擇的分片模式帶塊選擇的分片模式當(dāng)當(dāng)EMI0CF.3:2

18、被設(shè)置為被設(shè)置為10時(shí),時(shí),XRAM 存儲(chǔ)器空間被分存儲(chǔ)器空間被分成兩個(gè)區(qū)域(片),即片內(nèi)空間和片外空間。成兩個(gè)區(qū)域(片),即片內(nèi)空間和片外空間。 有效地址低于有效地址低于4K 將訪問片內(nèi)將訪問片內(nèi)XRAM 空間??臻g。 有效地址高于有效地址高于4K 將訪問片外將訪問片外XRAM 空間??臻g。 8 位位MOVX 操作使用特殊功能寄存器操作使用特殊功能寄存器EMI0CN 的內(nèi)容的內(nèi)容確定是訪問片內(nèi)還是片外存儲(chǔ)器,地址總線的高確定是訪問片內(nèi)還是片外存儲(chǔ)器,地址總線的高8 位位A15:8由由EMI0CN 給出,而地址總線的低給出,而地址總線的低8 位位A7:0由由R0或或R1 給出。在給出。在“塊選

19、擇塊選擇”模式,地址總線模式,地址總線A15:0的全部的全部16 位都被驅(qū)動(dòng)。位都被驅(qū)動(dòng)。 16 位位MOVX 操作使用操作使用DPTR 的內(nèi)容確定是訪問片內(nèi)的內(nèi)容確定是訪問片內(nèi)還是片外存儲(chǔ)器,與還是片外存儲(chǔ)器,與8 位位MOVX操作不同的是,在訪問片操作不同的是,在訪問片外存儲(chǔ)器時(shí)地址總線外存儲(chǔ)器時(shí)地址總線A15:0的全部的全部16 位都被驅(qū)動(dòng)。位都被驅(qū)動(dòng)。16.5.4 只用外部存儲(chǔ)器只用外部存儲(chǔ)器當(dāng)當(dāng)EMI0CF.3:2被設(shè)置為被設(shè)置為11 時(shí),所有時(shí),所有MOVX 指令都將訪指令都將訪問器件外部問器件外部XRAM 空間。片內(nèi)空間。片內(nèi)XRAM 對對CPU 為不可見。該為不可見。該方式在訪

20、問從方式在訪問從0 x0000 開始的開始的4K 片外存儲(chǔ)器時(shí)有用。片外存儲(chǔ)器時(shí)有用。 8 位位MOVX 操作忽略操作忽略EMI0CN 的內(nèi)容。高地址位的內(nèi)容。高地址位A15:8不被驅(qū)動(dòng)(與不被驅(qū)動(dòng)(與“不帶塊選擇的分片模式不帶塊選擇的分片模式”中描述的中描述的訪問片外存儲(chǔ)器的行為相同)。這就允許用戶通過直接設(shè)訪問片外存儲(chǔ)器的行為相同)。這就允許用戶通過直接設(shè)置端口的狀態(tài)來按自己的意愿操作高位地址。有效地址的置端口的狀態(tài)來按自己的意愿操作高位地址。有效地址的低低8 位位A7:0由由R0 或或R1 給出。給出。 16 位位MOVX 操作使用操作使用DPTR 的內(nèi)容確定有效地址的內(nèi)容確定有效地址A

21、15:0。在訪問片外存儲(chǔ)器時(shí)地址總線。在訪問片外存儲(chǔ)器時(shí)地址總線A15:0的全部的全部16 位都被驅(qū)動(dòng)。位都被驅(qū)動(dòng)。5.6 時(shí)序時(shí)序外部存儲(chǔ)器接口的時(shí)序參數(shù)是可編程的,這就允許連接具外部存儲(chǔ)器接口的時(shí)序參數(shù)是可編程的,這就允許連接具有不同建立時(shí)間和保持時(shí)間要求的器件。有不同建立時(shí)間和保持時(shí)間要求的器件。地址建立時(shí)間、地址保持時(shí)間、地址建立時(shí)間、地址保持時(shí)間、/RD 和和/WR 選通脈沖寬度選通脈沖寬度以及復(fù)用方式下的以及復(fù)用方式下的ALE脈沖寬度都可以通過脈沖寬度都可以通過EM0TC和和EMI0CF1:0編程,編程單位為系統(tǒng)時(shí)鐘周期。編程,編程單位為系統(tǒng)時(shí)鐘周期。EMI0TC: 外部存儲(chǔ)器時(shí)序控制外部存儲(chǔ)器時(shí)序控制位7-6: EAS1-0:EMIF 地址建立時(shí)間位。00:地址建立時(shí)間 = 0 個(gè)SYSCLK 周期。01:地址建立時(shí)間 = 1 個(gè)SYSCLK 周期。10:地址建立時(shí)間 = 2 個(gè)SYSCLK 周期。11:地址建立時(shí)間 = 3 個(gè)SYSCLK 周期。位5-2: EWR3-0:EMIF /WR 和/RD 脈沖寬度控制位。00

溫馨提示

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

評論

0/150

提交評論