久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

單片機學習心得

時間:2019-05-12 13:56:42下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《單片機學習心得》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《單片機學習心得》。

第一篇:單片機學習心得

作為過來人思前想后,我感到完全有責任將發自心底的感受傳遞給年輕一代,“一個企業家心靈深處渴望優秀人才的卓越追求和深層次的嘆息、痛苦和感受”。您們千萬不要等到畢業求職時才覺得自己能力太差,世界上從來就沒有后悔藥。當然,如果您現在看了我寫的這篇文章可能還不算晚,因為您還有機會在以后的歲月里奮起直追——“亡羊補牢,尤未為晚”。對于現在剛進入大學的學生,您應該更加珍惜這美好的求學機會,因為眨眼之間幾年就過去了,您很快就會感到來自全社會生存競爭的壓力,您面臨的對手再也不僅僅是您身邊的同學,今天您在班上的成績的確是前幾名,但一走到社會上去才感到是多么地脆弱而又多么地不堪一擊。

在面試大多數本科生時,我僅僅是詢問了一些有關MCS-51 系列單片機的基本原理,但卻幾乎很少有人能夠完全答對,簡直是五花八門。很多作為一個即將畢業的自動化專業本科生,至今還不知道單片機是這個專業的核心基礎,難道不可悲嗎?您的水平不高我完全心中有底,其實我只要求這些學生能夠掌握單片機應用開發的基本技能,用匯編和C51 寫過一些基本的程序,真正動手做過一些簡單的項目,然后將自己做過的項目寫成比較規范的文檔。我想,這種形式的“自我介紹”肯定要比讓別人看您那寫的千遍一律的“八股文”簡歷不知要強多少倍,古人言:“一葉知秋”其實講的就是這個道理。平心而論只有具備這樣基礎的學生才配得上企業花錢對您進行二次“開發” 事實上,很多學生根本就不管老師平時是多么地勸導都聽不進去,我認為您只要平時善于做一個有心人,主動一些多找老師請 教,然后從大三開始幫老師打打下手干一些活。還有一個途徑就是自己花錢購買一些學習開發實驗板,加強動手能力的訓練。但也有很多學生說沒有錢,可事實上并非如此,現在的學生購買手機成風,我不知道手機對您們現在來說到底有多大的用途?事實上,現在的學生家庭條件普遍都不太好,可這些孩子們的攀比心里卻十分地嚴重和可怕。到今天即將畢業之際才感到找工作太難。父母一個子兒地攢下一些辛苦錢給您購買電腦容易嗎?“望子成龍――可憐天下父母心”!他們是希望您能夠學到一些真本事,而您可能很多時間都在玩游戲,上網聊天,實際上對于您來說僅僅是舉手之勞,只要花幾百元買一塊實驗板,辛苦一個暑假的時間強化實踐,可能您就會與眾不同。與此同時,可能您的信心大增,前途一片光明。俗話說得好:倉庫有糧,心中不慌!如果您平時沒有準備,那么臨時匆匆忙忙地上陣面試肯定是要敗下來的。從2003 年開始是全國第一次擴招之后畢業人數最多的第一年,以后的畢業生還會更多,同時還有更多的研究生與本科生搶飯碗,面對就業的困境壓力不能說不大,痛苦在其中。還有就是我每天都要面臨那些看不完的自我介紹簡歷,很可惜幾乎都是清一色的“八股文”令人討厭。其實只要您的成績不是太差,分數不是應聘成功的關鍵,重要的是做人要踏實,不要有水分,實際上,只要將您平時做過的小制作寫成一篇心得,再帶上您的作品,“事實勝于雄辯”這樣更能打動人。還有很多經歷了四年本科又三年研究生階段學習行將畢業的碩士生,不僅不知道嵌入式操作系統是什么東西,而且連C++都不能熟練掌握,驅動程序開發的能力就更不容提了,僅僅做了 一個單片機的應用設計就拿到碩士文憑了,術業缺乏專攻泛泛而談,說句實在話,怎么樣也教人無法接受啊!對于我來說,如果您沒有特別的才能,我寧愿用三年時間培養一個好的本科生給更高的待遇,他肯定不比一般的碩士生差。所以,考上了研究生之后,您要時刻明白加強動手能力的培養和前沿科學技術的學習至關重要的,這是您將來面試的“殺手澗”,因為您畢業之后要求的工資待遇起碼是一般本科生的兩倍,但是這個錢不是那么好拿的。頂多3-5 年的時間,大家肯定能夠看到一個現實,那就是如果您還不能熟練地掌握嵌入式操作系應用開發技術的話,您只能拿2000 元的月薪。即便您是研究生或是博士,那又有什么稀奇的呢?鄧伯伯有句名言,不管白貓還是黑貓,抓住老鼠就是好貓!我們知道企業家是要賺錢的,否則這個企業就留不住人才,無情的市場競爭機制將會毫不猶豫地將這個老板淘汰出局。一個可持續發展的企業,如果離開了富有聰明才智的優秀人才,那是不可想象的。光有幾個還不行,而是要有一個卓越的軍團。

