學習51單片機過程中產(chǎn)生的幾大誤區(qū)介紹
在剛接觸單片機的初期,有許多人認為單片機非常難學,有太多的指令,太多的語法,還要會硬件,其實這些都不是問題,下面和大家聊聊,學習單片機,有哪些誤區(qū)?如何走出這些誤區(qū)?
誤區(qū)1:51單片機入門簡單51單片機入門簡單?我對于這個觀點持保留意見。想要入門51單片機,我不僅熟悉該款單片機外設,而且還要充分了解寄存器的某位的意義。對于時鐘,定時器的配置必須了如指掌。這樣無疑會增大我的學習難度與熟悉的周期。如果我們使用32位單片機的庫函數(shù)模式,我們只需要具備C語言的知識,了解API函數(shù),直接看已經(jīng)注釋過的寄存器意思即可,不需要了解其底層的硬件實現(xiàn),更不需要了解某個寄存器某個指定位的意義了。這樣,減少了我的工作量,從而降低了開發(fā)難度。你說是51單片機入門簡單,還是32位Cortex內(nèi)核微處理器簡單?
誤區(qū)2:51單片機的成本低
我是一個務實的人,正做過一個產(chǎn)品就知道,成本核算也要站很大一塊。舉個例子我之前做了一個多軸數(shù)控設備,先不談算法的事如果你用樹莓派去做,同樣的功能一個樹莓派的板子可能要200元,如果用stm32做自己畫板子30塊就能搞定,要是你做產(chǎn)品你會選哪種方式呢。
成本都是左右應用的主要因素。項目的立項主要考慮成本,銷售的定價主要成本。低成本的方案才會在市場里占有優(yōu)勢??墒?,51單片機真就是最低成本了嗎?非也。現(xiàn)在按照功能劃分,部分Cortex-m0系列的32位單片機的成本也能做3元人民幣。其性能已經(jīng)是51單片機的好幾倍了,而且更容易開發(fā)與維護。
還有另外一個成本:開發(fā)難度成本。51單片機不支持在線調(diào)試,有一些問題在編程初期沒有發(fā)現(xiàn),只有與硬件連接后才會顯現(xiàn)出現(xiàn)來,例如控制操作中經(jīng)常用到的延時。這時在線調(diào)試的巨大優(yōu)勢就體現(xiàn)出來了,它可以極其方便的查看微處理器當時的狀態(tài),使得問題的分析變得簡單而透明。從而,有效降低開發(fā)的難度,縮短開發(fā)周期,節(jié)約開發(fā)資金。
誤區(qū)3:51單片機可以學習寄存器的操作
寄存器不用死記硬背,有著10年老鳥經(jīng)驗的我,連一個寄存器都記不住。需要配置寄存器的時候,直接在網(wǎng)上或者書本上參考別人現(xiàn)成的配置程序是上策,查找芯片數(shù)據(jù)手冊是中策,死記硬背寄存器是最最下策。
可以說現(xiàn)在應用系統(tǒng)中絕大部分的項目,最簡單的8位51單片機就可以勝任,現(xiàn)在真正需要高檔單片機的項目還是少數(shù)。老板們不會投入多余的錢去選用你推薦的所謂高級單片機,大部分人遵循“只買對的不買貴的”這樣理性的原則,理性的人不會盲目的追隨比爾 蓋茨的不斷升級,因為這些東西一方面有技術發(fā)展的需求,但是也有相當一部分是老板們?yōu)樽非蟾笊虡I(yè)利益的炒作。因此我還是要說,如果你沒有學過C51單片機的話,還是要學C51單片機。要強調(diào)的是,說到底單片機只是一個電子產(chǎn)品或應用系統(tǒng)的一個組成部分,一般來說他在其中扮演的是中心控制器的角色,像人的大腦一樣相當重要。但是像人一樣,你還得有鼻子眼睛耳朵等傳感器,還要有手腳這些執(zhí)行機構才能構成一個完整的系統(tǒng)。也就是說學習者除了學習單片機之外,你還要學習其它方面的相關知識,比如傳感器、模擬電路、固態(tài)繼電器、步進電機等等。除了少部分大型分工特細的公司以外,現(xiàn)在大部分公司還是希望招聘那些具有多方面知識和技能的人,這些人的就業(yè)空間要廣闊的多。你只會單片機是遠遠不夠的。
因此我建議大家在單片機學習中,不要盲目跟風,一味追求高精尖。要切實學好一種機型,真正做到會用,能把它應用到你的工作和產(chǎn)品中,這才是最重要的。要做到這一點,你不僅要學習單片機,還需要學習相關的電子技術知識,要針對你的工作實際,擴大自己的知識面,不要一直停留在“跑馬燈”階段。要盡快進入應用,這樣才能成為一個有用的電子技術工程師。