總結是一種對過去經歷進行回顧、總結和總結的方法。編寫總結時,可以使用一些舉例或實際案例來支撐我們的觀點和結論,使總結更具有說服力和可信度。閱讀優(yōu)秀的總結范文,可以讓我們更好地了解總結的結構和表達方式。
單片機學習總結篇一
我從大二起,就去實驗室去學習。在那里與老師和一些電子設計愛好者的交流中,我學到了更多的專業(yè)知識。我從此走上了學習嵌入式的道路。這豐富了我的大學生活,是我在大學的最大收獲。
我是從學習單片機開始我的嵌入式學習的。
我接觸單片機的方式是在圖書館看書,我看了很多本書,但是大多數(shù)書寫的大同小異。書里面講解的單片機的寄存器我看了很多遍也沒有看懂。我都不明白改怎樣學習它了。慢慢的我悟出了一個道理:電子的學習實踐是最重要的,這樣,我在大二的時候就買了一塊學習板,我一邊看視頻一邊仿照視頻的程序,自己編寫程序,在很短的時間里,我的單片機有了很大的提高。那些難懂的寄存器透過編寫程序,我慢慢的弄懂了它們,此刻回頭看去,原先它還是很簡單的。
用哪種編程語言最適合我們。
我看過的單片機的書籍,大部分的程序都是匯編寫的。它是一種基于機器硬件的低級語言,對于我們這些只學習過c語言的人來說,十分難懂。我認為剛開始學習單片機沒有必要必須要從學習匯編編程開始。我學習單片機就是用c語言編程的,我并不會匯編語言,也沒有妨礙我把單片機學好。
很多人說,學單片機最好先學匯編語言,以我的經驗告訴大家,絕對沒有這個必要,初學者一開始就直接用c語言為單片機編程,既省時間,學起來又容易,進步速度會很快。在剛開始學單片機的時候,千萬不要為了解單片機內部結構而浪費時間,這樣只能打擊你的信心,當你學會編程后,自然一步步就掌握其內部結構了。
單片機提高重在實踐,想要學好單片機,軟件編程必不可少。但是熟悉硬件對于學好單片機的也是十分重要的。如何學習好硬件,動手實踐是必不可少的。我們能夠透過自己動手做一個自己的電子制作,透過完成它,以提高我的對一些芯片的了解和熟練運用它。這樣我們就能夠多一些了解芯片的結構。我相信,你完成了一個屬于自己的電子制作,你的單片機水平就會有一個質的提高。
這就是我學習單片機的心得體會,期望給單片機的愛好者學好單片機有所幫忙。
單片機學習總結篇二
優(yōu)秀作文推薦:《單片機》這門課程我已經學了一個學期了,在這一個學期的學習過程中,我一開始不怎么懂得編程,但慢慢的我現(xiàn)在已經不僅會讀程序還會寫程序了。真為自己一個學期來努力學到的單片機知識只是而感到高興。
怎么學單片機?也??吹接腥苏f學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。
我覺得學習單片機首先要懂得c語言,因為單片機大多說都是靠程序來實現(xiàn)的,如果看不懂程序或則不懂的編程是很難學會單片機的。學習單片機首先要明白一個程序是怎么走的,要完全懂得程序每一個步驟的意思。其次要懂得每一條指令的意思,不能盲目地去靠背指令,這是記得不牢靠的,最主要的還是靠了解。學習單片機最主要的對89c51芯片內部結構有全方面的,只要了解了89c51才能知道單片機實現(xiàn)什么樣的功能和作用,才能對單片機有更深一步的了解。通過一個學期《單片機》這門課程的學習,我也從中有了不少心得和體會想和大家分享一下。
萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,不要說單片機的程序全是英文,自己看不懂。遇到困難要一件件攻克,不懂指令就要勤奮看書,不懂程序就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少。然后建個程序,加入項目中,再寫代碼、編譯、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。
知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。程序不要光看不寫,一定要自己寫一次。最開始的時候,什么都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果??疵靼琢酥螅鸵约簩懸淮?,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距。當你自己能寫出來的.時候,說明你就真的懂了。
必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發(fā)個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發(fā)現(xiàn)問題和學會如何解決問題。這就需要學習調試程序的方法,比如keil里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發(fā)現(xiàn)你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。
找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態(tài)度,無助于你編程水平的提高。
我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以。要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人。所以現(xiàn)在我也明白了,以前讀書時說的程序流程圖很重要,現(xiàn)在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。
開動腦筋,運用多種方法,不斷優(yōu)化自己的程序。想想用各種不同方法來實現(xiàn)同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執(zhí)行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。
看別人的程序,學習人家的思路。這個在學習初期是很有用,通過看別人的程序,特別是老師寫出的具有一定水平的程序,可以使自己編程水平得到迅速的提高。同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的程序,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。
嘗試編寫一下綜合應用的程序。從流水燈學起,到動態(tài)掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(io讀取)、動態(tài)掃描(io輸出)、中斷等,如何協(xié)調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序什么也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協(xié)調過程。當你有了這個處理協(xié)調能力,你就算是入門了。
著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少程序或者做過什么?!皩W單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機學習單片機之后感悟出來的。真正的能力不是你曾經編寫過多少個可以實現(xiàn)的程序,而應該是:“遇到沒有解決過的問題,能利用自己已學的知識,迅速找到解決問題的方法?!边@個才是能力。
面對一個新程序時,多自己開動腦筋,不要急于找別人的程序。
有不少人面對一個新程序時,第一步想到的就是網上找別人寫過的程序,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個程序時,應該先自己構思一下整個程序的架構,想想如何來完成。有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數(shù)據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教老師或同學,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路。如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。
學會提問題。一般來說,學習過程中,你遇上的問題,多數(shù)人也有遇上的,所以如果有什么不懂,你可以去問老師。我覺得學習單片機最主要的要多提問,對于一個自己不是太懂的程序,自己一定要多提問幾遍,這樣不但有利于加深自己的印象還能從中學到不少別人的方法。
經過一個學期我對《單片機》這門課程的學習,不僅讓我懂得了很多程序的編寫,還讓我學到了很多對自己有用的學習方法。總結這個學期來的我自己的學習情況,我覺得自己對編程進步了不少,懂得運用正確的學習方法學習單片機程序,不再去死記硬背指令了。所以我覺得學習要不斷總結學習方法,才能讓自己學習不斷進步。
交通信號燈設計報告。
實驗目的:p1口的使用方法,延時程序的編寫。
實驗要求:在一個十字路口分為東西南北走向,信號等按以下的狀態(tài)順序工作:
(1)初始狀態(tài)0,東西、南北紅燈全亮。延時一定時間;
(2)狀態(tài)1,南北綠燈亮通車,東西紅燈,延時一定時間;
(3)狀態(tài)2,南北綠燈閃爍幾次轉黃燈,東西仍然紅燈,延時一定。
時間;
(4)狀態(tài)3,南北紅燈,東西綠燈通車,延時一定時間;
(5)狀態(tài)4,南北仍然紅燈,東西綠燈閃爍幾次轉黃燈,延時一定。
時間;
(6)循環(huán)至狀態(tài)1,繼續(xù)。
實驗電路和流程框架圖:
(1)硬件電路。
交通燈實訓設備用最小系統(tǒng)板和信號燈組合而成。
2、軟件編程。
若各路口燈亮滅的時間間隔為2s鐘,燈光閃爍時間間隔為0.5s。用軟件延時的方法,晶振頻率12mhz時,一個機器周期為1us。
編寫交通信號燈程序:
編寫主程序,由r7做主程序的計數(shù)器,確定調用延時時間為0.5s,從而獲得交通燈的亮滅時間。
單片機學習總結篇三
剛出生的孩子叫“爸爸”“媽媽”的時候,他甚至不知道“爸爸”“媽媽”是什么意思,更不會理解這些聲音是什么意思,但是我們帶著孩子見到他爸爸就讓他喊“爸爸”,見到媽媽就讓他喊“媽媽”,見到爺爺就喊“爺爺”??慢慢的你會發(fā)現(xiàn),次數(shù)多了,孩子就知道誰是爸爸,誰是媽媽,誰是爺爺,誰是奶奶了。
大家剛開始接觸單片機的時候,也屬于單片機行業(yè)的新生兒。單片機的樣子,單片機外圍的各種器件,單片機內部的各種結構,單片機使用c語言的編程方法,初學者可能都沒有見過,腦子里全無概念。沒關系,有些概念和方法你不理解也沒有關系,甚至不需要你去理解,你只需要跟著我去鸚鵡學舌式的學習,第一遍學習某一節(jié)課的內容時,對于程序,大家就可以完全跟著抄下來,甚至抄兩三遍,過一段你會發(fā)現(xiàn),好多東西你也認識了,好多概念你也慢慢的理解清楚了,你也能大概看懂別人的小程序了,切忌覺得自己看會了,而簡單復制粘貼。
2)照葫蘆畫瓢。
很多同學學習的時候喜歡看,看我做的視頻,看我寫的程序,甚至看別人的程序,都能看懂,覺得自己就會了,等到自己寫程序的時候,感覺就是老鼠啃天,不知道從哪里下手了,這是初學者很容易犯的“眼高手低”的毛病,所以第二步的內容就非常重要了。
我的要求是,每一位同學,在學完了當前課的內容,把第一步順利完成以后,然后關掉視頻教程,關掉源代碼,自己通過看電路圖和查找非源代碼的其他任何資料,把當節(jié)課我寫的程序代碼重新默寫出來,邊寫邊多少理解那么一點點,不是純粹的背誦,應該說是背誦加理解的結合體。甚至學過幾節(jié)課以后,可以回頭把前邊曾經這樣實現(xiàn)過的課程,再按照這種方法做一遍。千萬不要認為這一步沒必要,這一步是你能否真正學會單片機的一個關鍵,在學完本教程之前,每一課內容都要這樣做,如果每一個程序你都能夠完美的完成,那么可以說,當節(jié)課的內容,百分之七八十你已經掌握了。
3)他山之石,可以攻玉。
單片機技術的最大特點就是可以通過修改程序來實現(xiàn)不同的功能,因此舉一反三的能力就必不可少了。每一節(jié)課的例程后邊,我一般都會布置幾個作業(yè),大家盡量去獨立完成這個作業(yè)。在完成這個作業(yè)的過程中,都可以參考我的程序思路,在這個基礎上通過動腦思考去構建你自己的程序框架,最終將程序完成。
在我們工程師實際產品研發(fā)的時候,很多種情況下也是如此。比如一個產品,我們如果從零起步的話,可能會走很多彎路,遭遇很多前人已曾遭遇過的挫折,所以我們通常的做法是尋找購買幾款同類產品,然后先研究他們的各自優(yōu)缺點,學習他們的長處,然后在同類產品基礎上再來設計我們自己的產品,這就是“他山之石,可以攻玉”。
初學者在學習的時候,往往遇到的問題很多,你應該想到,你遇到的問題,可能前輩們早就遇到過了,所以遇到問題后,不要慌張,首先利用谷歌或者百度這些搜索引擎在網上搜一下,要做什么新東西,先去網上找相關資料了解一下,不管是編程還是硬件設計,多多參考別人的東西,只要把別人的東西分析明白了,自己用起來了,也就成為自己的知識了。
4)理論實踐結合,溫故知新。
當大家把所有的課程都按照前邊三步完成后,這個時候不妨再把書打開,再看看書,經過了自己的實戰(zhàn)經歷,再看書的時候,對很多知識點會有一種恍然大悟的感覺。甚至視頻教程、書籍都可以反復看幾遍,可能有的知識點當時學習的時候不明白,過了一段時間,回過頭來再學習的時候,一下就明白了。
單片機學習總結篇四
單片機是一門實用技術,我們學習它已經不是為了應付考試了,我給大家總結了單片機的學習方法是:一個要領,四個步驟。
學習單片機的要領就是:在實踐中成長,indoingwelearn!
學射箭,你得去拉弓,整天只擺造型肯定不行;學游泳,你得下水撲騰,整天在岸上做模仿活動不行;學開車,你得坐車上去開,坐沙發(fā)上肯定學不會。同樣的道理,學單片機,整天盯著單片機書看肯定不行,你也必須得親自動手去練。
沒有不下水就學會游泳成為游泳健將的,沒有不到車上練就能成為賽車手的,這點大家都清楚,可為什么那么多人學單片機的時候,總是只抱著一本書看呢。第一,我們小學中學甚至大學的學習模式都是如此,學什么東西主要都是靠看書,應付書面考試;第二,很多人想實踐卻不太清楚該怎么去實踐。
遇到問題查下書比直接看書的效果要好過百倍。不是不讓大家看書,而是。
單片機學習總結篇五
為了給前一段時間學習pic16f616型單片機的一個總結和方便大家的交流,我寫了這篇關于pic單片機的學習心得,都是在看了手冊和編程調試后用自己的語言組織的,其中有不足或者有疑問的地方希望大家能及時的給予糾正和批評,提出寶貴的意見。
單片機學習總結篇六
一直想寫一個帖子,將自己學習單片機的經歷、經驗和方法總結一下,今天終于動手寫了,呵呵,這是我學習單片機的經驗、心得、方法。希望對大家學習單片機有所幫助。
經常在群、論壇里看到有人問:怎么學單片機?也常看到有人說學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。
的時候,因為制作fm發(fā)射電路采用了bh1415的芯片,需要用到單片機控制,所以開始接觸使用單片機,雖然以前讀書時作為一門功課學過,不過也快丟荒了了,基本上都忘光了,也算是從頭學起了吧。我當時是買了一塊實驗板,很簡單的功能,比論壇實驗板還要少功能,還有一個仿真器,也是比較簡單的,sst芯片的。然后開始從大家都知道的流水燈寫起,萬事開頭難,第一個程序基本上就抄人家的,翻查了一份快速入門的學習資料,()寫下第一個程序。然后,在仿真機是單步的看運行結果,從每一步執(zhí)行,都硬件上反應出來的效果,很快,對單片機的運作有了一個非常感性的認識,這跟只看書然后自己想象運行是完全兩碼事。然后,是進一步的其它程序學習,一個月時間,基本上已經熟悉了51的各種硬件資源。把流水燈,數(shù)碼管動態(tài)掃描,中斷等等的學習了,然后就是寫綜合性的程序,也就是我發(fā)在論壇里的時鐘。通過這個程序的編寫,使自己的編程水平有了很大的飛躍。之后,就是逐步學習編寫更多的程序,各種外圍器件的控制等等,通過編寫程序使自己不斷的提高。在學過匯編之后,我又轉到了c語言學習,因為以前沒有學習過c語言,一切都很陌生,所以自己沿用了學習匯編的方法,大約花了3天功夫基本就對c語言有了初步的了解,然后就是嘗試寫上面所說的時鐘,以匯編程序的思路作為參考,以c語言來編寫,花了幾天功夫完成了這一程序,也實現(xiàn)了從匯編編程為主到c編程為主的轉變。然后,就是以c語言編寫外圍器件的控制程序,以此來熟悉c的編程風格,一直到現(xiàn)在,基本上就是c語言編程,匯編已經是作為調試程序的輔助。
下面我概括了幾點我的學習經驗和心得體會:
1、萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,說keil不會建項目啦、沒有實驗板啦之類的。遇到困難要一件件攻克,不會建項目,就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然后建個程序,加入項目中,再寫代碼、編譯、生成hex,刷進單片機中、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。
2、知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。
3、程序不要光看不寫,一定要自己寫一次。最開始的時候,啥都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果,看明白了之后,就要自己寫一次,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距……當你自己能寫出來的時候,說明你就真的懂了。
4、必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發(fā)個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發(fā)現(xiàn)問題和學會如何解決問題。這就需要學習調試程序的方法,比如keil里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發(fā)現(xiàn)你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。
5、找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態(tài)度,無助于你編程水平的提高。我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以,要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人,所以現(xiàn)在我也明白了,以前讀書時說的程序流程圖很重要,現(xiàn)在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。舉個例子:數(shù)碼管動態(tài)掃描,沒寫過的初學者可能搞不清是怎么回事,其實,就是分時讓每一時間段時只控制一只數(shù)碼管顯示數(shù)字,幾只數(shù)碼管輪流顯示,由于速度很快,人眼的看起來是全部數(shù)碼管都亮的。明白是這么一回事,事情就好辦了,剩下的事情,無非是你安排讓一只只數(shù)碼管輪流顯示出相應的數(shù)值。顯示數(shù)字,然后延時一下,再下一只顯示數(shù)字,延時,知道是這樣,我們實際程序上只要做到這樣就可以:往段口送段碼,然后打開位選顯示一只,延時一下,再關閉位選,再送出段碼,再打開另一只位選僅此而已。有了解決問題的思路,我們就能問題拆分開來,然后逐一的解決,如果動態(tài)掃描的原理都沒懂,不知道如何做,那么這個程序是怎么也寫不出來的。
6、開動腦筋,運用多種方法,不斷優(yōu)化自己的程序。想想用各種不同方法來實現(xiàn)同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執(zhí)行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。
7、看別人的代碼,學習人家的思路。這個在學習初期是很有用,通過看別人的代碼,特別是有多年編程經驗的人寫出的具有一定水平的代碼,可以使自己編程水平得到迅速的提高,同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的代碼,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。
8、嘗試編寫一下綜合應用的程序。從流水燈學起,到動態(tài)掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(io讀?。?、動態(tài)掃描(io輸出)、中斷等,如何協(xié)調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序啥也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協(xié)調過程。當你有了這個處理協(xié)調能力,你就算是入門了。
9、著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少代碼或者做過什么?!皩W單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機多年來感悟出來的。經??吹接腥苏f“你會驅動xx芯片,真牛啊”“你搞過xx項目,真厲害”之類的話,其實這是非常片面的,搞過xx芯片,搞過xx項目,只能說明你做過這一項目,它只是你的業(yè)績,并不是代表能力就一定高。真正的能力應該是:“遇到沒有解決過的問題或器件,能利用自己已學的知識,迅速找到解決問題的方法?!边@個才是能力。寫程序的過程就是一個創(chuàng)造的過程,幾乎沒有完全一樣的項目,每次你遇上的幾乎都不相同,所以你擁有的必須是你面對新項目時的創(chuàng)造能力,而不是標榜著你以往做過多少項目。當然,業(yè)績也能從另一側面反映你的經驗和水平。
10、如果有可能,多學習計算機專業(yè)的知識,比如數(shù)據結構等。這些是你解決問題的基礎知識,你把這些知識應用得越好,就會發(fā)現(xiàn)越容易找到解決問題的方法,這就是為什么一個學計算機專業(yè)的人編的程序和一個非計算機專業(yè)的人編的程序有差異的原因。也是一個菜鳥進軍到高手所要配備的知識。如果我們把編程分為宏觀編程和微觀編程,那么微觀編程就是寫具體的代碼,比如控制某某器件的語句;而宏觀編程就是如何對整個程序進行布局、安排,使功能模塊以你想要的方式去運行,得出你想要的結果。如前所說“會控制xx器件”這些只能算是微觀編程,能做到這一步還只能算是菜鳥級別,如果面對一個新的器件,你心里沒底,沒把握去寫這個控制程序,那說明你還是一個初級的菜鳥。當你有了一定的編程經驗,控制過相當數(shù)量的器件之后,你就會發(fā)現(xiàn),控制器件這些工作都是相似的、重復的工作,體現(xiàn)不出編程的水平,最多也是寫得好與不好的差別,只能算是一些小技巧的應用。而對整個程序進行布局、安排這些才是最頭痛的事情,能達到宏觀編程和微觀編程都做好才是真正的高手。對于規(guī)模越大的程序,越能體現(xiàn)出這一點。
11、面對一個新項目時,多自己開動腦筋,不要急于找別人的程序。有不少人面對一個新項目時,第一步想到的就是網上找別人寫過的代碼,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個新項目時,應該先自己構思一下整個程序的架構,想想如何來完成,有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數(shù)據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教別人,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的`思路,如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。
12、多利用網絡的搜索,學會提問題。一般來說,學習過程中,你遇上的問題,前人們多數(shù)也有遇上的,所以如果有什么不懂,在自己解決不了的時候,最好先到網上搜索一下,看能不能找到答案,找不到再到論壇里發(fā)問,發(fā)問也要有目的性,盡量簡單明了的描述問題,讓幫助你的人可以用最少的時間就看懂你說什么,畢竟人家?guī)椭闶敲赓M的,時間也是有限的。
以上就是我學習單片機的經歷和心得體會,希望對大家會有幫助,說得有不好或不對的地方歡迎大家批評指正。
時光飛逝,一轉眼,一個學期又進尾聲了,本學期的單片機綜合課程設計也在一周內完成了。
俗話說“好的開始是成功的一半”。說起課程設計,我認為最重要的就是做好設計的預習,認真的研究老師給的題目,選一個自己有興趣的題目。其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。
雖然這次的課程設計算起來在實驗室的時間只有三天,不過因為我們都有自己的實驗板,所以在宿舍里做實驗的時間一定不止三天。
硬件的設計跟焊接都要我們自己動手去焊,軟件的編程也要我們不斷的調試,最終一個能完成課程設計的勞動成果出來了,很高興它能按著設計的思想與要求運動起來。
當然,這其中也有很多問題,第一、不夠細心比如由于粗心大意焊錯了線,由于對課本理論的不熟悉導致編程出現(xiàn)錯誤。()第二,是在學習態(tài)度上,這次課設是對我的學習態(tài)度的一次檢驗。對于這次單片機綜合課程實習,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數(shù)都是由于我們不夠嚴謹。第三,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。
在這次難得的課程設計過程中我鍛煉了自己的思考能力和動手能力。通過題目選擇和設計電路的過程中,加強了我思考問題的完整性和實際生活聯(lián)系的可行性。在方案設計選擇和芯片的選擇上,培養(yǎng)了我們綜合應用單片機的能力,對單片機的各個管腳的功能也有了進一步的認識。還鍛煉我們個人的查閱技術資料的能力,動手能力,發(fā)現(xiàn)問題,解決問題的能力。并且我們熟練掌握了有關器件的性能及測試方法。
再次感謝老師的輔導以及同學的幫助,是他們讓我有了一個更好的認識,無論是學習還是生活,生活是實在的,要踏實走路。課程設計時間雖然很短,但我學習了很多的東西,使我眼界打開,感受頗深。
單片機學習總結篇七
先說說單片機,一般我們此刻用的比較多的的mcs—51的單片機,它的資料比較多,用的人也很多,市場也很大。就我個人的體會怎樣樣才能更快的學會單片機這門課。單片機這門課是一項十分重視動手實踐的科目,不能總是看書,可是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟件去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管腳的電平什么時候輸出高,什么時候輸出低。由這些高低電平的變化來控制你的系統(tǒng)板,實現(xiàn)我們需要的各個功能。至于看書,只需大概了解單片機各管腳都是干什么的能實現(xiàn)什么樣的功能第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天的就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三遍就夠了,能夠不用仔細的看。
推薦一本書,就這一本就足夠,書名是《新編mcs—51單片機應用設計》,是哈爾濱工業(yè)大學出版社出的的,作者是張毅剛。大概了解一下書上的資料,然后實踐,這是十分關鍵的,如果說學單片機你不實踐那是不可能學會的,關于實踐有兩種方法你能夠選擇,一種方法:你自我花錢買一塊單片機的學習板,不要求功能太全的,對于初學者來說你買功能十分多的那種板子,上頭有很多東西你這輩子都用不著,我提議有流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、ad或da(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上頭我提到的這些,你能熟練應用,那能夠說對于單片機方面的硬件你已經入門了,剩下的就是自我練習設計電路,不斷的積累經驗。只要過了第一關,后面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統(tǒng)板。對于高手來說,做個單片機的最小系統(tǒng)板只需要一分鐘的時間,而對于初學者可就難多了,因為僅有對硬件了解了,才能熟練運用。而如果你身邊沒有這樣的高手,又找不到能夠幫忙你的人,那我勸你最好是自我買上一塊,畢竟自我有一塊要方便的多,以后做單片機類的小實驗時都能用得上,還省事。
有了單片機學習板之后你就要多練習,最好是自我有臺電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調試軟件坐在電腦前,先學會怎樣用調試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經入門了,你會發(fā)現(xiàn)單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意愿實現(xiàn)時你比做什么事都開心,你會上癮的,真的。做電子類的人真的會上癮。然后讓數(shù)碼管亮起來,這兩項會了后,你已經不能自拔了,你已經開始研究你這輩子要走哪一行了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當?shù)玫浇獯鸷竽銜涀∫惠呑拥?,知識必須用于現(xiàn)實生活中,解決實際問題,這樣才能發(fā)揮它的作用,你自我好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么是不是為了期末考試而忙碌呢考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是你學到什么了可是我告訴你單片機一旦學會,永遠不會忘了。另外我再說說用匯編和c語言編程的問題。
很多同學大一二就開設了c語言的課,我也上過,我明白那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什么用讓你用c語言編單片機的程序你是不是就傻了書上的東西我們必須要會運用。單片機編程用c語言或匯編語言都能夠,可是我提議用c語言比較好,如果原先有c語言的基礎那學起來會更好,如果沒有,也能夠邊學單片機邊學c語言,c語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以后也得學,你一點匯編都不會根本無所謂,但你一點c語言都不會那你將來會吃苦頭。匯編寫程序代碼效率高,但相對難度較大,并且很羅嗦,尤其是遇到算法方面的問題時,根本是麻煩的不得了,此刻單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的rom也在不斷的提高,足夠裝得下你用c語言寫的任何代碼,c語言的資料又多又好找,將來可移植性十分好,只需要變一個io口寫個溫度傳感器的程序在哪里都能用,所以我勸大家用c語言。
總結上頭,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個單片機來說就是件十分容易的事。
步驟:
1、找本書大概了解一下單片機結構,大概了解就行。不用都看懂,又不讓你出書的。(三天)。
2、找學習板練習編寫程序,學單片機就是練編程序,遇到不會的再問人或查書。(二十天)。
3、自我網上找些小電路類的資料練習設計外圍電路。焊好后自我調試,熟悉過程。(十天)。
4、自我完全設計具有個人風格的電路,產品,你已經是高手了......
看到了嗎下功夫一個多月你就能成為高手,我就講這么多了,學不學得會,下不下得了功夫就看你的了。
單片機學習總結篇八
經常在群、論壇里看到有人問:怎么學單片機?也??吹接腥苏f學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。
05年的時候,因為制作fm發(fā)射電路采用了bh1415的芯片,需要用到單片機控制,所以開始接觸使用單片機,雖然以前讀書時作為一門功課學過,不過也快丟荒了10年了,基本上都忘光了,也算是從頭學起了吧。我當時是買了一塊實驗板,很簡單的功能,比論壇實驗板還要少功能,還有一個仿真器,也是比較簡單的,sst芯片的。然后開始從大家都知道的流水燈寫起,萬事開頭難,第一個程序基本上就抄人家的,翻查了一份快速入門的學習資料,寫下第一個程序。然后,在仿真機是單步的看運行結果,從每一步執(zhí)行,都硬件上反應出來的效果,很快,對單片機的運作有了一個非常感性的認識,這跟只看書然后自己想象運行是完全兩碼事。然后,是進一步的其它程序學習,一個月時間,基本上已經熟悉了51的各種硬件資源。把流水燈,數(shù)碼管動態(tài)掃描,中斷等等的學習了,然后就是寫綜合性的程序,也就是我發(fā)在論壇里的時鐘。通過這個程序的編寫,使自己的編程水平有了很大的飛躍。之后,就是逐步學習編寫更多的程序,各種外圍器件的控制等等,通過編寫程序使自己不斷的提高。在學過匯編之后,我又轉到了c語言學習,因為以前沒有學習過c語言,一切都很陌生,所以自己沿用了學習匯編的方法,大約花了3天功夫基本就對c語言有了初步的了解,然后就是嘗試寫上面所說的時鐘,以匯編程序的思路作為參考,以c語言來編寫,花了幾天功夫完成了這一程序,也實現(xiàn)了從匯編編程為主到c編程為主的轉變。然后,就是以c語言編寫外圍器件的控制程序,以此來熟悉c的編程風格,一直到現(xiàn)在,基本上就是c語言編程,匯編已經是作為調試程序的'輔助。
下面我概括了幾點我的學習經驗和心得體會:
1、萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,說keil不會建項目啦、沒有實驗板啦之類的。遇到困難要一件件攻克,不會建項目,就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然后建個程序,加入項目中,再寫代碼、編譯、生成hex,刷進單片機中、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。
2、知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。
3、程序不要光看不寫,一定要自己寫一次。最開始的時候,啥都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果,看明白了之后,就要自己寫一次,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距……當你自己能寫出來的時候,說明你就真的懂了。
4、必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發(fā)個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發(fā)現(xiàn)問題和學會如何解決問題。這就需要學習調試程序的方法,比如keil里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發(fā)現(xiàn)你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。
5、找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態(tài)度,無助于你編程水平的提高。我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以,要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人,所以現(xiàn)在我也明白了,以前讀書時說的程序流程圖很重要,現(xiàn)在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。舉個例子:數(shù)碼管動態(tài)掃描,沒寫過的初學者可能搞不清是怎么回事,其實,就是分時讓每一時間段時只控制一只數(shù)碼管顯示數(shù)字,幾只數(shù)碼管輪流顯示,由于速度很快,人眼的看起來是全部數(shù)碼管都亮的。明白是這么一回事,事情就好辦了,剩下的事情,無非是你安排讓一只只數(shù)碼管輪流顯示出相應的數(shù)值。顯示數(shù)字,然后延時一下,再下一只顯示數(shù)字,延時,知道是這樣,我們實際程序上只要做到這樣就可以:往段口送段碼,然后打開位選顯示一只,延時一下,再關閉位選,再送出段碼,再打開另一只位選僅此而已。有了解決問題的思路,我們就能問題拆分開來,然后逐一的解決,如果動態(tài)掃描的原理都沒懂,不知道如何做,那么這個程序是怎么也寫不出來的。
6、開動腦筋,運用多種方法,不斷優(yōu)化自己的程序。想想用各種不同方法來實現(xiàn)同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執(zhí)行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。
7、看別人的代碼,學習人家的思路。這個在學習初期是很有用,通過看別人的代碼,特別是有多年編程經驗的人寫出的具有一定水平的代碼,可以使自己編程水平得到迅速的提高,同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的代碼,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。
8、嘗試編寫一下綜合應用的程序。從流水燈學起,到動態(tài)掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(io讀?。?、動態(tài)掃描(io輸出)、中斷等,如何協(xié)調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序啥也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協(xié)調過程。當你有了這個處理協(xié)調能力,你就算是入門了。
9、著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少代碼或者做過什么?!皩W單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機多年來感悟出來的。經常看到有人說“你會驅動xx芯片,真牛啊”“你搞過xx項目,真厲害”之類的話,其實這是非常片面的,搞過xx芯片,搞過xx項目,只能說明你做過這一項目,它只是你的業(yè)績,并不是代表能力就一定高。真正的能力應該是:“遇到沒有解決過的問題或器件,能利用自己已學的知識,迅速找到解決問題的方法?!边@個才是能力。寫程序的過程就是一個創(chuàng)造的過程,幾乎沒有完全一樣的項目,每次你遇上的幾乎都不相同,所以你擁有的必須是你面對新項目時的創(chuàng)造能力,而不是標榜著你以往做過多少項目。當然,業(yè)績也能從另一側面反映你的經驗和水平。
10、如果有可能,多學習計算機專業(yè)的知識,比如數(shù)據結構等。這些是你解決問題的基礎知識,你把這些知識應用得越好,就會發(fā)現(xiàn)越容易找到解決問題的方法,這就是為什么一個學計算機專業(yè)的人編的程序和一個非計算機專業(yè)的人編的程序有差異的原因。也是一個菜鳥進軍到高手所要配備的知識。如果我們把編程分為宏觀編程和微觀編程,那么微觀編程就是寫具體的代碼,比如控制某某器件的語句;而宏觀編程就是如何對整個程序進行布局、安排,使功能模塊以你想要的方式去運行,得出你想要的結果。如前所說“會控制xx器件”這些只能算是微觀編程,能做到這一步還只能算是菜鳥級別,如果面對一個新的器件,你心里沒底,沒把握去寫這個控制程序,那說明你還是一個初級的菜鳥。當你有了一定的編程經驗,控制過相當數(shù)量的器件之后,你就會發(fā)現(xiàn),控制器件這些工作都是相似的、重復的工作,體現(xiàn)不出編程的水平,最多也是寫得好與不好的差別,只能算是一些小技巧的應用。而對整個程序進行布局、安排這些才是最頭痛的事情,能達到宏觀編程和微觀編程都做好才是真正的高手。對于規(guī)模越大的程序,越能體現(xiàn)出這一點。
11、面對一個新項目時,多自己開動腦筋,不要急于找別人的程序。有不少人面對一個新項目時,第一步想到的就是網上找別人寫過的代碼,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個新項目時,應該先自己構思一下整個程序的架構,想想如何來完成,有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數(shù)據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教別人,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路,如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。
12、多利用網絡的搜索,學會提問題。一般來說,學習過程中,你遇上的問題,前人們多數(shù)也有遇上的,所以如果有什么不懂,在自己解決不了的時候,最好先到網上搜索一下,看能不能找到答案,找不到再到論壇里發(fā)問,發(fā)問也要有目的性,盡量簡單明了的描述問題,讓幫助你的人可以用最少的時間就看懂你說什么,畢竟人家?guī)椭闶敲赓M的,時間也是有限的。
單片機學習總結篇九
我從大二起,就去實驗室去學習。在那里與教師和一些電子設計愛好者的交流中,我學到了更多的專業(yè)知識。我從此走上了學習嵌入式的道路。這豐富了我的大學生活,是我在大學的最大收獲。
我是從學習單片機開始我的嵌入式學習的。
我接觸單片機的方式是在圖書館看書,我看了很多本書,可是大多數(shù)書寫的大同小異。書里面講解的單片機的寄存器我看了很多遍也沒有看懂。我都不明白改怎樣學習它了。慢慢的我悟出了一個道理:電子的學習實踐是最重要的,這樣,我在大二的時候就買了一塊學習板,我一邊看視頻一邊仿照視頻的程序,自我編寫程序,在很短的時間里,我的單片機有了很大的提高。那些難懂的寄存器透過編寫程序,我慢慢的弄懂了它們,此刻回頭看去,原先它還是很簡單的。
用哪種編程語言最適合我們。
我看過的單片機的書籍,大部分的程序都是匯編寫的。它是一種基于機器硬件的低級語言,對于我們這些只學習過c語言的人來說,十分難懂。我認為剛開始學習單片機沒有必要必須要從學習匯編編程開始。我學習單片機就是用c語言編程的,我并不會匯編語言,也沒有妨礙我把單片機學好。
很多人說,學單片機最好先學匯編語言,以我的經驗告訴大家,絕對沒有這個必要,初學者一開始就直接用c語言為單片機編程,既省時間,學起來又容易,提高速度會很快。在剛開始學單片機的時候,千萬不要為了解單片機內部結構而浪費時間,這樣只能打擊你的信心,當你學會編程后,自然一步步就掌握其內部結構了。
單片機提高重在實踐,想要學好單片機,軟件編程必不可少??墒鞘煜び布τ趯W好單片機的也是十分重要的。如何學習好硬件,動手實踐是必不可少的。我們能夠透過自我動手做一個自我的電子制作,透過完成它,以提高我的對一些芯片的了解和熟練運用它。這樣我們就能夠多一些了解芯片的結構。我相信,你完成了一個屬于自我的電子制作,你的單片機水平就會有一個質的提高。
單片機學習總結篇十
本人還是學生,此刻大三,接觸單片機一年多以來,從最基礎的51開始,到更高級點的msp430,一向到此刻剛開始上手的stm32,編過的程序不算多,但加起來怎樣也有上百個了,做過的東西仔細數(shù)數(shù),能拿出手來算算的上是個樣的也不下十個,算是小有所成吧。
但今日,我卻發(fā)現(xiàn),這一年我一向在走一條歪路。
先說一下情景吧,是這樣的,最近同學幾個合伙做個小項目,不算復雜,跟市面上的工程項目完全沒法比,用難再需要使用的一個芯片是教師給的,從沒用過,沒有歷程,至于一份電子版的數(shù)據手冊,一切的一切都只能是從頭開始,從底層開始,我們幾個斌開始從最底層的邏輯時序、寄存器操作開始,但經過幾天的研究,確實毫無效果可言。
為此,我們幾個郁悶了好長時間,開始瘋狂的上網搜資料,拷代碼,卻終究是不得而返,還讓教師罵了一頓,因為這個項目是我們主動要求教師放給我們的,結果卻耽誤了工期。
我次我們幾個人很受打擊,最終決定大家一齊靜下心來分析分析,到底我們敗在了什么地方。
最終總經過兩天的思考、討論、總結、檢討···,我們發(fā)現(xiàn)了問題的所在,想來想去,這估計是很大一部分初學者正在面臨的一個“瓶頸問題”,所以,由我凈這個討論的結果發(fā)布出來,期望與更多的人交流、分享、提高、共勉。
下頭先總結一下我們失敗的幾點原因:
1、“都是開發(fā)板惹的禍”,能夠說從開始學習單片機,哪怕是最基礎的51、以致之后的msp430、arm,我沒從未離開過開發(fā)板,并且這長達一年多的時間,養(yǎng)成了我們對開發(fā)板極大的依靠,盡管自我焊過51最小系統(tǒng)、繪制過430最小系統(tǒng)板,但都是參考的別人已有的電路圖,連最基本的電路基本都沒分析過,為什么要在這幾個電阻,該加個多大的,不加會怎樣樣,太大了太小了會有什么后果,等等此類問題,我們從未分析過,全是copy、copy、再copy,以致自我做過的東西不少,本事卻未曾提高。
2、“全是例程誤導我”,我們買來的開發(fā)板,往往都會帶有豐富的例程,通常這也是賣家吹噓、比拼的地方,但就是這些附帶的歷程,讓我們與底層的開發(fā)絕緣了,有了例程,我們不用再一個代碼一個代碼地敲鍵盤,不用再去研究那些器件的數(shù)據手冊、通信接口、寄存器、內部原理、以及很多商家沒給我們加進去的功能,哪怕是將這些程序改到別的地方,我們也可是是在宏定義里改兩個引腳配置而已,從未嘗試過從底層寫驅動、敲代碼、寫函數(shù),從未嘗試過快平臺移植代碼,開發(fā)呢些沒用過的功能等等。
3、“現(xiàn)實環(huán)境太無奈”,這跟上頭兩個說的是不一樣的方面,我們都是大學生,大學里此刻吵得火熱的“大學生就業(yè)難”、“你是考研還是就業(yè)”、“你報xxx培訓班了嗎”“你考四六級證了嗎”等等,好像上大學就是為了干這些,似乎沒有這些,你就會陷入“畢業(yè)即失業(yè)”的困境。應對這些外來的干擾,越來越多的學生坐不住了,我們這些人也一樣,盡管一向在學習自我的愛好,但當被人問得多了的時候,心里也難免會發(fā)毛、會害怕,從而導致一年來真正靜下心來學這些東西的時間越來越少。
大體也就總結怎樣多吧,經過這次失敗,也算是教訓深刻吧,此刻才大三,到大四畢業(yè),還有近兩年的時間,還不算太晚,再說將來的路還長,此刻發(fā)現(xiàn)這些,應當不算晚吧。
對我們來說,革命尚未成功,同志仍需努力啊!
開這貼,一為總結這次失敗、而為自我立志改變、三為警示之后的同學、四為大家齊言獻計。
大家有遇到同樣問題的、要類似迷茫的、要好的提議意見的,歡迎回帖交流,大家一齊共勉。
單片機學習總結篇十一
學習單片機最終要的是當然是練,我所說的學習跟課堂上的單片機學習不同,我以前也看過一些單片機教材,有些教材講的是單片機的工作原理和內部結構,這些東西對于我們暫時并不需要,等以后開課的時候在學習好了。現(xiàn)在要學習的是暫時拋開內部結構原理不談,如何能用單片機寫一些簡單的小程序,是從實用性的角度出發(fā),網上有一種說法稱之為先實踐后理論的學習方法。
因此我的觀點如下,單片機的硬件結構首先要有一個基本的了解,最起碼要知道各引腳的功能、區(qū)別,能自己動手搭一個單片機的最小系統(tǒng),然后就可以直接從程序入手,程序最好還是用c語言編程,從簡單的跑馬燈做起,逐漸深入,陸續(xù)可以做一些數(shù)碼管、液晶、ds1302、ds18b20等電子元器件的應用,在深入就可以結合一些具體實例擴展一些中斷、串口通訊等功能。還有一點要聲明的是單片機里用到的c語言其實很有限,課堂上學習c++的很大一部分內容在初期單片機編程中都用不到,因此沒必要因為覺的自己的c語言基礎不是很好而對單片機望而止步!
單片機學習總結篇十二
兩周的單片機課程設計最終順利完成了,其中包含著歡樂,也有辛酸。我們選的設計題目是“數(shù)字溫度計”,大家都覺得這個題目是比較簡單的。其實不然,做了之后,發(fā)現(xiàn)設計電路雖然簡單,但我們認為它真正困難的地方是程序設計,可是在我們同心努力下最終完成了。
我們剛選該題目時,真的是一頭霧水,硬件電路不知如何下手,更何談解決程序那塊,因為我們所學的都是單片機方面的理論知識,應用到實踐中去還比較少??墒?,我們三人也沒偷下懶,迅速分工去查閱和收集資料。我們去了圖書館借一些參考書,上網找一些相關資料,并且請教指導教師。經過不斷努力,最終把數(shù)字溫度計的思路和模型定了下來并開始分一個人去焊接硬件電路,剩下的去整理和修改程序。
經過一番整理和修改后,在電腦上進行仿真,仿真成功后準備焊接電路板。在焊接電路板中,我們首先對硬件電路進行布局,然后確認無誤后,在電路板上進行焊接,這個過程我們覺得是做得比較快的,以至于后面出現(xiàn)了虛焊的錯誤。
焊接電路板完工,細心檢查后,進行通電測試。結果液晶lcd沒有顯示,經過檢查,原先是lcd壞了,在換了塊新的后,能顯示顯示值。但還有個問題是,當報警電路不會報警,在請教教師后,發(fā)現(xiàn)走動蜂鳴器的電壓太低了,是因為串接了一個太大的電阻。然后,我們換了一個小電阻,但這時蜂鳴器卻一向在叫,停不下來,可是,在我們三人的的細心檢查下,原先是在放大電路的一端虛焊了,這說明我們焊接電路的技術還不夠好。在重新焊接那端后,數(shù)字溫度電路最終成功實現(xiàn)功能,當時我們的心境都是無比興奮和歡樂的,因為我們兩周的辛苦沒有白費。
在完成單片機課程設計后,我們發(fā)現(xiàn)我們還有許多不足,所學到的知識還遠遠不夠,以至于還有一些功能不能被動完成。但經過學習這一次實踐,增強了我們的動手本事,提高和鞏固了單片機方面的知識,特別是軟件方面。從中增強了我們的團隊合作精神,并讓我們認識到把理論應用到實踐中去是多么重要。
單片機學習總結篇十三
很多想學單片機的人問我的第一句話就是怎樣才能學好單片機?對于這個問題我今天就我自己是如何開始學單片機,如何開始上手,如何開始熟練這個過程給大家講講。
先說說單片機,一般我們現(xiàn)在用的比較多的的mcs-51的單片機,它的資料比較多,用的人也很多,市場也很大。
就我個人的體會怎么樣才能更快的學會單片機這門課。
單片機這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟件去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管腳的電平什么時候輸出高,什么時候輸出低。
由這些高低電平的變化來控制你的系統(tǒng)板,實現(xiàn)我們需要的各個功能。
至于看書,只需大概了解單片機各管腳都是干什么的?能實現(xiàn)什么樣的功能?第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。
所以我總是說,學單片機看書看兩三天的就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三遍就夠了,可以不用仔細的看。
推薦一本書,就這一本就足夠,書名是《新編mcs-51單片機應用設計》,是哈爾濱工業(yè)大學出版社出的的,作者是張毅剛。
大概了解一下書上的內容,然后實踐,這是非常關鍵的,如果說學單片機你不實踐那是不可能學會的,關于實踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊單片機的學習板,不要求功能太全的,對于初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、ad或da(原理一樣)、液晶、蜂鳴器,這就差不多了。
如果上面我提到的這些,你能熟練應用,那可以說對于單片機方面的硬件你已經入門了,剩下的就是自己練習設計電路,不斷的積累經驗。
只要過了第一關,后面的路就好走多了,萬事開頭難,大家可能都聽過。
方法二:你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統(tǒng)板。
對于高手來說,做個單片機的最小系統(tǒng)板只需要一分鐘的時間,而對于初學者可就難多了,因為只有對硬件了解了,才能熟練運用。
而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以后做單片機類的小實驗時都能用得上,還省事。
有了單片機學習板之后你就要多練習,最好是自己有臺電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調試軟件坐在電腦前,先學會怎么用調試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經入門了,你會發(fā)現(xiàn)單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意愿實現(xiàn)時你比做什么事都開心,你會上癮的,真的。
做電子類的人真的會上癮。
然后讓數(shù)碼管亮起來,這兩項會了后,你已經不能自拔了,你已經開始考慮你這輩子要走哪一行了。
就是要這樣練習,在寫程序的'時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當?shù)玫浇獯鸷竽銜涀∫惠呑拥?,知識必須用于現(xiàn)實生活中,解決實際問題,這樣才能發(fā)揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是?你學到什么了?但是我告訴你單片機一旦學會,永遠不會忘了。
另外我再說說用匯編和c語言編程的問題。
很多同學大一二就開設了c語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。
學完了有什么用?讓你用c語言編單片機的程序你是不是就傻了?書上的東西我們必須要會運用。
單片機編程用c語言或匯編語言都可以,但是我建議用c語言比較好,如果原來有c語言的基礎那學起來會更好,如果沒有,也可以邊學單片機邊學c語言,c語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以后也得學,你一點匯編都不會根本無所謂,但你一點c語言都不會那你將來會吃苦頭。
匯編寫程序代碼效率高,但相對難度較大,而且很羅嗦,尤其是遇到算法方面的問題時,根本是麻煩的不得了,現(xiàn)在單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的rom也在不斷的提高,足夠裝得下你用c語言寫的任何代碼,c語言的資料又多又好找,將來可移植性非常好,只需要變一個io口寫個溫度傳感器的程序在哪里都能用,所以我勸大家用c語言。
總結上面,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個單片機來說就是件非常容易的事。
步驟:
1.找本書大概了解一下單片機結構,大概了解就行。
不用都看懂,又不讓你出書的。(三天)。
2.找學習板練習編寫程序,學單片機就是練編程序,遇到不會的再問人或查書。(二十天)。
3.自己網上找些小電路類的資料練習設計外圍電路。
焊好后自己調試,熟悉過程。(十天)。
4.自己完全設計具有個人風格的電路,產品,。
你已經是高手了。
看到了嗎?下功夫一個多月你就能成為高手,我就講這么多了,學不學得會,下不下得了功夫就看你的了。
單片機學習總結篇一
我從大二起,就去實驗室去學習。在那里與老師和一些電子設計愛好者的交流中,我學到了更多的專業(yè)知識。我從此走上了學習嵌入式的道路。這豐富了我的大學生活,是我在大學的最大收獲。
我是從學習單片機開始我的嵌入式學習的。
我接觸單片機的方式是在圖書館看書,我看了很多本書,但是大多數(shù)書寫的大同小異。書里面講解的單片機的寄存器我看了很多遍也沒有看懂。我都不明白改怎樣學習它了。慢慢的我悟出了一個道理:電子的學習實踐是最重要的,這樣,我在大二的時候就買了一塊學習板,我一邊看視頻一邊仿照視頻的程序,自己編寫程序,在很短的時間里,我的單片機有了很大的提高。那些難懂的寄存器透過編寫程序,我慢慢的弄懂了它們,此刻回頭看去,原先它還是很簡單的。
用哪種編程語言最適合我們。
我看過的單片機的書籍,大部分的程序都是匯編寫的。它是一種基于機器硬件的低級語言,對于我們這些只學習過c語言的人來說,十分難懂。我認為剛開始學習單片機沒有必要必須要從學習匯編編程開始。我學習單片機就是用c語言編程的,我并不會匯編語言,也沒有妨礙我把單片機學好。
很多人說,學單片機最好先學匯編語言,以我的經驗告訴大家,絕對沒有這個必要,初學者一開始就直接用c語言為單片機編程,既省時間,學起來又容易,進步速度會很快。在剛開始學單片機的時候,千萬不要為了解單片機內部結構而浪費時間,這樣只能打擊你的信心,當你學會編程后,自然一步步就掌握其內部結構了。
單片機提高重在實踐,想要學好單片機,軟件編程必不可少。但是熟悉硬件對于學好單片機的也是十分重要的。如何學習好硬件,動手實踐是必不可少的。我們能夠透過自己動手做一個自己的電子制作,透過完成它,以提高我的對一些芯片的了解和熟練運用它。這樣我們就能夠多一些了解芯片的結構。我相信,你完成了一個屬于自己的電子制作,你的單片機水平就會有一個質的提高。
這就是我學習單片機的心得體會,期望給單片機的愛好者學好單片機有所幫忙。
單片機學習總結篇二
優(yōu)秀作文推薦:《單片機》這門課程我已經學了一個學期了,在這一個學期的學習過程中,我一開始不怎么懂得編程,但慢慢的我現(xiàn)在已經不僅會讀程序還會寫程序了。真為自己一個學期來努力學到的單片機知識只是而感到高興。
怎么學單片機?也??吹接腥苏f學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。
我覺得學習單片機首先要懂得c語言,因為單片機大多說都是靠程序來實現(xiàn)的,如果看不懂程序或則不懂的編程是很難學會單片機的。學習單片機首先要明白一個程序是怎么走的,要完全懂得程序每一個步驟的意思。其次要懂得每一條指令的意思,不能盲目地去靠背指令,這是記得不牢靠的,最主要的還是靠了解。學習單片機最主要的對89c51芯片內部結構有全方面的,只要了解了89c51才能知道單片機實現(xiàn)什么樣的功能和作用,才能對單片機有更深一步的了解。通過一個學期《單片機》這門課程的學習,我也從中有了不少心得和體會想和大家分享一下。
萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,不要說單片機的程序全是英文,自己看不懂。遇到困難要一件件攻克,不懂指令就要勤奮看書,不懂程序就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少。然后建個程序,加入項目中,再寫代碼、編譯、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。
知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。程序不要光看不寫,一定要自己寫一次。最開始的時候,什么都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果??疵靼琢酥螅鸵约簩懸淮?,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距。當你自己能寫出來的.時候,說明你就真的懂了。
必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發(fā)個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發(fā)現(xiàn)問題和學會如何解決問題。這就需要學習調試程序的方法,比如keil里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發(fā)現(xiàn)你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。
找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態(tài)度,無助于你編程水平的提高。
我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以。要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人。所以現(xiàn)在我也明白了,以前讀書時說的程序流程圖很重要,現(xiàn)在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。
開動腦筋,運用多種方法,不斷優(yōu)化自己的程序。想想用各種不同方法來實現(xiàn)同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執(zhí)行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。
看別人的程序,學習人家的思路。這個在學習初期是很有用,通過看別人的程序,特別是老師寫出的具有一定水平的程序,可以使自己編程水平得到迅速的提高。同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的程序,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。
嘗試編寫一下綜合應用的程序。從流水燈學起,到動態(tài)掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(io讀取)、動態(tài)掃描(io輸出)、中斷等,如何協(xié)調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序什么也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協(xié)調過程。當你有了這個處理協(xié)調能力,你就算是入門了。
著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少程序或者做過什么?!皩W單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機學習單片機之后感悟出來的。真正的能力不是你曾經編寫過多少個可以實現(xiàn)的程序,而應該是:“遇到沒有解決過的問題,能利用自己已學的知識,迅速找到解決問題的方法?!边@個才是能力。
面對一個新程序時,多自己開動腦筋,不要急于找別人的程序。
有不少人面對一個新程序時,第一步想到的就是網上找別人寫過的程序,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個程序時,應該先自己構思一下整個程序的架構,想想如何來完成。有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數(shù)據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教老師或同學,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路。如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。
學會提問題。一般來說,學習過程中,你遇上的問題,多數(shù)人也有遇上的,所以如果有什么不懂,你可以去問老師。我覺得學習單片機最主要的要多提問,對于一個自己不是太懂的程序,自己一定要多提問幾遍,這樣不但有利于加深自己的印象還能從中學到不少別人的方法。
經過一個學期我對《單片機》這門課程的學習,不僅讓我懂得了很多程序的編寫,還讓我學到了很多對自己有用的學習方法。總結這個學期來的我自己的學習情況,我覺得自己對編程進步了不少,懂得運用正確的學習方法學習單片機程序,不再去死記硬背指令了。所以我覺得學習要不斷總結學習方法,才能讓自己學習不斷進步。
交通信號燈設計報告。
實驗目的:p1口的使用方法,延時程序的編寫。
實驗要求:在一個十字路口分為東西南北走向,信號等按以下的狀態(tài)順序工作:
(1)初始狀態(tài)0,東西、南北紅燈全亮。延時一定時間;
(2)狀態(tài)1,南北綠燈亮通車,東西紅燈,延時一定時間;
(3)狀態(tài)2,南北綠燈閃爍幾次轉黃燈,東西仍然紅燈,延時一定。
時間;
(4)狀態(tài)3,南北紅燈,東西綠燈通車,延時一定時間;
(5)狀態(tài)4,南北仍然紅燈,東西綠燈閃爍幾次轉黃燈,延時一定。
時間;
(6)循環(huán)至狀態(tài)1,繼續(xù)。
實驗電路和流程框架圖:
(1)硬件電路。
交通燈實訓設備用最小系統(tǒng)板和信號燈組合而成。
2、軟件編程。
若各路口燈亮滅的時間間隔為2s鐘,燈光閃爍時間間隔為0.5s。用軟件延時的方法,晶振頻率12mhz時,一個機器周期為1us。
編寫交通信號燈程序:
編寫主程序,由r7做主程序的計數(shù)器,確定調用延時時間為0.5s,從而獲得交通燈的亮滅時間。
單片機學習總結篇三
剛出生的孩子叫“爸爸”“媽媽”的時候,他甚至不知道“爸爸”“媽媽”是什么意思,更不會理解這些聲音是什么意思,但是我們帶著孩子見到他爸爸就讓他喊“爸爸”,見到媽媽就讓他喊“媽媽”,見到爺爺就喊“爺爺”??慢慢的你會發(fā)現(xiàn),次數(shù)多了,孩子就知道誰是爸爸,誰是媽媽,誰是爺爺,誰是奶奶了。
大家剛開始接觸單片機的時候,也屬于單片機行業(yè)的新生兒。單片機的樣子,單片機外圍的各種器件,單片機內部的各種結構,單片機使用c語言的編程方法,初學者可能都沒有見過,腦子里全無概念。沒關系,有些概念和方法你不理解也沒有關系,甚至不需要你去理解,你只需要跟著我去鸚鵡學舌式的學習,第一遍學習某一節(jié)課的內容時,對于程序,大家就可以完全跟著抄下來,甚至抄兩三遍,過一段你會發(fā)現(xiàn),好多東西你也認識了,好多概念你也慢慢的理解清楚了,你也能大概看懂別人的小程序了,切忌覺得自己看會了,而簡單復制粘貼。
2)照葫蘆畫瓢。
很多同學學習的時候喜歡看,看我做的視頻,看我寫的程序,甚至看別人的程序,都能看懂,覺得自己就會了,等到自己寫程序的時候,感覺就是老鼠啃天,不知道從哪里下手了,這是初學者很容易犯的“眼高手低”的毛病,所以第二步的內容就非常重要了。
我的要求是,每一位同學,在學完了當前課的內容,把第一步順利完成以后,然后關掉視頻教程,關掉源代碼,自己通過看電路圖和查找非源代碼的其他任何資料,把當節(jié)課我寫的程序代碼重新默寫出來,邊寫邊多少理解那么一點點,不是純粹的背誦,應該說是背誦加理解的結合體。甚至學過幾節(jié)課以后,可以回頭把前邊曾經這樣實現(xiàn)過的課程,再按照這種方法做一遍。千萬不要認為這一步沒必要,這一步是你能否真正學會單片機的一個關鍵,在學完本教程之前,每一課內容都要這樣做,如果每一個程序你都能夠完美的完成,那么可以說,當節(jié)課的內容,百分之七八十你已經掌握了。
3)他山之石,可以攻玉。
單片機技術的最大特點就是可以通過修改程序來實現(xiàn)不同的功能,因此舉一反三的能力就必不可少了。每一節(jié)課的例程后邊,我一般都會布置幾個作業(yè),大家盡量去獨立完成這個作業(yè)。在完成這個作業(yè)的過程中,都可以參考我的程序思路,在這個基礎上通過動腦思考去構建你自己的程序框架,最終將程序完成。
在我們工程師實際產品研發(fā)的時候,很多種情況下也是如此。比如一個產品,我們如果從零起步的話,可能會走很多彎路,遭遇很多前人已曾遭遇過的挫折,所以我們通常的做法是尋找購買幾款同類產品,然后先研究他們的各自優(yōu)缺點,學習他們的長處,然后在同類產品基礎上再來設計我們自己的產品,這就是“他山之石,可以攻玉”。
初學者在學習的時候,往往遇到的問題很多,你應該想到,你遇到的問題,可能前輩們早就遇到過了,所以遇到問題后,不要慌張,首先利用谷歌或者百度這些搜索引擎在網上搜一下,要做什么新東西,先去網上找相關資料了解一下,不管是編程還是硬件設計,多多參考別人的東西,只要把別人的東西分析明白了,自己用起來了,也就成為自己的知識了。
4)理論實踐結合,溫故知新。
當大家把所有的課程都按照前邊三步完成后,這個時候不妨再把書打開,再看看書,經過了自己的實戰(zhàn)經歷,再看書的時候,對很多知識點會有一種恍然大悟的感覺。甚至視頻教程、書籍都可以反復看幾遍,可能有的知識點當時學習的時候不明白,過了一段時間,回過頭來再學習的時候,一下就明白了。
單片機學習總結篇四
單片機是一門實用技術,我們學習它已經不是為了應付考試了,我給大家總結了單片機的學習方法是:一個要領,四個步驟。
學習單片機的要領就是:在實踐中成長,indoingwelearn!
學射箭,你得去拉弓,整天只擺造型肯定不行;學游泳,你得下水撲騰,整天在岸上做模仿活動不行;學開車,你得坐車上去開,坐沙發(fā)上肯定學不會。同樣的道理,學單片機,整天盯著單片機書看肯定不行,你也必須得親自動手去練。
沒有不下水就學會游泳成為游泳健將的,沒有不到車上練就能成為賽車手的,這點大家都清楚,可為什么那么多人學單片機的時候,總是只抱著一本書看呢。第一,我們小學中學甚至大學的學習模式都是如此,學什么東西主要都是靠看書,應付書面考試;第二,很多人想實踐卻不太清楚該怎么去實踐。
遇到問題查下書比直接看書的效果要好過百倍。不是不讓大家看書,而是。
單片機學習總結篇五
為了給前一段時間學習pic16f616型單片機的一個總結和方便大家的交流,我寫了這篇關于pic單片機的學習心得,都是在看了手冊和編程調試后用自己的語言組織的,其中有不足或者有疑問的地方希望大家能及時的給予糾正和批評,提出寶貴的意見。
單片機學習總結篇六
一直想寫一個帖子,將自己學習單片機的經歷、經驗和方法總結一下,今天終于動手寫了,呵呵,這是我學習單片機的經驗、心得、方法。希望對大家學習單片機有所幫助。
經常在群、論壇里看到有人問:怎么學單片機?也常看到有人說學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。
的時候,因為制作fm發(fā)射電路采用了bh1415的芯片,需要用到單片機控制,所以開始接觸使用單片機,雖然以前讀書時作為一門功課學過,不過也快丟荒了了,基本上都忘光了,也算是從頭學起了吧。我當時是買了一塊實驗板,很簡單的功能,比論壇實驗板還要少功能,還有一個仿真器,也是比較簡單的,sst芯片的。然后開始從大家都知道的流水燈寫起,萬事開頭難,第一個程序基本上就抄人家的,翻查了一份快速入門的學習資料,()寫下第一個程序。然后,在仿真機是單步的看運行結果,從每一步執(zhí)行,都硬件上反應出來的效果,很快,對單片機的運作有了一個非常感性的認識,這跟只看書然后自己想象運行是完全兩碼事。然后,是進一步的其它程序學習,一個月時間,基本上已經熟悉了51的各種硬件資源。把流水燈,數(shù)碼管動態(tài)掃描,中斷等等的學習了,然后就是寫綜合性的程序,也就是我發(fā)在論壇里的時鐘。通過這個程序的編寫,使自己的編程水平有了很大的飛躍。之后,就是逐步學習編寫更多的程序,各種外圍器件的控制等等,通過編寫程序使自己不斷的提高。在學過匯編之后,我又轉到了c語言學習,因為以前沒有學習過c語言,一切都很陌生,所以自己沿用了學習匯編的方法,大約花了3天功夫基本就對c語言有了初步的了解,然后就是嘗試寫上面所說的時鐘,以匯編程序的思路作為參考,以c語言來編寫,花了幾天功夫完成了這一程序,也實現(xiàn)了從匯編編程為主到c編程為主的轉變。然后,就是以c語言編寫外圍器件的控制程序,以此來熟悉c的編程風格,一直到現(xiàn)在,基本上就是c語言編程,匯編已經是作為調試程序的輔助。
下面我概括了幾點我的學習經驗和心得體會:
1、萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,說keil不會建項目啦、沒有實驗板啦之類的。遇到困難要一件件攻克,不會建項目,就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然后建個程序,加入項目中,再寫代碼、編譯、生成hex,刷進單片機中、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。
2、知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。
3、程序不要光看不寫,一定要自己寫一次。最開始的時候,啥都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果,看明白了之后,就要自己寫一次,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距……當你自己能寫出來的時候,說明你就真的懂了。
4、必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發(fā)個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發(fā)現(xiàn)問題和學會如何解決問題。這就需要學習調試程序的方法,比如keil里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發(fā)現(xiàn)你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。
5、找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態(tài)度,無助于你編程水平的提高。我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以,要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人,所以現(xiàn)在我也明白了,以前讀書時說的程序流程圖很重要,現(xiàn)在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。舉個例子:數(shù)碼管動態(tài)掃描,沒寫過的初學者可能搞不清是怎么回事,其實,就是分時讓每一時間段時只控制一只數(shù)碼管顯示數(shù)字,幾只數(shù)碼管輪流顯示,由于速度很快,人眼的看起來是全部數(shù)碼管都亮的。明白是這么一回事,事情就好辦了,剩下的事情,無非是你安排讓一只只數(shù)碼管輪流顯示出相應的數(shù)值。顯示數(shù)字,然后延時一下,再下一只顯示數(shù)字,延時,知道是這樣,我們實際程序上只要做到這樣就可以:往段口送段碼,然后打開位選顯示一只,延時一下,再關閉位選,再送出段碼,再打開另一只位選僅此而已。有了解決問題的思路,我們就能問題拆分開來,然后逐一的解決,如果動態(tài)掃描的原理都沒懂,不知道如何做,那么這個程序是怎么也寫不出來的。
6、開動腦筋,運用多種方法,不斷優(yōu)化自己的程序。想想用各種不同方法來實現(xiàn)同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執(zhí)行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。
7、看別人的代碼,學習人家的思路。這個在學習初期是很有用,通過看別人的代碼,特別是有多年編程經驗的人寫出的具有一定水平的代碼,可以使自己編程水平得到迅速的提高,同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的代碼,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。
8、嘗試編寫一下綜合應用的程序。從流水燈學起,到動態(tài)掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(io讀?。?、動態(tài)掃描(io輸出)、中斷等,如何協(xié)調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序啥也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協(xié)調過程。當你有了這個處理協(xié)調能力,你就算是入門了。
9、著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少代碼或者做過什么?!皩W單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機多年來感悟出來的。經??吹接腥苏f“你會驅動xx芯片,真牛啊”“你搞過xx項目,真厲害”之類的話,其實這是非常片面的,搞過xx芯片,搞過xx項目,只能說明你做過這一項目,它只是你的業(yè)績,并不是代表能力就一定高。真正的能力應該是:“遇到沒有解決過的問題或器件,能利用自己已學的知識,迅速找到解決問題的方法?!边@個才是能力。寫程序的過程就是一個創(chuàng)造的過程,幾乎沒有完全一樣的項目,每次你遇上的幾乎都不相同,所以你擁有的必須是你面對新項目時的創(chuàng)造能力,而不是標榜著你以往做過多少項目。當然,業(yè)績也能從另一側面反映你的經驗和水平。
10、如果有可能,多學習計算機專業(yè)的知識,比如數(shù)據結構等。這些是你解決問題的基礎知識,你把這些知識應用得越好,就會發(fā)現(xiàn)越容易找到解決問題的方法,這就是為什么一個學計算機專業(yè)的人編的程序和一個非計算機專業(yè)的人編的程序有差異的原因。也是一個菜鳥進軍到高手所要配備的知識。如果我們把編程分為宏觀編程和微觀編程,那么微觀編程就是寫具體的代碼,比如控制某某器件的語句;而宏觀編程就是如何對整個程序進行布局、安排,使功能模塊以你想要的方式去運行,得出你想要的結果。如前所說“會控制xx器件”這些只能算是微觀編程,能做到這一步還只能算是菜鳥級別,如果面對一個新的器件,你心里沒底,沒把握去寫這個控制程序,那說明你還是一個初級的菜鳥。當你有了一定的編程經驗,控制過相當數(shù)量的器件之后,你就會發(fā)現(xiàn),控制器件這些工作都是相似的、重復的工作,體現(xiàn)不出編程的水平,最多也是寫得好與不好的差別,只能算是一些小技巧的應用。而對整個程序進行布局、安排這些才是最頭痛的事情,能達到宏觀編程和微觀編程都做好才是真正的高手。對于規(guī)模越大的程序,越能體現(xiàn)出這一點。
11、面對一個新項目時,多自己開動腦筋,不要急于找別人的程序。有不少人面對一個新項目時,第一步想到的就是網上找別人寫過的代碼,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個新項目時,應該先自己構思一下整個程序的架構,想想如何來完成,有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數(shù)據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教別人,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的`思路,如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。
12、多利用網絡的搜索,學會提問題。一般來說,學習過程中,你遇上的問題,前人們多數(shù)也有遇上的,所以如果有什么不懂,在自己解決不了的時候,最好先到網上搜索一下,看能不能找到答案,找不到再到論壇里發(fā)問,發(fā)問也要有目的性,盡量簡單明了的描述問題,讓幫助你的人可以用最少的時間就看懂你說什么,畢竟人家?guī)椭闶敲赓M的,時間也是有限的。
以上就是我學習單片機的經歷和心得體會,希望對大家會有幫助,說得有不好或不對的地方歡迎大家批評指正。
時光飛逝,一轉眼,一個學期又進尾聲了,本學期的單片機綜合課程設計也在一周內完成了。
俗話說“好的開始是成功的一半”。說起課程設計,我認為最重要的就是做好設計的預習,認真的研究老師給的題目,選一個自己有興趣的題目。其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。
雖然這次的課程設計算起來在實驗室的時間只有三天,不過因為我們都有自己的實驗板,所以在宿舍里做實驗的時間一定不止三天。
硬件的設計跟焊接都要我們自己動手去焊,軟件的編程也要我們不斷的調試,最終一個能完成課程設計的勞動成果出來了,很高興它能按著設計的思想與要求運動起來。
當然,這其中也有很多問題,第一、不夠細心比如由于粗心大意焊錯了線,由于對課本理論的不熟悉導致編程出現(xiàn)錯誤。()第二,是在學習態(tài)度上,這次課設是對我的學習態(tài)度的一次檢驗。對于這次單片機綜合課程實習,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數(shù)都是由于我們不夠嚴謹。第三,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。
在這次難得的課程設計過程中我鍛煉了自己的思考能力和動手能力。通過題目選擇和設計電路的過程中,加強了我思考問題的完整性和實際生活聯(lián)系的可行性。在方案設計選擇和芯片的選擇上,培養(yǎng)了我們綜合應用單片機的能力,對單片機的各個管腳的功能也有了進一步的認識。還鍛煉我們個人的查閱技術資料的能力,動手能力,發(fā)現(xiàn)問題,解決問題的能力。并且我們熟練掌握了有關器件的性能及測試方法。
再次感謝老師的輔導以及同學的幫助,是他們讓我有了一個更好的認識,無論是學習還是生活,生活是實在的,要踏實走路。課程設計時間雖然很短,但我學習了很多的東西,使我眼界打開,感受頗深。
單片機學習總結篇七
先說說單片機,一般我們此刻用的比較多的的mcs—51的單片機,它的資料比較多,用的人也很多,市場也很大。就我個人的體會怎樣樣才能更快的學會單片機這門課。單片機這門課是一項十分重視動手實踐的科目,不能總是看書,可是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟件去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管腳的電平什么時候輸出高,什么時候輸出低。由這些高低電平的變化來控制你的系統(tǒng)板,實現(xiàn)我們需要的各個功能。至于看書,只需大概了解單片機各管腳都是干什么的能實現(xiàn)什么樣的功能第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天的就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三遍就夠了,能夠不用仔細的看。
推薦一本書,就這一本就足夠,書名是《新編mcs—51單片機應用設計》,是哈爾濱工業(yè)大學出版社出的的,作者是張毅剛。大概了解一下書上的資料,然后實踐,這是十分關鍵的,如果說學單片機你不實踐那是不可能學會的,關于實踐有兩種方法你能夠選擇,一種方法:你自我花錢買一塊單片機的學習板,不要求功能太全的,對于初學者來說你買功能十分多的那種板子,上頭有很多東西你這輩子都用不著,我提議有流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、ad或da(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上頭我提到的這些,你能熟練應用,那能夠說對于單片機方面的硬件你已經入門了,剩下的就是自我練習設計電路,不斷的積累經驗。只要過了第一關,后面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統(tǒng)板。對于高手來說,做個單片機的最小系統(tǒng)板只需要一分鐘的時間,而對于初學者可就難多了,因為僅有對硬件了解了,才能熟練運用。而如果你身邊沒有這樣的高手,又找不到能夠幫忙你的人,那我勸你最好是自我買上一塊,畢竟自我有一塊要方便的多,以后做單片機類的小實驗時都能用得上,還省事。
有了單片機學習板之后你就要多練習,最好是自我有臺電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調試軟件坐在電腦前,先學會怎樣用調試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經入門了,你會發(fā)現(xiàn)單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意愿實現(xiàn)時你比做什么事都開心,你會上癮的,真的。做電子類的人真的會上癮。然后讓數(shù)碼管亮起來,這兩項會了后,你已經不能自拔了,你已經開始研究你這輩子要走哪一行了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當?shù)玫浇獯鸷竽銜涀∫惠呑拥?,知識必須用于現(xiàn)實生活中,解決實際問題,這樣才能發(fā)揮它的作用,你自我好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么是不是為了期末考試而忙碌呢考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是你學到什么了可是我告訴你單片機一旦學會,永遠不會忘了。另外我再說說用匯編和c語言編程的問題。
很多同學大一二就開設了c語言的課,我也上過,我明白那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什么用讓你用c語言編單片機的程序你是不是就傻了書上的東西我們必須要會運用。單片機編程用c語言或匯編語言都能夠,可是我提議用c語言比較好,如果原先有c語言的基礎那學起來會更好,如果沒有,也能夠邊學單片機邊學c語言,c語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以后也得學,你一點匯編都不會根本無所謂,但你一點c語言都不會那你將來會吃苦頭。匯編寫程序代碼效率高,但相對難度較大,并且很羅嗦,尤其是遇到算法方面的問題時,根本是麻煩的不得了,此刻單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的rom也在不斷的提高,足夠裝得下你用c語言寫的任何代碼,c語言的資料又多又好找,將來可移植性十分好,只需要變一個io口寫個溫度傳感器的程序在哪里都能用,所以我勸大家用c語言。
總結上頭,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個單片機來說就是件十分容易的事。
步驟:
1、找本書大概了解一下單片機結構,大概了解就行。不用都看懂,又不讓你出書的。(三天)。
2、找學習板練習編寫程序,學單片機就是練編程序,遇到不會的再問人或查書。(二十天)。
3、自我網上找些小電路類的資料練習設計外圍電路。焊好后自我調試,熟悉過程。(十天)。
4、自我完全設計具有個人風格的電路,產品,你已經是高手了......
看到了嗎下功夫一個多月你就能成為高手,我就講這么多了,學不學得會,下不下得了功夫就看你的了。
單片機學習總結篇八
經常在群、論壇里看到有人問:怎么學單片機?也??吹接腥苏f學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。
05年的時候,因為制作fm發(fā)射電路采用了bh1415的芯片,需要用到單片機控制,所以開始接觸使用單片機,雖然以前讀書時作為一門功課學過,不過也快丟荒了10年了,基本上都忘光了,也算是從頭學起了吧。我當時是買了一塊實驗板,很簡單的功能,比論壇實驗板還要少功能,還有一個仿真器,也是比較簡單的,sst芯片的。然后開始從大家都知道的流水燈寫起,萬事開頭難,第一個程序基本上就抄人家的,翻查了一份快速入門的學習資料,寫下第一個程序。然后,在仿真機是單步的看運行結果,從每一步執(zhí)行,都硬件上反應出來的效果,很快,對單片機的運作有了一個非常感性的認識,這跟只看書然后自己想象運行是完全兩碼事。然后,是進一步的其它程序學習,一個月時間,基本上已經熟悉了51的各種硬件資源。把流水燈,數(shù)碼管動態(tài)掃描,中斷等等的學習了,然后就是寫綜合性的程序,也就是我發(fā)在論壇里的時鐘。通過這個程序的編寫,使自己的編程水平有了很大的飛躍。之后,就是逐步學習編寫更多的程序,各種外圍器件的控制等等,通過編寫程序使自己不斷的提高。在學過匯編之后,我又轉到了c語言學習,因為以前沒有學習過c語言,一切都很陌生,所以自己沿用了學習匯編的方法,大約花了3天功夫基本就對c語言有了初步的了解,然后就是嘗試寫上面所說的時鐘,以匯編程序的思路作為參考,以c語言來編寫,花了幾天功夫完成了這一程序,也實現(xiàn)了從匯編編程為主到c編程為主的轉變。然后,就是以c語言編寫外圍器件的控制程序,以此來熟悉c的編程風格,一直到現(xiàn)在,基本上就是c語言編程,匯編已經是作為調試程序的'輔助。
下面我概括了幾點我的學習經驗和心得體會:
1、萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,說keil不會建項目啦、沒有實驗板啦之類的。遇到困難要一件件攻克,不會建項目,就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然后建個程序,加入項目中,再寫代碼、編譯、生成hex,刷進單片機中、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。
2、知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。
3、程序不要光看不寫,一定要自己寫一次。最開始的時候,啥都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果,看明白了之后,就要自己寫一次,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距……當你自己能寫出來的時候,說明你就真的懂了。
4、必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發(fā)個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發(fā)現(xiàn)問題和學會如何解決問題。這就需要學習調試程序的方法,比如keil里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發(fā)現(xiàn)你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。
5、找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態(tài)度,無助于你編程水平的提高。我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以,要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人,所以現(xiàn)在我也明白了,以前讀書時說的程序流程圖很重要,現(xiàn)在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。舉個例子:數(shù)碼管動態(tài)掃描,沒寫過的初學者可能搞不清是怎么回事,其實,就是分時讓每一時間段時只控制一只數(shù)碼管顯示數(shù)字,幾只數(shù)碼管輪流顯示,由于速度很快,人眼的看起來是全部數(shù)碼管都亮的。明白是這么一回事,事情就好辦了,剩下的事情,無非是你安排讓一只只數(shù)碼管輪流顯示出相應的數(shù)值。顯示數(shù)字,然后延時一下,再下一只顯示數(shù)字,延時,知道是這樣,我們實際程序上只要做到這樣就可以:往段口送段碼,然后打開位選顯示一只,延時一下,再關閉位選,再送出段碼,再打開另一只位選僅此而已。有了解決問題的思路,我們就能問題拆分開來,然后逐一的解決,如果動態(tài)掃描的原理都沒懂,不知道如何做,那么這個程序是怎么也寫不出來的。
6、開動腦筋,運用多種方法,不斷優(yōu)化自己的程序。想想用各種不同方法來實現(xiàn)同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執(zhí)行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。
7、看別人的代碼,學習人家的思路。這個在學習初期是很有用,通過看別人的代碼,特別是有多年編程經驗的人寫出的具有一定水平的代碼,可以使自己編程水平得到迅速的提高,同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的代碼,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。
8、嘗試編寫一下綜合應用的程序。從流水燈學起,到動態(tài)掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(io讀?。?、動態(tài)掃描(io輸出)、中斷等,如何協(xié)調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序啥也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協(xié)調過程。當你有了這個處理協(xié)調能力,你就算是入門了。
9、著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少代碼或者做過什么?!皩W單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機多年來感悟出來的。經常看到有人說“你會驅動xx芯片,真牛啊”“你搞過xx項目,真厲害”之類的話,其實這是非常片面的,搞過xx芯片,搞過xx項目,只能說明你做過這一項目,它只是你的業(yè)績,并不是代表能力就一定高。真正的能力應該是:“遇到沒有解決過的問題或器件,能利用自己已學的知識,迅速找到解決問題的方法?!边@個才是能力。寫程序的過程就是一個創(chuàng)造的過程,幾乎沒有完全一樣的項目,每次你遇上的幾乎都不相同,所以你擁有的必須是你面對新項目時的創(chuàng)造能力,而不是標榜著你以往做過多少項目。當然,業(yè)績也能從另一側面反映你的經驗和水平。
10、如果有可能,多學習計算機專業(yè)的知識,比如數(shù)據結構等。這些是你解決問題的基礎知識,你把這些知識應用得越好,就會發(fā)現(xiàn)越容易找到解決問題的方法,這就是為什么一個學計算機專業(yè)的人編的程序和一個非計算機專業(yè)的人編的程序有差異的原因。也是一個菜鳥進軍到高手所要配備的知識。如果我們把編程分為宏觀編程和微觀編程,那么微觀編程就是寫具體的代碼,比如控制某某器件的語句;而宏觀編程就是如何對整個程序進行布局、安排,使功能模塊以你想要的方式去運行,得出你想要的結果。如前所說“會控制xx器件”這些只能算是微觀編程,能做到這一步還只能算是菜鳥級別,如果面對一個新的器件,你心里沒底,沒把握去寫這個控制程序,那說明你還是一個初級的菜鳥。當你有了一定的編程經驗,控制過相當數(shù)量的器件之后,你就會發(fā)現(xiàn),控制器件這些工作都是相似的、重復的工作,體現(xiàn)不出編程的水平,最多也是寫得好與不好的差別,只能算是一些小技巧的應用。而對整個程序進行布局、安排這些才是最頭痛的事情,能達到宏觀編程和微觀編程都做好才是真正的高手。對于規(guī)模越大的程序,越能體現(xiàn)出這一點。
11、面對一個新項目時,多自己開動腦筋,不要急于找別人的程序。有不少人面對一個新項目時,第一步想到的就是網上找別人寫過的代碼,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個新項目時,應該先自己構思一下整個程序的架構,想想如何來完成,有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數(shù)據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教別人,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路,如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。
12、多利用網絡的搜索,學會提問題。一般來說,學習過程中,你遇上的問題,前人們多數(shù)也有遇上的,所以如果有什么不懂,在自己解決不了的時候,最好先到網上搜索一下,看能不能找到答案,找不到再到論壇里發(fā)問,發(fā)問也要有目的性,盡量簡單明了的描述問題,讓幫助你的人可以用最少的時間就看懂你說什么,畢竟人家?guī)椭闶敲赓M的,時間也是有限的。
單片機學習總結篇九
我從大二起,就去實驗室去學習。在那里與教師和一些電子設計愛好者的交流中,我學到了更多的專業(yè)知識。我從此走上了學習嵌入式的道路。這豐富了我的大學生活,是我在大學的最大收獲。
我是從學習單片機開始我的嵌入式學習的。
我接觸單片機的方式是在圖書館看書,我看了很多本書,可是大多數(shù)書寫的大同小異。書里面講解的單片機的寄存器我看了很多遍也沒有看懂。我都不明白改怎樣學習它了。慢慢的我悟出了一個道理:電子的學習實踐是最重要的,這樣,我在大二的時候就買了一塊學習板,我一邊看視頻一邊仿照視頻的程序,自我編寫程序,在很短的時間里,我的單片機有了很大的提高。那些難懂的寄存器透過編寫程序,我慢慢的弄懂了它們,此刻回頭看去,原先它還是很簡單的。
用哪種編程語言最適合我們。
我看過的單片機的書籍,大部分的程序都是匯編寫的。它是一種基于機器硬件的低級語言,對于我們這些只學習過c語言的人來說,十分難懂。我認為剛開始學習單片機沒有必要必須要從學習匯編編程開始。我學習單片機就是用c語言編程的,我并不會匯編語言,也沒有妨礙我把單片機學好。
很多人說,學單片機最好先學匯編語言,以我的經驗告訴大家,絕對沒有這個必要,初學者一開始就直接用c語言為單片機編程,既省時間,學起來又容易,提高速度會很快。在剛開始學單片機的時候,千萬不要為了解單片機內部結構而浪費時間,這樣只能打擊你的信心,當你學會編程后,自然一步步就掌握其內部結構了。
單片機提高重在實踐,想要學好單片機,軟件編程必不可少??墒鞘煜び布τ趯W好單片機的也是十分重要的。如何學習好硬件,動手實踐是必不可少的。我們能夠透過自我動手做一個自我的電子制作,透過完成它,以提高我的對一些芯片的了解和熟練運用它。這樣我們就能夠多一些了解芯片的結構。我相信,你完成了一個屬于自我的電子制作,你的單片機水平就會有一個質的提高。
單片機學習總結篇十
本人還是學生,此刻大三,接觸單片機一年多以來,從最基礎的51開始,到更高級點的msp430,一向到此刻剛開始上手的stm32,編過的程序不算多,但加起來怎樣也有上百個了,做過的東西仔細數(shù)數(shù),能拿出手來算算的上是個樣的也不下十個,算是小有所成吧。
但今日,我卻發(fā)現(xiàn),這一年我一向在走一條歪路。
先說一下情景吧,是這樣的,最近同學幾個合伙做個小項目,不算復雜,跟市面上的工程項目完全沒法比,用難再需要使用的一個芯片是教師給的,從沒用過,沒有歷程,至于一份電子版的數(shù)據手冊,一切的一切都只能是從頭開始,從底層開始,我們幾個斌開始從最底層的邏輯時序、寄存器操作開始,但經過幾天的研究,確實毫無效果可言。
為此,我們幾個郁悶了好長時間,開始瘋狂的上網搜資料,拷代碼,卻終究是不得而返,還讓教師罵了一頓,因為這個項目是我們主動要求教師放給我們的,結果卻耽誤了工期。
我次我們幾個人很受打擊,最終決定大家一齊靜下心來分析分析,到底我們敗在了什么地方。
最終總經過兩天的思考、討論、總結、檢討···,我們發(fā)現(xiàn)了問題的所在,想來想去,這估計是很大一部分初學者正在面臨的一個“瓶頸問題”,所以,由我凈這個討論的結果發(fā)布出來,期望與更多的人交流、分享、提高、共勉。
下頭先總結一下我們失敗的幾點原因:
1、“都是開發(fā)板惹的禍”,能夠說從開始學習單片機,哪怕是最基礎的51、以致之后的msp430、arm,我沒從未離開過開發(fā)板,并且這長達一年多的時間,養(yǎng)成了我們對開發(fā)板極大的依靠,盡管自我焊過51最小系統(tǒng)、繪制過430最小系統(tǒng)板,但都是參考的別人已有的電路圖,連最基本的電路基本都沒分析過,為什么要在這幾個電阻,該加個多大的,不加會怎樣樣,太大了太小了會有什么后果,等等此類問題,我們從未分析過,全是copy、copy、再copy,以致自我做過的東西不少,本事卻未曾提高。
2、“全是例程誤導我”,我們買來的開發(fā)板,往往都會帶有豐富的例程,通常這也是賣家吹噓、比拼的地方,但就是這些附帶的歷程,讓我們與底層的開發(fā)絕緣了,有了例程,我們不用再一個代碼一個代碼地敲鍵盤,不用再去研究那些器件的數(shù)據手冊、通信接口、寄存器、內部原理、以及很多商家沒給我們加進去的功能,哪怕是將這些程序改到別的地方,我們也可是是在宏定義里改兩個引腳配置而已,從未嘗試過從底層寫驅動、敲代碼、寫函數(shù),從未嘗試過快平臺移植代碼,開發(fā)呢些沒用過的功能等等。
3、“現(xiàn)實環(huán)境太無奈”,這跟上頭兩個說的是不一樣的方面,我們都是大學生,大學里此刻吵得火熱的“大學生就業(yè)難”、“你是考研還是就業(yè)”、“你報xxx培訓班了嗎”“你考四六級證了嗎”等等,好像上大學就是為了干這些,似乎沒有這些,你就會陷入“畢業(yè)即失業(yè)”的困境。應對這些外來的干擾,越來越多的學生坐不住了,我們這些人也一樣,盡管一向在學習自我的愛好,但當被人問得多了的時候,心里也難免會發(fā)毛、會害怕,從而導致一年來真正靜下心來學這些東西的時間越來越少。
大體也就總結怎樣多吧,經過這次失敗,也算是教訓深刻吧,此刻才大三,到大四畢業(yè),還有近兩年的時間,還不算太晚,再說將來的路還長,此刻發(fā)現(xiàn)這些,應當不算晚吧。
對我們來說,革命尚未成功,同志仍需努力啊!
開這貼,一為總結這次失敗、而為自我立志改變、三為警示之后的同學、四為大家齊言獻計。
大家有遇到同樣問題的、要類似迷茫的、要好的提議意見的,歡迎回帖交流,大家一齊共勉。
單片機學習總結篇十一
學習單片機最終要的是當然是練,我所說的學習跟課堂上的單片機學習不同,我以前也看過一些單片機教材,有些教材講的是單片機的工作原理和內部結構,這些東西對于我們暫時并不需要,等以后開課的時候在學習好了。現(xiàn)在要學習的是暫時拋開內部結構原理不談,如何能用單片機寫一些簡單的小程序,是從實用性的角度出發(fā),網上有一種說法稱之為先實踐后理論的學習方法。
因此我的觀點如下,單片機的硬件結構首先要有一個基本的了解,最起碼要知道各引腳的功能、區(qū)別,能自己動手搭一個單片機的最小系統(tǒng),然后就可以直接從程序入手,程序最好還是用c語言編程,從簡單的跑馬燈做起,逐漸深入,陸續(xù)可以做一些數(shù)碼管、液晶、ds1302、ds18b20等電子元器件的應用,在深入就可以結合一些具體實例擴展一些中斷、串口通訊等功能。還有一點要聲明的是單片機里用到的c語言其實很有限,課堂上學習c++的很大一部分內容在初期單片機編程中都用不到,因此沒必要因為覺的自己的c語言基礎不是很好而對單片機望而止步!
單片機學習總結篇十二
兩周的單片機課程設計最終順利完成了,其中包含著歡樂,也有辛酸。我們選的設計題目是“數(shù)字溫度計”,大家都覺得這個題目是比較簡單的。其實不然,做了之后,發(fā)現(xiàn)設計電路雖然簡單,但我們認為它真正困難的地方是程序設計,可是在我們同心努力下最終完成了。
我們剛選該題目時,真的是一頭霧水,硬件電路不知如何下手,更何談解決程序那塊,因為我們所學的都是單片機方面的理論知識,應用到實踐中去還比較少??墒?,我們三人也沒偷下懶,迅速分工去查閱和收集資料。我們去了圖書館借一些參考書,上網找一些相關資料,并且請教指導教師。經過不斷努力,最終把數(shù)字溫度計的思路和模型定了下來并開始分一個人去焊接硬件電路,剩下的去整理和修改程序。
經過一番整理和修改后,在電腦上進行仿真,仿真成功后準備焊接電路板。在焊接電路板中,我們首先對硬件電路進行布局,然后確認無誤后,在電路板上進行焊接,這個過程我們覺得是做得比較快的,以至于后面出現(xiàn)了虛焊的錯誤。
焊接電路板完工,細心檢查后,進行通電測試。結果液晶lcd沒有顯示,經過檢查,原先是lcd壞了,在換了塊新的后,能顯示顯示值。但還有個問題是,當報警電路不會報警,在請教教師后,發(fā)現(xiàn)走動蜂鳴器的電壓太低了,是因為串接了一個太大的電阻。然后,我們換了一個小電阻,但這時蜂鳴器卻一向在叫,停不下來,可是,在我們三人的的細心檢查下,原先是在放大電路的一端虛焊了,這說明我們焊接電路的技術還不夠好。在重新焊接那端后,數(shù)字溫度電路最終成功實現(xiàn)功能,當時我們的心境都是無比興奮和歡樂的,因為我們兩周的辛苦沒有白費。
在完成單片機課程設計后,我們發(fā)現(xiàn)我們還有許多不足,所學到的知識還遠遠不夠,以至于還有一些功能不能被動完成。但經過學習這一次實踐,增強了我們的動手本事,提高和鞏固了單片機方面的知識,特別是軟件方面。從中增強了我們的團隊合作精神,并讓我們認識到把理論應用到實踐中去是多么重要。
單片機學習總結篇十三
很多想學單片機的人問我的第一句話就是怎樣才能學好單片機?對于這個問題我今天就我自己是如何開始學單片機,如何開始上手,如何開始熟練這個過程給大家講講。
先說說單片機,一般我們現(xiàn)在用的比較多的的mcs-51的單片機,它的資料比較多,用的人也很多,市場也很大。
就我個人的體會怎么樣才能更快的學會單片機這門課。
單片機這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟件去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管腳的電平什么時候輸出高,什么時候輸出低。
由這些高低電平的變化來控制你的系統(tǒng)板,實現(xiàn)我們需要的各個功能。
至于看書,只需大概了解單片機各管腳都是干什么的?能實現(xiàn)什么樣的功能?第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。
所以我總是說,學單片機看書看兩三天的就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三遍就夠了,可以不用仔細的看。
推薦一本書,就這一本就足夠,書名是《新編mcs-51單片機應用設計》,是哈爾濱工業(yè)大學出版社出的的,作者是張毅剛。
大概了解一下書上的內容,然后實踐,這是非常關鍵的,如果說學單片機你不實踐那是不可能學會的,關于實踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊單片機的學習板,不要求功能太全的,對于初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、ad或da(原理一樣)、液晶、蜂鳴器,這就差不多了。
如果上面我提到的這些,你能熟練應用,那可以說對于單片機方面的硬件你已經入門了,剩下的就是自己練習設計電路,不斷的積累經驗。
只要過了第一關,后面的路就好走多了,萬事開頭難,大家可能都聽過。
方法二:你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統(tǒng)板。
對于高手來說,做個單片機的最小系統(tǒng)板只需要一分鐘的時間,而對于初學者可就難多了,因為只有對硬件了解了,才能熟練運用。
而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以后做單片機類的小實驗時都能用得上,還省事。
有了單片機學習板之后你就要多練習,最好是自己有臺電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調試軟件坐在電腦前,先學會怎么用調試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經入門了,你會發(fā)現(xiàn)單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意愿實現(xiàn)時你比做什么事都開心,你會上癮的,真的。
做電子類的人真的會上癮。
然后讓數(shù)碼管亮起來,這兩項會了后,你已經不能自拔了,你已經開始考慮你這輩子要走哪一行了。
就是要這樣練習,在寫程序的'時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當?shù)玫浇獯鸷竽銜涀∫惠呑拥?,知識必須用于現(xiàn)實生活中,解決實際問題,這樣才能發(fā)揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是?你學到什么了?但是我告訴你單片機一旦學會,永遠不會忘了。
另外我再說說用匯編和c語言編程的問題。
很多同學大一二就開設了c語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。
學完了有什么用?讓你用c語言編單片機的程序你是不是就傻了?書上的東西我們必須要會運用。
單片機編程用c語言或匯編語言都可以,但是我建議用c語言比較好,如果原來有c語言的基礎那學起來會更好,如果沒有,也可以邊學單片機邊學c語言,c語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以后也得學,你一點匯編都不會根本無所謂,但你一點c語言都不會那你將來會吃苦頭。
匯編寫程序代碼效率高,但相對難度較大,而且很羅嗦,尤其是遇到算法方面的問題時,根本是麻煩的不得了,現(xiàn)在單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的rom也在不斷的提高,足夠裝得下你用c語言寫的任何代碼,c語言的資料又多又好找,將來可移植性非常好,只需要變一個io口寫個溫度傳感器的程序在哪里都能用,所以我勸大家用c語言。
總結上面,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個單片機來說就是件非常容易的事。
步驟:
1.找本書大概了解一下單片機結構,大概了解就行。
不用都看懂,又不讓你出書的。(三天)。
2.找學習板練習編寫程序,學單片機就是練編程序,遇到不會的再問人或查書。(二十天)。
3.自己網上找些小電路類的資料練習設計外圍電路。
焊好后自己調試,熟悉過程。(十天)。
4.自己完全設計具有個人風格的電路,產品,。
你已經是高手了。
看到了嗎?下功夫一個多月你就能成為高手,我就講這么多了,學不學得會,下不下得了功夫就看你的了。