沒C語言基礎怎么學51單片機?

沒C語言基礎怎么學51單片機?

先學簡單的C語言基礎,再學51單片機會比較容易入門,因為現(xiàn)在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C語言。

一、51單片機是對所有兼容Intel8031指令系統(tǒng)的單片機的統(tǒng)稱。

該系列單片機的始祖是Intel的8004單片機,后來隨著Flashrom技術的發(fā)展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用于工業(yè)測控系統(tǒng)之中。

二、單片機學習主要分三點:
1、完成單片機開發(fā)板的學習,理解單片機的工作,能看懂單片機程序。
2、能夠照著照著芯片手冊(datasheet)試著編寫名類芯片的驅動程序。
3、掌握常見的低速通信協(xié)議(I2C、SPl等)和高速通信協(xié)議。

51單片機怎么學

剛接觸單片機的時候可能可以從郭天祥的“十天學會單片機”開始,邊看視頻教程,邊自己編程試試,賣一套他配套的開發(fā)板(市面上的單片機開發(fā)板包羅萬象,大同小異),雖然他的板子我個人覺得比較貴,但學習的話**還是一整套都用他的東西吧。一定要試著自己編寫,而不是光看視頻就覺得自己是會了,不去動手寫程序。

當然,學單片機的前提是你得有一定的C語言基礎了,如果用匯編也是可以的,不過個人建議還是用C比較容易上手。

基本的教程和程序都走通了之后,可以自己寫一些簡單的小程序,實現(xiàn)一些可視化的效果。比如讓流水燈有不同的變化趨勢等等。 基本上,走通了程序,就算入門了吧。個人感覺,雖然單片機看似簡單,但實際上玩精還是挺有難度的。

程序只是一方面,硬件也應該是需要學習的??傊?簡單入門很快,但真正學精需要時間,有機會可以溝通下。

如何學習c51單片機

1,樓主,你首先要學習C語言基礎,就相當于80%會單片機了,因為現(xiàn)在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C語言。2,先看內核8051的單片機:**宏晶的STC89C51-DIP40/或其它如新茂,到網上買一個開發(fā)板,價格不會超過200元。

3,看一下單片機功能:包換內部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。

4,編譯環(huán)境、編程軟件KEIL。5,打開開發(fā)板的例子程序,在KEIL編譯,下載到板,看結果和說明是不是相符,達到這樣效果時,你心里肯定很激動,這時你真正學會了單片機,你成功了!?。。?!。6,單片機C語言舉例:**itSPEAK=P1^5; //IO口定義為蜂鳴器控制如果蜂鳴器正極接電源,SPEAK=0;蜂鳴器就會響,你看就是這么簡單。unsiggnechartemp;//定義TEMP為單字節(jié)變量。

sfrPORTAP1;//將P1口定義為PORTA總結:多做開發(fā)板上的實驗,你要多參與這樣的項目開發(fā),慢慢就會了。

準備學習51單片機,需要哪些預備知識?盡量說的全面些,謝謝大牛!

1、先學基礎的,比如51單片機。先認真看一下51單片機的原理,硬件結構,明白為什么可以通過編程來完成各種功能。

2、然后學習一下51單片機的各功能模塊(主要是相應寄存器的學習和掌握,比如與串口通信有關的寄存器,與定時/計數器有關的寄存器),這些都是應用時經常用到的。

3、去弄一塊學習板,功能不一定要非常多,但基本的模塊要有,比如:數碼管,獨立按鍵,矩陣按鍵,液晶接口,DS18B20(單總線),24C02(IIC總線),93C46(SPI接口),紅外接收,等。掌握了上述的模塊,就基本上有一定基礎了。4、多看,多動手,多編程,多想。5、多交流。

51單片機該怎么學?

開發(fā)板的話就選 郭天祥的淘寶上很多的也不貴1、熟悉單片機的原理,結構; 2、學好數電,模電,為設計電路打好基礎; 3、熟練使用C語言,多學習別人的程序;4、對操作系統(tǒng)原理有一定的了解; 5、Protel至少要有點基礎;6、要實際動手調試電路的能力。學習單片機的步驟 當前的單片機種類很多,但是 51 是最基礎的,因此單片機的學習**也是從 51 開始,不僅容易上手,而且相當實用。

