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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 第2節(jié):我眼中學(xué)習(xí)單片機的四個階段

          第2節(jié):我眼中學(xué)習(xí)單片機的四個階段

          作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
          從業(yè)十年,教你單片機入門基礎(chǔ) 第2講:

          第一階段:學(xué)會C語言的常用語法,熟悉51單片機開發(fā)平臺軟件keil的操作,了解單片機的大概原理特性,能讀懂按鍵,數(shù)碼管,跑馬燈,串口的簡單程序,能熟悉幾個常用的外圍芯片驅(qū)動。網(wǎng)上這方面優(yōu)秀的教程很多,我正在寫的這個連載《從業(yè)十年,教你單片機入門基礎(chǔ)》也是屬于這類入門教程之一。

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

          第二階段:我認為這個階段是四個階段中最重要的階段。很多初學(xué)者完成了第一階段的學(xué)習(xí),真正去面對一個小項目的時候,還是無從下手。他們不知道按鍵,顯示,通訊,應(yīng)用程序之間是如何關(guān)聯(lián)起來的,他們一旦遇到多任務(wù)項目的時候不知道如何并行處理,他們最缺的是程序的框架思路。網(wǎng)上有很多熱心牛人分享的程序框架思想,都值得大家學(xué)習(xí)和借鑒。我平時做項目是用狀態(tài)機的思路,就是用switch語句實現(xiàn)多任務(wù)的切換,再外加一個定時中斷產(chǎn)生不同的時間計時,有興趣的朋友可以看看我去年在本論壇寫的連載貼子《從業(yè)將近十年,手把手教你單片機程序框架》。

          第三階段:大家在做項目時,除了寫單片機的軟件,還不可避免的要跟整個電路的硬件打交道,掌握一些常用的硬件電路知識就顯得尤其重要。電阻,電容,電感,二極管,三極管,光藕的應(yīng)用,電壓差和參考地的關(guān)系,兩系統(tǒng)通信時需不需要共地的原因,隔離與非隔離的本質(zhì),常見的變壓整流電路,常見的外圍驅(qū)動電路等等。這方面優(yōu)秀的電子基礎(chǔ)教程很多,大家應(yīng)該主動找這方面的資料來學(xué)習(xí)學(xué)習(xí),我過一兩年后也打算寫寫這方面的連載貼子《從業(yè)十年,單片機常用硬件知識講解》。

          第四階段:有了前面三個階段的主動學(xué)習(xí)和積累,就可以去做項目了,在項目中學(xué)習(xí)。根據(jù)工作的需要來選擇學(xué)習(xí)哪個廠家的單片機,比如PIC,AVR,stm32等單片機廠家;根據(jù)工作的需要來決定是否需要學(xué)習(xí)匯編語言,有一些臺灣廠家的單片機并不能用C語言開發(fā),只能用匯編;根據(jù)工作的需要來深入研究相關(guān)行業(yè)所需的硬件電路知識;根據(jù)工作的需要來學(xué)習(xí)相關(guān)的外圍芯片驅(qū)動程序,這個階段的學(xué)習(xí)正如郭天翔老師所講的“缺什么補什么”。我本人也打算過兩三年后寫寫這方面的貼子,作為大家項目開發(fā)時的參考工具書來用,叫《從業(yè)十年,單片機常用外圍驅(qū)動程序集》。

          下節(jié)預(yù)告,單片機一個最重要的特性。



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