- 相關(guān)推薦
在單片機(jī)C語言編程中的心得體會
在單片機(jī)C語言編程中的心得體會在單片機(jī)C語言編程中的心得體會
作者:彭樹林
在單片機(jī)C語言編程中使用恰當(dāng)?shù)膬?yōu)化手段,可以寫出簡潔高效的代碼。以下是筆者在C51編程過程中的一點(diǎn)心得體會。
1.盡量使用短的數(shù)據(jù)類型。如uchar、bit、uint,有時(shí)需要對uchar數(shù)據(jù)類型進(jìn)行按位訪問,可將其定義在bdam區(qū)間。慎重使用float數(shù)據(jù)類型,有時(shí)它可以轉(zhuǎn)化成int數(shù)據(jù)類型來代用。
2.熟練指針的使用。例如Uint是由雙字節(jié)拼接而成,有時(shí)用來存放16位地址。獲取其高八位和低八位地址的方法為:只要用uchar*p;p=&int0,則*p表示其高八位,*(++p)表示其低八位,非常方便。
3.使用自加、自減的方法為:a++;a-,它會調(diào)用INC、DEC指令,效率遠(yuǎn)比a=a+1;a=a-1高。
4.循環(huán):使用uchar a;for(a=1;a≤8;a++)…時(shí),條件a=8編譯后代碼比較繁瑣,可用for(a=8;a=a-1)…來代替,充分利用單片機(jī)的為零跳轉(zhuǎn)指令。同樣,在do{…}while()中也適用。
5.當(dāng)多個(gè)條件判別時(shí),if(A&&B&&C&&D),只要第一個(gè)條件A不符合,程序是不管后面的條件的,所以可把最可能出錯(cuò)的條件排在前面處理。
6.子程序的參量。調(diào)用子程序時(shí)若帶參量,程序會開辟存儲空間(如Rn)來存放參量,這個(gè)空間是可以充分利用的。如延時(shí)子程序void delay(uehar time){while(time一);J,可以延時(shí)相當(dāng)短的時(shí)間。
7.空指令NOP在C中用_nop一0實(shí)現(xiàn),定義在中。
8.求余運(yùn)算"%"操作是調(diào)用子程序來完成的,效率低。如果是求2的n次方的余數(shù),可使用位操作來代替。如:a=a%8可改用8=a&7,效率明顯提高。同樣2xN的乘除運(yùn)算可用移位來實(shí)現(xiàn)。如:a=a*2;b=h/2可改為a=a《1;b=b》1。
9.使用結(jié)構(gòu)體類型數(shù)組時(shí),在查找第n個(gè)值時(shí)要利用乘法指令(序號乘以類型寬度),當(dāng)程序高速運(yùn)行時(shí),可能會影響其速度。
10.Keil的軟件調(diào)試非常有用。筆者常將編譯后的程序與C源程序?qū)φ眨榭磪R編代碼、檢查不恰當(dāng)之處。有時(shí)還可用來計(jì)算子程序執(zhí)行時(shí)間(在確定精確延時(shí)程序參數(shù)時(shí)非常有用)。
【在單片機(jī)C語言編程中的心得體會】相關(guān)文章:
c語言心得體會04-30
c語言心得04-24
c語言的心得體會(精選11篇)11-02
c語言實(shí)習(xí)心得體會03-28
心得體會 c語言心得總結(jié)03-30
C語言實(shí)習(xí)的心得體會04-26
c語言的學(xué)習(xí)心得體會02-01
C語言實(shí)訓(xùn)心得體會05-24
C語言課程教案04-24
C語言學(xué)習(xí)心得體會03-21