本文目錄一覽:
- 1、如何學習c51單片機
- 2、如何自學單片機?
- 3、有C語言基礎,沒有硬件基礎能學單片機嗎?請高手給些建議,謝
- 4、已經有c語言基礎,但是還是看不懂單片機的c編程…如何是好
- 5、怎麼用c語言學習單片機編程?
如何學習c51單片機
1,樓主,你首先要學習C語言基礎,就相當於80%會單片機了,因為現在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C語言。
2,先看內核8051的單片機:台灣宏晶的STC89C51-DIP40/或其它如新茂,到網上買一個開發板,價格不會超過200元。
3,看一下單片機功能:包換內部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。
4,編譯環境、編程軟件KEIL。
5,打開開發板的例子程序,在KEIL編譯,下載到板,看結果和說明是不是相符,達到這樣效果時,你心裏肯定很激動,這時你真正學會了單片機,你成功了!!!!!。
6,單片機C語言舉例:
sbitSPEAK=P1^5; //IO口定義為蜂鳴器控制
如果蜂鳴器正極接電源,SPEAK=0;蜂鳴器就會響,你看就是這麼簡單。
unsiggnechartemp;//定義TEMP為單位元組變量。
sfrPORTAP1;//將P1口定義為PORTA
總結:多做開發板上的實驗,你要多參與這樣的項目開發,慢慢就會了。
如何自學單片機?
1、熟悉單片機的原理,結構; \x0d\x0a2、學好數電,模電,為設計電路打好基礎; \x0d\x0a3、熟練使用C語言,多學習別人的程序;\x0d\x0a4、對操作系統原理有一定的了解; \x0d\x0a5、Protel至少要有點基礎;\x0d\x0a6、要實際動手調試電路的能力。\x0d\x0a\x0d\x0a學習單片機的步驟 \x0d\x0a\x0d\x0a當前的單片機種類很多,但是 51 是最基礎的,因此單片機的學習最好也是從 51 開始,不僅容易上手,而且相當實用。然而 51 單片機畢竟過於基礎,後來的很多單片機在功能上都有很大的擴展,因此按照我們實驗室多數人的路線接下來大多數人會學習 AVR 單片機, AVR 單片機在功能上較 51 有很大提升,集成了 A/D 、快速 PWM 等很多實用的功能,而且和很多大型的單片機在功能上有很多類似之處,因此如果以後還想掌握其他單片機 AVR 無疑是一個很好的跳板。 \x0d\x0a\x0d\x0a學習的過程 \x0d\x0a\x0d\x0a學習單片機最終要的是當然是練,我所說的學習跟課堂上的單片機學習不同,我以前也看過一些單片機教材,有些教材講的是單片機的工作原理和內部結構,這些東西對於我們暫時並不需要,等以後開課的時候在學習好了。現在要學習的是暫時拋開內部結構原理不談,如何能用單片機寫一些簡單的小程序,是從實用性的角度出發,網上有一種說法稱之為先實踐後理論的學習方法。 \x0d\x0a\x0d\x0a因此我的觀點如下,單片機的硬件結構首先要有一個基本的了解,最起碼要知道各引腳的功能、區別,能自己動手搭一個單片機的最小系統,然後就可以直接從程序入手,程序最好還是用 C 語言編程,從簡單的跑馬燈做起,逐漸深入,陸續可以做一些數碼管、液晶、 DS1302 、 DS18B20 等電子元器件的應用,在深入就可以結合一些具體實例擴展一些中斷、串口通訊等功能。還有一點要聲明的是單片機里用到的 C 語言其實很有限,課堂上學習 C++ 的很大一部分內容在初期單片機編程中都用不到,因此沒必要因為覺的自己的 C 語言基礎不是很好而對單片機望而止步! \x0d\x0a\x0d\x0a學習的工具 \x0d\x0a\x0d\x0a 軟件方面方面, 51 單片機用的是 KEIL 軟件,這個軟件在學校圖書館軟件下載和其他網站上都有,具體用法自己查找相關資料, AVR 的軟件就比較多了,我用的是 CVAVR ,另外還有 ICCAVR 等多款編譯軟件,這要看個人喜好了,建議有了一定的 51 基礎再學。另外就是燒寫軟件,燒寫軟件的作用就是將編譯器生成的 HEX 文件燒寫至單片機里,這要配合下載線實用,如果有並口的話最好用並口下載線,軟件最好用廣州雙龍的 SLISP 軟件,如果是筆記本沒有並口的話則要自己買一個下載器了,名稱為 USBASP ,網上電子市場有賣 20 塊錢左右,軟件會隨光盤自帶。 \x0d\x0a\x0d\x0a 硬件方面,首先是要有單片機,對於單片機有一點要注意, 51 單片機最好買 89S51 、 89S52 這兩種型號,上面我所說的燒寫程序是 ISP 方式,這兩種單片機支持 ISP 下載,所以如果買其他型號的燒寫程序可能會不太方便, AVR 單片機常用的就是 ATmega16L 其它型號的區別也不是很大,甚至有些兼容。至於單片機開發板,目前的價格都很貴,從一百到幾百不等,不過像上次學校里廣告的那個六十多塊錢的最好還是免了,沒什麼作用。能買一塊當然好,沒有的話也不要緊,自己動手買個電路板搭一下也很方便,引出 ISP 接口,燒寫程序十分容易,然後將 I/O 口引出擴展也很方便。 \x0d\x0a\x0d\x0a學習單片機的其它幾個注意點: \x0d\x0a\x0d\x0a1 .理論與實踐並重 \x0d\x0a 對一個初學單片機的人來說,如果按教科書式的學法,上來就是一大堆指令、名詞,學了半天還搞不清這些指令起什麼作用,也許用不了幾天就會覺得枯燥乏味以致半途而廢。所以學習與實踐結合是一個好方法,邊學習、邊演練,循序漸進,這樣用不了幾次就能將所用到的指令理解、吃透、紮根於腦海,甚至 「 根深蒂固 」 。也就是說,當你學習完幾條指令後 ( 一次數量不求多,只求懂 ) ,接下去就該做實驗了,通過實驗,使你感受到剛才的指令產生的控制效果,眼睛看得見 ( 燈光 ) 、耳朵聽得到 ( 聲音 ) ,更能深刻理解指令是怎樣轉化成信號去實現控制的,通過實驗看到自己所學的成果不僅有一種成就感也能提升你對單片機的興趣。說句實在話,單片機與其說是學出來的,還不如說是做實驗練出來的,何況做實驗本身也是一種學習過程。因此邊學邊練的學習方法,效果特別好。 \x0d\x0a 2 .合理安排時間持之以恆 \x0d\x0a 學習單片機不能 「 三天打魚、兩天晒網 」 ,要有持之以恆的毅力與決 4 心。學習完幾條指令後,就應及時做實驗,融匯貫通,而不要等幾天或幾個星期之後再做實驗,這樣效果不好甚至前學後忘。另外要有打 「 持久戰 」 的心理準備,不要興趣來時學上幾天,無興趣時涼上幾星期。學習單片機很重要的一點就是持之以恆。 \x0d\x0a\x0d\x0a3 .遇到問題耐心檢查 \x0d\x0a\x0d\x0a單片機有軟硬件兩方面的內容,有時一個程序怎麼調都不出效果,然而從理論分析卻又是對的,這是就要仔細找原因了,學習單片機經常碰到很多問題,有時一兩天都不能解決,這是就要有耐心,從底層找起,相信每找出一個錯誤都會有一個新的收穫。切不可輕言放棄!!! \x0d\x0a 4 .對只短暫學過一遍的知識,充其量只比浮光掠影稍好。因此,較好的方法是過一段時間後 (1-2 個月 ) 再重新學一遍,學過的知識要經常運用,這樣反覆循環幾次就能徹底弄懂消化,永不忘卻。 \x0d\x0a 5 .要進行適當投資購買實驗器材及書籍資料 \x0d\x0a 單片機技術含金量高,一旦學會後,給你帶來的效益當然也高,無論是應聘求職還是自起爐灶開廠辦公司,其前景都光明無限。因此在學習時要捨得適當投資購買必要的學習、實驗器材。另外還要經常去科技圖書店看看,購買一些適合自己學習、提高的書籍。一本好的書籍真的很重要,可以隨時翻閱,隨時補充不懂或遺忘的知識。
有C語言基礎,沒有硬件基礎能學單片機嗎?請高手給些建議,謝
1,樓主,你已經有C語言基礎,就相當於80%會單片機了,因為現在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C語言。8/16位單片機基本上是在KEIL或IAR embedded workbench軟件環境下編程、調試和仿真。32位ARM系列有的用IAR embedded workbench,也有用ADS,更多的用WINCE或LINUX操作系統。所以上面的講的都是你現在的優勢。
2,聽起來單片機比較陌生,不是因為你不懂,而是不知道方法和流程。現我簡單說說,僅供參考;
3,先看內核8051的單片機:台灣宏晶的STC89C51-DIP40/或其它如新茂,到網上買一個開發板,價格不會超過200元。
4,看一下單片機功能:包換內部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。
5,編譯環境、編程軟件KEIL。
6,打開開發板的例子程序,在KEIL編譯,下載到板,看結果和說明是不是相符,達到這樣效果時,你心裏肯定很秀激動,這時你真正學會了單片機,你成功了!!!!!。
7,然後再學會看電路圖,電路圖其實很簡單,就是一根線從一個地方連接到另一個地方,你寫代碼時,只記住單片機是哪一個管腳,然後對它寫代碼即可。
總結:實驗很重要,你要多參與這樣的項目開發,方能進步。
已經有c語言基礎,但是還是看不懂單片機的c編程…如何是好
根據你的問題,我把單片機的C語言程序分成3塊:
1、純粹的應用級運算或數據處理類的函數或子程序。比如獲得一個四則運算的結果等。這部分程序代碼以你的基礎肯定能讀懂,因為C51和PC機上的C語言都是一樣的。
2、針對單片機自身的硬件控制程序等。這部分軟件其實內容不多,如果了解單片機的結構及各主要模塊的功能就能理解個大概:比如定時器怎麼用、怎樣設定初值、怎樣啟動,又比如如何在單片機的端口輸出高電平或是輸出低電平等等。
3、針對單片機以外的硬件控制子程序或函數。比如8個8位的LED數碼管,如何掃描控制其顯示內容,如何採集單片機系統中的哪個按鍵被按下了等。這部份軟件就需要你去了解單片機最常用的外圍電路的工作原理後才能理解。
總之,需要有一定的硬件基礎才能讀懂單片機的C語言,至於方法:
1、系統的學習單片機的基本結構和原理。無論針對哪個應用最基本的內容都是相似的。熟悉後拿來任何一個程序都能快速的將其拆分,明白各模塊大致的用途。
2、有針對性的去了解單片機以外其它的電路的功能及實現原理。這一點可以邊應用邊學習,任何人都不敢說所有的硬件都了解,都是邊學邊用。
怎麼用c語言學習單片機編程?
單片機嵌入式特點就是難而且重實踐。如果你想學單片機,去買一個板子回來學。如果你基礎比較好,模電數電微機原理都學過,你可以選一款複雜的單片機,如果你是菜鳥小白對計算機什麼常識都沒有,80C51是你最佳的選擇。當初我什麼都不會,也不懂嵌入式,上手就學ARM9,雖然有人帶但學的確實很痛苦,但是學過來之後,學校開了飛思卡爾單片機(16位的)學起來感覺就很輕鬆。如果你入門,以搞定原理為主,沒人帶你自學的情況下有許多概念確實不好理解,要多琢磨多上網查資料,再不行就百度知道。。。。還有就是讀板子配套的實例代碼,配合單片機的參考手冊,弄懂各個寄存器都是怎麼配的為什麼這麼配,注意總結,比如點亮流水燈,都要經過哪些步驟?每個步驟配置哪些寄存器?配置後怎麼點亮?你自己去總結。然後試着改寫你的實例代碼,不斷編譯不斷改寫,看看哪有問題哪裡需要修改,最後改出你想要的現象來,不要想剛開始學就一步登天自己獨立寫出什麼程序來,首先以模仿為主,弄清概念和原理,然後再嘗試自己寫
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/249538.html