C51學(xué)習(xí)資料 C51學(xué)習(xí)手冊介紹運算符算法數(shù)組指針結(jié)構(gòu)體共用體枚舉_第1頁
C51學(xué)習(xí)資料 C51學(xué)習(xí)手冊介紹運算符算法數(shù)組指針結(jié)構(gòu)體共用體枚舉_第2頁
C51學(xué)習(xí)資料 C51學(xué)習(xí)手冊介紹運算符算法數(shù)組指針結(jié)構(gòu)體共用體枚舉_第3頁
C51學(xué)習(xí)資料 C51學(xué)習(xí)手冊介紹運算符算法數(shù)組指針結(jié)構(gòu)體共用體枚舉_第4頁
C51學(xué)習(xí)資料 C51學(xué)習(xí)手冊介紹運算符算法數(shù)組指針結(jié)構(gòu)體共用體枚舉_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Good is good, but better carries it.精益求精,善益求善。C51學(xué)習(xí)資料 C51學(xué)習(xí)手冊介紹運算符算法數(shù)組指針結(jié)構(gòu)體共用體枚舉一:數(shù)據(jù)類型運算符表達式一:數(shù)據(jù)類型·運算符·表達式1.1 C51支持的數(shù)據(jù)類型數(shù)據(jù)類型名稱長度值域基本類型bit1 bit0,1Unsigned char,char1 byte0255,-128127Unsigned int,int2byte065525,-3276832767Unsigned long,long4 byte04294967295Float4 byte6位數(shù)字Double8 byte10位數(shù)字構(gòu)造類

2、型數(shù)組結(jié)構(gòu)體共用體枚舉指針類型23byte存儲空間,最大64KB空類型1.2 常量和變量常量:#define CONST 10變量:bit b_start /位變量 Charc_start/字符變量其他略。1.3 C51存儲器·寄存器定義定義:分為片內(nèi)數(shù)據(jù)存儲器·片外數(shù)據(jù)存儲器·片內(nèi)程序存儲器·片外程序存儲器。1.31C51的數(shù)據(jù)存儲類型關(guān)鍵字存儲器對應(yīng)關(guān)系data直接尋址片外數(shù)據(jù)存儲器(128byte)bdat片內(nèi)位尋址存儲空間(16byte)idata間接尋址片內(nèi)數(shù)據(jù)存儲空間,可以訪問RAM全部內(nèi)容pdata分頁尋址片外數(shù)據(jù)存儲器(256byte)X

3、data片外數(shù)據(jù)存儲器(64KB)Code代碼存儲器(64KB)例子:char data c_Var; /無符號char型變量,定義到內(nèi)部存儲空間低128byte1.32寄存器Sfr SBUF=0x99;/定義串行數(shù)據(jù)寄存器Sfr16T2=0xcc;/定義T2計時器數(shù)據(jù)存儲器Sbit D0=P21;定義位變量SbitCY=0xd7;使用絕對地址定義使用sbit定義變量空間Bdata unsigned char uc_shield_byte;Sbit b_x= uc_shield_byte1;/定義首位Sbit b_y= uc_shield_byte2;Sbit b_z=uc_shield_by

4、te3;1.4 邏輯運算與:&&或:|非:!位邏輯運算位與:&位或:|位異或:位取反:1.5 移位運算左移位:<<,個位左移,補0;右移位:>>,高位右移,補0;二:C51控制流(1) 順序結(jié)構(gòu)(2) 選擇結(jié)構(gòu)1 Ifelse語句2 If語句3 Switch語句Switch(判斷條件)Case 常量表達式1:語句塊1break;Default:語句n+1break;4 If和switch嵌套(3) 循環(huán)結(jié)構(gòu)1 While語句2 Do while語句Do代碼塊;while(條件);3 For語句三:函數(shù)1 無參數(shù)函數(shù)定義Void 函數(shù)名(void)

5、/無參數(shù),無返回值函數(shù)定義Int 函數(shù)名(char a,char b)/帶參數(shù),帶返回值函數(shù)定義2 局部變量和全局變量靜態(tài)局部變量和動態(tài)局部變量Staticint a;靜態(tài)(static不可省略)Autointa;動態(tài)(auto可省略)3 內(nèi)部函數(shù)和外部函數(shù)(1)內(nèi)部函數(shù):static unsigned char Fun(int a);內(nèi)部函數(shù)只能被該源文件中的其他函數(shù)調(diào)用(2)外部函數(shù):extern unsigned char Fun(int a);外部函數(shù)可以被其他源文件調(diào)用的函數(shù)四:數(shù)組和指針(1) 數(shù)組:l 一維數(shù)組:類型數(shù)組名【size】;l 二維數(shù)組類型數(shù)組名【size A】【si

