回覆列表
  • 1 # 易學微控制器

    這個問題我有親身的體會,微控制器我也是自學的,自學的初衷就是因為興趣。有一天去實驗室找同學玩,看到他在一個封閉的場地上放各種障礙物,一個小車避開障礙來回穿梭,感覺挺有意思,就想自己也做一個玩玩,就走上了學習微控制器這條路···

    如何自學微控制器

    剛開始學習的時候也是比較迷茫,不知道從哪裡入手,同學推薦我先看郭天祥的“新概念51微控制器C語言教程”,這本書算是我的啟蒙吧,書裡面介紹了基本C語言知識和程式設計軟體KEIL,這本書好的一點就是淺顯易懂,直接是把我這個微控制器小白領進門的。書還有配套的影片也可以找來看看,看影片的話會更直觀一點,便於快速入門。(這本書也有一定的侷限性,後面再說,但入門足夠)

    微控制器前期的學習以會用為主。不要糾結於暫存器、定時器、中斷這些微控制器的內部結構以及如何工作的,開始學習微控制器就像學車一樣,學車時開始知道怎麼加油掛擋剎車控制方向就好了,至於發動機、變速箱、轉向助力是怎麼配合的以後再說,先學會開車。學習微控制器剛開始時就是學會如何程式設計控制就好,至於內部結構,以後再說。

    基本上看書、看影片以後就可以編寫一個點亮LED或一組流水燈的程式了,那麼,恭喜你,就算是入門了。入門之後剛開始就自己程式設計還是有點困難,基本是看別人怎麼用,怎麼寫,先理解別人的程式,在理解的基礎上模仿和修改,在修改的基礎上編寫自己的程式,就這樣一步一步的過來。學習微控制器重要的一點就是自己多寫程式,多除錯,只看書或影片效果不大,做到在練習中學習,就像游泳一樣不管是用什麼姿勢先下水再說^_^。

    入門以後就是按部就班的學習了,I/O口,定時器,中斷,串列埠,數碼管 1602,182864,AD/DA,步進電機,直流電機,I2C,PWM,這些內部資源和外部模組依次學習以後就可以完成有點難度的工程,比如說做一個自動循跡加避障的小車、一個12864帶遙控調節的萬年曆,諸如此類。用所學知識做出一個自己想要完成的小產品,還是有滿滿的成就感。

    軟體

    軟體的話主要有兩個,一個是Keil,另一個是Proteus。Keil軟體是程式設計和編譯軟體,把我們理解的C語言轉換為微控制器可執行的機器語言,我們在Keil裡編寫控制程式,Keil幫我們完成轉化,然後下載到微控制器中執行。Proteus是電路模擬軟體,就是搭建一個電子電路模擬實際的硬體電路,這樣就不需要真正的硬體,我們就可以在模擬電路中關聯Keil編譯好的程式,來驗證我們的程式碼。這樣的好處是隻要有電腦我們就可以程式設計並驗證,但是模擬電路是理想化的硬體,真正的硬體和模擬之間還是有很大區別的,尤其是高頻電路和模擬訊號,因此模擬電路剛開始可以用一下,還是要買一塊微控制器開發板作為實際硬體來學習。

    總結

    微控制器的學習我理解是是入門簡單,深入有難度。入門時按鍵可以採用延時的方法,但真正應用起來基本上沒有人會用延時實現,都是採用狀態機。剛開始任務少,怎麼寫都可以,但是任務多的時候就要考慮資源的分配和程式的架構,這就上面所說的侷限性,就需要深入的學習。

    自學就是一點興趣,一點堅持,再加一點耐心,多練習,多總結,方法總比問題多,肯定是可以學會的。

  • 2 # 玩轉嵌入式

    微控制器應用廣泛,學會微控制器很有發展前景。學習微控制器主要包含硬體學習和軟體/程式學習兩個方面,這兩個方面都會涉及到相應的軟體。

    1.微控制器硬體學習

    微控制器在一件電子產品中是一顆主控晶片,所有的外圍電路都是以微控制器為中心的。所以在學習微控制器時要掌握微控制器常用的外設電路。常用的微控制器外設電路有:

    按鍵輸入電路:常用的互動方式,輸入;

    液晶/數碼管顯示電路:常用的顯示電路;

    繼電器驅動電路:用於控制繼電器的輸出;

    通訊電路:RS232,RS485,CAN,藍芽等電路;

    常用的運放電路:用於訊號處理等;

    AD取樣電路:用於取樣連續的物理量,如溫度、電流等;

    常用的電路設計軟體有altium designer,candence等。要會設計原理圖還要會PCBlayout。

    2.微控制器軟體的學習

    軟體的學習主要是程式設計。要熟悉微控制器暫存器的操作方法或者學會使用庫函式程式設計。要學會微控制器GPIO的輸入輸出操作,學會片上資源的操作。

    GPIO的配置方法:將GPIO配置為輸入/輸出,並能實現簡單功能,如點亮LED,驅動繼電器/蜂鳴器,按鍵檢測等;

    Timer資源的學習:學會配置定時器,並能實現相應的功能;

    中斷資源的學習:學會配置外部中觀、定時器中斷、AD取樣中斷等;

    AD取樣的學習:學會微控制器的AD取樣的配置,實現AD轉換;

    UART功能的學習:實現RS232,RS485等常用的通訊介面;

    3.常用的軟體

    前邊已經提到,硬體部分會涉及到altium designer,candence等電路設計軟體。軟體部分的程式設計環境主要是由微控制器來決定的,主要看微控制器被哪款程式設計環境所支援。目前比較主流的程式設計環境為:

    keil:支援51微控制器,STM32微控制器等,支援大多數主流的微控制器;

    IAR:支援MSP430微控制器(IAR Embedded),STM8微控制器(IAR for STM8)等;

  • 3 # 熙爸愛釣魚

    這個要看學習的目的。

    1,想從事微控制器開發的工作,需要系統的學習。如計算機原理、彙編/C語言開發、微控制器原理等教程。沒基礎的話自學這些很有難度,除非身邊就有良師,否則的話還是上個培訓班之類的,不要相信什麼十天學會微控制器、二十一天精通微控制器之類教程。

    2,出於愛好學微控制器,喜歡動手diy什麼的,這種情況有很多更容易入門的替代,如 Arduino、Maple之類的開發板,入門階段不用去關心微控制器的底層知識,上手很快。玩熟到一定程度,自然會去挖掘底層的知識。

  • 中秋節和大豐收的關聯?
  • 月經期間可以喝內分泌失調的中藥嗎?