<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          AVR單片機C語言入門一例

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

           

          本文引用地址:http://www.ex-cimer.com/article/201611/318724.htm

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

           

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

           

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

           

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

           

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

           

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

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

           

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



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

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();