其實就業的問題,對于一個努力的人來說是何等地簡單,我面試了300 多本科生,我只對其中幾個成績中等的本科生感興趣,他們主要是參加過2001 年全國電子大賽,有的是平時業余時間,暑假及其寒假都在跟老師干活的學生,與他們聊天真是一種莫大的享受和欣慰,對于我來說真的是如獲至寶。于是,我就立即勸他們,您的成績中等確實難以考上好的學校和導師還不如不考研究生以免浪費時間,同時也充滿自信告訴他們,“我就是伯樂!我愿意給您機會和花錢培養您”。事實上,即便您考上研究生,如果沒有遇上具有超前眼光和 經費充足的導師,您讀了也白讀,更何況現在的研究生擴招的這么多?一個導師帶那么多研究生,有那么多課題嗎?即便有的話,他應付得過來嗎?可能殘酷的現實將會讓您看到,畢業之后回頭一看還遠遠不如當年同您一道畢業的同班同學。確實也是,人家的機會比您好得多,關鍵是人家對待機會比您把握得好,可以說:恰到火候。難道非要讀研究生理論水平才高嗎?這是何等地荒謬啊!我們知道電子與計算機技術的發展日新月異。大學的更新速度一定就要快嗎?回答是否定的,比如說推廣PHILIPS 的最新單片機和USB 技術吧!他們的更新速度肯定比一個可持續發展的企業要慢得多,難道說我們的人才水平不夠高嗎?我們公司就有一批這樣在各個領域里出類拔萃的“年輕專家”從 2003 年開始,我們將會有一系列的專著在北京航空航天大學出版社出版,大多數的著作都來自于我們長期的基礎研究和應用開發,可以毫不夸張地說這些都是我們這個年輕團隊合作的結晶。他們是優秀和卓越的人才,他們沒有就業的壓力,他們不怕炒魷魚,相反我倒時刻要想盡辦法加強公司的管理,從工資,獎金,福利,生活和事業成就感等各個方面絞盡腦際善待人才和留住人才,這么努力的人才根本就不需要過多地為工作和生活發愁,對于這個問題當然是仁者見仁智者見智,也就是下面我要講到的問題,一個人如何根據自己的特點、條件和機遇對自己如何定位的問題,也是至關重要的。

比如說,如果您對單片機的理解僅僅是入門水平的話,那么您首先就應該低調一些,因為您主要的任務是為了尋找一個可以學習的機會,說句實在話,此刻此刻您一定要清醒地意識到:尋找伯樂比眼前 的利益更加重要!因為您現在確實還沒有可以驕傲的資本,您一定要想盡辦法取得第一次正式踏入社會的入場卷,這對您來說是何等地重要啊!俗話說得好,“萬丈高樓從地起”您一定要尋找機會通過業績表現出您的能力,您確實與眾不同之處。這樣您就可能在一個公司里樹立您的“信用”,有了信用之后隨之而來的機會將會越來越多,到那時您根本就不用不愁自己的待遇和地位問題了。所以對于一個剛剛步入社會的年輕人來說,您能夠做到以“誠信” 打天下,您將來的前途肯定是無限光明。千萬不要感到自己在班上的成績是前幾名或者相對來說自己的動手能力相比之下比同學強多少、多少,或者自己在讀書期間貸了多少款,或者家里是多么地缺錢,因為當您加入整個社會的競爭之后,這些都不是您要求高薪的理由,這個時候您的心態將可能會決定您的命運,因此對自己要有充分的認識和正確的估價,經常是很多學生用這些理由向我開出高價,我無話可說只好“搖頭和嘆息”。

如果您的水平還不夠,我認為也不要自卑,要知道機會是時刻屬于有準備的年輕人,但也不可掉以輕心,此時此刻,您應該振作起來,立即拿起書本努力學習和加強實戰的訓練,待到羽翼豐滿之時大膽地走出去闖蕩,讓社會來對您做一個恰當的評價,然后再根據現實的情況不斷地調整自己,繼續學習和實踐,由于電子和計算機科學的高速發展呈現日新月異的變化局勢,您一定要明白:您距離失敗永遠只有6 個月!

很多單片機初學者問我的第一句話就是怎樣才能學好單片機?對于這個問題我今天就我自己是如何開始學單片機、如何開始上手、如何開始熟練這個過程給大家講講。先說說單片機,我們現在用的比較多的是8051單片機,它的資料比較多,用的人也較多,市場也很大,51單片機內部結構比較簡單,非常適合初學者學習,建議初學者將51單片機做為入門級芯片。單片機屬于硬件,我強烈不推薦大家使用單片機仿真軟件來學習單片機,也可以肯定的告訴大家,使用仿真軟件是學不會單片機的,硬件只有把它擺在你的面前,親自操作它,才會有深刻的體會,才能學明白它。單片機這門課是一科非常重視動手實踐的科目,不能總是看書,但是也不能完全不看書,我們需要從書中大概了解一下單片機的各個功能寄存器,如果看的多了反而容易搞亂,尤其是現在市場上大多數講單片機的書一開始就講解較復雜的內存、地址、存儲器什么的,更讓初學者感到不知所云、難以入門。簡單的說,當我們使用單片機時,實際上就是用我們自己編寫的軟件去控制單片機的各個功能寄存器,再簡單些,就是控制單片機哪些引腳的電平什么時候輸出高,什么時候輸出低。由這些高低變化的電平來控制外圍電路,實現我們需要的各個功能。

關于看書,大家只需大概了解單片機各引腳的功能,了解下寄存器。第一次、第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天就夠了,而我們要把更多的時間放到實踐中去,這才是最關鍵的,在實踐的過程有不 懂之處再查書,這樣記憶才深刻。關于實踐有兩種方法你可以選擇,方法

一、你自己花錢買一塊單片機的學習板,不要求那種價格上千塊功能太太全的,對于初學者來說你買功能太全的板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、AD 和DA、液晶、蜂鳴器、IIC總線、有USB擴展也最好,這些就差不多了。如果說我上面提到的這些功能你能熟練應用,那可以說對于單片機本身的操作你已經入門了,剩下的就是自己練習設計外圍電路,不斷的積累經驗。只要過了第一關,后面的路就好走多了,萬事開頭難,大家都聽過。方法

二、你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統板。對于高手來說,做個單片機的最小系統板可能只需要幾分鐘的時間,而對于初學者可就難多了,因為只有對硬件徹底了解了,你才能熟練的駕馭它。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你還是選擇方法一,畢竟自己有一塊學習板要方便的多,以后做單片機類的小實驗時經常都能用得上,省時又省事。

