色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          AVR單片機(jī)C語言入門一例

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

           

          本文引用地址:http://cafeforensic.com/article/201611/318724.htm

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

           

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

           

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

           

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

           

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

           

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

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

           

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



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

          評論


          技術(shù)專區(qū)

          關(guān)閉