


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 C51程序流程與控制C語言是一種結構化的編程語言。其基本元素是模塊,它是程序的一部分, 只有一個入口和一個出口,不允許有中途插入或從模塊的其它路徑退出。C語言有3種基本結構:順序結構;循環結構;選擇結構;條件語句順序結構的程序是最簡單、最基本的程序結構,其特點 是按指令的排列順序一條條地執行,如圖所示,程序先執行 A操作,再執行B操作,兩者是順序執行的關系。此結構中必包含一個判斷框,根據給定的條件P是否成立而選擇執行 A框或B框。選擇結構由條件語句構成。條件語句又被稱為分支語句,其關鍵字是由if語句或switch/case構成C語言提供了 3種形式的if語句結構:用法 1:if ( 條件表
2、達式 ) 語句 描述:當條件表達式的結果為真時,就執行語句,否則就跳過。例: if(a>=3)b=0;用法 2:if ( 條件表達式 )語句 1else 語句 2 描述:當條件表達式成立時,就執行語句1,否則就執行語句 2。例:if (a=b)a+;elsea-;當a等于b時,a加1,否則a-1。用法 3:if ( 條件表達式 1)語句 1 ;else if ( 條件表達式 2)語句 2;else if ( 條件表達式 3)語句 3;else if ( 條件表達式 n)語句 n;else語句 m;描述:如果表達式 1 為“真”,則執行語句 1,退出 if 語句;否則去 判斷表達式 2,如
3、果為“真”,則執行語句 2,退出 if 語句;否則去判斷表達 式3 最后,如果表達式n也不成立,則執行else后面的語句m。else和 語句 m 也可省略不用。例:if (a>=3)b=10;else if (a>=2)b=20;else if (a>=1)b=30;elseb=0;switch/ case 語句結構我們學習了條件語句,用多個條件語句可以實現多方向條件分支, 但是可以發現使用過多的條件語句實現多方向分支會使條件語句嵌套過多, 程序冗長,這樣讀起來也很不好讀。這時使用開關語句同樣可以達到處理多 分支選擇的目的,又可以使程序結構清晰。它的語法為下:switch (
4、 表達式 )case常量表達式 case常量表達式 case常量表達式 case常量表達式 default:語句 m1:語句1;break;2:語句2;break;3:語句3;break;n:語句n;break;描述:運行中switch后面的表達式的值將會做為條件,與 case后面的 各個常量表達式的值相對比,如果相等時則執行后面的語句,再執行break(間斷語句)語句,跳出switch語句。如果case沒有和條件相等的值時就 執行default后的語句。當要求沒有符合的條件時不做任何處理,則可以不 寫default 語句。循環結構程序循環程序的作用就是用來實現需要反復執行某一部分程序行的操作
5、,有如下兩類循環結構。在這種結構中,當判斷條件 P成立時, 執行循環體A部分。執行完畢回來再一次判 斷條件P。如果條件成立則繼續循環 A,否 則退出循環。通常用 while循環語句來實現,其形式如下:While (表達式)循環語句;描述:當表達式為非0 “真”)時,執行while中的內嵌循環語句在這種結構中,先執行循環 A部分,然后判 斷條件P成立時,執行循環體A部分。執行完畢 回來再一次判斷條件P。如果條件成立則繼續循 環A,否則退出循環。通常用do-while循環語句 來實現,其形式如下:do循環語句;描述:先執行do-while中的內嵌循環語句,再判斷表達式表達式為非while (表達式
6、)(“真”)時,繼續執行內嵌循環語句for循環語句for語句的一般形式為:for (表達式 1;表達式 2;表達式 3)循環語句;描述: 先求解表達式 1; 求解表達式 2,其值為“真”時,則執行 for 語句中的循環語句, 然后執行第步,如果表達式2,其值為“假”時,則結束循環,轉到 第步。 求解表達 3; 轉回第步繼續執行; 退出 for 循環。表1-1 C51中的關鍵字關鍵字用途說明auto存儲種類說明用以說明局部變量,缺省值為此break程序語句退出最內層循環case程序語句Switch語句中的選擇項char數據類型說明單字節整型數或字符型數據con st存儲類型說明在程序執行過程中不
7、可更改的常量值con ti nue程序語句轉向下一次循環default程序語句Switch語句中的失敗選擇項do程序語句構成do.while 循環結構double數據類型說明雙精度浮點數else程序語句構成if.else 選擇結構enum數據類型說明枚舉exter n存儲種類說明在其他程序模塊中說明了的全局變量flost數據類型說明單精度浮點數for程序語句構成for循環結構goto程序語句構成goto轉移結構if程序語句構成if.else 選擇結構int數據類型說明基本整型數long數據類型說明長整型數register存儲種類說明使用CPU內部寄存的變量return程序語句函數返回short
8、數據類型說明短整型數sig ned數據類型說明有符號數,二進制數據的最高位為符號 位sizeof運算符計算表達式或數據類型的字節數static存儲種類說明靜態變量struct數據類型說明結構類型數據swicth程序語句構成switch選擇結構typedef數據類型說明重新進仃數據類型疋義union數據類型說明聯合類型數據un sig ned數據類型說明無符號數數據void數據類型說明無類型數據volatile數據類型說明該變量在程序執行中可被隱含地改變while程序語句構成while和do.while循環結構表1-2存儲器類型存儲器類型說明data直接訪問內部數據存儲器(128字節),訪問速度
9、最快bdata可位尋址內部數據存儲器(16字節),允許位與字節混合訪問idata間接訪問內部數據存儲器(256字節),允許訪問全部內部地址pdata分頁訪問外部數據存儲器(256字節),用MOVRi指令訪問xdata外部數據存儲器(64KB),用MOVX DP指令訪問code程序存儲器(64KB ,用MOVC A+DP指令訪問表1-3 C51編譯器的擴展關鍵字關鍵字用途說明bit位標量聲明聲明一個位標量或位類型的函數sbit位標量聲明聲明一個可位尋址變量Sfr特殊功能寄存器聲明聲明一個特殊功能寄存器Sfr16特殊功能寄存器聲明聲明一個16位的特殊功能寄存器data存儲器類型說明直接尋址的內部數
10、據存儲器bdata存儲器類型說明可位尋址的內部數據存儲器idata存儲器類型說明間接尋址的內部數據存儲器pdata存儲器類型說明分頁尋址的外部數據存儲器xdata存儲器類型說明外部數據存儲器code存儲器類型說明程序存儲器in terrupt中斷函數說明定義一個中斷函數reentrant再入函數說明定義一個再入函數usi ng寄存器組定義定義芯片的工作寄存器表1-4常用轉義字符表轉義字符含義ASCII 碼(16/10 進制)o空字符(NULL)00H/0n換行符(LF)0AH/10r回車符(CR)0DH/13t水平制表符(HT)09H/9b退格符(BS)08H/8f換頁符(FF)0CH/12&
11、#39;單引號27H/39"雙引號22H/34反斜杠5CH/92表1-5 KEIL uVisio n2 C51編譯器所支持的數據類型數據類型長度值域un sig ned char單字節0 255sig ned char單字節-128 + 127un sig ned int雙字節0 65535sig ned int雙字節-32768+32767un sig ned long四字節095sig ned long四字節-48 +47float四字節士士 +38*13字節對象的地址bit位0或1sfr單字節0 255sfr16雙字節0 65535sbit位0或1表1-6運算符優先級和結合性級
12、別類別名稱運算符結合性1強制轉換、數組、結構、聯合強制類型轉換()右結合下標存取結構或聯合成員->或.2增量加一+左結合減量減一-指針取地址&取內容*算術單目減-長度計算長度計算sizeof3算術乘*右結合除/取模%4算術和指針運算加+減-5字位左移<<右移>>6關系大于等于>=大于>小于等于<=小于<恒等于=不等于!=7字位按位與&8按位異或A9按位或I10按位取反11邏輯邏輯與&&左結合12邏輯或II13邏輯非!14條件條件運算?:15賦值賦值=復合賦值Op=16逗號逗號運算右結合表1-7 AT89C51特殊功能寄存器列表(適用于同一架構的芯片)序號符號地址注釋1*ACCE0H累加器2*BF0H乘法寄存器3*PSWD0H程序狀態字4SP81H堆棧指針5DPL82H數據存儲器指針低8位6DPH83H數據存儲器指針高8位7*IEA8H中斷允許控制器8*IPD8H中斷優先控制器9*P080H端口 010*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 爆破安全教育培訓
- 2024中建四局土木工程有限公司“善建者”校園招聘筆試參考題庫附帶答案詳解
- 電梯使用安全培訓
- 安全生產全員培訓內容
- 主題三 動物養殖快樂多(第二課時) 教學設計 2023-2024學年廣州版初中勞動技術九年級下冊
- 五年級上冊科學教學設計-第四節 機械擺鐘 教科版
- 人教新目標 (Go for it) 版八年級下冊Unit 5 What were you doing when the rainstorm cameSection A教案
- 工程測量理論考試復習試題附答案
- 《數學好玩:反彈高度》(教學設計)-2024-2025學年北師大版小學數學六年級上冊
- 采購合同續簽管理重點基礎知識點
- 修補外墻防水合同
- 20萬噸有機肥項目可行性研究報告
- 幼小銜接 每日一練
- 電纜敷設施工質量控制案例分享
- 骨與關節化膿性感染
- 教科版五年級下冊科學第三單元《環境與我們》單元測試卷(含答案)
- 教師數字素養及其培育路徑研究基于歐盟七個教師數字素養框架的比較分析
- 《變電站二次系統數字化設計編碼規范》
- 住建局安全生產匯報
- 《老年社會工作》課件-老年社會生活相關理論及應用
- 2022年全國高考數學(新高考1卷)試題及答案解析
評論
0/150
提交評論