單片機小白學(xué)步(24) 改版說(shuō)明與學(xué)習思想
文章全部使用Markdown進(jìn)行編寫(xiě)排版,格式更加豐富,閱讀起來(lái)也會(huì )更加輕松。
本文引用地址:http://dyxdggzs.com/article/201611/317592.htm實(shí)驗的工程源碼,將上傳至我的GitHub頁(yè)面,可直接下載使用。
我的GitHub主頁(yè)
https://github.com/jzj1993為了方便統一講解,也考慮到開(kāi)發(fā)板資料可能有版權問(wèn)題,本系列教程將和綠豆芽科技合作。大部分實(shí)驗,將直接使用綠豆芽科技提供的51Start開(kāi)發(fā)板。如果有這款開(kāi)發(fā)板,可以直接燒寫(xiě)配套代碼進(jìn)行實(shí)驗。如果沒(méi)有,歡迎購買(mǎi)這款開(kāi)發(fā)板。當然也可以通過(guò)簡(jiǎn)單的修改代碼,在其他開(kāi)發(fā)板上做實(shí)驗。
部分實(shí)驗仍然會(huì )使用面包板搭建最小系統,或通過(guò)Proteus仿真進(jìn)行。
綠豆芽科技官方淘寶店
http://douyatech.taobao.com西安電子科技大學(xué)的學(xué)生,可直接到新校區綜合樓西電實(shí)驗室,購買(mǎi)配套開(kāi)發(fā)板。
每個(gè)知識板塊的介紹,大致會(huì )通過(guò)下面的順序進(jìn)行:
- 首先對概念進(jìn)行簡(jiǎn)單介紹;
- 通過(guò)基本的例程實(shí)驗,進(jìn)行初步體驗,加深理解;
- 深入介紹底層結構和原理;
- 介紹相關(guān)的編程技巧思想等內容,以及更深入的例程實(shí)驗。
學(xué)習思想
經(jīng)過(guò)反復的思考,得出了單片機學(xué)習的思想,并進(jìn)行了總結。
單片機的學(xué)習有兩個(gè)方向,分別介紹如下。
1. 關(guān)注上層應用實(shí)踐
這個(gè)方向,就是直接考慮實(shí)際應用而不是實(shí)現原理。了解了各種通信接口、各種電路模塊等,可將它們進(jìn)行巧妙的組合,從而實(shí)現對我們的生活有用的產(chǎn)品。例如,通過(guò)結合顯示屏、按鍵、單片機,就可以實(shí)現計算器、秒表、搶答器、游戲機等各種好玩有趣的東西。
學(xué)習這方面的東西,需要有較好的創(chuàng )新能力,善于從生活中尋找靈感。相對來(lái)說(shuō)技術(shù)性會(huì )弱一點(diǎn),使用的各種模塊,完全可以采用現成的東西去實(shí)現。
這個(gè)方向有個(gè)比較典型的例子,是Arduino平臺,常常被稱(chēng)為電子積木。硬件方面,各種電路模塊都是做好的,直接通過(guò)導線(xiàn)插接就可以使用;軟件方面,各種電路模塊都有現成的模塊化驅動(dòng),直接調用相應的函數就可以實(shí)現功能。使用Arduino時(shí),往往只需要關(guān)心作品的創(chuàng )意,以及功能邏輯實(shí)現,而不需要深入研究具體的技術(shù)。
2. 深入底層挖掘原理
這個(gè)方向,就是從原理的角度深入理解單片機。例如寄存器的構成,CPU的執行方式等。深入一些,包括模擬電路,數字電路,微機原理等。甚至利用FPGA等可編程邏輯器件,自行設計和實(shí)現CPU和單片機。
學(xué)習這方面的東西,需要較多的背景知識,包括模擬電路,數字電路,微機原理等,可以通過(guò)使用匯編語(yǔ)言進(jìn)行單片機編程從而加強理解。如果有興趣自行設計CPU,還可以學(xué)習Verilog或VHDL編程。
3. 總結
這里對此做個(gè)總結。
之前遇到不少人都提了同樣的一個(gè)問(wèn)題:學(xué)單片機到底要不要學(xué)匯編呢?
這里我舉一個(gè)例子~
假如你想學(xué)會(huì )做飯,最簡(jiǎn)單直接的方法,是直接購買(mǎi)做好的食材,只要學(xué)會(huì )控制火候,學(xué)會(huì )如何搭配各種食材和調料,并掌握必要的烹飪步驟等內容就可以了。
有時(shí)候你可能想要做一些比較特別的菜,但是直接買(mǎi)來(lái)加工好的食材不能充分滿(mǎn)足要求。這個(gè)時(shí)候就需要購買(mǎi)半成品,然后學(xué)會(huì )自己去加工了。
如果對食材本身也有了解,例如什么季節哪些蔬菜會(huì )比較常見(jiàn)等,往往能做的更好,還能節省成本。
如果有特別需要,還可以嘗試自己種植一些蔬菜等~
學(xué)單片機也是一樣的。關(guān)注上層應用實(shí)踐,相當于直接使用現成的食材,去進(jìn)行組合搭配,得到各種有用的東西。而深入底層挖掘原理,相當于去深入了解各種食材的特點(diǎn),并能作出更好的選擇。甚至,你還可以考慮自己從底層去實(shí)現一些模塊,實(shí)現想要的效果。
所以對于“要不要學(xué)習匯編”這個(gè)問(wèn)題,我的回答是,需要學(xué)習,但是不需要花費過(guò)多的精力。一開(kāi)始直接用C語(yǔ)言進(jìn)行單片機的學(xué)習,有了一定的認識之后,再簡(jiǎn)單的去學(xué)習匯編。其目的是,從中了解底層的工作原理,從而能更好的理解一些問(wèn)題,能更好的應對一些特殊情況,更好的駕馭單片機系統設計。而實(shí)際去實(shí)現想要的創(chuàng )意和產(chǎn)品,直接通過(guò)模塊化的C編程就可以了。直接用匯編,效率實(shí)在是太低。
上面說(shuō)的兩個(gè)方向,偏上層方向的學(xué)習,技術(shù)性相對弱化了,更多的是要考慮各種其他方面的問(wèn)題,包括創(chuàng )意、產(chǎn)品、乃至市場(chǎng)需求等內容;而偏底層的原理學(xué)習,技術(shù)難度相對較大。一般情況下,學(xué)習單片機,需要對各種基本模塊有所了解(食材),對底層的原理最好也有一些理解(食材半成品的加工),然后再學(xué)習一些上層的模塊化編程思想、模塊之間的組合等(食材的搭配、火控控制等)??梢愿鶕€(gè)人興趣和特長(cháng),有選擇的學(xué)習相關(guān)知識。
評論