日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stc单片机c语言 pdf,STC单片机C语言程序设计 第13章 STC单片机C语言指针.pdf

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stc单片机c语言 pdf,STC单片机C语言程序设计 第13章 STC单片机C语言指针.pdf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STC單片機C語言指針

主講:何賓

Email :hebin@mail.buct.edu.cn

2016.03

C51編譯器中指針的分類

Cx51編譯器支持使用字符“*”聲明變量指針。C51編譯器可

以執行在標準C中所提供的所有操作。但是,由于8051獨一無二的

結構以及特點,C51編譯器提供兩種不同類型的指針,即:通用指

針和指定存儲器的指針。

通用指針

--未指定存儲區域的通用指針

C語言通用指針的聲明格式:

數據類型 *指針名字

【例13-1】通用指針聲明的例子

char *s; //指向字符的指針

int *number; //指向基本整型數的指針

long *state; //指向長整型數的指針

對于通用指針來說,使用三個字節保存。即第一個字節表示存儲器

的類型;第二個字節表示偏移地址的高8位;第三個字節表示偏移

地址的低8位。對于通用指針來說,它可以訪問保存在8051存儲器

系統的任何位置的變量。

通用指針

--未指定存儲區域的通用指針

前面提到過:

&變量/數組名字

它表示獲取變量所在單片機存儲空間的地址,或者是數組所在單片

機存儲空間的起始地址。

例如:如下聲明:

int *p1 ;

int a ;

當進行下面操作:

p1=&a;

通用指針

--未指定存儲區域的通用指針

表示p1的值為變量a所在單片機存儲空間的具體地址信息。該

地址的內容就是變量a的值,用形式化的方式可以這樣表示:

(p1)=a;

因此,*p1實際上就是獲取指向地址的內容。所以,*p1的值就是變

量a的值。

注 :在單片機中并不存在指針這樣一個功能部件,正如上面所提到的,這只是C

語言對存儲器直接尋址模式的抽象而已。

*和指針名字之間不能有空格。

通用指針

--未指定存儲區域的通用指針

【例13-2】查看通用指針的例子

代碼清單13-1(1) main.c文件

int main()

{

int a=50,*p1;

float b=45.13,*p2;

char c=40,*p3;

p1=&a;

p2=&b;

p3=&c;

return 0;

}

通用指針

--未指定存儲區域的通用指針

下面對該程序進行分析,步驟包括:

?讀者可以進入到本書所提供資料的stc_program_example\例子

13-2目錄下,在Keil

μVision5集成開發環境下打開該設計。

?進入調試器模式,查看Disassembly窗口內的反匯編代碼,代碼

中加入了注釋,幫助讀者進行分析。

代碼清單13-1(2) Disassembly窗口內的反匯編代碼清單

2: {

通用指針

--未指定存儲區域的通用指針

3: int a=50,*p1;

//將立即數50(0x32)保存到8051片內數據區地址為0x08和0x09的單元

C:0x0003 750800 MOV 0x08,#0x00

C:0x0006 750932 MOV 0x09,#0x32

4: float b=45.13,*p2;

//將浮點數保存到8051片內數據區地址為0x0D、0x0E、0x0F和0x10的單元

C:0x0009 75101F MOV 0x10,#0x1

總結

以上是生活随笔為你收集整理的stc单片机c语言 pdf,STC单片机C语言程序设计 第13章 STC单片机C语言指针.pdf的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。