單片機入門的幾點建議
單片機的重要性在后PC時代逐漸加重了,現(xiàn)在更多的電子設計者和愛好者討論最多的話題莫過于嵌入式系統(tǒng)的設計,C51、VHDL、RTOS、CPLD、FPGA、DSP、ARM已是當今掛在電子工程師嘴邊最多的幾個詞,由于工藝的進步,家庭智能化已不是空中樓閣,其中功能越來越強大、體積越來越小、成本越來越低的MCU出現(xiàn)正是這場革命的推動者。那么,做為一個電子設計者、愛好者以及即將成為電子工程師的在校學生,為了迎接這常革命,或者說為了找到一份自己心儀的工作,我們應該具備哪些知識呢?面對這么多必須的技術,作為一個初學者我們又該從何學起?學好這些東西的代價如何?等等…….,這些都是前段時間朋友們問我最多的問題了,由于時間關系,我就不一一回信做答了,這里就寫寫我走過的路和一些個人心得,希望對同仁們有所啟發(fā)。
我是97年開始接觸電腦的,那時我對電腦的概念幾乎為0,開始是從QB(VB的前身)學起,比較幸運吧,我認為這是最適合初學者的語言了,雖然剛開始我什么都不懂,就是直到現(xiàn)在我也沒認真的寫過一段VB的程序,可是它給了我很多概念性的東西,也是我C的入門老師了。我比較笨,所以始終認為學東西一步一步來,從淺到深,沒學好不要緊,但是概念的東西要把握住,最好入門時有人教或有現(xiàn)成的東西摹仿,這樣最省時間,也比較有成就感而少了一些挫敗。
我的專業(yè)是測控技術,萬金油,什么都學,什么都半桶水的那種。不過出來做了幾年開發(fā)的工作后,我發(fā)現(xiàn)我的專業(yè)還是比較好的,比較勢利的說就是更切中于市場,總結現(xiàn)階段電子設計工程師必需的技術和技能,我認為有以下幾點:1是大學里學習的最基礎的東西,包括電路、數(shù)電、模電,當然還有高等數(shù)學和英語了,重要性我就不強調(diào)了,不過還得說說E語,害死人的東西了,沒辦法,誰讓現(xiàn)在的技術資料全都是E文的,翻譯的知識不是過時就是不知其所云,對一項新技術掌握的程度和速度——這是一項非常重要的能力,否則你只能吃別人的剩飯。2是單片機和C語言,這是電子工程師的工具,不學不行,不過剛學習時不要貪多,也不要好高務遠,老老實實的一步一步來,多動手,要重視概念,東西都是相通的,會了C51轉到AVR C也就不用一個星期了,具體項目設計時根據(jù)各種單片機的特點進行選擇就行了。我是從8031開始學的,純理論,就是上機實驗也是聽出來的,那時候C51可沒出來呢,中國大學的弊端啊,經(jīng)費少,設備陳舊,老師光說不練,打擊積極性啊。真正的動手是從到公司工作開始的,自己學PROTEL(這也是必需的,就不用我廢話了)再用公司的錢畫板(***人的錢,不用白不用),然后照書上抄例子,具體的學習過程請看下文專門介紹。3點必需知識是CPLD/FPGA設計,我個人用途最多的是在結構化設計方面,CPLD非常靈活,有著很多獨特的用途(篇幅有限,我就不多介紹,請看網(wǎng)站的相關文章),隨著工藝的進步,價格在一步一步的走低,相信不久它會象單片機一樣遍地開花的。4點必備的知識是嵌入式操作系統(tǒng),如KEIL的TINY OS,Ucus,Ulinux,因為你不可能整天圍著低端產(chǎn)品轉吧,相信有一天你會用到16位32位的單片機,這時候你就不能老用C51的編程思想了,試想C++用在單片機里的快感吧:)5是DSP了,我精力有限,選修,呵呵,就不多說了。
總之,小平同志說了,不管黑貓白貓,抓住老鼠的就是好貓。在產(chǎn)品設計時也是一樣,只要你知識全面,在設計時綜合考慮,靈活應用,只要是最符合的就是最好的,不過這需要更多的知識作為后盾的:)前面廢話太多,還是轉回單片機入門的話題吧。
我是從8031開始的,學習時有一點微機原理的知識,8086那種,學校里就只能教這些落伍的但最基礎的東西了,數(shù)電和模電那時也是有點概念的,所以我個人認為我單片機入門是比較快的。剛開始我們學的是51的基本原理、架構,后來就是指令集,我的老師是匯編專家,所以扣的東西很細,哪個指令執(zhí)行幾個周期啊、直接尋址間接尋址的區(qū)別啊,ACALL、LCALL有什么不一樣啊等等,這些問題都要求我們深刻到心,所以說初學者有高手(起碼要老手)指點,如果一點概念都沒有就想靠自學成才是非常難的,不過出來后發(fā)現(xiàn)這些東西用的較少,可是對加深理解倒是非常有幫助的。學校里學的東西主要是有一個概念,練習編程也主要是看別人的程序,就算是上機也是把別人的程序抄進去后編譯完成就行了(有時候程序可不都對,能編譯出來也不容易?。海。?,因為那時實驗設備較貴,中國領導人急功近利,對一般教育投入的基金不多,所以就算我是科班出身,但是編程器也是工作后才開始用到的,那時只知道有編程器這樣的一個把HEX文件寫進單片機里的東東,仿真器倒是有幾個,不過是老師的實驗品,限制很多,什么P0、P2口不能做IO口,EA腳仿真時要接地啊,很煩人,所以到現(xiàn)在為止我對仿真器都有排斥,其實沒仿真器也有好處的,我的幾個比較大的項目就是在沒仿真器的情況下完成的。學習知識動手是少不了的,特別是應用性的知識,不多動手絕對是行不通的。
我學習單片機真正的動手是從工作后開始,自己學PROTEL,然后用公司的錢畫了板(花了400元,深圳價),接著找現(xiàn)成的程序編譯后燒進單片機里驗證,不過這時候已沒人教你了,工作后就是這樣,雖然公司招人時說有培訓,但那只限于特定的知識。我第一次實驗就連晶振都不起震,對著書畫的板的,一切沒錯啊,弄了兩天,問了很多人,跳了幾條線,最后把書上畫的33PF的電容換成22PF的就OK了,就這么簡單的問題卻搞的我灰頭灰腦的,后來照書上的程序又運行了幾個,很少有現(xiàn)成就能用的,花的時間不少,倒是有一個和我一起進公司的同事,他沒有基礎,所以買了一個學習開發(fā)板,最后學起來入門的好象比我快,可能是我比較笨吧:) 可是在買開發(fā)學習板時也是出了問題的。下面就是我針對自己和別人在學習中出現(xiàn)的問題向初學者提幾個建議:
1、 學好單片機要花多少錢?
這個是大家關心的問題,現(xiàn)在沒錢就做不了事的,大學的學費都會使某些家庭家破人亡呢(說笑了)??傮w來說學習單片機從89C51開始比較好,最基礎,學的人多,問的地方也多,盜版的東西也多。學習51需要一個程序編譯器,KEIL的C51大名鼎鼎,7.04版盜版的都出來了,對學習來說盜就盜一回吧,這一項花銷是0。編程器呢?我想你是比較幸運的,現(xiàn)在有ISP下載的單片機,可以在線下載程序,這是現(xiàn)在技術的趨勢,學習和小批量的產(chǎn)品用這個都可以了,89S51、52、53都支持ISP下載功能,AVR的單片機大部分也都支持,我最反對個人買編程器的,特別是買一些雜牌的,能省則省,這一項只買一個下載線就行了(自己做也行,不過不會給你省錢的,事也不少),20錢。在有就是一塊DEMO板了,自己做也可以,不過就是自己做最簡單的也要100多,我是反對初學者自己做板的,精力廢不起,你是要學單片機的不是學PROTEL的,再說初學者很少有一次就搞定板的?,F(xiàn)在DEMO板很多,這部分是主要花錢的地方,100到700都有,關鍵是結合自己的情況了。有錢的還可以找輔導,1000元左右吧。所以我說學習單片機只要花100到2000元就行了,關鍵是看自己怎么想了。
2、 DEMO板選擇要注意的問題
現(xiàn)在板子很多,檔次和價格也很多。選DEMO版主要注意2點,<1>是功能,板子最好采用模塊化設計,每個模塊都要和單片機獨立分開,留出引線,這樣一來實驗時可以動手插線,加深電路的認識,也給以后開發(fā)時留有余地,另外單片機的管腳也都要連出來,作用也和上面的一樣,這樣的學習板以后可以做開發(fā)板用,還有一定要有ISP接口啊。仿真功能可以不要,那也要花錢的,在有了ISP接口下載后其做用真的很小了,有時侯仿真功能出了問題更難找(不用仿真器的調(diào)試方法請看本站的相關文章)。不要只關心價格,既然要買最關心的應該是自己最需要什么。如果沒錢或愛好者可以選功能少的,專業(yè)人士我想最好一次性買功能全的,以后做項目時可以當開發(fā)板用,不用花第一次開板的錢,我想帶有CPLD和多CPU的最適合了,可編程的器件多以后的用處就多,不要學完后板就沒用了。對了,板的尺寸一定要關心,不要只看介紹上的照片啊,我就上了一次當。<2>點關心的是幫助文檔,這可是關鍵的地方,花了錢買了東西,聽他吹的功能很多很多,回來發(fā)現(xiàn)幫助文檔簡簡單單,可照著操作的東西沒有,你還得從新摸索一遍,這樣你的錢不就白花了,更有甚者給你的例子程序都是錯的,那你就哭吧,對于初學者,那你就跳樓吧。這可是重點的,因為現(xiàn)在做DEMO板的人多,利潤低,很多人都是抄的,可能他本人都沒上機試過,你別只聽他說有論壇支持,那是虛的東西,只有論壇支持那你直接上論壇去算了,干嘛要花這錢?技術支持也重要,但不能寄托在這上,試想那么多人有那么多問題,他該理會哪個好呢?所以關鍵還是要看文檔,不要看有多少資料,要看是不是開發(fā)者本人寫的,用心不用心,可照著上面的步驟操作嗎?
評論