0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)c語言學(xué)習(xí)心得 單片機(jī)c語言經(jīng)驗(yàn)分享

HOT-ic ? 2018-08-28 11:30 ? 次閱讀

很多想學(xué)單片機(jī)的人問我的第一句話就是怎樣才能學(xué)好單片機(jī)?對于這個(gè)問題我今天就我自己是如何開始學(xué)單片機(jī),如何開始上手,如何開始熟練這個(gè)過程給大家講講。

先說說單片機(jī),一般我們現(xiàn)在用的比較多的的MCS-51的單片機(jī),它的資料比較多,用的人也很多,市場也很大。就我個(gè)人的體會(huì)怎么樣才能更快的學(xué)會(huì)單片機(jī)這門課。單片機(jī)這門課是一項(xiàng)非常重視動(dòng)手實(shí)踐的科目,不能總是看書,但是學(xué)習(xí)它首先必須得看書,因?yàn)閺臅心阈枰蟾帕私庖幌?,單片機(jī)的各個(gè)功能寄存器,而說明白點(diǎn),我們使用單片機(jī)就是用軟件去控制單片機(jī)的各個(gè)功能寄存器,再說明白點(diǎn),就是控制單片機(jī)那些管腳的電平什么時(shí)候輸出高,什么時(shí)候輸出低。由這些高低電平的變化來控制你的系統(tǒng)板,實(shí)現(xiàn)我們需要的各個(gè)功能。至于看書,只需大概了解單片機(jī)各管腳都是干什么的?能實(shí)現(xiàn)什么樣的功能?第一次,第二次你可能看不明白,但這不要緊,因?yàn)檫€缺少實(shí)際的感觀認(rèn)識(shí)。所以我總是說,學(xué)單片機(jī)看書看兩三天的就夠了,看小說你一天能看五六本,看單片機(jī)你兩三天看兩三遍就夠了,可以不用仔細(xì)的看。推薦一本書,就這一本就足夠,書名是《新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)》,是哈爾濱工業(yè)大學(xué)出版社出的的,作者是張毅剛。大概了解一下書上的內(nèi)容,然后實(shí)踐,這是非常關(guān)鍵的,如果說學(xué)單片機(jī)你不實(shí)踐那是不可能學(xué)會(huì)的,關(guān)于實(shí)踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊單片機(jī)的學(xué)習(xí)板,不要求功能太全的,對于初學(xué)者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數(shù)碼管、獨(dú)立鍵盤、矩陣鍵盤、AD或DA(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上面我提到的這些,你能熟練應(yīng)用,那可以說對于單片機(jī)方面的硬件你已經(jīng)入門了,剩下的就是自己練習(xí)設(shè)計(jì)電路,不斷的積累經(jīng)驗(yàn)。只要過了第一關(guān),后面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有單片機(jī)方面的高手,向他求助,讓他幫你搭個(gè)簡單的最小系統(tǒng)板。對于高手來說,做個(gè)單片機(jī)的最小系統(tǒng)板只需要一分鐘的時(shí)間,而對于初學(xué)者可就難多了,因?yàn)橹挥袑τ布私饬?,才能熟練運(yùn)用。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以后做單片機(jī)類的小實(shí)驗(yàn)時(shí)都能用得上,還省事。

