單片機(jī)C語言編程.ppt

單片機(jī)C語言編程.ppt

ID:50199045

大?。?88.00 KB

頁數(shù):31頁

時間:2020-03-06

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

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

1、單片機(jī)C51編程一、C51與標(biāo)準(zhǔn)C的差異1、庫函數(shù)不同2、頭文件不同3、數(shù)據(jù)類型有一定區(qū)別4、增加了存儲模式5、增加了中斷函數(shù)6、輸入、輸出不同,C51通過串口進(jìn)行。二、C語言與匯編語言單片機(jī)C語言編程與匯編語言編程的差異:1、用匯編語言編寫單片機(jī)程序必須要考慮其存儲器結(jié)構(gòu),資源分配是匯編語言編程中的一大負(fù)擔(dān)。而且不同的存儲器操作對象尋址方式不同,訪問的指令也不同。3、匯編語言編程,子程序調(diào)用要考慮現(xiàn)場的保護(hù)與恢復(fù),要考慮工作寄存器的分組使用,避免資源沖突。C語言編譯系統(tǒng)自動完成這些工作。如MOV,MOVC,MOVX訪問的空間不同。2、匯編語言中的指令繁多,功能單

2、一。如單片機(jī)中大量的轉(zhuǎn)移類指令在C語言中均由分支程序?qū)崿F(xiàn)。4、匯編語言編寫中的循環(huán)程序是通過轉(zhuǎn)移指令重復(fù)執(zhí)行來現(xiàn)實(shí)的,C語言則通過循環(huán)語句來實(shí)現(xiàn)。6、用C語言編寫的單片機(jī)應(yīng)用程序:(1)所有操作對象都可以看成變量或常量,沒有尋址方式(數(shù)據(jù)傳送由賦值語句實(shí)現(xiàn),所有運(yùn)算都通過表達(dá)式實(shí)現(xiàn))。(2)不用像匯編語言那樣須具體組織、分配存儲器資源和處理端口數(shù)據(jù).(3)子程序調(diào)用時,C語言程序的編譯系統(tǒng)自動進(jìn)行現(xiàn)場的保護(hù)。(5)C語言語法簡單,語句緊湊,容易理解和掌握。(4)在C語言編程中,對數(shù)據(jù)類型與變量的定義,必須要與單片機(jī)的存儲結(jié)構(gòu)相關(guān)聯(lián),否則編譯器不能正確地映射定位。5

3、、匯編語言編程中使用大量的算術(shù)邏輯運(yùn)算指令在單片機(jī)C語言編程中全部由相應(yīng)的運(yùn)算表達(dá)式實(shí)現(xiàn)。三、C51的數(shù)據(jù)類型數(shù)據(jù)類型長度大小unsignedchar1字節(jié)0~255char1字節(jié)-128~+127unsignedint2字節(jié)0~65535int2字節(jié)-32768~+32767unsignedlong4字節(jié)0~4294967295long4字節(jié)-2147483648~+2147483647float4字節(jié)±1.75494E-38~±3.402823E+38*1~3字節(jié)對象的地址bit位0或1sfr1字節(jié)0~255sfr162字節(jié)0~65535sbit位0或11、特

4、殊功能寄存器類型:在C51中對特殊功能寄存器的訪問必須先用sfr或sfr16進(jìn)行聲明。sfrP0=0x80;/*P0口的寄存器地址為0x80*/兩種使用特殊功能寄存器的方法:1)、先定義再使用:2)、包含51單片機(jī)的頭文件:#includevoidmain(void){ucharvar1;var1=P1......while(1);}2、位類型這也是C51中擴(kuò)充的數(shù)據(jù)類型,用于訪問MCS-51單片機(jī)中的可尋址的位單元。在C51中,支持兩種位類型:bit型和sbit型。它們在內(nèi)存中都只占一個二進(jìn)制位,其值可以是“1”或“0”。bitflags;/*

5、在bdata區(qū)定義一個位變量*/sfrP0=0x80;/*因P0口的寄存器是可位尋址的*/sbitP0_0=P0^0;/*所以P0_0為P0中的P0.0引腳*/除了以上定義方式外,還可以用P0.0的地址去寫,如:sbitP0_0=0x80;區(qū)別:用bit定義的位變量在C51編譯器編譯時,在不同的時候位地址是可以變化的,而用sbit定義的位變量必須與51單片機(jī)的一個可以尋址位單元或可位尋址的字節(jié)單元中的某一位聯(lián)系在一起,在C51編譯器編譯時,其對應(yīng)的位地址是不可變化的。四、新增存貯類型變量是在程序運(yùn)行過程中其值可以改變的量。一個變量由兩部分組成:變量名和變量值。在C

6、51中,變量在使用前必須對變量進(jìn)行定義,指出變量的數(shù)據(jù)類型和存儲模式。以便編譯系統(tǒng)為它分配相應(yīng)的存儲單元。定義的格式如下:數(shù)據(jù)類型說明符[存儲器類型]變量名1[=初值],變量名2[=初值]…;存儲器類型描述data直接尋址的片內(nèi)RAM低128B,訪問速度快bdata片內(nèi)RAM的可位尋址區(qū)(20H~2FH),允許字節(jié)和位混合訪問idata間接尋址訪問的片內(nèi)RAM,允許訪問全部片內(nèi)RAMpdata用Ri間接訪問的片外RAM的低256Bxdata用DPTR間接訪問的片外RAM,允許訪問全部64k片外RAMcode程序存儲器ROM64k空間2、六種存儲器類型:【例】變量定

7、義存儲種類和存儲器類型相關(guān)情況。chardatavarl;/*在片內(nèi)RAM低128B定義用直接尋址方式訪問的字符型變量var1*/intidatavar2;/*在片內(nèi)RAM256B定義用間接尋址方式訪問的整型變量var2*/unsignedlongdatavar3;/*在片內(nèi)RAM128B定義用直接尋址方式訪問的自動無符號長整型變量var3*/floatxdatavar4;/*在片外RAM64KB空間定義用間接尋址方式訪問的外部實(shí)型變量var4*/intcodevar5;/*在ROM空間定義整型變量var5*/unsigncharbdatavar6;/*在片內(nèi)RA

8、M位尋址區(qū)

當(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ò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。