有了單片機學習板之后你就要多練習,最好是自己有臺電腦,少看電影,少打游戲,把學習板和電腦連好,打開調試軟件坐在電腦前,先學會怎么用調試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經入門了,你會發現單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,比起跑跑卡丁車,比起魔獸世界,要好玩的多的多。當你編寫的程序按你的意愿實現時,你比做任何事都開心,你會上癮的,真的,做電 子設計的人真的會上癮。然后讓數碼管亮起來,這兩項會了后,你已經不能自拔了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,或是上網搜索。當得到解答后你會記住一輩子的,知識必須應用于現實生活中,解決實際問題,這樣才能發揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,過一個假期,甚至過一個周末,然后忘的一干二凈,是不是?你學到什么了?我認為這樣的生活沒有意義。但是我告訴你單片機一旦學會,永遠不會忘了。

另外我再說說關于用匯編語言還是C語言編程的問題。很多同學大一、二就開設了C語言的課,我也上過,我知道那時上課老師講的就是幾乘幾、幾加幾、求個階乘、畫個星星、編個月亮什么的。學完了有什么用?雖然考試我考了90分,可我心里比誰都明白,C語言到底是什么?它有什么用?到底它能做什么我一無所知。我們不能過多的評價當今的高校教育,但我們必須得為自己負責任。讓你用C語言編單片機的程序你是不是就傻了?單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,如果原來有C語言的基礎那學起來會更好,如果沒有,也可以邊學單片機邊學C語言,C語言很簡單,只是一門工具而已,我勸大家最好學好學精它,將來肯定用得著,要不然以后也得學,你一點匯編都不會根本無所謂,但你一點C語言都不會那你將來會吃苦頭。給大家推薦一本書,作者譚浩強,書名<程序設計>>,清華大學出版社,大家在學習 本書的同時再參考上面提到的這本書更有利C語言學習。也根本沒必要再從頭把<程序設計>>學一邊,就算再學一邊也許結果還是和你現在一樣,最好的辦法就是用到哪里學哪里。匯編寫程序代碼效率高,但相對難度較大,而且很繁瑣,尤其是遇到算法方面的問題時,根本是麻煩的不得了,現在單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的ROM也在不斷的提高,足夠裝得下你用C語言寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,所以我勸大家用C語言。

總結上面,只要你有信心,做事能堅持到底,有不成功絕不放棄的強烈意志,那學個單片機對你來說就是件非常容易的事。建議步驟: 1、看書大概了解一下單片機結構,大概了解就行。不用都看懂,又不讓你出書。

2、用學習板練習編寫程序,學單片機主要就是練編程序,遇到不會的再問人或查書。

3、自己網上找些小電路類的資料練習設計外圍電路。焊好后自己調試,熟悉過程。

4、自己完全設計具有個人風格的電路、產品 ? 你已經是高手了

第二篇:單片機學習心得

單片機學習心得

一直想寫一個帖子,將自己學習單片機的經歷、經驗和方法總結一下,今天終于動手寫了,呵呵,這是我學習單片機的經驗、心得、方法。希望對大家學習單片機有所幫助。

經常在群、論壇里看到有人問:怎么學單片機?也常看到有人說學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。

05年的時候,因為制作FM發射采用了BH1415的芯片,需要用到單片機控制,所以開始接觸使用單片機,雖然以前讀書時作為一門功課學過,不過也快丟荒了10年了,基本上都忘光了,也算是從頭學起了吧。我當時是買了一塊實驗板,很簡單的功能,比論壇實驗板還要少功能,還有一個仿真器,也是比較簡單的,SST芯片的。然后開始從大家都知道的流水燈寫起,萬事開頭難,第一個程序基本上就抄人家的,翻查了一份快速入門的學習資料,寫下第一個程序。然后,在仿真機是單步的看運行結果,從每一步執行,都硬件上反應出來的效果,很快,對單片機的運作有了一個非常感性的認識,這跟只看書然后自己想象運行是完全兩碼事。然后,是進一步的其它程序學習,一個月時間,基本上已經熟悉了51的各種硬件資源。把流水燈,數碼管動態掃描,中斷等等的學習了,然后就是寫綜合性的程序,也就是我發在論壇里的時鐘。通過這個程序的編寫,使自己的編程水平有了很大的飛躍。之后,就是逐步學習編寫更多的程序,各種外圍器件的控制等等,通過編寫程序使自己不斷的提高。在學過匯編之后,我又轉到了C語言學習,因為以前沒有學習過C語言,一切都很陌生,所以自己沿用了學習匯編的方法,大約花了3天功夫基本就對C語言有了初步的了解,然后就是嘗試寫上面所說的時鐘,以匯編程序的思路作為參考,以C語言來編寫,花了幾天功夫完成了這一程序,也實現了從匯編編程為主到C編程為主的轉變。然后,就是以C語言編寫外圍器件的控制程序,以此來熟悉C的編程風格,一直到現在,基本上就是C語言編程,匯編已經是作為調試程序的輔助。

下面我概括了幾點我的學習經驗和心得體會:

1、萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,說KEIL不會建項目啦、沒有實驗板啦之類的。遇到困難要一件件攻克,不會建項目,就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然后建個程序,加入項目中,再寫代碼、編譯、生成HEX,刷進單片機中、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。

2、知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。

3、程序不要光看不寫,一定要自己寫一次。最開始的時候,啥都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果,看明白了之后,就要自己寫一次,你會發現,原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距。。當你自己能寫出來的時候,說明你就真的懂了。。

4、必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發現問題和學會如何解

決問題。這就需要學習調試程序的方法,比如KEIL里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發現你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。

5、找到解決問題思路比找到代碼更重要。我們用來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態度,無助于你編程水平的提高。我幾乎不怎么看人家的代碼,多數時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以,要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人,所以現在我也明白了,以前讀書時說的程序流程圖很重要,現在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。舉個例子:數碼管動態掃描,沒寫過的初學者可能搞不清是怎么回事,其實,就是分時讓每一時間段時只控制一只數碼管顯示數字,幾只數碼管輪流顯示,由于速度很快,人眼的看起來是全部數碼管都亮的。明白是這么一回事,事情就好辦了,剩下的事情,無非是你安排讓一只只數碼管輪流顯示出相應的數值。顯示數字,然后延時一下,再下一只顯示數字,延時,知道是這樣,我們實際程序上只要做到這樣就可以:往段口送段碼,然后打開位選顯示一只,延時一下,再關閉位選,再送出段碼,再打開另一只位選..僅此而已。有了解決問題的思路,我們就能問題拆分開來,然后逐一的解決,如果動態掃描的原理都沒懂,不知道如何做,那么這個程序是怎么也寫不出來的。