有了單片機(jī)學(xué)習(xí)板之后你就要多練習(xí),最好是自己有臺(tái)電腦,一天少看電影,少打游戲,把學(xué)習(xí)板和電腦連好,打開調(diào)試軟件坐在電腦前,先學(xué)會(huì)怎么用調(diào)試軟件,然后從最簡單的流水燈實(shí)驗(yàn)做起,等你能讓那八個(gè)流水燈按照你的意愿隨意流動(dòng)時(shí)你已經(jīng)入門了,你會(huì)發(fā)現(xiàn)單片機(jī)是多么迷人的東西啊,太好玩了,這不是在學(xué)習(xí)知識(shí),而是在玩,當(dāng)你編寫的程序按你的意愿實(shí)現(xiàn)時(shí)你比做什么事都開心,你會(huì)上癮的,真的。做電子類的人真的會(huì)上癮。然后讓數(shù)碼管亮起來,這兩項(xiàng)會(huì)了后,你已經(jīng)不能自拔了,你已經(jīng)開始考慮你這輩子要走哪一行了。就是要這樣練習(xí),在寫程序的時(shí)候你肯定會(huì)遇到很多問題,而這時(shí)你再去翻書找,或是問別人,當(dāng)?shù)玫浇獯鸷竽銜?huì)記住一輩子的,知識(shí)必須用于現(xiàn)實(shí)生活中,解決實(shí)際問題,這樣才能發(fā)揮它的作用,你自己好好想想,上了這么多年大學(xué),天天上課,你在課堂上學(xué)到了什么?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,下學(xué)期開學(xué)回來忘的一干二凈,是不是?你學(xué)到什么了?但是我告訴你單片機(jī)一旦學(xué)會(huì),永遠(yuǎn)不會(huì)忘了。另外我再說說用匯編C語言編程的問題。很多同學(xué)大一二就開設(shè)了C語言的課,我也上過,我知道那時(shí)天天就是幾乘幾,幾加幾啊,求個(gè)階乘啊。學(xué)完了有什么用?讓你用C語言編單片機(jī)的程序你是不是就傻了?書上的東西我們必須要會(huì)運(yùn)用。單片機(jī)編程用C語言或匯編語言都可以,但是我建議用C語言比較好,如果原來有C語言的基礎(chǔ)那學(xué)起來會(huì)更好,如果沒有,也可以邊學(xué)單片機(jī)邊學(xué)C語言,C語言也挺簡單,只是一門工具而已,我勸你最好學(xué)會(huì),將來肯定用得著,要不你以后也得學(xué),你一點(diǎn)匯編都不會(huì)根本無所謂,但你一點(diǎn)C語言都不會(huì)那你將來會(huì)吃苦頭。匯編寫程序代碼效率高,但相對難度較大,而且很羅嗦,尤其是遇到算法方面的問題時(shí),根本是麻煩的不得了,現(xiàn)在單片機(jī)的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因?yàn)橛懈哳l率的時(shí)鐘,單片機(jī)的ROM也在不斷的提高,足夠裝得下你用C語言寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,只需要變一個(gè)IO口寫個(gè)溫度傳感器的程序在哪里都能用,所以我勸大家用C語言。

總結(jié)上面,只要你有信心,做事能堅(jiān)持到底,有不成功不放棄的強(qiáng)烈意志,那學(xué)個(gè)單片機(jī)來說就是件非常容易的事。

步驟:

1.找本書大概了解一下單片機(jī)結(jié)構(gòu),大概了解就行。不用都看懂,又不讓你出書的。(三天)

2.找學(xué)習(xí)板練習(xí)編寫程序,學(xué)單片機(jī)就是練編程序,遇到不會(huì)的再問人或查書。 (二十天)

3.自己網(wǎng)上找些小電路類的資料練習(xí)設(shè)計(jì)外圍電路。焊好后自己調(diào)試,熟悉過程。 (十天)

4.自己完全設(shè)計(jì)具有個(gè)人風(fēng)格的電路,產(chǎn)品,。。。你已經(jīng)是高手了。 。。。。

看到了嗎?下功夫一個(gè)多月你就能成為高手,我就講這么多了,學(xué)不學(xué)得會(huì),下不下得了功夫就看你的了。

我的單片機(jī)學(xué)習(xí)心得。

很多人說,學(xué)單片機(jī)最好先學(xué)匯編語言,以我的經(jīng)驗(yàn)告訴大家,絕對沒有這個(gè)必要,初學(xué)者一開始就直接用C語言為單片機(jī)編程,既省時(shí)間,學(xué)起來又容易,進(jìn)步速度會(huì)很快。在剛開始學(xué)單片機(jī)的時(shí)候,千萬不要為了解單片機(jī)內(nèi)部結(jié)構(gòu)而浪費(fèi)時(shí)間,這樣只能打擊你的信心,當(dāng)你學(xué)會(huì)編程后,自然一步步就掌握其內(nèi)部結(jié)構(gòu)了。

單片機(jī)的學(xué)習(xí)實(shí)踐。

單片機(jī)提高重在實(shí)踐,想要學(xué)好單片機(jī),軟件編程必不可少。但是熟悉硬件對于學(xué)好單片機(jī)的也是非常重要的。如何學(xué)習(xí)好硬件,動(dòng)手實(shí)踐是必不可少的。我們可以通過自己動(dòng)手做一個(gè)自己的電子制作,通過完成它,以提高我的對一些芯片的了解和熟練運(yùn)用它。這樣我們就可以多一些了解芯片的結(jié)構(gòu)。我相信,你完成了一個(gè)屬于自己的電子制作,你的單片機(jī)水平就會(huì)有一個(gè)質(zhì)的提高。

