版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.,5.1 C51數(shù)據(jù)類(lèi)型,C51基本數(shù)據(jù)類(lèi)型包括標(biāo)準(zhǔn)C語(yǔ)言支持的基本數(shù)類(lèi)型和C51擴(kuò)展的數(shù)據(jù)類(lèi)型兩部分。 其中標(biāo)準(zhǔn)C語(yǔ)言支持的數(shù)據(jù)類(lèi)型有: unsigned charchar、unsigned int、int、 unsigned long、long、float和指針類(lèi)型 ; 擴(kuò)展的C51基本類(lèi)型有 bit、 sbit、 sfr、 sfr16。 此外,C51也支持?jǐn)?shù)組、結(jié)構(gòu)體、聯(lián)合體、枚舉等構(gòu)造數(shù)據(jù)類(lèi)型。表9-1是C51支持的基本數(shù)據(jù)類(lèi)型。,.,表9-1 C51的數(shù)據(jù)類(lèi)型,.,5.1.1 常量,在程序運(yùn)行中其值不能改變的量稱(chēng)為常量。在C51中常量一般存儲(chǔ)在程序存儲(chǔ)器ROM中。 整型常量。 浮點(diǎn)
2、型常量 字符型常量和字符串型常量,.,5.1.2 變量,.,5.2.一般變量的定義,存儲(chǔ)種類(lèi) 數(shù)據(jù)類(lèi)型 存儲(chǔ)器類(lèi)型 變量名(或變量名列表); 定義格式中方括號(hào)部分 是可選項(xiàng),可有可無(wú)。 存儲(chǔ)種類(lèi)有:動(dòng)態(tài)(auto)、外部(extern)、靜態(tài)(static)和寄存器(register)。若該項(xiàng)缺省,則默認(rèn)為auto。 定義變量時(shí)如果省略存儲(chǔ)器類(lèi)型,默認(rèn)存儲(chǔ)器類(lèi)型去指定變量的存儲(chǔ)區(qū)域(見(jiàn)表9-3)。,.,.,例如: unsigned int data Count; intidatai; charxdataj; floatk;,.,5.3.C51擴(kuò)展數(shù)據(jù)類(lèi)型對(duì)應(yīng)變量定義 (1)普通位變量bit b
3、it 存儲(chǔ)器類(lèi)型 變量名; bit bdata bVoltHighFlag; (2)特殊功能寄存器sfr sfr 特殊功能寄存器名= 特殊功能寄存器地址常數(shù) sfr P1 = 0 x90; /定義P1口,地址90H sfr P2 = 0 xA0; /定義P1口,地址A0H 對(duì)定時(shí)器T1的定義如下: sfr16 T2= 0XCC;,.,(3)特殊位變量sbit 特殊位變量的類(lèi)型符為sbit,有三種定義 sbit 位變量名位地址 sbit P1_1 = Ox91; sbit 位變量名=變量名位置 sfr P3 = 0 xB0; sbit P3_1 = P3 1; sbit 位變量名字節(jié)地址位位置
4、sbit P3_1 = 0 xB0 1; sbit flag=0X207 ;,.,5.4.C51絕對(duì)地變量的訪問(wèn),(1)絕對(duì)宏 #include #define變量名 XBYTE絕對(duì)地址; #define變量名 XWORD絕對(duì)地址; #define變量名 CBYTE絕對(duì)地址; #define變量名CWORD 絕對(duì)地址; #define變量名 PBYTE絕對(duì)地址; #define變量名 PWORD 絕對(duì)地址; #define變量名 DBYTE絕對(duì)地址; #define變量名 DWORD 絕對(duì)地址;,.,例如:#include #define COM8155XBYTE0 x200; COM8155
5、=0 x06;/命令字寫(xiě)8155 (2)_at_關(guān)鍵字 變量類(lèi)型 存儲(chǔ)類(lèi)型 變量名 _at_ 地址常數(shù); idataint x _at_ 0 x40; voilate uchar PA8155 _at_ 0 x201; a= PA8155;/A口數(shù)據(jù)讀出 (3)絕對(duì)指針 unsigned char xdata * COM8155;/定義一個(gè)指針變量 COM8155=(uchar xdata *)0 x200;/ * COM8155=0 x06;/ 給COM8155端口賦值。,.,5.5 運(yùn)算符與表達(dá)式,C51的運(yùn)算符有以下幾類(lèi): 算術(shù)運(yùn)算符、邏輯運(yùn)算符、位操作運(yùn)算符、 賦值運(yùn)算符,條件運(yùn)算符、
6、逗號(hào)運(yùn)算符 . 由運(yùn)算符根據(jù)C51規(guī)則將不同對(duì)象連接起來(lái)就構(gòu)成了C51的表達(dá)式, 在表達(dá)式后加上分號(hào)就構(gòu)成了C51語(yǔ)句。,.,5.5.1賦值運(yùn)算 變量 = 表達(dá)式; 例如: int a,b,c,d,e,f; a = 0 x10 /將常數(shù)十六進(jìn)制數(shù)10賦于變量a b = c = 2; /同時(shí)將2賦值給變量b,c d = e; /將變量e的值賦于變量d f = d-e; /將變量d-e的值賦于變量f,.,5.5.2算術(shù)運(yùn)算 1算術(shù)運(yùn)算符及算術(shù)表達(dá)式 十 (加法運(yùn)算符,或正值符號(hào)) - (減法運(yùn)算符,或負(fù)值符號(hào)) * (乘法運(yùn)算符) / (除法運(yùn)算將) (模(求余)運(yùn)算符。例如5%3結(jié)果是5除以3所
7、得的余數(shù)2),.,2算術(shù)運(yùn)算的優(yōu)先級(jí)與結(jié)合性 先乘除模,后加減,括號(hào)最優(yōu)先。 a+b*c;/ 先運(yùn)算b*c,所得的結(jié)果再與a相加 (a+b)*(c-d)-6;/ 先(a+b)和(c-d),然后相乘,最后減6 當(dāng)運(yùn)算符的兩側(cè)的數(shù)據(jù)類(lèi)型不同時(shí)必須通過(guò)數(shù)據(jù)類(lèi)型轉(zhuǎn)換將數(shù)據(jù)轉(zhuǎn)換成同種類(lèi)型。 自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換。 (double)xx / 將xx強(qiáng)制轉(zhuǎn)換成double類(lèi)型。 (int)(a+b) / 將a+b的值強(qiáng)制轉(zhuǎn)換成int類(lèi)型,.,5.5.3關(guān)系運(yùn)算,1關(guān)系運(yùn)算符 (小于) (大于) (小于或等于) (大于或等于) (等于) ! (不等于),.,2關(guān)系表達(dá)式 表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2 ab
8、; /若a大于b,則表達(dá)式值為1 b+ca/若a=3,b=4,c=5, 則表達(dá)式值為0 (ab)c; /若a=3,b=2,c=1, 則表達(dá)式值為1 c5ab;/若a=3,b=2,c=1, 則表達(dá)式值為0,.,5.5.4邏輯運(yùn)算 邏輯與:條件式1 (2)引用 數(shù)組名行下標(biāo)表達(dá)式列下標(biāo)表達(dá)式; a12= a20; (3)二維數(shù)組的初始化 int a34=0,1,2,3,1,2,3,4,2,3,4,5; inta34=0,1,2,3,1,2,3,4,2,3,4,5;,.,3、字符數(shù)組 char c=c, ,p,r,o,g,r,a,m;/ 對(duì)全體元素 char c=C program; 4、多維數(shù)組
9、多維數(shù)組的一般說(shuō)明格式是: 數(shù)據(jù)類(lèi)型 數(shù)組名第n維長(zhǎng)度第n-1維長(zhǎng)度.第1維長(zhǎng)度;char c223;,.,5.7.2 結(jié)構(gòu)體 1定義 struct 結(jié)構(gòu)體名 成員表列; struct stu int num ;/ 整型變量; char name20;/ 字符數(shù)組 float score;/實(shí)型變量 ; /該分號(hào)是不可少的。 定義結(jié)構(gòu)變量的一般格式為: struct 結(jié)構(gòu)體名 存儲(chǔ)類(lèi)型 變量名; struct stu xdata student1,student2;,.,結(jié)構(gòu)體定義還可以用類(lèi)型定義符來(lái)定義 typedef struct 成員表列;結(jié)構(gòu)體名; 這時(shí),結(jié)構(gòu)體變量的定義為: 結(jié)構(gòu)體名
10、 變量名; 例如: typedef struct int num;char name20;float score; stu; stu student1;/定義stu型變量student1,.,2引用 結(jié)構(gòu)體變量名.成員名: student1. score=99.5; student1. num=10; 3結(jié)構(gòu)體變量的初始化 struct stu student1=21,”LiMing”,78.5; 4結(jié)構(gòu)體數(shù)組 struct 結(jié)構(gòu)體名 數(shù)組名數(shù)組長(zhǎng)度; struct stu Stu42130; 對(duì)結(jié)構(gòu)體數(shù)組的引用方式如下: 數(shù)組名下標(biāo).成員名; Stu4211. score=99.5;,.,5
11、位結(jié)構(gòu) struct位結(jié)構(gòu)名 數(shù)據(jù)類(lèi)型 變量名: 整型常數(shù); 數(shù)據(jù)類(lèi)型 變量名: 整型常數(shù); 位結(jié)構(gòu)變量; 數(shù)據(jù)類(lèi)型必須是int(unsigne)或char(unsigned char)。,.,struct ColStru unsigned incon: 8; /*incon占用低字節(jié)的07*/ unsigned txcolor: 4;/*txcolor占用高字節(jié)的03*/ unsigned bgcolor: 3;/*bgcolor占用高字節(jié)的46*/ unsigned blink: 1; /*blink占用高字節(jié)的第7位*/ 位結(jié)構(gòu)成員的訪問(wèn)與結(jié)構(gòu)成員的訪問(wèn)相同。 struct ColStr
12、ubdata ch; ch.bgcolor=3; ch. blink =1;,.,5.7.3 聯(lián)合體 union 聯(lián)合名 成員列表; union a_bc int i;char mm; union a_bc xy10; xy3. mm=A;,.,5.8.1 指針的定義與引 類(lèi)型標(biāo)識(shí)符存儲(chǔ)器類(lèi)型 *標(biāo)識(shí)符; 一般指針在內(nèi)存中占用三個(gè)字節(jié),第一個(gè)字節(jié)存放該指針存儲(chǔ)器類(lèi)型的編碼,第二和第三字節(jié)分別存放該指針的高位和低位地址偏移量。 如果指針變量被定義為基于某種存儲(chǔ)模式的指針,則該指針?lè)Q為具體指針,其長(zhǎng)度可以是1個(gè)字節(jié)(存儲(chǔ)器模式為data、idata、pdata)或兩個(gè)字節(jié)(存儲(chǔ)模式為code、xdata)。,5.8 指針,.,指針變量在定義中允許帶初始化項(xiàng)。如: int data i, j, *p1, *p2; intdata*ip= /定義的一般指針 j =*ip; p1=&i;/ p1指向i p2=&j;/ p2指向j p2=p1;/此時(shí)P2也指向i,.,1、指針與一維數(shù)組 int a10, *p; p=&a0; 下面兩個(gè)語(yǔ)句是等價(jià)的 p=&a0;p=a; (1) p+i和a+i均表示ai的地址, 或者講, 它們均指向數(shù)組第i號(hào)元素,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年陜西省易地扶貧搬遷后續(xù)扶持試題含答案
- 護(hù)理課培訓(xùn)教學(xué)課件
- 網(wǎng)絡(luò)文學(xué)創(chuàng)作倫理與規(guī)范建議
- 護(hù)理操作技術(shù)配音
- 互聯(lián)網(wǎng)監(jiān)管能力培訓(xùn)課件
- 家居裝飾裝修施工規(guī)范手冊(cè)
- 2026年劇本殺運(yùn)營(yíng)公司員工安全防護(hù)管理制度
- 2025年化工行業(yè)清潔生產(chǎn)工藝報(bào)告
- 2025年跨境電商保稅備貨模式創(chuàng)新項(xiàng)目稅收政策影響可行性研究報(bào)告
- 何為第一議題制度
- LKJ2000型監(jiān)控裝置控制模式行車(chē)安全與設(shè)備96課件
- 驛站轉(zhuǎn)讓協(xié)議書(shū)范本
- 2025年河北省職業(yè)院校技能大賽高職組(商務(wù)數(shù)據(jù)分析賽項(xiàng))參考試題庫(kù)(含答案)
- 《造血干細(xì)胞移植護(hù)理指南》課件
- 2025承攬加工訂做合同范本
- 托幼機(jī)構(gòu)傳染病應(yīng)急處置預(yù)案
- 合歡花苷類(lèi)對(duì)泌尿系感染的抗菌作用
- 汕頭市金平區(qū)2025屆九年級(jí)數(shù)學(xué)第一學(xué)期期末檢測(cè)試題含解析
- 2023年司法鑒定所黨支部年終總結(jié)
- 腫瘤生物學(xué)1(完整版)
- 2023-2024學(xué)年廣東省廣州市小學(xué)數(shù)學(xué)二年級(jí)上冊(cè)期末自我評(píng)估試題
評(píng)論
0/150
提交評(píng)論