① 為什麼c52單片機沒有擴展也可以用xdata
XDATA是擴展片外數據存儲器的,可是所謂的數據存儲器只是存儲數據,所以不需要擴展。
實際上所有的片外資源都可以當數據存儲器用的。列印機、數碼管、液晶、步進電機.....只要你讓它的引腳按照片外數據存儲器的變化規律變化就行了。對單片機來說,不在乎外面接了什麼,只要你傳遞的引腳電平跟它進行片外數據存儲器數據傳遞時要求的規律一樣就行。
有些器件用/C/S選通,你可以把/C/S接P2的某一位(假如是第7位)。當這個晶元用作片外數據存儲器時,P2的這個引腳低電平時,選通這個晶元。你可以讓片外數據存儲器的地址為0x7F??。(高八位是p2口輸出,只要最高位為0),此時這個晶元就選通,至於如何操作,就要你按照ALE 、P0、p2在傳遞數據時的電平變化規律設計了。
② STC89C52單片機xdata存儲數據使用問題
以標準的8052內核,XDATA只有256Byte,你定義一個時就已經越界了,定義第二個時自然不行,如果要外擴SDATA空間,只能使用增強型的8051單片機,像國產的宏晶等。
如果要把數據定義到FLASH區,不能使用XDATA關鍵字,好久不用8051了,不太記得關鍵字了,像Cortex-M系列使用MDK編譯器,使用const unsigned char[1000]={0};就能在FLASH區定義常量數組。
③ 關於單片機 xdata data ram sram code的關系
對於51/52單片機,data是內部低128位元組的ram,可以省略data符號 idata是內部高128位元組的ram, 51沒有,52才有,對於stc單片機,片上超過256位元組的那部分ram,相當於外部ram,,使用時加xdata 修飾
code是相當於flash,最大是否可以到8k,可以試一下
④ 51單片機定義一個大數組存在idata與xdata中有什麼區別
區別如下:1、位置不同 idata定義在高128位元組中,xdata定義在外部RAM中,一些單片機內部集成了外部RAM。
2、訪問速度不一樣 訪問idata的速度稍快。
3、最後,可能也是最重要的,二者在初始化上區分很大。
在基本所有編譯器下,unsigned char idata num[3]={1,2,3};可以正確編譯,在idata區中,可以看到該數組。
但是unsigned char xdata num[3]={1,2,3},在一些編譯器下,xdata中,看不到該數組,程序可能不正確運行。
⑤ xdata 是什麼
xdata表示vucid這個變數存放在外部存儲區中。xdata,為定義在單片機00h-ffh之外的地址內,就是指外部存儲空間。
對於這條多項式,更正確的描述是這條多項式附合任何4個限制。限制可以是一點(x,y)、角度或曲率(即半徑的倒數 1/R)。角度和曲率的限制通常在曲線的終端,因此稱為終端條件。為了樣條(spline) 的交接平滑,通常會用到全等的終端條件。
也可以增加如曲率變化等高階約束。例如,在高速公路立體交叉點cloverleaf的設計中,可以用來理解當汽車繞著交叉點運動時作用在汽車上的力,並依此設定合理的限定時速。
擬合直線或多項式曲線:
在笛卡爾平面上是一條直線,而這條直線的斜率是a。因為任何兩點可以決定一條直線,因此總能找到次數不多於1的多項式來串起任何兩個x值相異的點。
如果把多次式的次數增加到2。那麼只要給定x值各異的3點,總會有次數不多於2的多項式可以把它們串起。
如果把多次式的次數再增加到3。那麼只要給定x值各異的4點,總會有次數不多於3的多項式可以把它們串起。
以上內容參考:網路-數據擬合
⑥ 如果在51單片機的外部RAM中定義變數,需要將變數用xdata修飾,請問這個變數必須是靜態變數嗎
不需要。不論靜態動態都可以分配到外部RAM空間的。
⑦ 51單片機定義一個大數組存在idata與xdata中有什麼區別
存儲的區域不同
idata 是存在 內部RAM 80H--FFH,(對匯編指令來說,不可直接定址,只能間接定址)。
xdata 是存在外部RAM ,有些單片機會在晶元內擴展一些RAM,這部分也要用 xdata,因為是同外部RAM共同編址的,匯編指令中都是用 MOVX來定址。
⑧ xdata是什麼意思國民神車
xdata表示vucid這個變數存放在外部存儲區中。xdata,為定義在單片機00h-ffh之外的地址內,就是指外部存儲空間。
從數據存儲類型來說,8051系列有片內、片外程序存儲器,片內、片外數據存儲器,片內程序存儲器還分直接定址區和間接定址類型,分別對應code、data、xdata、idata以及根據51系列特點而設定的pdata類型。
⑨ 單片機里xbyte和xdata到底什麼關系啊
首先說明:由於C語言是字元大小寫敏感的,所以沒有xbyte,而只有XBATE!
下面說一下,XBATE和xdata的意思。
xdata是C51關鍵字,說明變數的存儲區間,它是指單片機的擴展存儲區域(也稱外部存儲、片外存儲,盡管物理存儲器也可能在單片機晶元內部),最大64kByte,在匯編語言中,需要通過用16位指針DPTR來訪問。
XBATE在ABSACC.H文件中為一個宏定義
#define XBYTE ((unsigned char volatile xdata *) 0)
也就是說,通過直接地址引用該位置的值。例如在xdata的04H單元內存放了一個字元'c',則
XDATA[4]就是引用了04H的內容,也就是'c'。
同樣的還有DBYTE,CBYTE,PBYTE等單位元組引用data、pdata,code空間的數據,還有XWORD,DWORD,CWORD,PWORD等雙位元組引用xdata,data,code,pdata空間的數據的,但要注意它們是以2位元組為一個計數單元。例如 XWORD[4]是引用xdata空間中08H,09H兩個單元構成的unsigned int。
不知道說明清楚了沒有?