如何才能有效的學(xué)習(xí)單片機(jī)編程
如何才能有效的學(xué)習(xí)單片機(jī)編程
如何才能有效的學(xué)習(xí)單片機(jī)編程?想了解更多的信息嗎,和學(xué)習(xí)啦小編一起看看吧!以下是學(xué)習(xí)啦小編分享給大家的有效的學(xué)習(xí)單片機(jī)編程的方法,希望可以幫到你!
有效的學(xué)習(xí)單片機(jī)編程的方法
學(xué)習(xí)單片機(jī)的最有效方法是理論與實(shí)踐并重
對(duì)一個(gè)初學(xué)單片機(jī)的人來(lái)說(shuō),如果按教科書(shū)式的學(xué)法,上來(lái)就是一大堆指令、名詞,學(xué)了半天還搞不清這些指令起什么作用,能夠產(chǎn)生什么實(shí)際效果,那么也許用不了幾天就會(huì)覺(jué)得枯燥乏味而半途而廢。所以學(xué)習(xí)與實(shí)踐結(jié)合是一個(gè)好方法,邊學(xué)習(xí)、邊演練,循序漸進(jìn),這樣用不了幾次就能將用到的指令理解、吃透、扎根于腦海,甚至“根深蒂固”。也就是說(shuō),當(dāng)你此次學(xué)習(xí)完某幾條指令后(一次數(shù)量不求多,只求懂),接下去就該做實(shí)驗(yàn)了,通過(guò)實(shí)驗(yàn),使你感受剛才的指令產(chǎn)生了控制效果,眼睛看得見(jiàn)(燈光)、耳朵聽(tīng)得到(聲音),更能深刻理解指令是怎樣轉(zhuǎn)化成信號(hào)去控制電子產(chǎn)品的。說(shuō)句過(guò)分的話,單片機(jī)與其說(shuō)是學(xué)出來(lái)的,還不如說(shuō)是做實(shí)驗(yàn)練出來(lái)的,何況做實(shí)驗(yàn)本身也是一種學(xué)習(xí)過(guò)程。因此邊學(xué)邊練的學(xué)習(xí)方法,效果特別好,許多讀者經(jīng)3~6個(gè)月的學(xué)習(xí)已能開(kāi)發(fā)簡(jiǎn)單的產(chǎn)品了(如霓紅燈廣告牌控制、累加計(jì)數(shù)器等)。
學(xué)習(xí)單片機(jī)要合理安排學(xué)習(xí)時(shí)間持之以恒
學(xué)習(xí)單片機(jī)可不能“三天打魚(yú)、二天曬網(wǎng)”,要有持之以恒的毅力與決心,學(xué)習(xí)完幾條指令后,就應(yīng)及時(shí)做實(shí)驗(yàn),融會(huì)貫通,而不要等幾天或幾個(gè)星期有時(shí)間后再做實(shí)驗(yàn),這樣效果不好甚至前學(xué)后忘。另外要有打“持久戰(zhàn)”的心理準(zhǔn)備,不要興趣來(lái)時(shí)學(xué)上幾天,無(wú)興趣時(shí)涼上幾星期。學(xué)習(xí)單片機(jī)很重要的一點(diǎn)就是持之以恒。
學(xué)習(xí)單片機(jī)要使用循環(huán)學(xué)習(xí)法使之根深蒂固
筆者曾在其它刊物舉辦過(guò)《手把手教你學(xué)單片機(jī)》講座,該講座入門起點(diǎn)低,很多朋友覺(jué)得好學(xué)、易學(xué),很快就能將講座從頭至尾學(xué)完、學(xué)懂,但過(guò)了幾個(gè)月,在開(kāi)發(fā)產(chǎn)品時(shí)對(duì)指令的具體作用就有些淡忘了。根據(jù)現(xiàn)代科學(xué)的研究,對(duì)只短暫學(xué)過(guò)一遍的知識(shí),充其量只比浮光掠影稍好。因此,較好的方法是,過(guò)一段時(shí)間后(1~2個(gè)月)再重新做一遍,這樣反復(fù)循環(huán)幾次就能徹底弄懂消化,永不忘卻。有道是:若人生能細(xì)看《水滸傳》10遍,那么里面的故事內(nèi)容、人物場(chǎng)情將永生不忘。
學(xué)習(xí)單片機(jī)要進(jìn)行適當(dāng)投資購(gòu)買實(shí)驗(yàn)器材及書(shū)籍資料
單片機(jī)技術(shù)是一門含金量高的技術(shù),一旦學(xué)會(huì)后,它給你帶來(lái)的效益回報(bào)當(dāng)然也高,無(wú)論是應(yīng)聘求職還是自起爐灶開(kāi)廠辦公司,其前景是光明無(wú)限。因此在學(xué)習(xí)時(shí)要舍得適當(dāng)投資購(gòu)買必要的學(xué)習(xí)、實(shí)驗(yàn)器材,另外還要經(jīng)常去科技圖書(shū)店看看,購(gòu)買一些適合自己學(xué)習(xí)、提高的書(shū)籍??傊?,春天不播種哪來(lái)秋天的收獲?考慮到學(xué)習(xí)成本,對(duì)初學(xué)者可采用“程序完成后軟件仿真→單片機(jī)燒錄程序→試驗(yàn)板通電實(shí)驗(yàn)”的方法(現(xiàn)在的快閃型單片機(jī)其程序可燒寫1000次以上),這樣整套實(shí)驗(yàn)器材(不包括PC機(jī))只有幾百元,對(duì)大部分已工作的愛(ài)好者來(lái)說(shuō)都有這個(gè)能力承受。而經(jīng)濟(jì)條件較好的讀者可考慮使用在線仿真器(ICE)進(jìn)行實(shí)驗(yàn),這樣學(xué)習(xí)時(shí)直觀性更好。
總之這里所談的就是作者的親身體驗(yàn)。我們希望以最實(shí)用的方法,最易入門的手法,將初學(xué)者領(lǐng)進(jìn)單片機(jī)世界的大門里,使這些僅稍懂硬件原理的人通過(guò)實(shí)踐能理解軟件的作用,讓他們知道在單片機(jī)組成的系統(tǒng)中硬件與軟件的區(qū)分并不絕對(duì),硬件能做的工作一般情況下軟件也能完成,軟件的功能也可用硬件替代。等初步學(xué)會(huì)了單片機(jī)軟件設(shè)計(jì)后,可將通常由硬件完成的工作交由軟件實(shí)現(xiàn),這樣,系統(tǒng)的體積、功耗、成本將大大降低,而功能得到提升與增強(qiáng),使習(xí)慣于傳統(tǒng)電路設(shè)計(jì)的人對(duì)單片機(jī)產(chǎn)生一種妙不可言的相見(jiàn)恨晚之感,感覺(jué)到真正找到了一種理想化的器件,真正感受、體會(huì)到現(xiàn)代單片微型計(jì)算機(jī)的強(qiáng)大作用,從而投身于單片機(jī)的領(lǐng)域中。只要你肯努力、下功夫、多實(shí)踐,一定會(huì)成功的。
有效的學(xué)習(xí)單片機(jī)編程的建議
1、整體了解
要知道單片機(jī)是什么?單片機(jī)有何用?單片機(jī)系統(tǒng)設(shè)計(jì)的流程是怎樣的、需要掌握哪些輔助軟件(當(dāng)然就包括相應(yīng)的編程語(yǔ)言)?怎樣設(shè)計(jì)算法、寫出程序?怎樣燒錄程序?單片機(jī)是怎樣工作的?怎樣讓它能支配機(jī)器按照人的需要進(jìn)行動(dòng)作?
了解這些之后,我們的學(xué)習(xí)就有了目標(biāo)和方向。
至于這些問(wèn)題的解答,主要應(yīng)該還是在圖書(shū)館或網(wǎng)上的各種資料中尋找!
2、探索
單片機(jī)很難學(xué),是因?yàn)槠鋬?nèi)部結(jié)構(gòu)、編程語(yǔ)言抽象,且實(shí)際應(yīng)用中與其他電子技術(shù)和元器件知識(shí)相互關(guān)聯(lián),需結(jié)合起來(lái)一起設(shè)計(jì)進(jìn)行開(kāi)發(fā)。
所以,第二階段要了解單片機(jī)的內(nèi)部結(jié)構(gòu)是怎樣的?單片機(jī)開(kāi)發(fā)經(jīng)常會(huì)用到哪些電子技術(shù)和元器件知識(shí)?如何將一條條編程指令組合成一段段有效的程序?并不斷嘗試,變換各種不同的描述方法,燒錄不同的程序觀察比較運(yùn)行結(jié)果,分析出現(xiàn)的現(xiàn)象及其原因。這將給你的學(xué)習(xí)帶來(lái)很大幫助!并且,程序的成功燒錄和運(yùn)行,也能極大增強(qiáng)你的自信!
3、解密
之所以單片機(jī)能成為控制核心,設(shè)計(jì)出包羅萬(wàn)象的應(yīng)用系統(tǒng)來(lái),是因?yàn)殚_(kāi)發(fā)者利用了單片機(jī)提供的種種功能及各種外設(shè)。
因此,第三階段我們要掌握單片機(jī)的各種功能,再加上諸如傳感器、模數(shù)轉(zhuǎn)換、掃描顯示、串行、中斷的應(yīng)用思維,結(jié)合更多的元器件、電子電路知識(shí),逐個(gè)學(xué)習(xí)、體會(huì)實(shí)際的單片機(jī)系統(tǒng)的秘密。
4、遠(yuǎn)航
通過(guò)以上三個(gè)階段,大家基本就可掌握單片機(jī)的應(yīng)用了。但要設(shè)計(jì)出豐富的單片機(jī)系統(tǒng),解決復(fù)雜的實(shí)際問(wèn)題,還需要了解更多的外設(shè)知識(shí)及其與單片機(jī)的聯(lián)系(如電動(dòng)機(jī)、各類存儲(chǔ)器、繼電器、紅外管等)。這些需要不斷的學(xué)習(xí)和積累。有時(shí)候,接到一些開(kāi)發(fā)任務(wù),就需要你針對(duì)這個(gè)任務(wù)自覺(jué)地去搜集、學(xué)習(xí)相關(guān)知識(shí),在實(shí)踐中不斷學(xué)習(xí)和提高。
5、總之
1)先通過(guò)各種文獻(xiàn)資料了解基本結(jié)構(gòu),掌握必備的基礎(chǔ)編程能力;
2)買開(kāi)發(fā)板動(dòng)手實(shí)踐,遵從教學(xué)視頻做相應(yīng)的更深一步的了解;
3)試著設(shè)計(jì)算法,編寫程序,燒錄程序,運(yùn)行,并分析結(jié)果;
4)對(duì)程序進(jìn)行修改,同時(shí)觀察運(yùn)行結(jié)果的變化,進(jìn)一步了解單片機(jī)的運(yùn)行及控制原理,總結(jié);
5)試著進(jìn)行新的開(kāi)發(fā),在開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)并解決問(wèn)題,分析總結(jié)相應(yīng)元件的學(xué)習(xí)套路,才能不斷進(jìn)步!
單片機(jī)編程知識(shí)問(wèn)答
1. C語(yǔ)言和匯編語(yǔ)言在開(kāi)發(fā)單片機(jī)時(shí)各有哪些優(yōu)缺點(diǎn)?
答:匯編語(yǔ)言是一種用文字助記符來(lái)表示機(jī)器指令的符號(hào)語(yǔ)言,是最接近機(jī)器碼的一種語(yǔ)言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語(yǔ)言可能有所差異,所以不易移植。
C語(yǔ)言是一種結(jié)構(gòu)化的高級(jí)語(yǔ)言。其優(yōu)點(diǎn)是可讀性好,移植容易,是普遍使用的一種計(jì)算機(jī)語(yǔ)言。缺點(diǎn)是占用資源較多,執(zhí)行效率沒(méi)有匯編高。
對(duì)于目前普遍使用的RISC架構(gòu)的8bit MCU來(lái)說(shuō),其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語(yǔ)言編寫,一條C語(yǔ)言指令編譯后,會(huì)變成很多條機(jī)器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問(wèn)題。
而且一些單片機(jī)廠家也不一定能提供C編譯器。而匯編語(yǔ)言,一條指令就對(duì)應(yīng)一個(gè)機(jī)器碼,每一步執(zhí)行什幺動(dòng)作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來(lái)也比較方便。所以在單片機(jī)開(kāi)發(fā)中,我們還是建議采用匯編語(yǔ)言比較好。
如果對(duì)單片機(jī)C語(yǔ)言有興趣,HOLTEK的單片機(jī)就有提供C編譯器,可以到HOLTEK的網(wǎng)站免費(fèi)下載使用。
2. C或匯編語(yǔ)言可以用于單片機(jī),C++能嗎?
答:在單片機(jī)開(kāi)發(fā)中,主要是匯編和C,沒(méi)有用C++的。
3. 搞單片機(jī)開(kāi)發(fā),一定要會(huì)C嗎?
答:匯編語(yǔ)言是一種用文字助記符來(lái)表示機(jī)器指令的符號(hào)語(yǔ)言,是最接近機(jī)器碼的一種語(yǔ)言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語(yǔ)言可能有所差異,所以不易移植。
對(duì)于目前普遍使用的RISC架構(gòu)的8bit MCU來(lái)說(shuō),其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語(yǔ)言編寫,一條C語(yǔ)言指令編譯后,會(huì)變成很多條機(jī)器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問(wèn)題。而且一些單片機(jī)廠家也不一定能提供C編譯器。而匯編語(yǔ)言,一條指令就對(duì)應(yīng)一個(gè)機(jī)器碼,每一步執(zhí)行什么動(dòng)作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來(lái)也比較方便。所以在資源較少單片機(jī)開(kāi)發(fā)中,我們還是建議采用匯編語(yǔ)言比較好。
而C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),并具備匯編語(yǔ)言的功能。C語(yǔ)言有功能豐富的庫(kù)函數(shù)、運(yùn)算速度快、編譯效率高、有良好的可移植性,而且可以直接實(shí)現(xiàn)對(duì)系統(tǒng)硬件的控制。C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,它支持當(dāng)前程序設(shè)計(jì)中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。
此外,C語(yǔ)言程序具有完善的模塊程序結(jié)構(gòu),從而為軟件開(kāi)發(fā)中采用模塊化程序設(shè)計(jì)方法提供了有力的保障。因此,使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)已成為軟件開(kāi)發(fā)的一個(gè)主流。用C語(yǔ)言來(lái)編寫目標(biāo)系統(tǒng)軟件,會(huì)大大縮短開(kāi)發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。
綜上所述,用C語(yǔ)言進(jìn)行單片機(jī)程序設(shè)計(jì)是單片機(jī)開(kāi)發(fā)與應(yīng)用的必然趨勢(shì)。所以作為一個(gè)技術(shù)全面并涉足較大規(guī)模的軟件系統(tǒng)開(kāi)發(fā)的單片機(jī)開(kāi)發(fā)人員最好能夠掌握基本的C語(yǔ)言編程。
4. 當(dāng)開(kāi)發(fā)一個(gè)較復(fù)雜而又開(kāi)發(fā)時(shí)間短的項(xiàng)目時(shí),用C還是用匯編開(kāi)發(fā)好?
答:對(duì)于復(fù)雜而開(kāi)發(fā)時(shí)間緊的項(xiàng)目時(shí),可以采用C語(yǔ)言,但前提是要求對(duì)該MCU系統(tǒng)的C語(yǔ)言和C編譯器非常熟悉,特別要注意該C編譯系統(tǒng)所能支持的數(shù)據(jù)類型和算法。雖然C語(yǔ)言是最普遍的一種高級(jí)語(yǔ)言,但不同的MCU廠家其C語(yǔ)言編譯系統(tǒng)是有所差別的,特別是在一些特殊功能模塊的操作上。如果對(duì)這些特性不了解,那調(diào)試起來(lái)就有的煩了,到頭來(lái)可能還不如用匯編來(lái)的快。
5. 在教學(xué)中要用到8088和196芯片單片機(jī)教材,請(qǐng)問(wèn)那里可以找到關(guān)于這方面的書(shū)或資料?
答:有關(guān)這方面的教材,大學(xué)里常用的一本是《IBM-PC匯編語(yǔ)言程序設(shè)計(jì)》清華大學(xué)出版社出版的,在網(wǎng)上以及書(shū)店都是可以找到的,另外網(wǎng)上還可以搜索到很多其他的教材如:《微機(jī)原理及匯編語(yǔ)言教程》(楊延雙 張曉冬 等編著 )和《16/32 位微機(jī)原理、匯編語(yǔ)言及接口技術(shù)》(作者: 鐘曉捷 陳濤 ,機(jī)械工業(yè)出版社 出版)等,可以在較大型的科技書(shū)店里查找或者直接從網(wǎng)上訂購(gòu)。
6. 初學(xué)者到底是應(yīng)該先學(xué)C還是匯編?
答:對(duì)于單片機(jī)的初學(xué)者來(lái)說(shuō),應(yīng)該從匯編學(xué)起。因?yàn)閰R編語(yǔ)言是最接近機(jī)器碼的一種語(yǔ)言,可以加深初學(xué)者對(duì)單片機(jī)各個(gè)功能模塊的了解,從而打好扎實(shí)的基礎(chǔ)。
猜你喜歡:
1.如何系統(tǒng)有效的學(xué)習(xí)編程知識(shí)