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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設計應用 > 單片機設計經(jīng)驗技巧精華集錦(五)

          單片機設計經(jīng)驗技巧精華集錦(五)

          作者: 時間:2013-05-27 來源:網(wǎng)絡 收藏
          上的數(shù)據(jù)顯示在PC機監(jiān)視器上,而PC機的鍵盤信號可以在實驗板上得到顯示,將是多么有意思的事情??!

            第五步:學會A/D轉(zhuǎn)換

            MAP430帶有多通道12位A/D轉(zhuǎn)換器,通過這些A/D轉(zhuǎn)換器可以使操作模擬量,顯示和檢測電壓、電流等信號。學習時注意模擬地與數(shù)字地、參考電壓、采樣時間,轉(zhuǎn)換速率,轉(zhuǎn)換誤差等概念。使用A/D轉(zhuǎn)換功能的簡單的例子是設計一個電壓表。

            第六步:學會PCI、I2C接口和液晶顯示器接口

            這些接口的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。

            第七步:學會比較、捕捉、PWM功能

            這些功能可以使單片機能夠控制電機,檢測轉(zhuǎn)速信號,實現(xiàn)電機調(diào)速器等控制起功能。

            如果以上七步都學會,就可以設計一般的應用系統(tǒng),相當于學會十招降龍十八掌,可以出手攻擊了。

            第八步:學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計

            學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計是非常重要的,因為這是當前產(chǎn)品開發(fā)的發(fā)展方向。

            三、電子電路設計之C51單片機常見問題

            筆者在工作中實際使用過AT89C2051、AT89C51、AT89C52等51單片機,后來應用臺灣新茂、華邦等廠家的51單片機。實踐中遇到許多問題,都是書本上沒有的。我印象中,書本上的知識只有一頁插圖了,就是cpu的時序圖。最初直接用匯編寫程序,然后是C51嵌套匯編。編譯器曾用偉福系列編譯器,后來使用keil等,感覺這些編譯器大同小異。需要熟練的C語言基礎,加上單片機應用的特殊性。

            本文就51單片機應用中一些常見問題作個總結(jié),這都是我實際碰到過的,因為文章篇幅所限,這些問題遠遠不足以表達單片機的常見問題。希望對初學者有所幫助,文中不完善的地方務請指點。謝謝!

            1:C51編譯器如何區(qū)分位地址和字節(jié)地址

            是靠預定義實現(xiàn)的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者聲明了P0端口地址位于0x80,后者說明了P0端口的bit0,即P0.0位于位地址空間0x80處。這2個0x80具有完全不同的含義,靠關(guān)鍵字sfr和sbit來區(qū)別。這樣當程序被編譯時,編譯器會依此編譯成相應的匯編語言。例如:

            C51語句: P0 = 1;

            P0聲明為sfr,因此編譯成:mov 80h,01h,將把0x01數(shù)據(jù)送入0x80單元,由于0x80單元物理上對應P0端口,因此,P0.0腳將輸出高電平(其實是呈現(xiàn)高阻態(tài),P0口獨有的),其他.1-.7腳輸出低電平。

            C51語句: P0_0 = 1;

            P0_0聲明為sbit,因此編譯成:setb 80h,這將把位地址空間的0x80地址的bit的值置1。這個位正是P0口的bit0,執(zhí)行后,P0.0將輸出高阻態(tài)。而P0.1-.7不會變化。


          上一頁 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); })();