新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機小白學步(24) 改版說明與學習思想

        單片機小白學步(24) 改版說明與學習思想

        作者: 時間:2016-11-09 來源:網絡 收藏
        從本篇起,《單片機小白學步》系列教程將做一個重大的改版。前面的文章暫且就不改動了,之后的文章將會重新編排。主要的改動如下:
        1. 文章全部使用Markdown進行編寫排版,格式更加豐富,閱讀起來也會更加輕松。

          本文引用地址:http://www.104case.com/article/201611/317592.htm
        2. 實驗的工程源碼,將上傳至我的GitHub頁面,可直接下載使用。

          我的GitHub主頁
          https://github.com/jzj1993

        3. 為了方便統(tǒng)一講解,也考慮到開發(fā)板資料可能有版權問題,本系列教程將和綠豆芽科技合作。大部分實驗,將直接使用綠豆芽科技提供的51Start開發(fā)板。如果有這款開發(fā)板,可以直接燒寫配套代碼進行實驗。如果沒有,歡迎購買這款開發(fā)板。當然也可以通過簡單的修改代碼,在其他開發(fā)板上做實驗。

        4. 部分實驗仍然會使用面包板搭建最小系統(tǒng),或通過Proteus仿真進行。

          綠豆芽科技官方淘寶店
          http://douyatech.taobao.com

          西安電子科技大學的學生,可直接到新校區(qū)綜合樓西電實驗室,購買配套開發(fā)板。

        5. 每個知識板塊的介紹,大致會通過下面的順序進行:

          • 首先對概念進行簡單介紹;
          • 通過基本的例程實驗,進行初步體驗,加深理解;
          • 深入介紹底層結構和原理;
          • 介紹相關的編程技巧思想等內容,以及更深入的例程實驗。

        學習思想

        經過反復的思考,得出了單片機學習的思想,并進行了總結。

        單片機的學習有兩個方向,分別介紹如下。

        1. 關注上層應用實踐

        這個方向,就是直接考慮實際應用而不是實現原理。了解了各種通信接口、各種電路模塊等,可將它們進行巧妙的組合,從而實現對我們的生活有用的產品。例如,通過結合顯示屏、按鍵、單片機,就可以實現計算器、秒表、搶答器、游戲機等各種好玩有趣的東西。

        學習這方面的東西,需要有較好的創(chuàng)新能力,善于從生活中尋找靈感。相對來說技術性會弱一點,使用的各種模塊,完全可以采用現成的東西去實現。

        這個方向有個比較典型的例子,是Arduino平臺,常常被稱為電子積木。硬件方面,各種電路模塊都是做好的,直接通過導線插接就可以使用;軟件方面,各種電路模塊都有現成的模塊化驅動,直接調用相應的函數就可以實現功能。使用Arduino時,往往只需要關心作品的創(chuàng)意,以及功能邏輯實現,而不需要深入研究具體的技術。

        2. 深入底層挖掘原理

        這個方向,就是從原理的角度深入理解單片機。例如寄存器的構成,CPU的執(zhí)行方式等。深入一些,包括模擬電路,數字電路,微機原理等。甚至利用FPGA可編程邏輯器件,自行設計和實現CPU和單片機。

        學習這方面的東西,需要較多的背景知識,包括模擬電路,數字電路,微機原理等,可以通過使用匯編語言進行單片機編程從而加強理解。如果有興趣自行設計CPU,還可以學習Verilog或VHDL編程。

        3. 總結

        這里對此做個總結。

        之前遇到不少人都提了同樣的一個問題:學單片機到底要不要學匯編呢?

        這里我舉一個例子~

        • 假如你想學會做飯,最簡單直接的方法,是直接購買做好的食材,只要學會控制火候,學會如何搭配各種食材和調料,并掌握必要的烹飪步驟等內容就可以了。

        • 有時候你可能想要做一些比較特別的菜,但是直接買來加工好的食材不能充分滿足要求。這個時候就需要購買半成品,然后學會自己去加工了。

        • 如果對食材本身也有了解,例如什么季節(jié)哪些蔬菜會比較常見等,往往能做的更好,還能節(jié)省成本。

        • 如果有特別需要,還可以嘗試自己種植一些蔬菜等~

        學單片機也是一樣的。關注上層應用實踐,相當于直接使用現成的食材,去進行組合搭配,得到各種有用的東西。而深入底層挖掘原理,相當于去深入了解各種食材的特點,并能作出更好的選擇。甚至,你還可以考慮自己從底層去實現一些模塊,實現想要的效果。


        所以對于“要不要學習匯編”這個問題,我的回答是,需要學習,但是不需要花費過多的精力。一開始直接用C語言進行單片機的學習,有了一定的認識之后,再簡單的去學習匯編。其目的是,從中了解底層的工作原理,從而能更好的理解一些問題,能更好的應對一些特殊情況,更好的駕馭單片機系統(tǒng)設計。而實際去實現想要的創(chuàng)意和產品,直接通過模塊化的C編程就可以了。直接用匯編,效率實在是太低。

        上面說的兩個方向,偏上層方向的學習,技術性相對弱化了,更多的是要考慮各種其他方面的問題,包括創(chuàng)意、產品、乃至市場需求等內容;而偏底層的原理學習,技術難度相對較大。一般情況下,學習單片機,需要對各種基本模塊有所了解(食材),對底層的原理最好也有一些理解(食材半成品的加工),然后再學習一些上層的模塊化編程思想、模塊之間的組合等(食材的搭配、火控控制等)。可以根據個人興趣和特長,有選擇的學習相關知識。



        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 元朗区| 沙湾县| 隆安县| 泗阳县| 常州市| 定边县| 农安县| 抚松县| 咸丰县| 来宾市| 瑞丽市| 平定县| 樟树市| 黄梅县| 若尔盖县| 江门市| 稻城县| 大港区| 务川| 云南省| 枣阳市| 常德市| 开封市| 阿鲁科尔沁旗| 开阳县| 南漳县| 建瓯市| 屏东县| 青岛市| 临安市| 昌宁县| 红桥区| 商水县| 楚雄市| 高淳县| 泰安市| 巫溪县| 呼图壁县| 保德县| 丹阳市| 噶尔县|