《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 單片機到嵌入式之路序列之一:簡單的討論一下C語言知識

單片機到嵌入式之路序列之一:簡單的討論一下C語言知識

2015-05-29
關(guān)鍵詞: C語言 位操作 寄存器 單片機

  一,、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)典。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com,。