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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 手把手教您編寫第一個單片機程序

          手把手教您編寫第一個單片機程序

          作者: 時間:2013-02-26 來源:網(wǎng)絡(luò) 收藏

          //////////////////////////////////////////////////////////////////////////////////

          void Delayms(unsigned int t)//定義延時函數(shù)

          {

          unsigned int i,j;

          for(i=0;i

          for(j=0;j120;j++);//大約延時1毫秒

          }

          /////////////////////////////////////////////////////////////////////////////////////////

          這是一個常用的指示燈閃爍的程序,輸入完成以后,先不要馬上編譯,還需要作一些設(shè)置。

          五.工程選項設(shè)置

          這一步主要是設(shè)置時鐘頻率和產(chǎn)生HEX文件這兩項。進入工程選項有兩個途徑:從“Project”菜單進入和直接點擊工具欄快捷按鈕進入。這里使用工具欄快捷按鈕進入,點擊第二條工具欄的第7個按鈕(Target Opsions…),跳出選項對話框,默認選項卡為“Target”,如圖12,將晶振頻率設(shè)為你目標板所使用的晶振頻率,這里設(shè)為12.0;再點擊“Output”選項卡,將“Create HEX File ”復(fù)選框打勾,這個項設(shè)置絕不能忽略,否則您的工程就沒有 HEX文件產(chǎn)生。其他選項保持默認。最后點擊“OK”按鈕,完成選項設(shè)置。

          手把手教您編寫第一個單片機程序

          圖12

          六.編譯工程產(chǎn)生HEX文件

          點擊第二條工具欄的第三個按鈕(Rebuild),工程便進入編譯鏈接狀態(tài),“Build Output”信息欄就會出現(xiàn)相關(guān)的編譯信息,如圖13。從該信息欄可以知道程序的大小,使用了的多少內(nèi)部RAM和外部RAM、生成多少個代碼、是否生成HEX文件、有多少個錯誤和警告等信息。如果有錯誤,目標文件將不會被創(chuàng)建,只要雙擊錯誤信息,光標就會跳到C文檔錯誤代碼的行號或錯誤代碼的附近,方便您排查錯誤。

          手把手教您編寫第一個單片機程序

          圖13

          七.將HEX文件下載到單片機

          編譯通過的C代碼,在工程文件夾下就會生成很多文件,其中有兩個文件是最重要的,一個是擴展名為“.c”文件“LED.c”,這是移植程序用的C源文件,是程序的核心,擁有這個文件就相當于擁有整個程序;另一個是擴展名為“.hex”的文件“LED.hex”,這是下載程序用的文件。這兩個文件都可以用記事本打開?!癓ED.hex”文件是采用Intel hex文件格式存儲程序代碼的。下載程序的時用下載軟件打開這個hex文件,將文件里的程序代碼提取出來寫入單片機的程序存儲區(qū)里。

          在下載之前,您需要構(gòu)建一個單片機最小系統(tǒng),請參閱筆者的《學(xué)單片機從構(gòu)建最小系統(tǒng)開始》一文。下載軟件使用WSFISP軟件,也可以用AtmelISP軟件。下載線可根據(jù)筆者提供的原理圖自己DIY,也可以購買。51下載軟件操作都很簡單,本文不再敘述。


          上一頁 1 2 3 4 5 下一頁

          評論


          相關(guān)推薦

          技術(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); })();