這就是我學(xué)習(xí)單片機(jī)的心得體會(huì),希望給單片機(jī)的愛好者學(xué)好單片機(jī)有所幫助。

使用單片機(jī)就是理解單片機(jī)硬件結(jié)構(gòu),以及內(nèi)部資源的應(yīng)用,在匯編或C語言中學(xué)會(huì)各種功能的初始化設(shè)置,以及實(shí)現(xiàn)各種功能的程序編制。

第一步:數(shù)字I/O的使用

使用按鈕輸入信號(hào),發(fā)光二極管顯示輸出電平,就可以學(xué)習(xí)引腳的數(shù)字I/O功能,在按下某個(gè)按鈕后,某發(fā)光二極管發(fā)亮,這就是數(shù)字電路中組合邏輯的功能,雖然很簡單,但是可以學(xué)習(xí)一般的單片機(jī)編程思想,例如,必須設(shè)置很多寄存器對引腳進(jìn)行初始化處理,才能使引腳具備有數(shù)字輸入和輸出輸出功能。每使用單片機(jī)的一個(gè)功能,就要對控制該功能的寄存器進(jìn)行設(shè)置,這就是單片機(jī)編程的特點(diǎn),千萬不要怕麻煩,所有的單片機(jī)都是這樣。

第二步:定時(shí)器的使用

學(xué)會(huì)定時(shí)器的使用,就可以用單片機(jī)實(shí)現(xiàn)時(shí)序電路,時(shí)序電路的功能是強(qiáng)大的,在工業(yè)、家用電氣設(shè)備的控制中有很多應(yīng)用,例如,可以用單片機(jī)實(shí) 現(xiàn)一個(gè)具有一個(gè)按鈕的樓道燈開關(guān),該開關(guān)在按鈕按下一次后,燈亮3分鐘后自動(dòng)滅,當(dāng)按鈕連續(xù)按下兩次后,燈常亮不滅,當(dāng)按鈕按下時(shí)間超過2s,則燈滅。數(shù) 字集成電路可以實(shí)現(xiàn)時(shí)序電路,可編程邏輯器件(PLD)可以實(shí)現(xiàn)時(shí)序電路,可編程控制器PLC)也可以實(shí)現(xiàn)時(shí)序電路,但是只有單片機(jī)實(shí)現(xiàn)起來最簡單,成本最低。定時(shí)器的使用是非常重要的,邏輯加時(shí)間控制是單片機(jī)使用的基礎(chǔ)。

第三步:中斷

單片機(jī)的特點(diǎn)是一段程序反復(fù)執(zhí)行,程序中的每個(gè)指令的執(zhí)行都需要一定的執(zhí)行時(shí)間,如果程序沒有執(zhí)行到某指令,則該指令的動(dòng)作就不會(huì)發(fā)生,這樣就會(huì)耽誤很多快速發(fā)生的事情,例如,按鈕按下時(shí)的下降沿。要使單片機(jī)在程序正常運(yùn)行過程中,對快速動(dòng)作做出反應(yīng),就必須使用單片機(jī)的中斷功能,該功能就是在快速動(dòng)作發(fā)生后,單片機(jī)中斷正常運(yùn)行的程序,處理快速發(fā)生的動(dòng)作,處理完成后,在返回執(zhí)行正常的程序。中斷功能使用中的困難是需要精確地知道什么時(shí)候不允許中斷發(fā)生(屏蔽中斷)、什么時(shí)候允許中斷發(fā)生(開中斷),需要設(shè)置哪些寄存器才能使某種中斷起作用,中斷開始時(shí),程序應(yīng)該干什么,中斷完成后,程序應(yīng)該干什么等等。中斷學(xué)會(huì)后,就可以編制更復(fù)雜結(jié)構(gòu)的程序,這樣的程序可以干著一件事,監(jiān)視著一件事,一旦監(jiān)視的事情發(fā)生,就中斷正在干的事情,處理監(jiān)視的事情,當(dāng)然也可以監(jiān)視多個(gè)事情,形象的比喻,中斷功能使單片機(jī)具有吃著碗里的,看著鍋里的功能。