6、開動腦筋,運用多種方法,不斷優化自己的程序。想想用各種不同方法來實現同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。

7、看別人的代碼,學習人家的思路。這個在學習初期是很有用,通過看別人的代碼,特別是有多年編程經驗的人寫出的具有一定水平的代碼,可以使自己編程水平得到迅速的提高,同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的代碼,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。

8、嘗試編寫一下綜合應用的程序。從流水燈學起,到動態掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(IO讀取)、動態掃描(IO輸出)、中斷等,如何協調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序啥也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協調過程。當你有了這個處理協調能力,你就算是入門了。

9、著重于培養解決問題的能力,而不是具體看自己編寫了多少代碼或者做過什么。“學單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機多年來感悟出來的。經常看到有人說“你會驅動XX芯片,真牛啊”“你搞過XX項目,真厲害”之類的話,其實這是非常片面的,搞過XX芯片,搞過XX項目,只能說明你做過這一項目,它只是你的業績,并不是代表能力就一定高。真正的能力應該是:“遇到沒有解決過的問題或器件,能利用自己已學的知識,迅速找到解決問題的方法。”這個才是能力。寫程序的過程就是一個創造的過程,幾乎沒有完全一樣的項目,每次你遇上的幾乎都不相同,所以你擁有的必須是你面對新項目時的創造能力,而不是標榜著你以往做過多少項目。當然,業績也能從另一側面反映你的經驗和水平。

10、如果有可能,多學習計算機專業的知識,比如數據結構等。這些是你解決問題的基礎知識,你把這些知識應用得越好,就會發現越容易找到解決問題的方法,這就是為什么一個學計算機專業的人編的程序和一個非計算機專業的人編的程序有差異的原因。也是一個菜鳥進軍到高手所要配備的知識。如果我們把編程分為宏觀編程和微觀編程,那么微觀編程就是寫具體的代碼,比如控制某某器件的語句;而宏觀編程就是如何對整個程序進行布局、安排,使功能模塊以你想要的方式去運行,得出你想要的結果。如前所說“會控制XX器件”這些只能算是微觀編程,能做到這一步還只能算是菜鳥級別,如果面對一個新的器件,你心里沒底,沒把握去寫這個控制程序,那說明你還是一個初級的菜鳥。當你有了一定的編程經驗,控制過相當數量的器件之后,你就會發現,控制器件這些工作都是相似的、重復的工作,體現不出編程的水平,最多也是寫得好與不好的差別,只能算是一些小技巧的應用。而對整個程序進行布局、安排這些才是最頭痛的事情,能達到宏觀編程和微觀編程都做好才是真正的高手。對于規模越大的程序,越能體現出這一點。

11、面對一個新項目時,多自己開動腦筋,不要急于找別人的程序。有不少人面對一個新項目時,第一步想到的就是網上找別人寫過的代碼,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個新項目時,應該先自己構思一下整個程序的架構,想想如何來完成,有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教別人,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路,如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。

12、多利用網絡的搜索,學會提問題。一般來說,學習過程中,你遇上的問題,前人們多數也有遇上的,所以如果有什么不懂,在自己解決不了的時候,最好先到網上搜索一下,看能不能找到答案,找不到再到論壇里發問,發問也要有目的性,盡量簡單明了的描述問題,讓幫助你的人可以用最少的時間就看懂你說什么,畢竟人家幫助你是免費的,時間也是有限的。

以上就是我學習單片機的經歷和心得體會,希望對大家會有幫助,說得有不好或不對的地方歡迎大家批評指正。

第三篇:單片機學習心得

篇一:單片機學習心得

一直想寫一個帖子,將自己學習單片機的經歷、經驗和方法總結一下,今天終于動手寫了,呵呵,這是我學習單片機的經驗、心得、方法。希望對大家學習單片機有所幫助。

經常在群、論壇里看到有人問:怎么學單片機?也常看到有人說學了好幾個月可就是沒有什么進展。當然,受限于每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。

05年的時候,因為制作FM發射電路采用了BH1415的芯片,需要用到單片機控制,所以開始接觸使用單片機,雖然以前讀書時作為一門功課學過,不過也快丟荒了10年了,基本上都忘光了,也算是從頭學起了吧。我當時是買了一塊實驗板,很簡單的功能,比論壇實驗板還要少功能,還有一個仿真器,也是比較簡單的,SST芯片的。然后開始從大家都知道的流水燈寫起,萬事開頭難,第一個程序基本上就抄人家的,翻查了一份快速入門的學習資料,寫下第一個程序。然后,在仿真機是單步的看運行結果,從每一步執行,都硬件上反應出來的效果,很快,對單片機的運作有了一個非常感性的認識,這跟只看書然后自己想象運行是完全兩碼事。然后,是進一步的其它程序學習,一個月時間,基本上已經熟悉了51的各種硬件資源。把流水燈,數碼管動態掃描,中斷等等的學習了,然后就是寫綜合性的程序,也就是我發在論壇里的時鐘。通過這個程序的編寫,使自己的編程水平有了很大的飛躍。之后,就是逐步學習編寫更多的程序,各種外圍器件的控制等等,通過編寫程序使自己不斷的提高。在學過匯編之后,我又轉到了C語言學習,因為以前沒有學習過C語言,一切都很陌生,所以自己沿用了學習匯編的方法,大約花了3天功夫基本就對C語言有了初步的了解,然后就是嘗試寫上面所說的時鐘,以匯編程序的思路作為參考,以C語言來編寫,花了幾天功夫完成了這一程序,也實現了從匯編編程為主到C編程為主的轉變。然后,就是以C語言編寫外圍器件的控制程序,以此來熟悉C的編程風格,一直到現在,基本上就是C語言編程,匯編已經是作為調試程序的輔助。

