1樓:匿名使用者
方法1:
char data *p; //定義一個指向片內ram地址的指標
p = 0x30; //片內ram地址為0x30
*p = 0x12; //向0x30內寫入立即數0x12
方法2:
#include
char x;
x = dbyte[0x30]; //將片內ranm地址0x30的內容賦給變數x
dbyte[0x30] = 0x12; //向0x30內寫入立即數0x12
方法3:採用 _at_ 直接宣告變數所處地址,但該變數必須是全域性變數。
char data x _at_ 0x30 ; //x為char型全域性變數,地址位於data區地址0x30
。。。。。
x = 0x12; //向0x30內寫入立即數0x12
2樓:匿名使用者
unsigned char xdata *p=0x0650;
unsigned char mid;
讀: mid=*p;
寫:*p=mid;
51微控制器把資料存入指定的地址或在讀指定地址的資料用c語言怎麼寫?
3樓:匿名使用者
1:用_at_來指定指定的地址.
2:用資料指標來讀取指定的地址.
4樓:匿名使用者
這個 我知道 用絕對地址,不過我建議你先去看下c的絕對地址,這樣對你來說這樣就更好的理解
51微控制器片內程式儲存器、片外程式儲存器、片內資料儲存器和片外資料儲存器之間的聯絡,就是重疊之類的
5樓:匿名使用者
對於程式儲存器,是內部還是外部是由硬體電路決定的,或者是由微控制器本身決定的。程式是決定不了的。
不過,現在的微控制器的程式儲存器都在內部,幾乎不在外部擴充套件了,因為,需要多大的內部程式儲存器都有的。
但是訪問資料儲存器可以由程式決定。在宣告變數時是可以定義放在什麼區的。
80c51微控制器片內資料儲存器(ram)的三個儲存區域是如何劃分的?
6樓:匿名使用者
內部資料儲存器ram 物理上分為兩大區:00h ~ 7fh即128b內ram 和 sfr區。資料儲存器空間(低128單元);特殊功能暫存器空間(高128單元);這兩個空間是相連的,從使用者角度而言,低128單元才是真正的資料儲存器。
在片內ram低128單元中,通用暫存器佔去32個單元,位定址區佔去16個單元,剩下的80個單元就是供使用者使用的一般ram區了,地址單元為30h-7fh。對這部份區域的使用不作任何規定和限制,但應說明的是,堆疊一般開闢在這個區域。
7樓:做而論道
參考
80C51微控制器片內RAM低儲存單元劃分為哪主要部分 各部分主要功能是什麼
念德臺丁 return k是函式返回值,這是個子函式,處理完後返回給呼叫函式一個處理後的值。k k 1 j 這個是指k左移一位,在或上j,因為j sda,看你的寫法,據我猜測da是一個晶片的埠,這是序列輸入的方式,你要讀取晶片的輸出值 假設某個時候k 0000 0001,假設j這個時候為1,那執行k...
MCS 51微控制器可擴充套件的程式儲存器和資料儲存器的地址空間各
武玉蘭雪畫 51的儲存器從功能上來說可以分為程式儲存器和資料儲存器,至於到底能擴充套件多少儲存空間,要看你擴充套件的是哪一類儲存器。訪問儲存空間時,需要用到兩個指標變數,為dptr何pc。其中pc為程式計數器,指向下一條需要執行的指令的地址,dptr為資料指標暫存器,這兩個變數的長度都為16位,這是...
mcs 51微控制器片內的ram的暫存器區有多少個單元
做而論道 mcs 51微控制器片內的ram的暫存器區,共有32個單元。分成四個區,每個區都有8個單元,稱為r0 r7。但是隻有一個區,是當前工作區,才可以用r0 r7來定址。 資料儲存器ram mcs 51 微控制器內部有256b的隨機儲存單元在物理上和邏輯上可以分為兩個地址空間,前者有128個位元...