以上三步學(xué)會(huì),就相當(dāng)于降龍十八掌武功,會(huì)了三掌了,可以勉強(qiáng)護(hù)身。

第四步:與PC機(jī)進(jìn)行RS232通信

單片機(jī)都有USART接口,特別是MSP430系列中很多型號(hào),都具有兩個(gè)USART接口。USART接口不能直接與PC機(jī)的RS232接口連接,它們之間的邏輯電平不同,需要使用一個(gè)MAX3232芯片進(jìn)行電平轉(zhuǎn)換。

USART接口的使用是非常重要的,通過該接口,可以使單片機(jī)與PC機(jī)之間交換信息,雖然RS232通信并不先進(jìn),但是對于接口的學(xué)習(xí)是非常重要的。正確使用USART接口,需要學(xué)習(xí)通信協(xié)議,PC機(jī)的RS232接口編程等等知識(shí)。試想,單片機(jī)實(shí)驗(yàn)板上的數(shù)據(jù)顯示在PC機(jī)監(jiān)視器上,而PC機(jī)的鍵盤信號(hào)可以在單片機(jī)實(shí)驗(yàn)板上得到顯示,將是多么有意思的事情??!

第五步:學(xué)會(huì)A/D轉(zhuǎn)換

MAP430單片機(jī)帶有多通道12位A/D轉(zhuǎn)換器,通過這些A/D轉(zhuǎn)換器可以使單片機(jī)操作模擬量,顯示和檢測電壓、電流等信號(hào)。學(xué)習(xí)時(shí)注意模擬地與數(shù)字地、參考電壓、采樣時(shí)間,轉(zhuǎn)換速率,轉(zhuǎn)換誤差等概念。使用A/D轉(zhuǎn)換功能的簡單的例子是設(shè)計(jì)一個(gè)電壓表。

第六步:學(xué)會(huì)PCI、I2C接口和液晶顯示器接口

這些接口的使用可以使單片機(jī)更容易連接外部設(shè)備,在擴(kuò)展單片機(jī)功能方面非常重要。

第七步:學(xué)會(huì)比較、捕捉、PWM功能

這些功能可以使單片機(jī)能夠控制電機(jī),檢測轉(zhuǎn)速信號(hào),實(shí)現(xiàn)電機(jī)調(diào)速器等控制起功能。如果以上七步都學(xué)會(huì),就可以設(shè)計(jì)一般的應(yīng)用系統(tǒng),相當(dāng)于學(xué)會(huì)十招降龍十八掌,可以出手攻擊了。

第八步:學(xué)習(xí)USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設(shè)計(jì)????

學(xué)習(xí)USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設(shè)計(jì)是非常重要的,因?yàn)檫@是當(dāng)前產(chǎn)品開發(fā)的發(fā)展方向。

