單片機(jī)C語言課件.ppt

單片機(jī)C語言課件.ppt

ID:59342624

大?。?49.50 KB

頁數(shù):134頁

時間:2020-09-20

單片機(jī)C語言課件.ppt_第1頁
單片機(jī)C語言課件.ppt_第2頁
單片機(jī)C語言課件.ppt_第3頁
單片機(jī)C語言課件.ppt_第4頁
單片機(jī)C語言課件.ppt_第5頁
資源描述:

《單片機(jī)C語言課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第8章單片機(jī)C程序設(shè)計及應(yīng)用8.1單片機(jī)C51程序設(shè)計8.2采用C51程序的設(shè)計實例本章小結(jié) 練習(xí)與思考題8.1單片機(jī)C51程序設(shè)計8.1.1單片機(jī)C程序的基本概念目前仍在使用的單片機(jī)開發(fā)設(shè)計語言大致有兩類:匯編語言和C語言。C語言由于其結(jié)構(gòu)化、移植性好和高效性的特點,是進(jìn)行單片機(jī)開發(fā)的一種利器。C語言是一種源于編寫UNIX操作系統(tǒng)的語言,與匯編語言相比,有以下優(yōu)點:(1)不需要了解51單片機(jī)的指令系統(tǒng),僅僅要求初步了解存儲器結(jié)構(gòu)。   (2)程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),使程序結(jié)構(gòu)化。   (3)

2、程序可讀性好。   (4)提供很多標(biāo)準(zhǔn)庫函數(shù),數(shù)據(jù)處理能力強(qiáng)。   (5)程序易于做到模塊化,移植性好。8.1.2單片機(jī)C程序的基本結(jié)構(gòu)C語言是一種通用性很強(qiáng)的結(jié)構(gòu)化程序設(shè)計語言。從程序流程的角度來看,單片機(jī)C程序可以分為3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這3種基本結(jié)構(gòu)可以組成各種復(fù)雜程序。1.順序結(jié)構(gòu)順序結(jié)構(gòu)程序是僅包含一個main()函數(shù)的簡單程序,適當(dāng)運(yùn)用表達(dá)式語句就能設(shè)計出具有某特定功能的順序結(jié)構(gòu)C51程序。這是一種最簡單的基本結(jié)構(gòu),程序只由低地址向高地址順序執(zhí)行指令代碼,如圖8-1所示

3、。雖然該程序設(shè)計方法簡單,但在具體運(yùn)用中的算法仍然采用自頂向下逐步求精的方法進(jìn)行設(shè)計。圖8-1順序結(jié)構(gòu)2.選擇結(jié)構(gòu)使單片機(jī)具有決策能力的是選擇結(jié)構(gòu),這種結(jié)構(gòu)也稱為分支結(jié)構(gòu),如圖8-2(a)所示。選擇結(jié)構(gòu)中包含一個判斷框,執(zhí)行流程根據(jù)判斷條件P的成立與否,選擇執(zhí)行其中的一路分支。圖8-2(b)所示的是特殊的選擇結(jié)構(gòu),即一路為空的選擇結(jié)構(gòu)。這種選擇結(jié)構(gòu)中,當(dāng)P條件成立時,執(zhí)行A操作,然后脫離選擇結(jié)構(gòu);如果P條件不成立,則直接脫離選擇結(jié)構(gòu)。它包括if語句結(jié)構(gòu)和switch語句結(jié)構(gòu)兩種。圖8-2選擇結(jié)構(gòu)1)?if

4、語句結(jié)構(gòu)   C語言的if語句有3種形式:基本if形式、if-else形式、if-else-if形式。   基本if形式語法結(jié)構(gòu)如下:     if(表達(dá)式)  處理程序;   處理機(jī)理是:如果表達(dá)式的值為“真”,則執(zhí)行“處理程序”的語句內(nèi)容,否則不執(zhí)行該語句內(nèi)容。例如:voidmain()  { ucharsp0=0,buffer0[2]={0,0}; if(sp0==0) buffer0[sp0]=RXBUF0;//接收串口數(shù)據(jù) }  if-else形式語法結(jié)構(gòu)如下: if(表達(dá)式) 處理程序1; e

5、lse 處理程序2;處理機(jī)理是:如果if表達(dá)式的值為“真”,則執(zhí)行“處理程序1”的語句內(nèi)容,否則執(zhí)行“處理程序2”語句內(nèi)容。例如:   voidmain()   {   ucharend,rev_flag;  if(end==1)   rev_flag0=1;  else   rev_flag0=0;    }if-else-if形式語法結(jié)構(gòu)如下:      if(表達(dá)式1)       處理程序1;      elseif(表達(dá)式2)       處理程序2;      …      else(表達(dá)式n

6、)     處理程序n;處理機(jī)理是:如果表達(dá)式1的值為“真”,則執(zhí)行與之相對應(yīng)的“處理程序1”的語句內(nèi)容;如果表達(dá)式2的值為“真”,則執(zhí)行與之相對應(yīng)的“處理程序2”的語句內(nèi)容,依次判斷表達(dá)式“x”是否為“真”,如果為“真”則執(zhí)行與之相對應(yīng)的“處理程序x”語句內(nèi)容。例如:voidmain()   {   ucharsp0=0,rev_byte0,buffer0[2]={0,0},            receive_frame[10];   if(sp0==0) {    buffer0[sp0]=RXB

7、UF0;//接收串口數(shù)據(jù)    if(buffer0[0]==0xEB)sp0++; }/*判斷第二個字節(jié)*/ elseif(sp0==1) { buffer0[sp0]=RXBUF0; if((buffer0[0]==0xEB)&&(buffer0[1]==0x90)) sp0++;//數(shù)據(jù)為EB90 elsesp0=0; } elseif(sp0>=2) {receive_frame[rev_byte0]=RXBUF0; rev_byte0++; }2)?switch語句結(jié)構(gòu)   C語言的switch

8、語句又稱開關(guān)語句,它可以從多種情況中選擇滿足條件的一種情況,是多分支選擇結(jié)構(gòu)語句。 switch形式語法結(jié)構(gòu)如下:switch(表達(dá)式) { case<常量表達(dá)式1>:[處理序列1;[break]] case<常量表達(dá)式2>:[處理序列2;[break]] … case<常量表達(dá)式n>:[處理序列n;[break]] [default:處理序列n+1;] }處理機(jī)理是:計算表達(dá)式的值,并逐個與其后的常量表達(dá)式的值相比較,當(dāng)表達(dá)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。