然而 51 單片機畢竟過于基礎,后來的很多單片機在功能上都有很大的擴展,因此按照我們實驗室多數人的路線接下來大多數人會學習 AVR 單片機, AVR 單片機在功能上較 51 有很大提升,集成了 A/D 、快速 PWM 等很多實用的功能,而且和很多大型的單片機在功能上有很多類似之處,因此如果以后還想掌握其他單片機 AVR 無疑是一個很好的跳板。

學習的過程 學習單片機最終要的是當然是練,我所說的學習跟課堂上的單片機學習不同,我以前也看過一些單片機教材,有些教材講的是單片機的工作原理和內部結構,這些東西對于我們暫時并不需要,等以后開課的時候在學習好了?,F(xiàn)在要學習的是暫時拋開內部結構原理不談,如何能用單片機寫一些簡單的小程序,是從實用性的角度出發(fā),網上有一種說法稱之為先實踐后理論的學習方法。 因此我的觀點如下,單片機的硬件結構首先要有一個基本的了解,最起碼要知道各引腳的功能、區(qū)別,能自己動手搭一個單片機的最小系統(tǒng),然后就可以直接從程序入手,程序**還是用 C 語言編程,從簡單的跑馬燈做起,逐漸深入,陸續(xù)可以做一些數碼管、液晶、 DS1302 、 DS18B20 等電子元器件的應用,在深入就可以結合一些具體實例擴展一些中斷、串口通訊等功能。還有一點要聲明的是單片機里用到的 C 語言其實很有限,課堂上學習 C++ 的很大一部分內容在初期單片機編程中都用不到,因此沒必要因為覺的自己的 C 語言基礎不是很好而對單片機望而止步! 學習的工具 軟件方面方面, 51 單片機用的是 KEIL 軟件,這個軟件在學校圖書館****和其他網站上都有,具體用法自己查找相關資料, AVR 的軟件就比較多了,我用的是 CVAVR ,另外還有 ICCAVR 等多款編譯軟件,這要看個人喜好了,建議有了一定的 51 基礎再學。

另外就是燒寫軟件,燒寫軟件的作用就是將編譯器生成的 HEX 文件燒寫至單片機里,這要配合下載線實用,如果有并口的話**用并口下載線,軟件**用廣州雙龍的 SLISP 軟件,如果是筆記本沒有并口的話則要自己買一個下載器了,名稱為 USBASP ,網上電子市場有賣 20 塊錢左右,軟件會隨光盤自帶。 硬件方面,首先是要有單片機,對于單片機有一點要注意, 51 單片機**買 89S51 、 89S52 這兩種型號,上面我所說的燒寫程序是 ISP 方式,這兩種單片機支持 ISP 下載,所以如果買其他型號的燒寫程序可能會不太方便, AVR 單片機常用的就是 ATmega16L 其它型號的區(qū)別也不是很大,甚至有些兼容。至于單片機開發(fā)板,目前的價格都很貴,從一百到幾百不等,不過像上次學校里廣告的那個六十多塊錢的**還是免了,沒什么作用。

能買一塊當然好,沒有的話也不要緊,自己動手買個電路板搭一下也很方便,引出 ISP 接口,燒寫程序十分容易,然后將 I/O 口引出擴展也很方便。 學習單片機的其它幾個注意點: 1 .理論與實踐并重 對一個初學單片機的人來說,如果按教科書式的學法,上來就是一大堆指令、名詞,學了半天還搞不清這些指令起什么作用,也許用不了幾天就會覺得枯燥乏味以致半途而廢。所以學習與實踐結合是一個好方法,邊學習、邊演練,循序漸進,這樣用不了幾次就能將所用到的指令理解、吃透、扎根于腦海,甚至 “ 根深蒂固 ” 。

