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