一、C語言的好處 1.可移植性強(qiáng); 2.開發(fā)速度快,效率高; 3.結(jié)構(gòu)清晰 4.... 二、C語言的位操作 在單片機(jī)中C語言的位操作用的比較多,而且用的好對代碼的執(zhí)行效率都是很有幫助的,下面簡單介紹一下在單片機(jī)中的應(yīng)用,就算是拋磚引玉吧。 定義一個8位的寄存器(0xF0是寄存器的地址): #define REG 0xDE 1)對單個的位進(jìn)行賦值 (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使用位運(yùn)算"|" 位置0使用位運(yùn)算"&" 三、C語言的結(jié)構(gòu)體在單片機(jī)中的應(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; 像上面這種太普通了,下面來個難點(diǎn)的。 //時間結(jié)構(gòu)體 Dtime SetTM; typedef struct{ short Min; //最小值 short Max; //最大值 short Tv; //變量 }Limi; 這個結(jié)構(gòu)體就可以通過按鍵來控制,按鍵加減可以調(diào)節(jié)時間。 其實(shí)C語言*,這僅僅只是一個方面,像指針、函數(shù)、聯(lián)合體等等都是重點(diǎn),鏈表等等都是經(jīng)典。 先休息了,有空再繼續(xù)。。。 |