到此為止,相當(dāng)于學(xué)會(huì)15招降龍十八掌,但還不到打遍天下無敵手的境界。即使如此,也算是單片機(jī)大蝦了!!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44452

    瀏覽量

    630797
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    十天學(xué)會(huì)單片機(jī)可能嗎?單片機(jī)入門需要多久?

    一下,單片機(jī)的入門其實(shí)并沒有想象中那么難。對于那些有一定編程基礎(chǔ),尤其是有C語言基礎(chǔ)的學(xué)習(xí)者來說,入門的過程可能僅需幾天。例如,有人可能在三天內(nèi)就掌握了
    的頭像 發(fā)表于 09-05 08:00 ?538次閱讀
    十天學(xué)會(huì)<b class='flag-5'>單片機(jī)</b>可能嗎?<b class='flag-5'>單片機(jī)</b>入門需要多久?

    單片機(jī)hex文件反編譯成C語言的過程

    使用C語言編寫,然后編譯成機(jī)器碼并燒錄到單片機(jī)的存儲(chǔ)器中。 Hex文件是一種用于存儲(chǔ)單片機(jī)程序的文件格式,它包含了程序的機(jī)器碼和一些附加信息,如起始地址、結(jié)束地址等。Hex文件通常用于
    的頭像 發(fā)表于 09-02 10:49 ?1425次閱讀

    汽車ECU編程是單片機(jī)C語言還是匯編語言?

    汽車ECU編程是單片機(jī)C語言嗎?還是匯編語言?
    發(fā)表于 01-26 06:08

    你用過哪些編程語言開發(fā)單片機(jī)?

    C語言是最常用的一種用于單片機(jī)的開發(fā)語言,也是一種高級(jí)編程語言,具有較好的可移植性和可讀性。對于單片機(jī)
    發(fā)表于 12-04 10:18 ?1145次閱讀

    單片機(jī)C語言位操作的編程實(shí)現(xiàn):置位和清零

    前面介紹了C語言編程的6種位操作,分別是按位與“&”、按位“或|”、按位取反“~”、異或“^”、左移“”。按位操作的定義介紹請查看這篇文章《單片機(jī)C
    的頭像 發(fā)表于 11-28 09:35 ?5485次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>位操作的編程實(shí)現(xiàn):置位和清零

    C語言單片機(jī)中是如何執(zhí)行的

    或許我們平時(shí)大多數(shù)學(xué)習(xí)C語言都是在Windows環(huán)境下學(xué)習(xí)的,對于程序執(zhí)行的底層邏輯了解的不是非常清楚,所以本文在這里給大家介紹一下,C
    的頭像 發(fā)表于 11-24 15:45 ?2192次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>在<b class='flag-5'>單片機(jī)</b>中是如何執(zhí)行的

    什么是C語言?單片機(jī)有什么特點(diǎn)?為什么要用C語言編程?

    隨著技術(shù)的發(fā)展,電子產(chǎn)品越來越多,方便了我們的日常生活,大多數(shù)電子產(chǎn)品上都有單片機(jī),而單片機(jī)是通過執(zhí)行軟件邏輯來實(shí)現(xiàn)功能的。而單片機(jī)編程最合適的編程語言是匯編
    的頭像 發(fā)表于 11-21 10:06 ?1448次閱讀
    什么是<b class='flag-5'>C</b><b class='flag-5'>語言</b>?<b class='flag-5'>單片機(jī)</b>有什么特點(diǎn)?為什么要用<b class='flag-5'>C</b><b class='flag-5'>語言</b>編程?

    C/C++語言學(xué)習(xí)大全套

    電子發(fā)燒友網(wǎng)站提供《C/C++語言學(xué)習(xí)大全套.rar》資料免費(fèi)下載
    發(fā)表于 11-18 14:33 ?2次下載
    <b class='flag-5'>C</b>/<b class='flag-5'>C</b>++<b class='flag-5'>語言學(xué)習(xí)</b>大全套

    51單片機(jī)C語言編程入門學(xué)習(xí)資料

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)C語言編程入門學(xué)習(xí)資料.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 11:04 ?14次下載
    51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>編程入門<b class='flag-5'>學(xué)習(xí)</b>資料

    單片機(jī)編程語言可以用c++嗎?

    單片機(jī)編程語言可以用c++嗎?
    發(fā)表于 11-09 06:40

    請問單片機(jī)用的是c語言的嗎?

    請問單片機(jī)用的是c語言的嗎?
    發(fā)表于 11-02 06:46

    單片機(jī)Keil開發(fā)環(huán)境的搭建

    歡迎大家來到C語言單片機(jī)編程課堂。前面一課我們了解了單片機(jī)編程與嵌入式開發(fā)內(nèi)容,這節(jié)課我們來學(xué)習(xí)單片機(jī)
    的頭像 發(fā)表于 11-01 09:17 ?1701次閱讀
    <b class='flag-5'>單片機(jī)</b>Keil開發(fā)環(huán)境的搭建

    PIC單片機(jī)C8051F020單片機(jī)的串行通訊

    電子發(fā)燒友網(wǎng)站提供《PIC單片機(jī)C8051F020單片機(jī)的串行通訊.pdf》資料免費(fèi)下載
    發(fā)表于 10-25 10:10 ?2次下載
    PIC<b class='flag-5'>單片機(jī)</b>與<b class='flag-5'>C</b>8051F020<b class='flag-5'>單片機(jī)</b>的串行通訊

    單片機(jī)ADC,十大C語言濾波算法

    單片機(jī)ADC,十大C語言濾波算法
    的頭像 發(fā)表于 10-24 15:53 ?1112次閱讀

    單片機(jī)C語言指針有什么用處呢?

    單片機(jī)C語言指針有什么用處呢
    發(fā)表于 10-23 07:18