51單片機(jī)C語言程序設(shè)計經(jīng)典案例_第1頁
51單片機(jī)C語言程序設(shè)計經(jīng)典案例_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、項目三C51程序設(shè)計語言基礎(chǔ)任務(wù)1C51程序的識讀1. C51程序結(jié)構(gòu)例3-1P.test/*注釋,還可用注釋掉一行Filename:P_test.cClupnaine:STC89C5IRCClockfrequency:1.20MHz*/#mclude“reg52.h"預(yù)處理命令,文件包含預(yù)處理命令,后綴名都是.h,標(biāo)準(zhǔn)的MCS-51單片機(jī)頭文件為reg51.h”,STC89系列單片機(jī)頭文件為Seg52.h”#defiiieunitunsignedmt宏定義預(yù)處理命令sbitEZ=P3、7;sbitkev=Pro;voiddelay(unitms)uniti;wliile(msfbr

2、(i=0;i<120;i-H-);voidmain(void)wlule(l)if(key=O)BZ=0x0;delaynis(lO);BZ=0xl;delaynis(50);P0=0xFF;elseP0=P0;delaynis(500);2. C51的數(shù)據(jù)類型位變量型bit字符型(無符號字符型unsignedcharC51的數(shù)據(jù)類型基本類型有符號字符型signedchar整數(shù)型J無符號整數(shù)型unsignedmtI有符號整數(shù)型signedmt長整數(shù)型無符號長整數(shù)型unsignedlongint有符號長整數(shù)型signedlongiiit實數(shù)型(浮點(diǎn)型)J單精度浮點(diǎn)型float雙精度浮點(diǎn)型d

3、ouble(數(shù)組類型anayI結(jié)構(gòu)體類型struct構(gòu)造類型共用體unionI枚舉enum指針類型J空類型(void)表3-1C51基本數(shù)據(jù)類型的長度和值域類型長度/bit長度/byte范圍位變量型bit10,1無符號字符型unsignedchai8單字節(jié)0-255有符號字符型signedchai8單字節(jié)-128-127無符號整數(shù)型unsignedmt16雙字節(jié)0-65536有符號整數(shù)型signedmt16雙字節(jié)-32768-32767無符號長整數(shù)型unsignedlongint32四字節(jié)有符號長整數(shù)型signedlongint32四字節(jié)單精度浮點(diǎn)型float32四字節(jié)雙精度浮點(diǎn)型double

4、32四字節(jié)一般指針類型24三字節(jié)3.C51的標(biāo)識符和關(guān)鍵字標(biāo)識符是由字母、數(shù)字和下劃線組成的字符串,第一個字符必須是字母或下劃線,不超過32個字符。表3-2C51中的關(guān)鍵字關(guān)鍵字用途說明auto存儲種類聲明用來聲明局部變量bdata存儲器類型說明可位尋址的內(nèi)部數(shù)據(jù)存儲器break程序語句退出最內(nèi)層循環(huán)體bit位變量語句位變量的值是1(true)或0(flase)case程序語句switch語句中的選擇項chai數(shù)據(jù)類型的聲明單字節(jié)整數(shù)型或字符型數(shù)據(jù)關(guān)鍵字用途說明code存儲器類型聲明程序存儲器const存儲類型說明在程序執(zhí)行過程中不可修改的變量值continue程序語句退出本次循環(huán),轉(zhuǎn)向下一次

5、循壞data存儲器類型說明直接尋址的內(nèi)部數(shù)據(jù)存儲器default程序語句Switch語句中的失敗選擇項do程序語句構(gòu)成do.while循壞結(jié)構(gòu)double數(shù)據(jù)類型說明雙精度浮點(diǎn)數(shù)else程序語句構(gòu)成if.else選擇結(jié)構(gòu)enum數(shù)據(jù)類型說明枚舉extern存儲類型說明在其他程序模塊中聲明了的全局變量float數(shù)據(jù)類型說明單精度浮點(diǎn)型fol-程序語句構(gòu)成for循壞結(jié)構(gòu)goto程序語句構(gòu)成goto循壞結(jié)構(gòu)idata存儲器類型說明間接尋址的內(nèi)部數(shù)據(jù)存儲器if程序語句構(gòu)成do.while循壞結(jié)構(gòu)lilt數(shù)據(jù)類型說明基本整數(shù)型intemipt中斷聲明定義一個中斷函數(shù)long數(shù)據(jù)類型說明長整數(shù)型pdata

6、存儲器類型說明分頁尋址的內(nèi)部數(shù)據(jù)存儲器register存儲類型說明使用CPU內(nèi)部的寄存器變量reentrant再入函數(shù)說明定義一個再入函數(shù)return程序語句函數(shù)返回sbit位變量聲明聲明一個可位尋址的變量short數(shù)據(jù)類型說明短整數(shù)型signed數(shù)據(jù)類型說明有符號數(shù),二進(jìn)制的最高位位符號位sizeof運(yùn)算符計算表達(dá)式或數(shù)據(jù)類型的字節(jié)數(shù)Sfi-特殊功能寄存器聲明聲明一個特殊功能寄存器Sfil6特殊功能寄存器聲明聲明一個16位的待殊功能寄存器static存儲類型說明靜態(tài)變量stmct數(shù)據(jù)類型說明結(jié)構(gòu)類型數(shù)據(jù)switch程序語句構(gòu)成switch選擇語句tvpedef數(shù)據(jù)類型說明重新進(jìn)行數(shù)據(jù)類型定義

7、union數(shù)據(jù)類型說明聯(lián)合數(shù)據(jù)類型unsigned數(shù)據(jù)類型說明無符號數(shù)據(jù)using寄存器組定義定義芯片的工作寄存器void數(shù)據(jù)類型說明無符號數(shù)據(jù)volatile數(shù)據(jù)類型說明聲明該變量在程序執(zhí)行中可被隱含改變wliile程序語句構(gòu)成while和do.while循壞語句xdata存儲器類型說明外部數(shù)據(jù)存儲器4.C51的常量和變量1)常量常量就是在程序運(yùn)行過程中,其值不能改變的數(shù)據(jù),包括整型常量、字符常屋、字符串常量、實數(shù)常量、位標(biāo)量等。(1)整型常量:可以用二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制表示。無符號整數(shù)常量在一個數(shù)字后面加上“u”或“U”表示。長整數(shù)型常量在后面加上“1”或“L”,無符號長整數(shù)型

8、常量在數(shù)字后面加上“ul”或“UL”,實數(shù)型常量在后面加“f”或“F”。(2)字符常量:單引號內(nèi)的字符,不可以顯示的控制字符在前加“”組成專用轉(zhuǎn)義字符。(3)字符串常量:雙引號內(nèi)的字符,當(dāng)雙引號內(nèi)沒有字符時是空字符串。在C語言中,字符串常量是作為字符類型數(shù)組來處理的,在存儲字符串時,系統(tǒng)在字符串尾部加上轉(zhuǎn)義字符“o”,作為該字符串的結(jié)束符。(4)實數(shù)常量:有十進(jìn)制和指數(shù)兩種表示形式。指數(shù)表示的實數(shù)為“士數(shù)字.數(shù)字e±數(shù)字”,中的內(nèi)容為可選項(5)位標(biāo)量:位標(biāo)量的值是一個二進(jìn)制數(shù)。2)變量變量就是在程序運(yùn)行過程中,其值可以被改變的數(shù)據(jù)。必須先用標(biāo)識符作為變屋名,并指出所用的數(shù)據(jù)類型和存

