剛開始學(xué)習(xí)的時(shí)候也是比較迷茫,不知道從哪里入手,同學(xué)推薦我先看郭天祥的“新概念51單片機(jī)c語言教程”,這本書算是我的啟蒙吧,書里面介紹了基本c語言知識(shí)和編程軟件keil,這本書好的一點(diǎn)就是淺顯易懂,直接是把我這個(gè)單片機(jī)小白領(lǐng)進(jìn)門的。書還有配套的視頻也可以找來看看,看視頻的話會(huì)更直觀一點(diǎn),便于快速入門。(這本書也有一定的局限性,后面再說,但入門足夠)
單片機(jī)前期的學(xué)習(xí)以會(huì)用為主。不要糾結(jié)于寄存器、定時(shí)器、中斷這些單片機(jī)的內(nèi)部結(jié)構(gòu)以及如何工作的,開始學(xué)習(xí)單片機(jī)就像學(xué)車一樣,學(xué)車時(shí)開始知道怎么加油掛擋剎車控制方向就好了,至于發(fā)動(dòng)機(jī)、變速箱、轉(zhuǎn)向助力是怎么配合的以后再說,先學(xué)會(huì)開車。學(xué)習(xí)單片機(jī)剛開始時(shí)就是學(xué)會(huì)如何編程控制就好,至于內(nèi)部結(jié)構(gòu),以后再說。
基本上看書、看視頻以后就可以編寫一個(gè)點(diǎn)亮led或一組流水燈的程序了,那么,恭喜你,就算是入門了。入門之后剛開始就自己編程還是有點(diǎn)困難,基本是看別人怎么用,怎么寫,先理解別人的程序,在理解的基礎(chǔ)上模仿和修改,在修改的基礎(chǔ)上編寫自己的程序,就這樣一步一步的過來。diangon.com,學(xué)習(xí)單片機(jī)重要的一點(diǎn)就是自己多寫程序,多調(diào)試,只看書或視頻效果不大,做到在練習(xí)中學(xué)習(xí),就像游泳一樣不管是用什么姿勢(shì)先下水再說^_^。
入門以后就是按部就班的學(xué)習(xí)了,i/o口,定時(shí)器,中斷,串口,數(shù)碼管 1602,182864,ad/da,步進(jìn)電機(jī),直流電機(jī),i2c,pwm,這些內(nèi)部資源和外部模塊依次學(xué)習(xí)以后就可以完成有點(diǎn)難度的工程,比如說做一個(gè)自動(dòng)循跡加避障的小車、一個(gè)12864帶遙控調(diào)節(jié)的萬年歷,諸如此類。用所學(xué)知識(shí)做出一個(gè)自己想要完成的小產(chǎn)品,還是有滿滿的成就感。
軟件的話主要有兩個(gè),一個(gè)是keil,另一個(gè)是proteus。keil軟件是編程和編譯軟件,把我們理解的c語言轉(zhuǎn)換為單片機(jī)可執(zhí)行的機(jī)器語言,我們?cè)趉eil里編寫控制程序,keil幫我們完成轉(zhuǎn)化,然后下載到單片機(jī)中執(zhí)行。proteus是電路仿真軟件,就是搭建一個(gè)電子電路模擬實(shí)際的硬件電路,這樣就不需要真正的硬件,我們就可以在仿真電路中關(guān)聯(lián)keil編譯好的程序,來驗(yàn)證我們的代碼。這樣的好處是只要有電腦我們就可以編程并驗(yàn)證,但是仿真電路是理想化的硬件,真正的硬件和仿真之間還是有很大區(qū)別的,尤其是高頻電路和模擬信號(hào),因此仿真電路剛開始可以用一下,還是要買一塊單片機(jī)開發(fā)板作為實(shí)際硬件來學(xué)習(xí)。
單片機(jī)的學(xué)習(xí)我理解是是入門簡(jiǎn)單,深入有難度。入門時(shí)按鍵可以采用延時(shí)的方法,但真正應(yīng)用起來基本上沒有人會(huì)用延時(shí)實(shí)現(xiàn),都是采用狀態(tài)機(jī)。剛開始任務(wù)少,怎么寫都可以,但是任務(wù)多的時(shí)候就要考慮資源的分配和程序的架構(gòu),這就上面所說的局限性,就需要深入的學(xué)習(xí)。
自學(xué)就是一點(diǎn)興趣,一點(diǎn)堅(jiān)持,再加一點(diǎn)耐心,多練習(xí),多總結(jié),方法總比問題多,肯定是可以學(xué)會(huì)的。