6、ze B】;l 字符數(shù)組Char ch1【】=j,a,c,k,x,u;以字符形式賦值Char ch1=“jackxu”;以字符串形式賦值(2) 指針1) 指針和指針變量類型*變量名Int *ptr1;float *ptr2;char *ptr3;2) 指針的引用Int a=10;Int *p=&a;X=a ;直接訪問方式X=*p;間接訪問方式(3) 數(shù)組和指針I(yè)nt a=1,2,3,4,5,6,7,8,9,10,*ip;Ip=a; /*ip代表a0,*(ip+i)代表ai;二維數(shù)組與指針同上;(4) 字符串和指針不能用指針變量來修改字符串常量;(5) 數(shù)組,指針和函數(shù)的關(guān)系1) 數(shù)組可

7、作為函數(shù)的參數(shù):int sum(int a,int num);2) 指針作為函數(shù)參數(shù):int sum(int *ip,int num);3) 返回指針的函數(shù):char *ip(char *ip,char c);(6) 指針數(shù)組和指向指針的指針1)類型 *數(shù)組名【size】;Char *name【3】=“I”,“l(fā)ove”,“you”;定義了三個字符型指針數(shù)組并進行了初始化3) 類型 *指針變量名 /指針變量的變量聲明*指針變量 /獲取指針變量指向的指針*指針變量 /獲取指針變量指向的指針內(nèi)容例子:Main()Char *name=“Tom”,”Jacky”,”Andy”;Char *cp=na

8、me;For(int i=0;i<3;i+)Printf(“cp=d%n”,cp);Printf(“*cp=s%n”,*cp);Printf(“*cp=c%n”,*cp);程序輸出結(jié)果為:cp=0x1000;*cp=Tom*cp=TCp=0x1002*cp=Jacky*cp=Jcp=0x1004;*cp=Andy*cp=A五:結(jié)構(gòu),聯(lián)合和枚舉定義:1)Stuct 結(jié)構(gòu)名類型說明符 成員1類型說明符 成員2。類型說明符 成員n;結(jié)構(gòu)名 變量名1,變量名2.;2)Stuct 結(jié)構(gòu)名類型說明符 成員1類型說明符 成員2。類型說明符 成員n變量名1,變量名2.;3)Stuct 類型說明符 成員1

9、類型說明符 成員2。類型說明符 成員n變量名1,變量名2.;例子:Struct dateUnsigned char Year;Unsigned char Month;Unsigned charDay;Unsigned charHour;Struct date ERR_TIME【20】;/初始化ERR_TIME【0】.Year=99;ERR_TIME【0】.Month=8;ERR_TIME【0】.Day=23;ERR_TIME【0】.Hour=22;(1) 指向結(jié)構(gòu)體變量的指針Struct 結(jié)構(gòu)體名 *指針變量名Struct date *p_Date;P_Date=&ERR_TIME;(

10、*p_Date).Year=99;P_Date->Month=8;例子:求平均數(shù)Struct memberFloat Slaray;flashman【5】=3000,4000,5000,6000,7000;Float AVRage(struct member *p_Man)Float avr,sum;Unsigned char j;Sum=avr=0;For(j=0;j<5;j+)Sum=sum+p_Man->Slaray;If(j=4)Avr=sum/5;Return avr;Main()Float avr;Struct member *p;P=flashman;Menbe

11、ravr=average(p);(2) 聯(lián)合體定義:union 結(jié)構(gòu)名類型說明符 成員1類型說明符 成員2。類型說明符 成員n;結(jié)構(gòu)名 變量名1,變量名2.;2)union結(jié)構(gòu)名類型說明符 成員1類型說明符 成員2。類型說明符 成員n變量名1,變量名2.;3)union 類型說明符 成員1類型說明符 成員2。類型說明符 成員n變量名1,變量名2.;(3) 枚舉1)定義:Enum 枚舉名枚舉值列表;枚舉名 變量1,變量2,;2)Enum 枚舉名枚舉值列表; 枚舉名變量1,變量2,;六:程序設(shè)計技巧中斷響應(yīng)快速的一種解決方法#define N 256Char dataNStatic int couter=0;Void main(void)If(flag=1)Handledata

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論