資源描述:
《單片機C語言課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、第8章單片機C程序設計及應用8.1單片機C51程序設計8.2采用C51程序的設計實例本章小結練習與思考題8.1單片機C51程序設計8.1.1單片機C程序的基本概念目前仍在使用的單片機開發(fā)設計語言大致有兩類:匯編語言和C語言。C語言由于其結構化、移植性好和高效性的特點,是進行單片機開發(fā)的一種利器。C語言是一種源于編寫UNIX操作系統(tǒng)的語言,與匯編語言相比,有以下優(yōu)點:(1)不需要了解51單片機的指令系統(tǒng),僅僅要求初步了解存儲器結構。 (2)程序有規(guī)范的結構,可分為不同的函數,使程序結構化。 (3)
2、程序可讀性好。 (4)提供很多標準庫函數,數據處理能力強。 (5)程序易于做到模塊化,移植性好。8.1.2單片機C程序的基本結構C語言是一種通用性很強的結構化程序設計語言。從程序流程的角度來看,單片機C程序可以分為3種基本結構:順序結構、選擇結構和循環(huán)結構。這3種基本結構可以組成各種復雜程序。1.順序結構順序結構程序是僅包含一個main()函數的簡單程序,適當運用表達式語句就能設計出具有某特定功能的順序結構C51程序。這是一種最簡單的基本結構,程序只由低地址向高地址順序執(zhí)行指令代碼,如圖8-1所示
3、。雖然該程序設計方法簡單,但在具體運用中的算法仍然采用自頂向下逐步求精的方法進行設計。圖8-1順序結構2.選擇結構使單片機具有決策能力的是選擇結構,這種結構也稱為分支結構,如圖8-2(a)所示。選擇結構中包含一個判斷框,執(zhí)行流程根據判斷條件P的成立與否,選擇執(zhí)行其中的一路分支。圖8-2(b)所示的是特殊的選擇結構,即一路為空的選擇結構。這種選擇結構中,當P條件成立時,執(zhí)行A操作,然后脫離選擇結構;如果P條件不成立,則直接脫離選擇結構。它包括if語句結構和switch語句結構兩種。圖8-2選擇結構1)?if
4、語句結構 C語言的if語句有3種形式:基本if形式、if-else形式、if-else-if形式。 基本if形式語法結構如下: if(表達式) 處理程序; 處理機理是:如果表達式的值為“真”,則執(zhí)行“處理程序”的語句內容,否則不執(zhí)行該語句內容。例如:voidmain() {ucharsp0=0,buffer0[2]={0,0};if(sp0==0)buffer0[sp0]=RXBUF0;//接收串口數據} if-else形式語法結構如下:if(表達式)處理程序1;e
5、lse處理程序2;處理機理是:如果if表達式的值為“真”,則執(zhí)行“處理程序1”的語句內容,否則執(zhí)行“處理程序2”語句內容。例如: voidmain() { ucharend,rev_flag; if(end==1) rev_flag0=1; else rev_flag0=0; }if-else-if形式語法結構如下: if(表達式1) 處理程序1; elseif(表達式2) 處理程序2; … else(表達式n
6、) 處理程序n;處理機理是:如果表達式1的值為“真”,則執(zhí)行與之相對應的“處理程序1”的語句內容;如果表達式2的值為“真”,則執(zhí)行與之相對應的“處理程序2”的語句內容,依次判斷表達式“x”是否為“真”,如果為“真”則執(zhí)行與之相對應的“處理程序x”語句內容。例如:voidmain() { ucharsp0=0,rev_byte0,buffer0[2]={0,0}, receive_frame[10]; if(sp0==0){ buffer0[sp0]=RXB
7、UF0;//接收串口數據 if(buffer0[0]==0xEB)sp0++;}/*判斷第二個字節(jié)*/elseif(sp0==1){buffer0[sp0]=RXBUF0;if((buffer0[0]==0xEB)&&(buffer0[1]==0x90))sp0++;//數據為EB90elsesp0=0;}elseif(sp0>=2){receive_frame[rev_byte0]=RXBUF0;rev_byte0++;}2)?switch語句結構 C語言的switch
8、語句又稱開關語句,它可以從多種情況中選擇滿足條件的一種情況,是多分支選擇結構語句。switch形式語法結構如下:switch(表達式){case<常量表達式1>:[處理序列1;[break]]case<常量表達式2>:[處理序列2;[break]]…case<常量表達式n>:[處理序列n;[break]][default:處理序列n+1;]}處理機理是:計算表達式的值,并逐個與其后的常量表達式的值相比較,當表達