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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Proteus的SPI接口的設(shè)計(jì)與實(shí)現(xiàn)

          基于Proteus的SPI接口的設(shè)計(jì)與實(shí)現(xiàn)

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

          通常為了節(jié)省開發(fā)的時間,一般用好的工程模板,這里使用LPC2100系列工程模板。模板中包含LPC2100系列ARM7微控制器的啟動文件,包括 STACK.S、HEAP.S、STARTUP.S和TARGET.C;模板還包含LPC2100系列ARM7微控制器的頭文件,分散加載描述文件(如 mem_a.scf、mem_b.scf和mem_c.scf)等等。這樣在以后的程序代碼編寫時就可以直接使用這些工程模板,而不用再編寫初始、啟動等程序代碼了,只需根據(jù)不同的要求編寫“main.C”就行了,因而節(jié)省了大量時間,大大提高了工作效率。

          這里主要說明“main.C”的編寫,要的功能是使用硬件輸出0~F的數(shù)據(jù),通過74HC595控制LED數(shù)碼管顯示0~F字符,同時控制4個LED顯示對應(yīng)的十六進(jìn)制數(shù)。程序源代碼如下:

          4 仿 真

          用ADS集成開發(fā)環(huán)境進(jìn)行程序的編譯連接設(shè)置,ADS集成開發(fā)環(huán)境是ARM公司推出的ARM核微控制器集成開發(fā)工具,英文全稱為ARM Developer Suite,成熟版本為ADS1.2。ADS1.2支持ARM10以前的所有ARM系列微控制器,支持軟件調(diào)試,支持匯編、C和C++源程序,具有編譯效率高、系統(tǒng)庫功能強(qiáng)等特點(diǎn)。打開ADS1.2集成開發(fā)環(huán)境CodeWarrior IDE,使用事先加入的工程模板建立一個新的工程spi.mcp,把以上編好的代碼文件main.c添加進(jìn)工程。進(jìn)行相關(guān)設(shè)置后,選擇 Projeet→Make命令,編譯并連接工程,生成spi.hex文件。

          在原理圖中雙擊微控制器LPC2106,出現(xiàn)一屬性設(shè)置窗口Edit Component,如圖2所示。在其中的ProgramFile中添加上面生成的spi.hex文件的路徑,單擊OK完成設(shè)置。

          點(diǎn)擊原理圖左下角的運(yùn)行按鈕即開始仿真運(yùn)行。數(shù)碼管顯示發(fā)送的O~F的數(shù)據(jù),LED顯示的是相對應(yīng)的十六進(jìn)制值。仿真結(jié)果完全符合要求。

          結(jié) 語

          本文結(jié)合一個簡單的實(shí)驗(yàn)詳細(xì)說明了ProteuS在ARM開發(fā)中的應(yīng)用??梢钥闯?,功能十分強(qiáng)大,能仿真各種數(shù)字模擬電路,且操作簡單,使用方便。使用進(jìn)行ARM的虛擬開發(fā),不僅可以減少實(shí)驗(yàn)硬件資本的投入,還突破了實(shí)際開發(fā)板中實(shí)驗(yàn)內(nèi)容的局限性,使開發(fā)者能夠充分發(fā)揮自身的主動性。使用Pro—teus仿真進(jìn)行系統(tǒng)虛擬開發(fā)成功之后再進(jìn)行實(shí)際制作,無疑可以提高開發(fā)效率、降低開發(fā)成本、提升開發(fā)速度,具有較高的推廣應(yīng)用價值。

          c++相關(guān)文章:c++教程



          上一頁 1 2 下一頁

          評論


          相關(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); })();