9、儲模式,這樣編譯系統(tǒng)才能為變屋分配相應(yīng)的存儲空河。定義變量的格式:存儲模式類型定義存儲器類型標(biāo)識符:類型定義和標(biāo)識符是必要的。存儲模式有四種,自動(auto)、外部(extern)x靜態(tài)(static)和寄存器(register),默認(rèn)類型為自動(auto)。表3-3C51存儲類型與MCS-51單片機(jī)存儲空間的對應(yīng)關(guān)系及其大小存儲類型與存儲空間的對應(yīng)關(guān)系長度/bit長度/byte存儲范闈data直接尋址片內(nèi)數(shù)據(jù)存儲區(qū),訪問速度快(128B)810-255bdata可位尋址片內(nèi)數(shù)據(jù)存儲區(qū),允許位與字節(jié)混合訪問(16B)810-255idata間接尋址片內(nèi)數(shù)據(jù)存儲區(qū),可訪問片內(nèi)全部RAM地址空間(

10、256E)810-255pdata分頁尋址片外數(shù)據(jù)存儲區(qū),由MOVXRi訪問810-255xdata尋址片外數(shù)據(jù)存儲區(qū)(64KB),由MOVXDPTR訪問1620-65535code尋址代碼存儲區(qū)(64KB),由MOVCDPTR訪問1620-65535如呆在變量定義時省略了存儲類型標(biāo)識符,則編譯器會自動選擇默認(rèn)的存儲類型。默認(rèn)的存儲類型進(jìn)一步由SMALL、COMPACT.和LARGE存儲模式指令限制。存儲模式?jīng)Q定了變量的默認(rèn)存儲類型、參數(shù)傳遞區(qū)和無明確存儲類型說明變量的存儲類型。在SMALL模式下,參數(shù)傳遞是在片內(nèi)數(shù)據(jù)存儲區(qū)中完成的。COMPACT和LARGE模式允許參數(shù)在外部存儲器中傳遞。表34存儲模式及說明存儲模式說明SMALL參數(shù)及局部變屋放入可直接尋址的片內(nèi)存儲器(最人為128B,默認(rèn)存儲類型為data),因此訪問十分方便。另外,所有對彖(包括棧)都必須嵌入片內(nèi)RAM,棧長由函數(shù)的嵌套導(dǎo)數(shù)決定。COMPACT參數(shù)及局部變量放入分頁片外存儲區(qū)(最大為256B,默認(rèn)的存儲類型為pdata),通過寄存器R0和R1(R0、R1)間接尋址,??臻g位于MCS-51系

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論