下面我概括了幾點我的學習經驗和心得體會:

1、萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,說KEIL不會建項目啦、沒有實驗板啦之類的。遇到困難要一件件攻克,不會建項目,就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,知道寫程序是怎么一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然后建個程序,加入項目中,再寫代碼、編譯、生成HEX,刷進單片機中、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,仿真器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。

2、知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。

3、程序不要光看不寫,一定要自己寫一次。最開始的時候,啥都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達到什么目的,運行后有什么后果,看明白了之后,就要自己寫一次,你會發現,原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距……當你自己能寫出來的時候,說明你就真的懂了。

4、必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,然后一運行,不是自己想要的結果,就暈了,然后跑到論壇上發個帖子,把程序一貼,問:為什么我的程序不能正常運行?然后就等別人來給自己分析。這是一種很不好的行為,應該自己學會發現問題和學會如何解決問題。這就需要學習調試程序的方法,比如KEIL里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發現你寫的程序運行結果和你想象中不一樣的時候,你可以單步,也可以下斷點,然后跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什么偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。

5、找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態度,無助于你編程水平的提高。我幾乎不怎么看人家的代碼,多數時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以,要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人,所以現在我也明白了,以前讀書時說的程序流程圖很重要,現在算是知道了。當你知道一個問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經不是什么問題了。舉個例子:數碼管動態掃描,沒寫過的初學者可能搞不清是怎么回事,其實,就是分時讓每一時間段時只控制一只數碼管顯示數字,幾只數碼管輪流顯示,由于速度很快,人眼的看起來是全部數碼管都亮的。明白是這么一回事,事情就好辦了,剩下的事情,無非是你安排讓一只只數碼管輪流顯示出相應的數值。顯示數字,然后延時一下,再下一只顯示數字,延時,知道是這樣,我們實際程序上只要做到這樣就可以:往段口送段碼,然后打開位選顯示一只,延時一下,再關閉位選,再送出段碼,再打開另一只位選僅此而已。有了解決問題的思路,我們就能問題拆分開來,然后逐一的解決,如果動態掃描的原理都沒懂,不知道如何做,那么這個程序是怎么也寫不出來的。

6、開動腦筋,運用多種方法,不斷優化自己的程序。想想用各種不同方法來實現同一功能。這是一個練習和提高的過程,一個問題,你解決了,那么你再想想,能不能換種寫法,也可以實現同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。

7、看別人的代碼,學習人家的思路。這個在學習初期是很有用,通過看別人的代碼,特別是有多年編程經驗的人寫出的具有一定水平的代碼,可以使自己編程水平得到迅速的提高,同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的代碼,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。

8、嘗試編寫一下綜合應用的程序。從流水燈學起,到動態掃描,再到中斷,那么,你可以試試寫一下時鐘這種綜合性應用的程序,不要小看時鐘,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(IO讀取)、動態掃描(IO輸出)、中斷等,如何協調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序啥也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個協調過程。當你有了這個處理協調能力,你就算是入門了。

9、著重于培養解決問題的能力,而不是具體看自己編寫了多少代碼或者做過什么。“學單片機重點在于學習解決問題的思路,而不是局限于具體的芯片類型和語言”這一直是我的座右銘,是我學單片機多年來感悟出來的。經常看到有人說“你會驅動XX芯片,真牛啊”“你搞過XX項目,真厲害”之類的話,其實這是非常片面的,搞過XX芯片,搞過XX項目,只能說明你做過這一項目,它只是你的業績,并不是代表能力就一定高。真正的能力應該是:“遇到沒有解決過的問題或器件,能利用自己已學的知識,迅速找到解決問題的方法。”這個才是能力。寫程序的過程就是一個創造的過程,幾乎沒有完全一樣的項目,每次你遇上的幾乎都不相同,所以你擁有的必須是你面對新項目時的創造能力,而不是標榜著你以往做過多少項目。當然,業績也能從另一側面反映你的經驗和水平。

10、如果有可能,多學習計算機專業的知識,比如數據結構等。這些是你解決問題的基礎知識,你把這些知識應用得越好,就會發現越容易找到解決問題的方法,這就是為什么一個學計算機專業的人編的程序和一個非計算機專業的人編的程序有差異的原因。也是一個菜鳥進軍到高手所要配備的知識。如果我們把編程分為宏觀編程和微觀編程,那么微觀編程就是寫具體的代碼,比如控制某某器件的語句;而宏觀編程就是如何對整個程序進行布局、安排,使功能模塊以你想要的方式去運行,得出你想要的結果。如前所說“會控制XX器件”這些只能算是微觀編程,能做到這一步還只能算是菜鳥級別,如果面對一個新的器件,你心里沒底,沒把握去寫這個控制程序,那說明你還是一個初級的菜鳥。當你有了一定的編程經驗,控制過相當數量的器件之后,你就會發現,控制器件這些工作都是相似的、重復的工作,體現不出編程的水平,最多也是寫得好與不好的差別,只能算是一些小技巧的應用。而對整個程序進行布局、安排這些才是最頭痛的事情,能達到宏觀編程和微觀編程都做好才是真正的高手。對于規模越大的程序,越能體現出這一點。

11、面對一個新項目時,多自己開動腦筋,不要急于找別人的程序。有不少人面對一個新項目時,第一步想到的就是網上找別人寫過的代碼,然后抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個新項目時,應該先自己構思一下整個程序的架構,想想如何來完成,有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數據、變量有一個初步的安排,然后自己動手去寫,遇到實在沒辦法解決的地方,再去請教別人,或看別人是怎么處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路,如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。

12、多利用網絡的搜索,學會提問題。一般來說,學習過程中,你遇上的問題,前人們多數也有遇上的,所以如果有什么不懂,在自己解決不了的時候,最好先到網上搜索一下,看能不能找到答案,找不到再到論壇里發問,發問也要有目的性,盡量簡單明了的描述問題,讓幫助你的人可以用最少的時間就看懂你說什么,畢竟人家幫助你是免費的,時間也是有限的。

