




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、(優(yōu)選)單片機(jī)語言基礎(chǔ)第一頁,共四十四頁。C語言作為一種非常方便的語言而得到廣泛的支持,很多硬件開發(fā)都用C語言編程,如:各種單片機(jī)、DSP、ARM等.C語言程序本身不依賴于機(jī)器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機(jī)中移植過來。C提供了很多數(shù)學(xué)函數(shù)并支持浮點(diǎn)運(yùn)算,開發(fā)效率高,故可縮短開發(fā)時(shí)間,增加程序可讀性和可維護(hù)性。 C-51的特點(diǎn)第二頁,共四十四頁。C-51與ASM-51相比,有如下優(yōu)點(diǎn):1.對單片機(jī)的指令系統(tǒng)不要求了解,僅要求對8051 的存貯器結(jié)構(gòu)有初步了解;2.寄存器分配、不同存貯器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;3.程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式可使程序
2、結(jié)構(gòu)化;4.提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;5.由于具有方便的模塊化編程技術(shù),使已編好程序可容易地移植;第三頁,共四十四頁。例子認(rèn)識C程序#include sbit A5=P10 x04;int main(void) /用戶代碼 void delay_1s(); return 0; void delay_1s() /代碼一、主程序(程序入口) int main(void) /用戶代碼 return 0; 注:1、C程序模塊都是以“”開頭“”結(jié)尾,程序?yàn)楹瘮?shù)主函數(shù)、子函數(shù) 2、每一行必須有結(jié)束號“;” 3、養(yǎng)成注釋程序的習(xí)慣 “/”注釋該行 “ /* -段落-*/”注解一段二
3、、頭文件(編程預(yù)處理)#include 注:定義一些通用引腳及函數(shù) 三、自定義函數(shù)(子函數(shù))常用、重復(fù)引用的功能集成可用任何文本編輯軟件編寫,最后保存擴(kuò)展名為.C的程序源文件第四頁,共四十四頁。其值可以改變的量稱為變量。 一個(gè)變量應(yīng)該有一個(gè)名字,在內(nèi)存中占據(jù)一定的存儲單元。變量應(yīng)該先定義后使用。要區(qū)分變量名和變量值是兩個(gè)不同的概念。a=3 變量3存儲值存儲單元地址a注:變量名a代表地址,編譯系統(tǒng)自動分配,用戶不可見0 x40第五頁,共四十四頁。一、C51的變量類型1、基本數(shù)據(jù)類型類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實(shí)型有無(signed) int16-3276832767(signed
4、) short16-3276832767(signed) long32-2147483648214748364716unsigned int0655353204294967295unsigned long intunsigned short int16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127無unsigned char80255第六頁,共四十四頁。2、變量類型的定義格式 : 變量類型 + 變量名例如: int a,b; /定義a,b為整型變更 long sheng1,sheng2;/長整型 Float c,
5、d; /浮點(diǎn)(有小數(shù)) Double e,f; /雙精度 char a ;/有符號字符型 Unsigned char b;無符號字符型 注:變量類型為規(guī)定的類型;變量的名稱自由起,但通常要通俗,并要遵守如下規(guī)則c語言變量命名:數(shù)字、字母、下劃線,都可以為變量命名。做為變量名的開頭不能為數(shù)字,如 3a_是錯(cuò)的,而a_3或_a3是正確變量名不能為關(guān)鍵字,像ifelseprintf 等等都不能 第七頁,共四十四頁。標(biāo)準(zhǔn)C表1第八頁,共四十四頁。標(biāo)準(zhǔn)C表2第九頁,共四十四頁。C51擴(kuò)展第十頁,共四十四頁。3、C51的數(shù)據(jù)類型擴(kuò)充定義sfr:特殊功能寄存器聲明sfr16:sfr的16位數(shù)據(jù)聲明sbit:
6、特殊功能位聲明bit:位變量聲明第十一頁,共四十四頁。1sfr 特殊功能寄存器。這也是C 51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以訪問8051單片機(jī)的所有內(nèi)部特殊功能寄存器。sfr型數(shù)據(jù)占用一個(gè)內(nèi)存單元,其取值范圍0255。2sfr16 16位特殊功能寄存器。它占用兩個(gè)內(nèi)存單元,取值范圍是065535。3sbit 可尋址位。這也是C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以訪8051單片機(jī)內(nèi)部RAM中的可尋址位或特殊功能寄存器中的可尋址位。4.bit 位標(biāo)量。這是C 51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可定義一個(gè)位標(biāo)量,但不能定義位指針,也不能定義位數(shù)組。 第十二頁,共四十四頁。例:sfr SC
7、ON = 0X98; sfr16 T2 = 0 xCC; sbit OV = PSW2第十三頁,共四十四頁。4、數(shù)據(jù)類型修飾詞1)、data:固定指前面0 x00-0 x7f的128個(gè)RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小2)、code定義的數(shù)據(jù)要放在ROM(程序存儲區(qū))里面,寫入后就不能再更改,對應(yīng)的還有data是存入RAM的意思。例如: char data a; /a變量存在上述RAM中 int data disp; /disp變量存在上述RAM中例如: uchar code yima= /把數(shù)碼管位數(shù)據(jù)(因?yàn)椴蛔儯懭隦OM0 xeb,0 x88,0 xb3,0 xb
8、a,0 xd8,0 x7a,0 x7b,0 xa8,0 xfb,0 xfa;第十四頁,共四十四頁。4、數(shù)據(jù)類型修飾詞3)、第十五頁,共四十四頁。4、數(shù)據(jù)類型修飾詞4)、第十六頁,共四十四頁。5、變量的賦值 int a,b; /定義a,b為整型變量 long sheng1,sheng2;/長整型 float c,d; /浮點(diǎn)(有小數(shù)) double e,f; /雙精度 char g ;/有符號字符型 Unsigned char h;無符號字符型定義賦值a12; a=0 xff; a=0 x00;b=0; b=08 ; b=03;C=0.214; c=-0.36 ;d=12e3;e=12e-12;
9、g=10;G=A;h=200;注:A為字符常量,為該字符的ASCII代碼第十七頁,共四十四頁。附第十八頁,共四十四頁。C-51的包含的頭文件通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h常用有:reg51.h reg52.h (定義特殊功能寄存器和位寄存器); math.h (定義常用數(shù)學(xué)運(yùn)算); 第十九頁,共四十四頁。二、C-51的運(yùn)算符1、算術(shù)運(yùn)算符+ - * / % (加 減 乘 除 求余 )說明:第二十頁,共四十四頁。+:自加運(yùn)算符 自減運(yùn)算符第二十一頁,共四十四頁。2.邏輯運(yùn)算將兩個(gè)布爾量進(jìn)行運(yùn)算,結(jié)果為只有0
10、或1的布爾量第二十二頁,共四十四頁。3.關(guān)系運(yùn)算運(yùn)算結(jié)果只有0或1的布爾量第二十三頁,共四十四頁。4.位運(yùn)算位操作,結(jié)果還是一個(gè)數(shù),注意與邏輯運(yùn)算的區(qū)別1)第二十四頁,共四十四頁。2).3).4)、第二十五頁,共四十四頁。5)、第二十六頁,共四十四頁。第二十七頁,共四十四頁。 二、C-51流程控制 與標(biāo)準(zhǔn)C語言基本相同: if 選擇語言 switch/case 多分支選擇語言 while 循環(huán)語言 for 循環(huán)語言 do-while 循環(huán)語言 第二十八頁,共四十四頁。1、if 條件選擇語句1)、單分支語句 int a,b,max; max=a; if (maxb) max=a; else ma
11、x=b;第三十頁,共四十四頁。3)、多分支語句依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí),則執(zhí)行其對應(yīng)的語句。然后跳到整個(gè)if語句之外繼續(xù)執(zhí)行程序。 如果所有的表達(dá)式均為假,則執(zhí)行語句n+1。然后繼續(xù)執(zhí)行后續(xù)程序。第三十一頁,共四十四頁。int a=10;If(a0 & a=2 & a-5 & a=8 & a0) delay1s(); P0=P0; i-; main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%dn,sum);第三十六頁,共四十四頁。4、for語句格式for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句作用:循環(huán)執(zhí)行一段代
12、碼它的執(zhí)行過程如下:1) 先求解表達(dá)式1。2) 求解表達(dá)式2,若其值為真(非0),則執(zhí)行for語句中指定的內(nèi)嵌語句,然后執(zhí)行下面第3)步;若其值為假(0),則結(jié)束循環(huán),轉(zhuǎn)到第5)步。3) 求解表達(dá)式3。4) 轉(zhuǎn)回上面第2)步繼續(xù)執(zhí)行。5) 循環(huán)結(jié)束,執(zhí)行for語句下面的一個(gè)語句第三十七頁,共四十四頁。Sum=0;for(i=1; i0; i-) /空語句,想想這段代碼有什么用 第三十八頁,共四十四頁。附:for循環(huán)的嵌套main() int i, j, k;for (i=0; i2; i+) for(j=0; j2; j+) for(k=0; k2; k+) printf(“%d %d %dn
13、, i, j, k); 第三十九頁,共四十四頁。、do - while語句形式為: do 語句 while(表達(dá)式)作用:循環(huán)執(zhí)行一段代碼這個(gè)循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)中的語句,然后再判斷表達(dá)式是否為真, 如果為真則繼續(xù)循環(huán);如果為假, 則終止循環(huán)。因此, do-while循環(huán)至少要執(zhí)行一次循環(huán)語句第四十頁,共四十四頁。main() int i,sum=0; i=1; do sum=sum+i; i+; while(i5 ? 1:0;Y輸出什么值?第四十二頁,共四十四頁。7、循環(huán)體的退出(一)、break語句、當(dāng)break用于開關(guān)語句switch中時(shí),可使程序跳出switch而執(zhí)行switch以后的語句、當(dāng)break語句用于do
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無人機(jī)操控與航拍技術(shù)考核試卷
- 圖書館數(shù)字資源長期保存策略考核試卷
- 家電產(chǎn)品品質(zhì)監(jiān)控與質(zhì)量改進(jìn)考核試卷
- 整年運(yùn)輸合同范本
- 大板委托加工合同范本
- 修剪綠化直營合同范本
- 工地個(gè)人水電合同范本
- 小學(xué)生美術(shù)課件制作教學(xué)
- 名片合同范本
- 財(cái)務(wù)支出季度計(jì)劃工作的分解與執(zhí)行要點(diǎn)
- GB/T 18601-2009天然花崗石建筑板材
- 畢業(yè)設(shè)計(jì)論文-貝類脫殼機(jī)設(shè)計(jì)
- 八項(xiàng)規(guī)定學(xué)習(xí)課件
- 《工程電磁場》配套教學(xué)課件
- 《過零丁洋》公開課件
- 從生產(chǎn)工藝角度詳解磷酸鐵鋰
- 全套橋梁施工技術(shù)交底記錄
- 《教師職業(yè)道德》全書word版
- 城市定制型商業(yè)醫(yī)療保險(xiǎn)(惠民保)知識圖譜
- GB∕T 3836.31-2021 爆炸性環(huán)境 第31部分:由防粉塵點(diǎn)燃外殼“t”保護(hù)的設(shè)備
- AMDAR資料的分析和應(yīng)用
評論
0/150
提交評論