也就是說,當你學習完幾條指令后 ( 一次數量不求多,只求懂 ) ,接下去就該做實驗了,通過實驗,使你感受到剛才的指令產生的控制效果,眼睛看得見 ( 燈光 ) 、耳朵聽得到 ( 聲音 ) ,更能深刻理解指令是怎樣轉化成信號去實現(xiàn)控制的,通過實驗看到自己所學的成果不僅有一種成就感也能提升你對單片機的興趣。說句實在話,單片機與其說是學出來的,還不如說是做實驗練出來的,何況做實驗本身也是一種學習過程。因此邊學邊練的學習方法,效果特別好。

2 .合理安排時間持之以恒 學習單片機不能 “ 三天打魚、兩天曬網 ” ,要有持之以恒的毅力與決 4 心。學習完幾條指令后,就應及時做實驗,融匯貫通,而不要等幾天或幾個星期之后再做實驗,這樣效果不好甚至前學后忘。另外要有打 “ 持久戰(zhàn) ” 的心理準備,不要興趣來時學上幾天,無興趣時涼上幾星期。學習單片機很重要的一點就是持之以恒。

3 .遇到問題耐心檢查 單片機有軟硬件兩方面的內容,有時一個程序怎么調都不出效果,然而從理論分析卻又是對的,這是就要仔細找原因了,學習單片機經常碰到很多問題,有時一兩天都不能解決,這是就要有耐心,從底層找起,相信每找出一個錯誤都會有一個新的收獲。切不可輕言放棄?。?! 4 .對只短暫學過一遍的知識,充其量只比浮光掠影稍好。因此,較好的方法是過一段時間后 (1-2 個月 ) 再重新學一遍,學過的知識要經常運用,這樣反復循環(huán)幾次就能徹底弄懂消化,**忘卻。 5 .要進行適當投資購買實驗器材及書籍資料 單片機技術含金量高,一旦學會后,給你帶來的效益當然也高,無論是應聘求職還是自起爐灶開廠辦公司,其前景都光明無限。

因此在學習時要舍得適當投資購買必要的學習、實驗器材。另外還要經常去科技圖書店看看,購買一些適合自己學習、提高的書籍。一本好的書籍真的很重要,可以隨時翻閱,隨時補充不懂或遺忘的知識。學習使用單片機就是理解單片機硬件結構,以及內部資源的應用,在匯編或C語言中學會各種功能的初始化設置,以及實現(xiàn)各種功能的程序編制。

**步:數字I/O的使用使用按鈕輸入信號,發(fā)光二極管顯示輸出電平,就可以學習引腳的數字I/O功能,在按下某個按鈕后,某發(fā)光二極管發(fā)亮,這就是數字電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的單片機編程思想,例如,必須設置很多寄存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。每使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻煩,所有的單片機都是這樣。第二步:定時器的使用 學會定時器的使用,就可以用單片機實現(xiàn)時序電路,時序電路的功能是強大的,在工業(yè)、家用電氣設備的控制中有很多應用,例如,可以用單片機實現(xiàn)一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一次后,燈亮3分鐘后自動滅,當按鈕連續(xù)按下兩次后,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。

數字集成電路可以實現(xiàn)時序電路,可編程邏輯器件(PLD)可以實現(xiàn)時序電路,可編程控制器(PLC)也可以實現(xiàn)時序電路,但是只有單片機實現(xiàn)起來最簡單,成本**。定時器的使用是非常重要的,邏輯加時間控制是單片機使用的基礎。第三步:中斷單片機的特點是一段程序反復執(zhí)行,程序中的每個指令的執(zhí)行都需要一定的執(zhí)行時間,如果程序沒有執(zhí)行到某指令,則該指令的動作就不會發(fā)生,這樣就會耽誤很多快速發(fā)生的事情,例如,按鈕按下時的下降沿。

要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在快速動作發(fā)生后,單片機中斷正常運行的程序,處理快速發(fā)生的動作,處理完成后,在返回執(zhí)行正常的程序。中斷功能使用中的困難是需要**地知道什么時候不允許中斷發(fā)生(屏蔽中斷)、什么時候允許中斷發(fā)生(開中斷),需要設置哪些寄存器才能使某種中斷起作用,中斷開始時,程序應該干什么,中斷完成后,程序應該干什么等等。中斷學會后,就可以編制更復雜結構的程序,這樣的程序可以干著一件事,監(jiān)視著一件事,一旦監(jiān)視的事情發(fā)生,就中斷正在干的事情,處理監(jiān)視的事情,當然也可以監(jiān)視多個事情,形象的比喻,中斷功能使單片機具有吃著碗里的,看著鍋里的功能。以上三步學會,就相當于降龍十八掌武功,會了三掌了,可以勉強護身。

