可以帶。
在51單片機的嵌入式C語言中,指針同樣是被支持的。所以在單片機上一樣可以使用指針操作,具體使用方法,與標准C語言並沒有不同。
不過需要注意的是,使用指針代表著間接定址,相對變數的直接定址,速度要稍慢一些。而單片機運算速度較慢,大量使用指針有可能會降低執行效率,影響效果。所以除非必要,還是少用指針。
Ⅱ 單片機 指針
A+PC應該是5+2+1+50H=58H,有2條指令,第一條是2位元組,第二條是1位元組,另外你指令寫錯了,應該是movc
a,@a+pc
和movc
a,@a+dptr,這是51單片機2條訪問程序空間的指令,裡面的數據一般都是些表,只能讀
Ⅲ 單片機問題:指針是什麼
這個問題。。。
你說的是用c語言開發程序的時候用到的指針吧?
就是一個指向數據地址的變數。通過這個指針可以找到數據,並進行修改。
具體的就要看看c語言基礎知識了。
用c語言開發單片機很簡單的,用c語言中很簡單的功能基本就能實現比較復雜的功能了。
Ⅳ 51單片機可以通過指針訪問寄存器嗎
data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小。
idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式 訪問的。匯編中的語句為:mox ACC,@Rx。
xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。
pdata:外部擴展RAM的低256個位元組,地址出現在A0-A7的上時讀寫,用movx ACC,@Rx讀寫。這個比較特殊,對於C51來說好象有BUG, 建議少用。
code:訪問程序存儲器(默認僅限於標准51能夠定址的64kB空間內),生成的代碼主要通過 MOVC@A+DPTR實現。
far:far是Keil 編譯器為了支持新出現的8051家族增強型MCU,這些增強型MCU可能擁有大於64KB的存儲器。使用far可訪問擴展的RAM,使用**const far可訪問擴展的ROM**。NXP 51MX架構51單片機提供通過通用指針訪問多達8MB的code和xdata存儲空間。Dallas 390架構的51單片機通過24位的DPTR寄存器結合傳統MOVX 、MOVC指令來訪問擴展的RAM和ROM。
Ⅳ 單片機中程序指針、數據指針、堆棧指針區別是什麼
首先,你要明白一個概念,指針,是做什麼的?答案是,指針,是指向地址的。
程序指針,指向的空間,在物理上是Flash,在邏輯上,就是代碼空間。比如說51單片機的PC指針,指向的就是Flash,即程序下一步要執行的指令的地址。
數據指針,指向的空間,在物理上有Flash和RAM,在邏輯上是Flash里的常數空間和數據空間,注意,是對於單片機來說,對於我們的電腦,常數空間不是在Flash上。
比如說51單片機的DPTR,如果用MOVC
A,@A+DPTR,此時,就是指向常數空間,如果用
MOVX
A,@A+DPTR就是指向的數據空間。
堆棧指針,指向的空間,在物理上是RAM,在邏輯上,就是數據空間,是特定的數據空間,堆棧是數據空間中單獨劃分出來,專門用於寄存中間結果的內存空間。
數據指針和堆棧指針主要有兩個區別:
一是數據指針可以指向Flash,即可以指向常數,比如說我們定義一個數組
unsigned
char
code
Table[99],此時,就是DPTR可以指向常數空間。堆棧指針是不可以的,只能是指向RAM。
第二個區別,堆棧指針指向的是特定的數據空間,這個特定的數據空間,是從整個數據空間里劃分出來,專門用於作堆棧用的,堆棧區間一旦劃分出來,堆棧指針在規則上,就只能在這個范圍內活動,如果出了這個范圍,可能導致整個程序的崩潰。而數據指針在規則上,可以指向整個數據空間,但是,可以讀堆棧空間,不應該去修改,否則也可能導致程序的崩潰。
Ⅵ 51單片機能否用uint32型的指針
51單片機是不能使用uint32型的指針的。只能使用配套型號的指針,否則對機器損耗很大。
Ⅶ 單片機指針有什麼作用
static void uart_send(uchar c)
{
ES = 0;
SBUF = c;
while(TI == 0);
TI = 0;
ES = 1;
}
void uart_print(uchar *s)
{
while (*s != '\0')
{
uart_send(*s);
s ++;
delayms(5);
}
}
第一個函數是串口發送一個位元組,第二個函數是發送一個字元串。
至於指針有什麼用,等你學學STM32就知道指針、結構體以及C語言關鍵字static、typedef、violate等是多麼強大了。
Ⅷ 單片機指針最常見的兩種
int,pi。
指針是一個變數,它與其他變數一樣,都是RAM中的一個區域,且都可以被賦值通常認為,C語言之所以強大,以及其自由性,很大部分體現在其靈活的指針運用上,甚至認為指針是C語言的靈魂,這里說通常,是廣義上的,因為隨著編程語言的發展,指針也飽受爭議,並不是所有人都承認指針的,強大」和,優點」。
Ⅸ 51單片機指針左上方兩個星是什麼意思
指的是指針。51單片機指針左上方兩個星是指的是指針。「51單片機是對兼容英特爾8051指令系統的單片機的統稱。51單片機廣泛應用於家用電器、汽車、工業測控、通信設備中。