C51單片機(jī)的數(shù)據(jù)類型

發(fā)布時(shí)間:2024-02-23
c51支持c語言的所有標(biāo)準(zhǔn)數(shù)據(jù)類型,除此之外,還加入了用于專門訪問80c51硬件的數(shù)據(jù)類型,如:bit、sbit、sfr和sfrl6。這些數(shù)據(jù)類型在ansic中是沒有的。
bit:聲明位變量,其值為0或1。
sbit:聲明可位尋址變量中的某個(gè)位變量,其值為0或1
sfr:聲明特殊功能寄存器,地址范圍為:0~255。
sfr16:同上,地址范圍為0~65535。
c51編譯器支持表5-1列出的數(shù)據(jù)類型。除了這些變量類型外,變量能被組合到結(jié)構(gòu)、聯(lián)合和數(shù)組中。兼容ansic標(biāo)準(zhǔn)的數(shù)據(jù)類型可通過指針訪問,但擴(kuò)展的bit、sbit、sfr和sfrl6數(shù)據(jù)類型專用于訪問80c51的特殊功能寄存器,故不能通過指針進(jìn)行訪問。
表5-1 c51數(shù)據(jù)類型
數(shù)據(jù)類型

字節(jié)
值的范圍
char
8
1
-128~127
unsigned char
8
1
0~255
enum
16
2
-32768~32767
short
16
2
-32768~32767
unsigned short
16
2
0~65535
int
16
2
-32768~32767
unsigned int
16
2
0~65535
long
32
4
-2147483648~2147483647
unsigned long
32
4
0~4294967295
float
32
4
±1.175494e-38~±3.402823e+38
bit
1

0,1
sbit
1

0,1
sfr
8
1
0~255
sfr16
16
2
0~65535
80c51有21個(gè)特殊功能寄存器,它們在片內(nèi)ram安排了絕對地址,80c51的芯片說明中已經(jīng)為它們用預(yù)定義標(biāo)識符起了名字。c51要做的就是承認(rèn)這些標(biāo)識符并將其與絕對地址聯(lián)系起來。可以用sfr與sfr16兩種標(biāo)識符。
例5.1 用sfr數(shù)據(jù)類型定義特殊功能寄存器示例。
sfr scon = 0x98; /*聲明scon為串口控制器,地址為0x98*/
sfr p0 = 0x80; /*聲明p0為特殊功能寄存器,地址為0x80*/
sfr tmod = 0x89; /*聲明tmod為定時(shí)器/計(jì)數(shù)器的模式寄存器,地址為0x89*/
sfr psw = 0xd0; /*聲明psw為特殊功能寄存器,地址為0xd0*/
說明:sfr之后的寄存器名稱必須大寫,定義之后可以直接對這些寄存器賦值。
在許多80c51派生系列中可用兩個(gè)連續(xù)地址的特殊功能寄存器指定一個(gè)16位值,如:
sfr16 t2 = 0xcdcc /*聲明t2為16位特殊功能寄存器,地址為0cch(低字節(jié))和0cdh(高字節(jié))*/
例5.2 用 sbit的數(shù)據(jù)類型定義位變量示例。
sbit cy = psw^7; /*從已聲明的psw中,指定psw.7為cy*/
sbit cy = 0xd0^7;/*整數(shù)0xd0為基地址,指定0xd0的第七位為cy*/
在sbit聲明中,“^”號右邊的表達(dá)式定義特殊位在寄存器中的位置,值必須是0~7。
上一個(gè):終止勞動合同需要什么手續(xù)
下一個(gè):8g內(nèi)存吃雞(吃雞8g內(nèi)存條夠用嗎)

惠普筆記本電腦多少錢一個(gè),惠普筆記本電腦多少錢一臺
我國刑法對竊取信用卡信息罪的立案規(guī)定?
再結(jié)婚需要拿離婚證嗎,離婚了再婚辦理結(jié)婚證沒有戶口簿能辦理嗎
徐州電信高防云服務(wù)器租用
timescape怎么用,Timescape 索尼
北美海棠是常見的一種觀賞性植物
起訴離婚去哪兒辦理
心肺復(fù)蘇早期應(yīng)用氨茶堿與傳統(tǒng)方法的比較研究.pdf
石榴成熟前后的科學(xué)管理要點(diǎn)
名譽(yù)權(quán)糾紛能否要求精神損害賠償
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos