單片機C語言常用語句詳解.ppt_第1頁
單片機C語言常用語句詳解.ppt_第2頁
單片機C語言常用語句詳解.ppt_第3頁
單片機C語言常用語句詳解.ppt_第4頁
單片機C語言常用語句詳解.ppt_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C51編程常用語句總結(jié),一、C51定義SFR 定義方法:兩個關(guān)鍵字:sfr和sbit 1.定義特殊功能寄存器用sfr 例如: sfr PSW=0 xD0;/*定義程序狀態(tài)字PSW的地址為D0H*/ sfr TMOD=0 x89;/*定義定時器/計數(shù)器方式控制寄存器TMOD的地址為89H*/ sfr P1=0 x90;/*定義P1口的地址為90H*/ 2.定義可位尋址的特殊功能寄存器的位用sbit 例如: sbit CY=0 xD7;/*定義進(jìn)位標(biāo)志CY的地址為D7H*/ sbit AC=0 xD06;/*定義輔助進(jìn)位標(biāo)志AC的地址為D6H*/ sbit RS0=0 xD03;/*定義RS0的地

2、址為D3H*/,標(biāo)準(zhǔn)SFR在reg51.h、reg52.h 等頭文件中已經(jīng)被定義,只要用文件包含做出聲明即可使用。 例如: #include sbit P10=P10; sbit P12=P12; main() P10=1; P12=0; PSW=0 x08; ,二、C51定義位變量 使用關(guān)鍵字bit 例如: bit lock;/*將lock定義為位變量*/ bit direction;/*將direction定義為位變量*/ 注意:不能定義位變量指針;也不能定義位變量數(shù)組。,C51編程常用語句總結(jié),C51流程控制語句,一、選擇語句 1.if語句 以下三種形式: if(表達(dá)式)語句; if(表

3、達(dá)式)語句1; else 語句2; if(表達(dá)式1)語句1; else if(表達(dá)式2)語句2; else if(表達(dá)式3)語句3; else if(表達(dá)式n)語句n; else 語句n+1;,C51流程控制語句,例1: if (p1!=0) c=20; 例2: if (p1!=0) c=20; else c=0; 例3: if (a=1) c=10; else if (a=2) c=20; else if (a=3) c=30; else if (a=4) c=40; else c=0;,C51流程控制語句, switch/case語句 switch/case語句的一般形式如下: switc

4、h(表達(dá)式) case 常量表達(dá)式1:語句1; break; case 常量表達(dá)式2:語句2; break; case 常量表達(dá)式n:語句n; break; default :語句n+1; ,C51流程控制語句,例:單片機P1口的P1.0和P1.1各接一個開關(guān)K1、K2,P1.4、P1.5、P1.6和P1.7各接一只發(fā)光二極管。有K1和K2的不同狀態(tài)來確定哪個發(fā)光二極管被點亮。,C51流程控制語句,方法一:用if語句實現(xiàn) #include void main() char a; a=P1; a=a/*屏蔽高6位*/ if (a=3) P1=0 x83; else if (a=2) P1=0 x

5、43; else if (a=1) P1=0 x23; else P1=0 x13; ,C51流程控制語句,方法二:用switch/case語句實現(xiàn) #include void main() char a; a=P1; a=a/*屏蔽高6位*/ switch (a) case 3:P1=0 x83;break; case 2:P1=0 x43;break; case 1:P1=0 x23;break; case 0:P1=0 x13; ,C51流程控制語句,二、循環(huán)語句 if語句和goto語句 goto語句只能構(gòu)成簡單循環(huán),與if語句一起可以實現(xiàn)當(dāng)型和直到型循環(huán)。 構(gòu)成當(dāng)型循環(huán) loop:if

6、(表達(dá)式) 語句 goto loop; 構(gòu)成直到型循環(huán) loop:語句 if(表達(dá)式)goto loop; ,C51流程控制語句, while語句 while語句的一般格式: while(表達(dá)式)語句 do-while語句 do-while語句一般格式: do 語句 while (表達(dá)式); for語句 for語句的一般形式: for (表達(dá)式1;表達(dá)式2;表達(dá)式3)語句,舉例:例按鍵的程序只能執(zhí)行一遍,使用循環(huán)程序使其無窮循環(huán)下去。 用goto語句實現(xiàn) #include void main() char a; loop: a=P1; a=a/*屏蔽高6位*/ switch (a) case