第四步:與PC機進行RS232通信單片機都有USART接口,特別是MSP430系列中很多型號,都具有兩個USART接口。USART接口不能直接與PC機的RS232接口連接,它們之間的邏輯電平不同,需要使用一個MAX3232芯片進行電平轉換。USART接口的使用是非常重要的,通過該接口,可以使單片機與PC機之間交換信息,雖然RS232通信并不先進,但是對于接口的學習是非常重要的。

正確使用USART接口,需要學習通信協(xié)議,PC機的RS232接口編程等等知識。試想,單片機實驗板上的數據顯示在PC機監(jiān)視器上,而PC機的鍵盤信號可以在單片機實驗板上得到顯示,將是多么有意思的事情??!第五步:學會A/D轉換MAP430單片機帶有多通道12位A/D轉換器,通過這些A/D轉換器可以使單片機操作模擬量,顯示和檢測電壓、電流等信號。學習時注意模擬地與數字地、參考電壓、采樣時間,轉換速率,轉換誤差等概念。使用A/D轉換功能的簡單的例子是設計一個電壓表。

第六步:學會PCI、I2C接口和液晶顯示器接口這些接口的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。第七步:學會比較、捕捉、PWM功能這些功能可以使單片機能夠控制電機,檢測轉速信號,實現(xiàn)電機調速器等控制起功能。如果以上七步都學會,就可以設計一般的應用系統(tǒng),相當于學會十招降龍十八掌,可以出手攻擊了。

第八步:學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計是非常重要的,因為這是當前產品開發(fā)的發(fā)展方向。到此為止,相當于學會15招降龍十八掌,但還不到打遍天下**手的境界。即使如此,也算是單片機大蝦了是否可以解決您的問題?。

51單片機教程,要通俗易懂版的

我是一名單片機工程師,下面的講解你參考一下.
.
51單片機共有40只引腳.下面這個就是最小系統(tǒng)原理圖,就是靠這四個部分,這個單片機就可以運行起來了.(看下面的數字標記,1234)
.

.
我們來一,一講解一下:
1 **部分:電源組(標記為1的部分)
.

40腳接電源5V(右上角),
20腳接電源負極(左下角)百科,
在單片機里面,負極也可以叫GND或者”地”,
我們在單片機的應用中,習慣說負極為”地”,上面GND就是英文ground的縮寫,翻譯過來就是”地”的意思.
..
2 第二部分:晶振組(標記為2的部分)

.
11.0592M晶振Y1與單片機的18,19腳并聯(lián),因為這兩只腳,就是晶振的工作引腳.
22p電容C2一端接18腳,一端接地.
22p電容C3一端接19腳,一端接地.
這兩個電容,我們在10~30P之間選擇都是可以的,主要作用是,過濾掉晶振部分的高頻信號,讓晶振工作的時候更加穩(wěn)定...
3 第三部分:復位組(標記為3的部分)

10u電容C1正極接電源5V,C1負極接單片機的復位腳,第9腳.
1K電阻R17一端接單片機的復位腳,第9腳,一端接地.
就是通過這個10u和1k,就可以讓單片機一開始供電時候,單片機自動復位,從零開始執(zhí)行程序,這個就是復位的概念.
..
4 第四部分:其它功能組(標記為4的部分)

這個腳是存儲器使用選擇腳,當這個腳接”地”時,那么就是告訴單片機,選擇使用外部存儲器,當這個腳接”5V”時,說明單片機使用內部存儲器.
如果選擇外部的存儲器,太浪費單片機僅有的資源,所以這一腳永遠接電源5V(如上圖所示),使用單片機的內部存儲器.
5 如果內部存儲器不夠容量,最多選擇更高級的容量,就可以解決容量不夠的問題了,就是這么簡單。如果你想學習更多單片機和程序的知識,百度一下:單片機教程劉思源
就看到有**視頻教程了。