以上就是我學習單片機的經歷和心得體會,希望對大家會有幫助,說得有不好或不對的地方歡迎大家批評指正。

篇二:單片機學習心得

時光飛逝,一轉眼,一個學期又進尾聲了,本學期的單片機綜合課程設計也在一周內完成了。

俗話說“好的開始是成功的一半”。說起課程設計,我認為最重要的就是做好設計的預習,認真的研究老師給的題目,選一個自己有興趣的題目。其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。

雖然這次的課程設計算起來在實驗室的時間只有三天,不過因為我們都有自己的實驗板,所以在宿舍里做實驗的時間一定不止三天。

硬件的設計跟焊接都要我們自己動手去焊,軟件的編程也要我們不斷的調試,最終一個能完成課程設計的勞動成果出來了,很高興它能按著設計的思想與要求運動起來。

當然,這其中也有很多問題,第一、不夠細心比如由于粗心大意焊錯了線,由于對課本理論的不熟悉導致編程出現錯誤。第二,是在學習態度上,這次課設是對我的學習態度的一次檢驗。對于這次單片機綜合課程實習,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數都是由于我們不夠嚴謹。第三,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰困難的勇氣,就沒有什么辦不到的。

在這次難得的課程設計過程中我鍛煉了自己的思考能力和動手能力。通過題目選擇和設計電路的過程中,加強了我思考問題的完整性和實際生活聯系的可行性。在方案設計選擇和芯片的選擇上,培養了我們綜合應用單片機的能力,對單片機的各個管腳的功能也有了進一步的認識。還鍛煉我們個人的查閱技術資料的能力,動手能力,發現問題,解決問題的能力。并且我們熟練掌握了有關器件的性能及測試方法。

再次感謝老師的輔導以及同學的幫助,是他們讓我有了一個更好的認識,無論是學習還是生活,生活是實在的,要踏實走路。課程設計時間雖然很短,但我學習了很多的東西,使我眼界打開,感受頗深。

第四篇:單片機學習心得

單片機學習心得

計算機科學與技術

學號:

單片機是一門應用性和綜合性很強的學科,它綜合了電子技術中的模擬電路和數字電路方面的知識,特別是數字電路,因為數字電路在里面的應用很多。學習單片機最好先從匯編語言入手,雖然匯編語言是低級語言,編程效率低,但它比C語言占用內存小,執行速度快等優點,在剛接觸單片機時更容易學習。由于單片機涉及的知識很多,所以我們只能循序漸進的學習,逐步的積累,沒有什么捷徑可循。

剛開始學習的時候,對單片機沒有什么認識,不知道什么是單片機,更不知道它有什么作用。通過學習才大體知道了單片機的一些知識。由中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O接口、定時器/計數器以及串行通信接口等集成在一塊芯片上,構成了一個單片微型計算機,簡稱為單片機。它的應用范圍很廣,在工業自動化中應用有數據采集、測控技術。在智能儀器儀表中應用有數字示波器、數字信號源、數字萬用表、感應電流表,自動取款機等。在消費類電子產品中應用有洗衣機、電冰箱、空調機、電視機、微波爐、手機、IC卡、汽車電子設備等。在通訊方面應用有調制解調器、程控交換技術、手機、小靈通等。在武器裝備方面應用有飛機、軍艦、坦克、導彈、航天飛機、魚雷制導、智能武器等。學習單片機要投入大量的時間,如果只想速成,幾乎是不可能的。由于單片機涉及的知識面很廣,不可能在朝夕間就學會,只能一點點的積累。不積跬步,無以至千里。只有當你一步步去學習、去積累之后,你的單片機水平才會提高。學習過程中還要注重理解,要逐漸養成自己的編程思路,在編程過程中還要注意細節問題,如果因為粗心大意將程序寫錯,將會無形間給自己帶來更大的工作量,隨著學習的深入,我們編寫的程序將越來越長,如果出現很多錯誤,在

改錯時將會很麻煩,出錯越多你改的時間將會越長,就會無形間給自己帶來更多麻煩。

單片機(micro control unit)是一種集CPU、RAM、ROM、I/O、中斷、定時/計數等功能為一體的完整的計算機,只需外加主頻振蕩器和電源,灌入應用程序就可以實現一定的功能。單片機的的應用特點是“面向測控”。因此,它必須有強力的信息處理、檢測、控制的功能。學習使用單片機就是理解單片機硬件結構,以及內部資源的應用,在匯編指令系統或C語言中學會各種功能的初始化設置,以及實現各種功能的程序編制。

一、總線:我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連連線并不成為一個問題,因為各器件間一般是串行關系,各器件之間的連線并不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各 器件之間的工作必須相互協調?所以就需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線線,則線的數量將多得驚人,所以在微處理機中引 入了總線的概念,各個器件共同享用連線,所有器件的8根數據線全部接到8根公用的線 上,即相當于各個器件并聯起來,但僅這樣還不行,如果有兩?器件同時送出數據,一 個為0,一個為1,那么,接收方接收到的究竟是什么呢?這種情況是是不允許的,所以 要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發送數據(可以有 多個器件同時接收)。器件的數據線也就被稱為數據總線,器件所有的控制線被稱 控制 總線。

在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配 地址,才能 用,分配地址當?也是以電信號的形?給出的,由于存儲單元比較多,所以,用于地址分的線也較多,這些線被稱為地址總線。

二、數據、地址、指令:之所以將這三者放在一起,是因為這三者的本質都是一樣的─數字,或者說都是?串‘0’和‘1’組成的序列。換言之,地址、指令也都是數據。指令由單片機芯片的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的 一一對應關,不可以由 單片機的開發者更改。地址:是尋找單片機內部、外部的存儲 單元、輸入輸出口的依據,內 存單元的地址值

已由芯片設計者規定好,不可更改,外部的 單元可以由單片機開發者自行決,但有一些地址單元是一定要有的(詳見程序的執行過 程)。數據:這是由微處理機處理的 象,在各種 不同的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況:

1地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。

