一,、C語言的好處
1.可移植性強;
2.開發(fā)速度快,,效率高;
3.結(jié)構(gòu)清晰
4....
二、C語言的位操作
在單片機中C語言的位操作用的比較多,,而且用的好對代碼的執(zhí)行效率都是很有幫助的,,下面簡單介紹一下在單片機中的應(yīng)用,,就算是拋磚引玉吧。
定義一個8位的寄存器(0xF0是寄存器的地址):
#define REG 0xDE
1)對單個的位進行賦值
(1)將寄存器REG的第2位置“1”
REG |= (1 << 2);
(2)將寄存器REG的第2位清零
REG &= ~(1 << 2);
(3)將寄存器REG的第2和第4位置“1”
REG |= (1 << 4) | (1 << 2);
(4)將寄存器REG的第3和5位清零
REG &= ~( (1 << 5) | (1 << 3) );
所以書上就出了一些口訣:
位置1使用位運算"|"
位置0使用位運算"&"
三,、C語言的結(jié)構(gòu)體在單片機中的應(yīng)用
結(jié)構(gòu)體(struct)是由一系列具有相同類型或不同類型的數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合,,也叫結(jié)構(gòu)。但是有時候結(jié)構(gòu)體會涉及一些比較麻煩的事情:結(jié)構(gòu)體的大小與內(nèi)存對齊,。這個暫時不解釋,。下面主要講解一下如何應(yīng)用。
比如在時鐘程序中,,經(jīng)常就會用到結(jié)構(gòu)體,,結(jié)構(gòu)體用的好,事半功倍,。
//定義一個時間結(jié)構(gòu)體
typedef struct
{
u16 Year;
u8 Month;
u8 Day;
u8 Week;
u8 Hour;
u8 Min;
u8 Sec;
}Dtime;
像上面這種太普通了,,下面來個難點的。
//時間結(jié)構(gòu)體
Dtime SetTM;
typedef struct{
short Min; //最小值
short Max; //最大值
short Tv; //變量
}Limi; 這個結(jié)構(gòu)體就可以通過按鍵來控制,,按鍵加減可以調(diào)節(jié)時間,。
其實C語言*,,這僅僅只是一個方面,,像指針、函數(shù),、聯(lián)合體等等都是重點,,鏈表等等都是經(jīng)典。