回覆列表
  • 1 # 方覺閒

    如果不是電子專業學生,建議買本《微控制器原理與實戰》學習一下,然後在某寶上買塊stm32微控制器學習板跟著練習。一般情況下,應該在上個月內可以掌握基本的微控制器軟體開發。

  • 2 # 自動化電控戴哥

    你好 ,我來回答一下。

    熟悉微控制器的原理、結構;學好數電、模電,為設計電路打好基礎;熟練使用C語言,多學習他人的程式;對作業系統原理有一定的瞭解,Protel有一定的基礎;培養實際動手除錯電路的能力。一般可以透過專業的書籍和課程進行持之以恆的學習,注意理論與實踐並重,遇到問題耐心檢查並適當投資購買實驗器材。

    自己買一套實驗51微控制器。多練習一下。

  • 3 # 電子產品設計方案

    設計微控制器程式並不難,可以從簡單的開始

    設計微控制器程式其實並不難,可以先從基礎開始,然後慢慢深入就可以了。當然了,你需要有一定的電子基礎知識,也要有一定的C語言基礎(組合語言現在用得比較少了)。

    微控制器其實就是一個“微型”電腦,它整合CPU、RAM、ROM、I/O,還整合PWM、AD、定時器、中斷、UART、SPI等等的各種外設。

    如果你有一定的電子基礎知識和C語言基礎,只要花上一兩個月的時間,絕對可以自己設計出微控制器程式來。

    選擇合適的微控制器入門很重要首先需要跨出第一步,摸到門路,實現從“0”到“1”的轉變;如果找不到門,怎麼努務,怎麼花時間都是沒用的。最好有同事、朋友指導一下,這樣就更容易入門了,可以少走很多彎路。摸清門路後,再努力一兩個月,基本上就可以單獨編寫簡單的程式了。微控制器的品牌很多的,不同的品牌都會有一些差異,如果在公司上班,最好選擇公司常用的微控制器品牌進行入門學習,這樣可以得到同事、還有代理商和原廠FAE的幫助。Demo Kit,開發環境都很容易搞定。如果沒有同事、朋友幫助,需要全靠自學的話,可以選擇51微控制器,網上資料很多,學起來也容易。

    如果數位電路、摸擬電路和程式設計基礎都較好,可以直接從32位微控制器起步,STM32就是很好的入門平臺,資源很多,也相當火爆。

    持之以恆,絕不能三天打漁兩天曬網

    如果下定決心學習微控制器,最好制定好學習計劃並嚴格執行。這個就像學英語一樣,也是要靠堅持的。下面是本人建議的一個計劃:

    選擇好適合微控制器入門平臺,選擇合適的開發板,搭建開發環境,實現微控制器最小系統執行。學會微控制器時鐘系統的配置,學會上電覆位配置和初始化。學會GPIO的輸入、輸出配置,點亮LED,讀取按鍵輸入。學會按鍵控制LED點亮的和熄滅,實現LED跑馬燈功能。學會定時器的使用,使用定時器計時,實現LED跑馬燈。學會數碼管驅動顯示完成自己的第一個作品:電子鐘。學習用ADC透過NTC測量溫度。學習外部中斷,透過外部中斷實時響應按鍵輸入。學習PWM,透過PWM控制LED的亮度和驅動蜂鳴器發聲完成自己的第二個作品:帶溫度顯示的小鬧鐘。學習IIC,進行EEPROM讀寫操作。學習UART,與電腦透過串列埠進行通訊。

    如果這些都學好了,基本上可以自己設計微控制器程式了。開發一般的電子產品已經不成問題。基礎打好了,後面可以繼續深入的學習,進一步提升自己。

  • 4 # 農夫差點甜

    微控制器學習不單單是編寫程式,往往需要搭建實物平臺作為練習,我們上學時都是51的開發板,都需要專用下載線,現在有arduino uno開發板搭建簡單程式易學一根usb線就能往微控制器下載程式,擴充套件也很簡單都是模組話的焊上排針用杜邦線都可以連線起來

  • 5 # 散居獵人

    跳出教材的誤導,直接寫程式!

    第一個程式,埠線拉高,點亮Led。

    案例學習法,照影片材料,下載樣例程式。

    試圖修改引數或增刪語句,看看效果。

    微控制器教材的學習順序坑死人不償命。

    執行一兩個程式後,再補什麼埠和外圍電路。

    逐漸瞭解微控制器資源。

    初學者,不必知道指令系統,儲存結構,介面電路等等。

    案例學習法,在樣例基礎上增刪,看得見摸得著,事半功倍。

    比如時鐘中斷,不學中斷系統不學定時暫存器也行,把樣例程式的定時設定看成子函式呼叫就好了。

    多把心思放在程式結構,計算模型,控制流程,子程式擴充套件,資源利用。。。

    不用把語法和技巧放在心上!!!

    傳統微控制器教材害死人,學一學期不知微控制器程式為何物。買個單片機板子,帶樣例程式的,第一天不出半小時,自學就能編第一個簡單程式。

    不要以為我自己是這麼過來的才鄙視大學微控制器教學。。。,我就是大學老師!按傳統教材學的,又教學生。。。後來發現沒必要那樣漫長的學習過程。倒過來學,先下載程式執行,後講什麼是程式,再講軟硬體是怎麼工作的。

    初學者,不知道指令系統又何妨?你又不用匯編寫程式。不知道中斷系統又何妨?我知道怎麼處理外部事件就行了。不知道通訊口又何妨?我呼叫子函式就好了。不熟悉語法又何妨?編譯一下就知道哪裡錯了。

    再重複一遍,案例學習法,拋棄傳統教材。

  • 6 # 電子及工控技術

    設計編寫微控制器程式是一個漸進的過程不可一蹴而就,畢竟微控制器程式是與硬體有密切關係的,我們一般稱為微控制器程式叫底層硬體驅動程式。編寫程式不但要對軟體要熟悉而且對硬體也要熟悉才行,所以對於我們從事微控制器技術的人員來說能夠編寫出沒有“bug”的優秀程式需要具有“軟硬兼施”的本領,否則編寫的程式就會出現問題。下面根據我學習微控制器來談談我對這個問題的體會。

    設計不出來微控制器程式的原因

    我認為初學者感覺設計不出真正的微控制器程式是一個普遍的問題。我先說說剛學微控制器的朋友為什麼設計不出微控制器程式,首先是對軟體知識和硬體知識有“短板”。因為程式的設計少不了使用程式語言,現在比較流行的微控制器程式語言是C語言,如果在程式語言方面有欠缺的話程式設計會受到影響這是其一,其二是硬體方面,我們要知道微控制器的外設硬體方面的一些工作原理,比如按鍵、顯示器件、各種驅動晶片等,這些都與數位電路和類比電路知識有關,如果這方面有欠缺應及時加強。

    其次是對微控制器程式與硬體的內在聯絡不清楚。我們編寫的程式是與微控制器外設的硬體緊密相聯絡的,如果不知道用程式語言的哪種處理方法或技巧去控制硬體工作,那麼就無法編寫出控制程式。比如編寫一個測溫度的程式,如何能採集到溫度、如何編寫把溫度資料轉換成數碼管或者液晶能夠顯示的程式並分理處小數點等等都有一定的處理方法和技巧。

    再次是缺乏設計編寫程式的經驗。有句話叫“萬事開頭難”,我們在做許多事情時剛開始都會感覺到無所適從,我認為這是很正常的現象,我建議剛開始學習時我建議從最簡單的開始,比如從控制LED小燈開始再到各種花樣的“跑馬燈”小程式、模擬交通燈程式、具有數碼管倒計時的模擬交通燈程式等,透過這樣的循序漸進,由簡入難地訓練經過一段時間就會見到成效;最後一點我認為是缺乏整體佈局的能力。因為一個完整的程式除了需要主程式外,還要有許多子程式。要完成整個控制流程就要對各個程式之間的不斷呼叫來實現,這就要在程式的編排上要考慮周全。所以設計編寫也就是對整個控制流程有整體的把控才行。

    如何能編寫出合格的微控制器程式

    其實設計微控制器並不是很難能,那麼如何才能設計編寫出合格的微控制器程式呢?我認為要從以下幾個方面。一方面除了把我們自己感覺有“短板”的地方補齊外,另一方面我感覺還要做到以下幾點:

    第一點就是在設計程式時先要對控制的物件做全面的分析,也就是要把解決的問題的條件、初始化的資料、輸入與輸出的資訊以及要達到的控制目的都要知道,雖然達不到“庖丁解牛”的那種嫻熟的程度,最起碼要做到心中有數。

    第二點是在設計程式時要確定程式的“演算法”,這個詞聽起來有點高大上,其實我們在設計程式時要知道根據控制的要求和我們所有的條件來確定我們所用的計算方法。我在學C語言時經常聽老師說:演算法是程式的靈魂這一句話,當時剛接觸對這句話並不理解,現在回頭看來這句話是很有道理的。這就像我們炒菜一樣,如果我們能按菜譜去做就非常好吃,若是隨心所欲去做菜那肯定難以下嚥,我認為在這方面兩者有“異工同曲”之處。

    第三點是要善於繪製流程圖,這一點在我們剛學習設計程式時我感覺很有必要。繪製流程圖可以直觀地體現我們編寫程式的思路,它也是我們設計程式時的依據。從一定程度上說能繪製完一個控制流程圖也就離設計出程式不遠了。

    第四點就是要抱著“他山之石,可以攻玉”的心態去多看別人的程式,學習別人的設計編寫程式的技巧。我們知道C語言的可移植性很好,看到有非常好的子程式只要略微修改一下就可以為我所用,這樣有時會節省很多時間。

    我認為只要透過以上幾點堅持下去,我們編寫出沒有“bug”的合格程式應該是水到渠成的事情了!

  • 7 # 科技電小二

    學習微控制器程式設計,需要有基礎,需要有方法。一,寫不出微控制器程式的原因有哪些?

    C語言掌握不夠,常用的語法不理解.

    微控制器知識點沒有掌握。

    微控制器程式設計沒有入門。

    第一,要一定C語言基礎,微控制器C語言和普通C語言語法差異

    1.呼叫的標頭檔案不一樣。

    2.編譯器的不同會造成微控制器C程式編寫過程中細節的差異,比如unsigned int型別,在某些編 譯器當中是與unsigend char一樣的位寬。

    第二,要有一定的硬體知識。理解普通的三極體,高低電平,電壓電流等基本概念。這個能看得懂原理圖,從事微控制器開發,會需要除錯程式,需要透過一定的工具,萬用表,示波器來分析自己的軟體是否正常。

    第三。必須要有一塊合適的開發板。資料和教程要齊全,沒有開發板,就沒有練習和實操的機會和平臺,更談不上進步。

    微控制器分為很多種,8位微控制器,16位微控制器,32位微控制器,從未接觸過微控制器開發的初學者,在選擇開發板時,建議用從8位微控制器如AT89S51作為微控制器入門晶片。

    對於基礎知識較薄弱的同學,不建議一開始就學習stm32,因stm32學習難度會大很多,知識點也更多,學不好會打擊積極性。

    二,能熟練編寫微控制器程式,有什麼方法?

    首先,微控制器的入門級別的知識點:

    1,開發環境的搭建和使用,下載程式的操作。這一塊非常重要,這個學不會,後面的微控制器程式設計無從談起。

    2,埠IO輸出,實操LED燈的亮滅,流水燈實驗。

    3,埠IO輸入,實操按鍵的輸入高低電平變化,操作LED的亮滅。

    4,串列埠的輸入輸出,掌握ASCII碼的字元與0-255數字的對應關係,並學會利用串列埠進行除錯資訊列印,掌握利用串列埠除錯程式碼的方法。(這種除錯方法很重要,很多微控制器不能線上模擬,只能用串列埠除錯)

    5,掌握定時器功能。掌握普通定時器中斷函式的寫法和用法,如果對應的微控制器包含PWM設定,也必須掌握PWM的配置和使用。

    6,掌握IIC時序操作,很多常用晶片都用IIC通訊,比如EEPORM儲存晶片,掌握後讀寫相關引數.儲存的資料斷電不丟失。

    7,一般開發板都會有實時時鐘晶片如DS1302,掌握其用法,可以在綜合練習中用到。

    一定要熟練掌握以上知識點,初學者心中要形成自己微控制器開發的知識樹。

    接下來說下

    第一,多學習和多看教學資料和影片,目前51級別的開發板非常多,價格實惠,而且有很多優質的教學影片。可以作為入門教程。

    第二,推薦郭天祥的入門書籍《手把手教你學微控制器C語言》,以及他的教學影片《十天學會微控制器程式設計》,我就是看了這本書和影片,然後不斷練習,才踏入微控制器程式設計領域的。

    第二,多練習,想需要微控制器,看得懂不一定寫得出來,一定要跟著影片書籍和老師的要求,自己一點點的編寫出來,並每個知識點做好記錄。並思考總結,消耗吸收變成自己的知識。

    綜合實驗

    根據自己所學習的知識點,完成一個帶定時鬧鐘功能的實時時鐘,

    1 透過按鍵設定鬧鐘,需要將鬧鐘時間儲存在EEPORM中。

    2,透過按鍵修改時間,對ds1302的操作,時間計數的累加,

    4,數碼管在不同的模式下分別顯示時間和鬧鐘。

    按照我文中的要求來進行操作和學習,最後完成實時時鐘的這個實驗,那麼您的微控制器程式設計能力一定得到很大提升!

  • 8 # 縹緲星塵

    你是不是沒認真學習喲。或許你把微控制器程式當成了幼兒程式設計。雖然都是微控制器,但一個是玩耍,一個是開發。很不一樣的!

  • 中秋節和大豐收的關聯?
  • 愛的太卑微了還能在愛下去嗎?