如何學習單片機?
網友解答: 單片機學習起來其實不難,反而是一件比較有趣的事情,之所以新手感覺比較難是因為不知道該怎么入手,從哪里開始學起。學習單片機需要動手,不是照著課本去死記硬背。所以學習單片機的第一
單片機學習起來其實不難,反而是一件比較有趣的事情,之所以新手感覺比較難是因為不知道該怎么入手,從哪里開始學起。
學習單片機需要動手,不是照著課本去死記硬背。
所以學習單片機的第一個概念:確定好所學習的單片機具體型號。
比如說,你要學習51單片機,你所確定的型號是STC89C52,這款單片機雖然比較老了,但是依然具有學習價值,DIP40封裝的STC89C52單片機如下圖所示:
或者你選擇STM32單片機學習,比如STM32F103C8T6,LQFP48封裝的單片機如下圖所示:
確定了單片機的具體型號之后,出來第二個概念:確定使用的編程環(huán)境。
在單片機學習初期,我們可能會弱化做PCB板子的概念,但是編程的概念一定要強化。所以在初期你手里如果有一塊單片機的開發(fā)板是很有必要的。
編程環(huán)境是由所選擇的單片機來確定的,比如說前邊兩款單片機都可以使用keil來編程,所以你要安裝keil的編程環(huán)境,keil4的啟動界面如下圖所示:
編寫好的程序,如何下載到單片機去執(zhí)行?所以第三個概念:下載器。
下載器的選擇也是有單片機的型號來確定的,以上兩款單片機都可以通過USB/TTL或者是JLINK來下載,但是這里優(yōu)先推薦JLINK,因為JLINK可以實現單步調試,大大提高學習效率,方便定位、解決問題。JLINK的圖片如下所示:
經過以上三個概念后,你就可以認真學習單片機了,該學習哪些內容?
1. GPIO:就是學習單片機引腳的控制方法,將引腳配置輸入或者輸出,比如說:點亮發(fā)光二極管、控制蜂鳴器發(fā)聲、控制繼電器吸合、控制按鍵輸入、點亮數碼管等;
2.定時器:學習單片機的片上資源timer,學習如何配置timer,如何設置初值,比如說:發(fā)光二極管定時閃爍、數碼管顯示的數值定時自加等;
3.UART:學習單片機的UART功能,學習RS232通訊,比如說:單片機發(fā)送字符用串口調試助手在電腦上顯示;
4.IIC:學習IIC通訊,比如說用AT24Cxx系列實現數值的掉電保存功能;
5.AD采樣:學習模數轉換知識,比如說:調節(jié)滑動變阻器,改變所采集的電壓,實時顯示此時的電壓;
初次之外可能還有:SPI,液晶屏、點陣、外部中斷、D/A等,等你學到這里,你就可以根據自己的想法實現想要的功能了。
以上就是我的觀點,寫了有半個小時的時間,如果您有更好的方法那就留言討論吧。
網友解答:學習單片機之前,需要有一些基礎知識的準備,例如元器件知識、模擬電路、數字電路、C語言等這些知識需要知道一點。這些知識有一個直觀的概念就行了,具體的更深入的知識,可以在單片機學習中逐步加深理解和學習。
然后,需要根據所選的單片機,了解該單片機的主要功能、熟悉其對應的開發(fā)環(huán)境;
最后,要有相應的單片機電路板和相應的仿真、編程工具,把單片機程序“燒錄”到電路板上的單片機內,根據設計功能,觀察電路板的運行是否符合設計初衷。
一、知識準備1、元器件知識知道基礎元器件的功能和用法,例如要知道電阻的功能主要是限流、分壓,電阻在電路中有串聯、并聯、混聯的接法,知道電容的功能是“隔直通交”,在單片機電路中,有很多濾波電容。
2、模擬電路知識二極管、三極管的基本電路,了解單片機的電源電路、復位電路、晶振電路的工作原理。
3、數字電路這個最好多學一些,因為單片機本身就是一個數字器件,其運行原理主要是數字電路原理。了解各種門電路,最好能夠熟悉IC數字芯片的真值表,了解串行通信,IIC通信,SPI通信等。
4、C語言知識現在單片機開發(fā)絕大多數都使用C語言開發(fā),需要簡單了解C語言的基本語法、算術和邏輯運算符,基本程序結構(順序、選擇、循環(huán)等),尤其要知道各種數據類型所表示的數值范圍,這個會在單片機編程里面很有用。
二、單片機和開發(fā)環(huán)境選擇1、單片機選擇現在很多人說學單片機可以直接從cortex m0或m3學起,我覺得,如果基礎較弱的話,還是從STC 51單片機開始,還可以選擇AVR單片機。
為什么推薦這兩種單片機,因為一個單片機環(huán)境要想真正運行起來,最終還是需要有專用的編程工具(很多人稱為燒錄工具)將程序“燒錄”到單片機內部,這樣才能真正讓單片機按照程序設計流程運行。而這個專門工具是特制的,現在STC的51單片機只需要一根U轉串的線就可以將程序“燒錄”到單片機內,而AVR單片機的編程工具非常容易自制,并且成本不超過20塊錢,至于其它單片機,它們的燒錄工具一是不容易自制,二是價格較高,所以部特別推薦。
另外就是51單片機和AVR單片機的開發(fā)資料,學習教程在網上最多,這樣當學習中遇到問題的時候,可以在網上獲取很多經驗。
2、開發(fā)環(huán)境的選擇基本上每種單片機都有各自特色的開發(fā)環(huán)境,但是這些開發(fā)環(huán)境基本都是各自為戰(zhàn),很少有一種開發(fā)環(huán)境能夠支持多種單片機的開發(fā)。
在這里推薦2個開發(fā)環(huán)境,
一是51單片機的KEIL開發(fā)環(huán)境,二是IAR開發(fā)環(huán)境,IAR開發(fā)環(huán)境是目前功能最為強大,支持單片機種類最多的一種開發(fā)環(huán)境(IAR支持51單片機,AVR,PIC,MSP430,ARM等幾乎所有主流單片機,但是對每一種單片機都有一套開發(fā)包,不過基本開發(fā)配置和流程大體相近)。
51單片機的開發(fā)環(huán)境,不用說肯定是首選keil,這個是最早,也是功能最強的51單片機開發(fā)環(huán)境,另外,熟悉了KEIL后,對于后續(xù)開發(fā)MDK也會有一個很快的熟悉過程,因為MDK就是脫胎于KEIL的。
AVR單片機的開發(fā)環(huán)境很多,目前用的較為普及的是GCC、ICC AVR,以及AVR STDUIO,這三種的使用教程在網上較多,所以還是推薦這三種。
三、實戰(zhàn)選擇目前有三種方式學單片機,一種是通過真正的單片機學習板,現在這種學習板很多,并且板載的功能也非常多,這是一個途徑,還有就是通過單片機仿真軟件學習,目前有proteus(支持51,AVR,MSP430,CORTEX等),還有電路仿真軟件multisim也可以仿真51單片機的運行過程。第三就是自己從零開始搭建學習板,我當年學AVR的時候,就是自己買的洞洞板,一步一步焊接出來一個學習板的。
1、使用單片機學習板學習單片機這種方式可以不用過多關注硬件電路,直接熟悉單片機編程技能,當然,學習板上的電路一般都是經過驗證的,比較實用,所以可以直接學到相應電路的工作原理以及電路設計;
2、使用proteus學習單片機目前這個軟件普及度已經很高了,并且網上相關的教程也很多,用這個軟件學習單片機的一個好處是不用買學習板以及配套的編程工具,還有就是可以自己同時學習電路設計和編程技能,但是缺點就是這個軟件的電路設計只是功能上的,具體到電路性能指標和各種參數,這個軟件不能準確的模擬出來。不過作為入門以及基礎原理的學習,這個軟件還是很好的。
3、自己搭建學習板我當時學習AVR單片機的時候,就是買的洞洞板和各種器件,從單片機最小系統(tǒng)開始搭建,最后焊成了一個包含串口,串轉并,并轉串,AD轉換,SPI、IIC總線,LCD液晶、數碼管顯示等各種電路。
這種方式有多種優(yōu)點既可以學習編程,還學會了電路設計,又鍛煉了動手能力,甚至還學會了基礎的電路故障檢查和維修。
不過這種方法需要很大的耐心和毅力。
四、單片機學習入門1、學會開發(fā)環(huán)境的使用
2、熟悉單片機最小系統(tǒng)的工作原理
3、熟悉單片機編程的基本結構、流程、語法