7、3:P1=0 x83;break; case 2:P1=0 x43;break; case 1:P1=0 x23;break; case 0:P1=0 x13; goto loop; ,用while語句實現(xiàn) #include void main() char a; while (1) a=P1; a=a/*屏蔽高6位*/ switch (a) case 3:P1=0 x83;break; case 2:P1=0 x43;break; case 1:P1=0 x23;break; case 0:P1=0 x13; ,While中的條件恒為1,表示死循環(huán)。,用do-while語句實現(xiàn) #inclu

8、de void main() char a; do a=P1; a=a ,While中的條件恒為1,表示死循環(huán)。,用for語句實現(xiàn) #include void main() char a; for (; ;) a=P1; a=a/*屏蔽高6位*/ switch (a) case 3:P1=0 x83;break; case 2:P1=0 x43;break; case 1:P1=0 x23;break; case 0:P1=0 x13; ,for中的條件恒為真,表示死循環(huán)。,C51構(gòu)造數(shù)據(jù)類型,一、數(shù)組 一維數(shù)組 一維數(shù)組的定義 類型說明符 數(shù)組名元素個數(shù); 如:int a50; 一維數(shù)組的初

9、始化 int a5=1,2,3,4,5;/*給全部元素賦值*/ int b6=1,2,6;/*給部分元素賦值*/ int d10;d0=4;d1=6; /*定義完后再賦值*/, 二維數(shù)組 二維數(shù)組的定義 類型說明符 數(shù)組名行數(shù) 列數(shù); 如:float a34; 二維數(shù)組的初始化 int a34=1,2,3,4,5,6,7,8,9,10,11,12; /*全部初始化*/ int a34=1,2,3,4,5,6,7,8,; /*部分初始化,a20= a21= a22= a23= 0*/ C51還可以定義多維數(shù)組,也可以定義字符型數(shù)組。 數(shù)組是十分有用的數(shù)據(jù)類型,用它可以形成容易查找的數(shù)據(jù)表格。,C

10、51函數(shù),一、函數(shù)的定義與分類 函數(shù)的分類 標(biāo)準(zhǔn)庫函數(shù) 用戶自定義函數(shù) 用戶自定義函數(shù)是用戶根據(jù)自己的需要而編寫的函數(shù)。 從函數(shù)定義的形式上劃分:無參數(shù)函數(shù)、有參數(shù)函數(shù)和空函數(shù)。 函數(shù)的定義 返回值類型 函數(shù)名(形式參數(shù)列表) 函數(shù)體 例如:int max(int x,int y,int z) 返回值的數(shù)據(jù)類型為整型,函數(shù)名為max,x、y、z為個整型入口參數(shù)。,C51函數(shù),二、C51的庫函數(shù) C51編譯器提供了豐富的庫函數(shù),使用這些庫函數(shù)大大提高了編程效率,用戶可以根據(jù)需要隨時調(diào)用。每個庫函數(shù)都在相應(yīng)的頭文件中給出了函數(shù)的原型,使用時只需在源程序的開頭用編譯預(yù)處理命令#include將相關(guān)的

11、頭文件包含進(jìn)來即可。 例如,要使用數(shù)學(xué)公式,只需要在程序開頭使用#include 文件包含就可以了。要訪問SFR和SFR的位,則只需要在程序開頭使用#include 或#include 文件包含。,C51應(yīng)用編程實例,例: 外部中斷0引腳(P3.2)接一個開關(guān),P1.0接一個發(fā)光二極管。開關(guān)閉合一次,發(fā)光二極管改變一次狀態(tài)。 本例解決外部中斷如何應(yīng)用。 要求:編程實現(xiàn)此功能。,#include sbit P10=P10; int i; void main() EA=1; EX0=1; while(1); void int_srv( )interrupt 0 using 1 while(INT0=0) for(i=0,i220;i+); while(INT0=0) P10=!P10; while(INT0=0); ,小

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論