新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)C語(yǔ)言入門(mén)一例

AVR單片機(jī)C語(yǔ)言入門(mén)一例

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
AVR單片機(jī)C語(yǔ)言編譯軟件有IAR、ICCAVR、winavr、Atmanavr、CodeVisionAVR等。其中CodeVisionAVR又稱(chēng)CVAVR,它可以說(shuō)是目前最容易入門(mén)的C編譯器,它體積小巧,但是代碼效率卻很高, 風(fēng)格與keil-C51類(lèi)似,與Keil-C51一樣支持位變量、支持IO端口的位操作(其它的如IAR、ICCAVR、GCCAVR都沒(méi)有此功能)下面就以CodeVisionAVR1.25.1為例來(lái)說(shuō)說(shuō)如何使用這個(gè)軟件。

 

本文引用地址:http://butianyuan.cn/article/201611/318724.htm

設(shè)置軟件的工作界面。軟件的默認(rèn)字體并不太好看,需要設(shè)置一下,先運(yùn)行CodeVisionAVR,點(diǎn)擊菜單欄的“Settings”選擇“Editor”就可以打開(kāi)設(shè)置界面了,其中“Font”就是字體,請(qǐng)選擇自己喜歡的字體和大小,推薦使用Fixedsys字體;另外“Comments”是注釋?zhuān)伾x擇灰白色比較容易區(qū)分;關(guān)鍵字“C Keywords”選擇藍(lán)色比較大眾化。這樣,工作界面就算設(shè)置完畢了。

 

新建工程。點(diǎn)擊菜單欄的“File”選擇“New”;在對(duì)話框里選擇“Project”新建一個(gè)工程;在新建工程對(duì)話框里選擇“yes”就出現(xiàn)了向?qū)Ы缑媪?。我們是以ATmega48為例,芯片當(dāng)然是選擇ATmega48了;芯片時(shí)鐘一般是默認(rèn)1M內(nèi)部RC時(shí)鐘,在時(shí)鐘框里輸入“1”就是了;由于我們剛開(kāi)始還不熟練,所以其它的選項(xiàng)就不必理會(huì);最后,我們點(diǎn)擊向?qū)У?ldquo;File”菜單,選擇“Generate,Save and Exit”保存向?qū)Мa(chǎn)生的文件,一共是3個(gè),分別是C文件、工程文件、向?qū)募?/p>

 

編寫(xiě)源代碼。完成上面的步驟后就可以出現(xiàn)主編輯窗口了,里面的內(nèi)容就是軟件向?qū)Мa(chǎn)生的一些初始化代碼,如果你不喜歡這些代碼,可以把其中的一部分或者全部刪除, 并寫(xiě)入自己的代碼。

 

編譯源代碼。寫(xiě)好代碼后點(diǎn)擊編譯按鈕(或者點(diǎn)擊菜單欄的“Project—>Make”),如果源代碼沒(méi)有錯(cuò)誤,那么就可以產(chǎn)生燒寫(xiě)單片機(jī)所需要的hex文件了,如果源代碼有錯(cuò)誤的話則不會(huì)產(chǎn)生hex文件,并且軟件會(huì)在左邊的窗口里顯示出紅色的錯(cuò)誤提示,單擊它就可以定位到錯(cuò)誤的地方了。

 

燒寫(xiě)hex文件。燒寫(xiě)也稱(chēng)‘編程’或者‘下載’;CVAVR集成芯片的ISP下載功能。不過(guò)由于這個(gè)軟件是E文的,怕有部分E文不好的朋友操作不慎把芯片鎖死,所以這個(gè)步驟就不詳細(xì)的介紹了,推薦使用雙龍公司的中文SL-ISP編程軟件。

 

下面是一個(gè)最簡(jiǎn)單的例子,就是讓ATmega48單片機(jī)的‘PD3’引腳輸出1Hz的方波驅(qū)動(dòng)LED。 硬件方面,新買(mǎi)回來(lái)的ATmega48的時(shí)鐘是默認(rèn)的內(nèi)部RC振蕩時(shí)鐘,頻率是1MHz,我們只要把芯片接上5V電源 就可以工作了,電路夠簡(jiǎn)單吧,代碼如下:

//編譯器: CodeVisionAVR 1.25.1 Evaluation
//芯片時(shí)鐘: 1000000Hz
#include//單片機(jī)是ATmega48
#include//延時(shí)函數(shù)的頭文件
voidmain(void)//主函數(shù),單片機(jī)從這里開(kāi)始運(yùn)行
{
PORTD.3=0;//配合DDRD.3=1使用就使PD3端口推換輸出低電平
DDRD.3 =1;//設(shè)置PD3引腳為輸出
while(1)//循環(huán)語(yǔ)句,括號(hào)里面的表達(dá)式是"真"就循環(huán)
{
delay_ms(500);//延時(shí)500ms
PORTD.3=~PORTD.3;//電平取反
};
}

 

另外有一點(diǎn)要提一下的就是,上面的源代碼編譯后產(chǎn)生的機(jī)器代碼大小是111words,就是222字節(jié),表面上看這個(gè)CVAVR軟件的代碼效率不高,但是事實(shí)卻恰恰相反,隨著源代碼的增多,你就會(huì)發(fā)現(xiàn),這個(gè)編譯軟件產(chǎn)生的機(jī)器代碼不管是大小還是運(yùn)行時(shí)間都是非常優(yōu)秀的,這也是本站推薦使用的其中一個(gè)原因。



關(guān)鍵詞: AVR單片機(jī)C語(yǔ)

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