2方式字或控制字(如MOV TMOD,#3),3即是控制字。

3常數(如MOV TH0,#10H)10H即定時常數。

4實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗,則執 兄 令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用于LED的字形碼,也是實 際?出的值。理解了地址、指令的本質,就不難理解程序運行過程中為什么會跑飛,會把數據當成指 令來 行了。

三、P0口、P2口和P3的第二功能用法 初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間 要有個切換的過程,或者說要有一條指令,事實各端口的第二功能完全是自動,不需要指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口 時,它們揮作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有相應的信號從 P3.或P3.7送出,不需要事先用指令說明。事實上‘不能作為通用I/O口使用’也并不是‘不能而是(使用者)‘不會’將其作為通用I/O口使用。你完全可以在指令中按排一條S ETB P3.7的指令,并且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會 這么做,因為這通常這會導致系統當潰(即死機)。

四、程序的執行過程 單片機在通電復位后8051內的程序計數器(PC)中的值為‘0000,所以程序總是從‘0000’單元開始執行,也就是說:在系統的ROM中一定要存在‘0000’個單元,并且在‘0000’單元中存放的一定是一條指令。

五、堆棧 堆棧是一個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的 一份,特殊的是它存放和取用數據的方式,即所謂的‘先進后出,后進先出’,并且 堆棧有特 的數據傳輸指令,即‘PUSH’和甈OP’,有一個特殊的專為其服務的單元,即堆棧指 針SP 每當執一次 PUSH

指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原 來值基礎上)動減1。由于SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP值,就可以把堆棧設置在規定的內存單元中,如在程序開始時?用一條MOV SP,#5FH指令,就時把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這么條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元 開始往后8H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的渾亂

六:中斷

當單片機應用于測控系統時,實時性就顯得特別重要了。而中斷技術就是處理這種實時性要求高的場合。單片機的特點是一段程序反復執行,程序中的每個指令的執行都需要一定的執行時間,如果程序沒有執行到某指令,則該指令的動作就不會發生,這樣就會耽誤很多快速發生的事情,例如,按鈕按下時的下降沿。要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在快速動作發生后,單片機中斷正常運行的程序,處理快速發生的動作,處理完成后,在返回執行正常的程序。中斷功能是需要合理控制的,在使用中的困難是需要精確地知道什么時候不允許中斷發生(屏蔽中斷)、什么時候允許中斷發生(開中斷),需要設置哪些寄存器才能使某種中斷起作用,中斷開始時,程序應該干什么,中斷完成后,程序應該干什么等等。中斷學會后,就可以編制更復雜結構的程序,這樣的程序可以干著一件事,監視著一件事,一旦監視的事情發生,就中斷正在干的事情,處理監視的事情。這就是中斷功能的強大之處。

七:匯編語言與C語言

匯編指令有自己的一套繁瑣的指令系統,不容易熟練掌握,編寫程序不得不注意硬件細節。相對于C語言,匯編語言也有不可忽略的優勢,就是在某些特殊場合需要高效的,占用存儲空間小的地方。但隨著技術的發展硬件的限制越來越小,C語言比較好理解,通用性和可移植性都很不錯。也不用記專門的指令集合來,所以我還是比較傾向于用C編寫程序的。

接觸單片機已經有一段時間了,我感覺自己動手學習編寫程序,調試然后在開發板上做學習的很快,看到自己看到的結果通過自己親手做出來的感覺很有成功感。

有時候單片機的學習很單調,有些知識學起來很抽象,不容易理解,只能慢慢適應,一邊學習理論知識,一邊編寫程序,將程序刷入單片機進行調試,通過這種方式才能更快速的學習單片機。同事也會從學習中體會成功的喜悅。

看門狗程序

看門狗,又叫 watchdog timer,是一個定時器電路, 一般有一個輸入,叫喂狗,一個輸出到MCU的RST端,MCU正常工作的時候,每隔一端時間輸出一個信號到喂狗端,給 WDT 清零,如果超過規定的時間不喂狗,(一般在程序跑飛時),WDT 定時超過,就回給出一個復位信號到MCU,是MCU復位.防止MCU死機.看門狗的作用就是防止程序發生死循環,或者說程序跑飛。

工作原理:在系統運行以后也就啟動了看門狗的計數器,看門狗就開始自動計數,如果到了一定的時間還不去清看門狗,那么看門狗計數器就會溢出從而引起看門狗中斷,造成系統復位。所以在使用有看門狗的芯片時要注意清看門狗。硬件看門狗是利用了一個定時器,來監控主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復位如果出現死循環,或者說PC指針不能回來。那么定時時間到后就會使單片機復位。、本程序通過按鍵喂狗防止溢出復位 看門狗演示程序

在16383個機器周期內必須至少喂狗一次

標準AT89s52單片機試驗通過。-----------------*/ #include

sfr WDTRST = 0xA6;

sbit K1 = P3^0;sbit K2 = P3^1;sbit LED1=P1^1;sbit LED2=P1^2;

void DelayUs2x(unsigned char t);//us級延時函數聲明

void DelayMs(unsigned char t);//ms級延時

/*-----------------

主函數

-----------------*/ main(){

LED1=0;

DelayMs(100);

LED1=1;

DelayMs(100);

TMOD=0x01;

TH0=0xc6;

//定時16ms

TL0=0x66;

EA=1;

ET0=1;

WDTRST=0x1e;

//在程序初始化中激活看門狗。

WDTRST=0xe1;

//先送1E,后送E1

if(K1==0)

{

TR0=1;

}

while(1)

{

if(K2==0)

{

TR0=0;

}

LED2=1;

LED1=1;

DelayMs(100);

LED2=0;

DelayMs(100);

} } /*-----------------

定時器中斷函數

-----------------*/ void Time0(void)interrupt 1 {

TH0=0xc6;

//定時16ms

TL0=0x66;

WDTRST=0x1e;

//喂狗指令

WDTRST=0xe1;}

/*-----------------uS延時函數,含有輸入參數 unsigned char t,無返回值

unsigned char 是定義無符號字符變量,其值的范圍是

0~255 這里使用晶振12M,精確延時請使用匯編,大致延時

長度如下 T=tx2+5 uS

-----------------*/ void DelayUs2x(unsigned char t){

while(--t);} /*-----------------mS延時函數,含有輸入參數 unsigned char t,無返回值

unsigned char 是定義無符號字符變量,其值的范圍是

0~255 這里使用晶振12M,精確延時請使用匯編-----------------*/ void DelayMs(unsigned char t){

while(t--){

//大致延時1mS

DelayUs2x(245);

DelayUs2x(245);} }

第五篇:單片機學習心得

單片機學習心得

第一次聽說單片機是在今年年初的時候,是在一段視頻上,好像講的是基于單片機控制的遙控小車,真正見到單片機是在我的第一本入門教材上,在此之前我只是模擬電子電路愛好者,當我第一次認識單片機以后就徹底愛上她了,當時對她很是好奇,一片小小的芯片竟然可以實現這么多功能,還可以編程。

從那時起就開始了我的單片機學習之路,到現在已有7個月了,這7個月學到了許多。下面是我學習單片機的一些心得體會,供大家參考一下:

學習單片機最重要的不是你有多深厚的基礎知識(當然基礎也是很重要的),而是你對她是否有興趣,興趣的魅力是巨大的,興趣是最好的老師,是你堅持下去的動力源。

要對數電和模電有一定的了解,這對你學習單片機有很大幫助。

學習單片機光看書是不行的,還得要實踐,所以還得要有經濟投入(不會花很多錢的)。

先選一本好的入門教材,51系列單片機入門教材很多,很適合我們初學者。

大略了解一下單片機結構,一開始不要深入研究,要多增加感性認識,有利于學習。要學習一門編程語言 匯編或者是C語言,(匯編有利于內部結構的了解,C語言可移植性好,建議先學匯編,再深入學習C語言。)

熟練使用一種編譯軟件,推薦Keil C。

會用一種電路圖和PCB設計工具,推薦protel。好好利用網絡資源,盡可能自己解決問題,這也是提高自學能力的一種方法。

要實踐理論相結合,多動手。最重要的是要保持興趣,貴在堅持。

下載單片機學習心得word格式文檔
下載單片機學習心得.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    單片機學習心得

    單片機與機械專業聯系及其重要性機械10-23100644202張弼赫摘 要:針對單片機應用日益廣泛,并且對于機電一體化的應用具有現實意義,本文根據現實生活中單片機在機械行業中的應用,......

    單片機學習心得(精選5篇)

    我是剛畢業不久的工科學生,記得剛入大學的時候,有個比我大幾屆的師兄告訴我,讓我利用課余時間好好學學單片機,只有那樣才不愧為一名學電子的學生.坦白的說,那時侯我對單片機可以說......

    單片機學習心得[五篇材料]

    我的單片機學習心得 姓名:楊延海 學號:2005040165 這世界似乎總是很喜歡和人開著玩笑,原本對電子方面并不是很感興趣的我在大學里卻選擇了電子信息科學與技術這一個對自己來......

    單片機學習心得(精選5篇)

    Medwin軟件使用 計算機仿真對單片機指令系統學習的幫助主要在于幫助理解,加強記憶,適當應用。能夠在單片機指令系統學習中的軟件主要是MedWin,因為其操作簡單,而且可以直觀地看......

    單片機原理學習心得

    單片機原理學習心得 授課老師: XXX 姓名: XXX 學號:XXX 通過本學期學習我收獲很大,雖然只是基礎課程,但是讓我對單片機有了深入的了解。在工業、農業、軍事、保安、金融、儀器儀......

    單片機的學習心得

    如何開始學習單片機我并不是什么高手,只是自己在摸爬滾打7、8年后得到的一點點經驗,說出來和大家分享罷了。這篇文章也就是個經驗只談,大家覺得合適就看看,不合適就不要看下去......

    單片機學習心得2

    單片機學習心得在學校學習期間我有幸的參加了學校的單片機學習小組,在小組里我了解了什么是單片機,單片機有哪些用途,利用單片機可以實現哪些功能來方便人們的生活如交通燈,時鐘......

    單片機課程學習心得

    單片機學習心得這學期我們學習了單片機原理及接口技術這門新的課程,在短短七周的學習過程中,老師不僅傳授了我們專業知識,交給我們人生的道理,求學的態度,還不忘聯系生活,告誡我們......

主站蜘蛛池模板: 亚洲国产欧美人成| 午夜精品久久久久久久爽| 天堂在线www天堂中文在线| 国产a v高清一区二区三区| 久久婷婷综合缴情亚洲狠狠| 日本大尺度吃奶呻吟视频| 好男人免费影院www神马| 国产在线一区二区在线视频| 国产精品玖玖资源站大全| 国产凸凹视频一区二区| 国产丝袜美女一区二区三区| 成视频年人黄网站免费视频| 中文成人久久久久影院免费观看| 大桥久未无码吹潮在线观看| 国产精品午夜福利在线观看地址| 国产一区二区三区在线电影| 久久久国产精华特点| 国产午夜福利亚洲第一| 免费国产黄网站在线观看视频| 日本一区午夜艳熟免费| av无码不卡在线观看免费| 久久综合九色综合欧美98| 男人av无码天堂| 99久视频只有精品2019| 国产欧美在线观看不卡| 国产成人无码av在线播放不卡| 欧美成人www免费全部网站| 亚洲国产精品尤物yw在线观看| 7777欧美成是人在线观看| 国产精品真实灌醉女在线播放| 中文字幕乱码人妻一区二区三区| 中字幕久久久人妻熟女| 少妇高潮喷水久久久影院| 亚洲精品无码久久千人斩探花| 狠狠色噜噜狠狠狠狠色综合久av| a级毛片100部免费看| 中文字幕亚洲综合小综合在线| 亚洲精品国产自在现线看| 少妇人妻综合久久中文| 国产成人av在线免播放app| 四虎成人永久在线精品免费|