很多想學單片機的人問我的第一句話就是怎樣才能學好單片機?對于這個問題我今天就我自己是如何開始學單片機,如何開始上手,如何開始熟練這個過程給大家講講。先說說單片機,一般我們現(xiàn)在用的比較多的的MCS-51的單片機,它的資料比較多,用的人也很多,市場也很大。就我個人的體會怎么樣才能更快的學會單片機這門課。單片機這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟件去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管腳的電平什么時候輸出高,什么時候輸出低。由這些高低電平的變化來控制你的系統(tǒng)板,實現(xiàn)我們需要的各個功能。至于看書,只需大概了解單片機各管腳都是干什么的?能實現(xiàn)什么樣的功能?第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天的就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三遍就夠了,可以不用仔細的看。推薦一本書,就這一本就足夠,書名是《新編MCS-51單片機應用設(shè)計》,是哈爾濱工業(yè)大學出版社出的的,作者是張毅剛。大概了解一下書上的內(nèi)容,然后實踐,這是非常關(guān)鍵的,如果說學單片機你不實踐那是不可能學會的,關(guān)于實踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊單片機的學習板,不要求功能太全的,對于初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、AD或DA(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上面我提到的這些,你能熟練應用,那可以說對于單片機方面的硬件你已經(jīng)入門了,剩下的就是自己練習設(shè)計電路,不斷的積累經(jīng)驗。只要過了第一關(guān),后面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統(tǒng)板。對于高手來說,做個單片機的最小系統(tǒng)板只需要一分鐘的時間,而對于初學者可就難多了,因為只有對硬件了解了,才能熟練運用。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以后做單片機類的小實驗時都能用得上,還省事。有了單片機學習板之后你就要多練習,最好是自己有臺電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調(diào)試軟件坐在電腦前,先學會怎么用調(diào)試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經(jīng)入門了,你會發(fā)現(xiàn)單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意愿實現(xiàn)時你比做什么事都開心,你會上癮的,真的。做電子類的人真的會上癮。然后讓數(shù)碼管亮起來,這兩項會了后,你已經(jīng)不能自拔了,你已經(jīng)開始考慮你這輩子要走哪一行了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當?shù)玫浇獯鸷竽銜涀∫惠呑拥模R必須用于現(xiàn)實生活中,解決實際問題,這樣才能發(fā)揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是?你學到什么了?但是我告訴你單片機一旦學會,永遠不會忘了。另外我再說說用匯編和C語言編程的問題。很多同學大一二就開設(shè)了C語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什么用?讓你用C語言編單片機的程序你是不是就傻了?書上的東西我們必須要會運用。單片機編程用C語言或匯編語言都可以,但是我建議用 C語言比較好,如果原來有C語言的基礎(chǔ)那學起來會更好,如果沒有,也可以邊學單片機邊學C語言,C語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以后也得學,你一點匯編都不會根本無所謂,但你一點C語言都不會那你將來會吃苦頭。匯編寫程序代碼效率高,但相對難度較大,而且很羅嗦,尤其是遇到算法方面的問題時,根本是麻煩的不得了,現(xiàn)在單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的 ROM也在不斷的提高,足夠裝得下你用C語言寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,只需要變一個IO口寫個溫度傳感器的程序在哪里都能用,所以我勸大家用C語言。
步驟:1.找本書大概了解一下單片機結(jié)構(gòu),大概了解就行。不用都看懂,又不讓你出書的。(三天)
2.找學習板練習編寫程序,學單片機就是練編程序,遇到不會的再問人或查書。
3.自己網(wǎng)上找些小電路類的資料練習設(shè)計外圍電路。焊好后自己調(diào)試,熟悉過程。 (十天)
4.自己完全設(shè)計具有個人風格的電路,產(chǎn)品,。。。你已經(jīng)是高手了。 。。。。
注意:所謂的只讀和隨機存取都是指在正常工作情況下而言,也就是在使用這塊存儲器的時候,而不是指制造這塊芯片的時候。否則,只讀存儲器中的數(shù)據(jù)是怎么來的呢?其實這個道理也很好理解,書本拿到我們手里是不能改了,可以當它還是原材料——白紙的時候,當然可以由印刷廠印上去了。
很多想學單片機的人問我的第一句話就是怎樣才能學好單片機?對于這個問題我今天就我自己是如何開始學單片機,如何開始上手,如何開始熟練這個過程給大家講講。 先說說單片機,一般我們現(xiàn)在用的比較多的的MCS-51的單片機,它的資料比較多,用的人也很多,市場也很大,我們平時說的C51,C52,S51,S52都是51內(nèi)核的,只是內(nèi)存容量有差別,或是燒寫程序的方法不同。只要你學會了51,那什么凌陽,AVR,什么樣原理都是一樣。觸類旁通。
先說說就我個人的體會怎么樣才能更快的學會單片機這門課。單片機這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟件去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管角的電平什么時候輸出高,什么時候輸出低。而由這些高低電平的變化來控制由單片機為核心的系統(tǒng)板。從而實現(xiàn)我們需要的各個功能。對于看書,我們只需大概看看了解一個單片機各個管角都是干什么的?都有什么樣的功能,能實現(xiàn)什么樣的功能?其實第一次,第二次你可能都看不明白,但這不要緊,因為你沒有和實際的物體建立起來這樣一種互通的觀念,所以我總是說,學單片機看書看兩三天的時間就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三邊就夠了,而且可以不用很仔細的看。推薦一本書,就這一本就足夠,書名忘了,是哈爾濱工業(yè)大學出版社出的的,作者是張毅剛。大概三四百頁吧。大概了解一下書上的內(nèi)容后,就開始做實踐,這是非常關(guān)鍵的,如果說學單片機你不做實踐那是不可能學會的,關(guān)于做實踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊單片機的學習板,不要求功能太全的,對于初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈,數(shù)碼管,獨立鍵盤,矩陣鍵盤,有AD或DA(原理一樣),有個簡單的液晶,有蜂鳴器,這就差不多了,如果上面我提到的這些東西你能讓它都熟練工作了,那可以說對于單片機方面的硬件你已經(jīng)入門了,再剩下的就是自己練習設(shè)計其它電路,這需要你練習,不斷的積累經(jīng)驗,只要過了第一關(guān),后面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有單片機方面的高手,向他求助,讓你幫你搭個簡單的最最小系統(tǒng)板,其實對于高手來說,做個單片機的小系統(tǒng)板只需要一分鐘的時間,而對于初學者可就難多了,因為只有你對硬件了解了才會對它熟悉。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以后做單片機類的小實驗時都能用得上,還剩事。
有了單片機學習板之后你就是不停的練習了,我在后面會講到我的大學生活,如果你感興趣你可以看看,如果不感興趣呢,看完這段你就可以繼續(xù)你的快樂生活了。前面我提到單片機是一項非常注重實踐的學科,你最好是自己有臺電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調(diào)試軟件坐在電腦前,先學會怎么用調(diào)試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經(jīng)入門了,你會發(fā)現(xiàn)單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意愿實現(xiàn)時你比做什么事都開心,你會上癮的,真的。做電子類的人真的會上癮。然后讓數(shù)碼管亮起來,這兩項會了后,你已經(jīng)不能自拔了,你已經(jīng)開始考慮你這輩子要走哪一行了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當?shù)玫浇獯鸷竽銜涀∫惠呑拥?,知識必須用于實際才能發(fā)揮出它的作用,否則你自己好好想想,你上了這么多年大學,天天上課,你在課堂上學到了什么?你不是為了每學期的期末考試忙碌嗎?考完試一看得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是?你學到什么了?但是我告訴你單片機你一旦學會,永遠不會忘了。另外我再說說用匯編和C語言編程的問題。很多同學大一二就開設(shè)了C語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什么用?讓你用C語言編單片機的程序你是不是就悄悄了?所以書上的東西我們必須要實踐。單片機編程你想用C語言和匯編語言都可以,但是我建議你用C語言比較好,如果原來有C語言的基礎(chǔ)那學起來會更好,如果沒有,也可以邊學單片機邊學C語言,C語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以后也得學,你一點匯編都不會根本無所謂,但你一點C語言都不會那你將來會吃苦頭。匯編寫程序代碼效率高,但相對難度較大,而且很羅嗦,尤其是遇到算法方面的問題時,根本是麻煩的不得了,現(xiàn)在單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的ROM也在不斷的提高,足夠裝得下你用C語言寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,只需要變一個IO口寫個溫度傳感器的程序在哪里都能用,所以我勸大家用C語言。