- 相關推薦
51單片機心得體會
51單片機心得體會(一)
首先總體上談一談看法:
1、我從不說51是基礎,如果我這么說,也請把這句話理解為微機原理是基礎。
2、對51單片機的操作本質上就是對寄存器的操作,對其他單片機也是如此。
庫只是一個接口,方便使用者使用而已。
3、匯編語言在工作中很少用到,了解就好。
4、51的P0口很特別。
5、C語言就是C語言,51單片機就是51單片機,算法就是算法,外圍電路就是外圍電路,傳感器就是傳感器,通信器件就是通信器件,電路圖就是電路圖,PCB圖就是PCB圖,仿真就是仿真。
當你以后再也不使用51了,C語言的知識還在,算法的知識還在,搭建單片機的最小系統的技能還在,傳感器和通信器件的使用方法還在,還會畫電路圖和PCB圖,當然也會仿真。
6、51單片機是這個:
而不是這個:
7、當程序調試不如人意的時候,靜下心來好好查資料,51單片機最大的好處就是網上資料非常多,你遇到的問題別人肯定也遇到過。
作為學習者,問人可能更方便點,但一直這樣是培養不出解決問題的能力的。
接下來上點干貨:
首先要放清51的定位,跟我一起再念一遍:51只是個工具51只是個工具51只是個工具。
當然51還有一個地位就是大學生單片機啟蒙教程。
換句話說:單片機只是個工具單片機只是個工具單片機只是個工具。
然后什么是基礎:模電數電微機原理,然后熟練翻閱數據手冊,可以試著做一些模塊或者最小系統練練手,C語言其實也可以算工具吧,就單片機來說,作為必要條件也算作基礎吧。
再然后是要盡早搞明白自己的專業方向或者自己準備發展的方向,然后不同方向又有不同的專業基礎,你學測控,就需要各種傳感器、控制原理、理論、算法//買測量模塊用不叫測控啊喂;你學信號處理,就需要信號與系統、數字信號處理基礎,然后慢慢接觸DSP、FPGA//信號處理真的不是result=(AD+0.5)/4096*3.3啊喂;你想做嵌入式開發,就慢慢研究ARM的架構,跑一些實時系統甚至高端ARM跑Linux開發驅動或應用;你要是想做通信,每天晚上拜一拜香農好了,這茬貌似挺苦的,什么通信原理編碼論電磁場blablabla……
總之51/單片機可以實現很多事情,但這不是一定說51重要,而是你如何利用51。
哦對了,當你使用更高級的芯片的時候,很多底層的東西慢慢可以忽略了,甚至很多芯片廠商都會提供庫給你,你可以安心的專注于自己的算法而不是如何去控制單片機。
當然你最好還是要有一個芯片怎么通過寄存器及各種邏輯電路工作的概念。
還有說一下你大學課余生活的選擇、首先那種機器人實驗室或者學生領導的實驗室,適合打比賽刷獎狀、長期下來你的模數電技能能有很大的鍛煉,甚至你可以收貨一些專利,而且學生之間氣氛也還不錯。
另外一種就是找個導師跟著學習、幫忙、做項目,盡管最開始可能感覺導師分配給你的任務怎么都和單片機無關啊好無聊,但是你能在某個領域收獲不一樣的技術。
當然前提是你要喜歡導師的研究方向了,一般院網站都有或者去知網看這個老師發表的論文。
談談我的經歷吧。
1、一個沒有C基礎的的我,從師兄老師那打聽到學51從郭天祥的視頻開始,所以我就下載了全套來看。
剛開始看真是頭都暈了,點亮一個LED燈還可以,到了第二課的延時函數就吃不消了,可以說我耐力差吧,沒有堅持,可以說我沒恒心吧,不是真正想學東西的人,當時的我沒有把它放心上,只是看了4課而已,其實對里面的程序不太理解的,于是就停下來不學了。
到了大二下學期,我發現要學點技術,所以重抄舊業,學期單片機,然后再重第1課開始看起,結果發現以前不明白的東西現在豁然開朗。
我寫這經歷是想說,如果當時我堅持下去,不懂的地方看多幾遍,不懂再看再看,就不會浪費大半年的時間了。
有些知識理論靠時間的積累,第一遍看不懂,第二遍看不懂,第三遍可能就懂一點了,剛開始上手一件事是會遇到類似的情況的。
2、當我學了1個月后,學校里有個比賽,團隊需要一個人搞硬件,于是我自己提出搞硬件,為什么?因為在學單片機的過程中發現,自己只會跑程序,連原理圖都不怎么會看,單片機的接線我都是看開發板提供的資料來接的,很狗血吧。
于是我就開始接觸Altium Designer了,這是我這學期學的第二個軟件。
是看視頻入門的,剛開始看的是郭天祥的視頻,結果發現看不下去啊,太長太累了,看完一集好痛苦啊,于是我搜搜,結果發現一個很好的教學視頻,用的也是比較新的版本,叫《邊學邊玩Altium Designer》 四人行工作室開的。
我真的提感謝作者這種開源的精神的,對我們初學者幫助很大。
跟著他的視頻學習1個月,會畫出51最小系統,基本布線,不過我覺得還是不夠(當然不夠啦,你才學了一個月……)
3、在學Altium Designer的過程中涉及到電路分析,也就是我們現在學的《電子電路基礎》,于是愛折騰的我開始搗鼓起Multisim 12.0,這是一款電路模擬仿真的軟件。
跟著老師學挺慢的,但是教材又高深了一點,比如說分析放大電路,穩壓電源,教材上的東西大多列出公式,對于零基礎學習的朋友是挺苦逼的,而且老師也是趕鴨子式,講考試內容。
這里建議大家買一本書《電子設計零基礎》第二版,這本書是我在圖書館偶然發現的,但從此就迷戀上了他。
剛開始他不會介紹一大堆公式,以一個例子開始教學,一步一步教你認識元器件(這里對學PCB是有幫助的),然后從電路圖的一步分開始分析,接著分析怎么系統,書本結合Multisim 仿真,教你一步一步使用里面的控件。
寫到這里自己總結下:
對于1:學單片機最重要的是
1.先認識單片機,了解單片機的主要組成和各個管腳的定義及功;推薦書《單片機原理及其接口技術》胡漢才(很熟悉吧。
呵呵這就是我們大學的單片機教材啊!!經典中的經典啊!基礎中的基礎啊!!人家幾十年的教材沒有變是有道理的,原理這種東西不會變到哪里去的。
不用專門去看,當作了解,對你理解編程是很有幫助的。)
2.了解一些單片機匯編知識,方便后續調試;這本書《單片機原理及其接口技術》里面就是講匯編的,一舉兩得。
3.掌握單片機中斷機制;
4.掌握單片機定時和計數器;(3和4是對單片機內部寄存器的控制,要熟練掌握。
那些外部拓展功能大多都基于這些內部控制)
5.掌握單片機的串口通信。
以上是對想從事單片機學習的人必須掌握的基本內容。
對于2、3:2、3可以在一起講,這是硬件部分的。
Altium Designer主要學原理圖庫設計,PCB庫設計,布線。
沒入門的朋友看下視頻,不要求什么都會畫,起碼要會用人家的庫,把人家的庫移植過來自己用,這樣可以快速上手這個軟件。
到后來再慢慢完善自己不熟悉的地方,這在里一直頭疼我的就是封裝的問題,當時我連封裝是什么都不懂,自己看視頻查了資料,才慢慢有點認識。
51單片機心得體會(二)
什么是單片機
學習使用單片機就是理解單片機硬件結構,以及內部資源的應用,在匯編或C語言中學會各種功能的初始化設置,以及實現各種功能的程序編制。
有人覺得要先學匯編。
不過我個人覺得,學習51單片機,還是從C語言入手,一來方便,二來容易上手,仁者見仁,智者見智吧。
關于學習51單片機的書籍,市場上有很多,大家可以擇優選取。
那么,如何用程序控制單片機的呢?
點擊放大圖片
我開始學單片機的時候也曾有過這樣的困惑啊,ok,下面幫大家整理一下思路。
怎么在Keil里寫程序?keil怎么安裝破解?
用過VC6.0的同學都知道,VC6.0是一個編譯環境。
什么是編譯環境?簡單地說,就是你寫代碼的地方。
那么,同理,單片機的編譯環境就是Keil(除了Keil以外,還有IAR啊等等,不過我推薦大家用KEIL吧) Keil有很多版本,最新版本是Keil4,所以我毫不猶豫地選擇了Keil4。
大家都知道,像這種軟件,一般都不是免費的。
But!! 我們的毛爺爺說了,人有多大膽,地有多大產
國內從事于破解工作的牛人還是不少的,所以,安裝和破解keil是很輕松的
破解方法
1.安裝 Keil For 51 執行 setup.exe
2.注冊 l 開打 KEIL4 軟件(WIN7要以管理員身份運行) 執行菜單命令 file > License Management l 打開注冊機
3.目標 Target 選擇 C51。
4.拷貝 CID 框里的內容到注冊機的 CID 里。
5.點擊注冊機里的 GENERATE 生成代碼。
6.然后拷貝注冊碼到 keil 里的 New License ID Code 中點擊 ADD LIC 即可。
點擊放大圖片
苦逼的寫完了,怎么生成HEX文件?
在keil中編寫完程序后,要將程序通過燒錄器燒寫到單片機中,這時就需要在keil中產生一個hex格式的文件,只有通過這種格式,燒錄器才能將程序燒寫到單片機中。
hex文件格式是Intel公司提出的按地址排列的數據信息,數據寬度為字節,所有數據使用16進制數字表示, 常用來保存單片機或其他處理器的目標程序代碼。
它保存物理程序存儲區中的目標代碼映象。
一般的編程器都支持這種格式。
如何才能產生這種格式的文件呢? 在keil中對其進行如下設置,便能產生hex文件:
1.點擊菜單“Option for Tagret '...'”
2.選擇“Output”頁
3.鉤選“Create HEX File”
4.重編譯 如果程序無誤,在Project的當前目錄即會產生HEX文件
什么是串口?51和串口和電腦又是什么關系?
串口是51單片機與PC機之間的連接橋梁,
如果 PC 機有 COM 串口 用 RS232轉換TTL 與單片機 RXD TXD 連接,由此對應PL2303模塊
如果 PC 機沒有 COM 串口 用 USB轉換TTL 與單片機 RXD TXD 連接,由此對應CH340模塊
這兩種方式都可以進行下載
STC-ISP是神馬,它怎么就可以下載?什么是冷啟動?
STC-ISP 是一款單片機下載編程燒錄軟件,是針對STC系列單片機而設計的,可下載STC89系列、12C2052系列和12C5410等系列的STC單片機,使用簡便,現已被廣泛使用。
具體可以問問度娘 。
冷啟動就是:開發板先斷電,在運行下載軟件,之后出現“仍在連接中, 請給 MCU 上電...”后,在給開發板通電,這樣子才能下載進去,否則STC-ISP顯示:
連接失敗,請嘗試以下操作:
1.在單片機停電狀態下,點下載按鈕,再給單片機上電
2.停止下載,重新選擇 RS-232 串口, 接好電纜
3.可能需要先將 P1.0/P1.1 短接到地
4.可能外部時鐘未接
5.因 PLCC、PQFP 轉換座引線過長而引起時鐘不振蕩,請調整參數
6.可能要升級電腦端的 STC ISP.exe 軟件
7.若仍然不成功,可能 MCU/單片機內無 ISP 系統引導碼,或需退回升級,或 MCU 已損壞
8.若使用 USB 轉 RS-232 串口線下載,可能會遇到不兼容的問題,可以讓我們幫助購買兼容的 USB 轉 RS-232串口線仍在連接中, 請給 MCU 上電...
點擊放大圖片
單片機需要掌握一些什么內容?
第一步:數字I/O的使用
使用按鈕輸入信號,發光二極管顯示輸出電平,就可以學習引腳的數字I/O功能,在按下某個按鈕后,某發光二極管發亮,這就是數字電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的單片機編程思想,例如,必須設置很多寄存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。
每使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻煩,所有的單片機都是這樣。
IO口的使用,最簡單的就是點亮流水燈啦~Come on!為了讓沒有單片機的同學也能順利學習,我們可以用仿真軟件來做,有視頻喔,學習更簡單,麻麻再也不用擔心了,哈哈。
第二步:定時器和按鍵的使用
學會定時器的使用,就可以用單片機實現時序電路,時序電路的功能是強大的,在工業、家用電氣設備的控制中有很多應用,例如,可以用單片機實現一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一次后,燈亮3分鐘后自動滅,當按鈕連續按下兩次后,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。
數字集成電路可以實現時序電路,可編程邏輯器件(PLD)可以實現時序電路,可編程控制器(PLC)也可以實現時序電路,但是只有單片機實現起來最簡單,成本最低。
定時器的使用是非常重要的,邏輯加時間控制是單片機使用的基礎。
按鍵,就不用說了吧,應用很廣泛的,不多說,參見帖子,注意,按鍵掃描程序是用if還是while喔~最近在某論壇發現了一種新型按鍵識別思路(利用AD),也可以看看~
第三步:中斷
單片機的特點是一段程序反復執行,程序中的每個指令的執行都需要一定的執行時間,如果程序沒有執行到某指令,則該指令的動作就不會發生,這樣就會耽誤很多快速發生的事情,例如,按鈕按下時的下降沿。
要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在快速動作發生后,單片機中斷正常運行的程序,處理快速發生的動作,處理完成后,在返回執行正常的程序。
中斷功能使用中的困難是需要精確地知道什么時候不允許中斷發生(屏蔽中斷)、什么時候允許中斷發生(開中斷),需要設置哪些寄存器才能使某 種中斷起作用,中斷開始時,程序應該干什么,中斷完成后,程序應該干什么等等 。
中斷學會后,就可以編制更復雜結構的程序,這樣的程序可以干著一件事,監視著一件事,一旦監視的事情發生,就中斷正在干的事情,處理監視的事情,當然也可以監視多個事情,形象的比喻,中斷功能使單片機具有吃著碗里的,看著鍋里的功能。
以上三步學會,就相當于降龍十八掌武功,會了三掌了,可以勉強護身。
第四步:與PC機進行RS232通信
單片機都有USART接口,特別是MSP430系列中很多型號,都具有兩個USART接口。
USART接口不能直接與PC機的RS232接口連接,它們之間的邏輯電平不同,需要使用一個MAX3232芯片進行電平轉換。
USART接口的使用是非常重要的,通過該接口,可以使單片機與PC機之間交換信息,雖然RS232通信并不先進,但是對于接口的學習是非常重要的。
正確使用USART接口,需要學習通信協議,PC機的RS232接口編程等等知識。
試想,單片機實驗板上的數據顯示在PC機監視器上,而PC機的鍵盤信號可以在單片機實驗板上得到顯示,將是多么有意思的事情啊!
第五步:學會A/D與D/A
STC12C5A60S2單片機帶有多通道10位A/D轉換器,通過這些A/D轉換器可以使單片機操作模擬量,顯示和檢測電壓、電流等信號。
學習時注意模擬地與數字地、參考電壓、采樣時間,轉換速率,轉換誤差等概念。
使用A/D轉換功能的簡單的例子是設計一個電壓表。
DA的芯片承建的有,DAC8032, DAC8032
第六步:學會PCI、I2C接口和液晶顯示器接口
這些接口的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。
那我們來看一下如何實現LCD1602的顯示吧
第七步:學會比較、捕捉、PWM功能
這些功能可以使單片機能夠控制電機,檢測轉速信號,實現電機調速器 等控制起功能。
如果以上七步都學會,就可以設計一般的應用系統,相當于學會十招降龍十八掌,可以出手攻擊了。
第八步:學習USB接口、TCP/IP接口、各種工業總線的硬件與軟件設計
學習USB接口、TCP/IP接口、各種工業總線(CAN總線 、SPI總線 )的硬件與軟件設計是非常重要的,因為這是當前產品開發的發展方向。
到此為止,相當于學會15招降龍十八掌,但還不到打遍天下無敵手的境界。
即使如此,也算是單片機大蝦了。
第九步:學習無線傳輸的硬件與軟件設計
PT2262/PT2272 是臺灣普城公司生產的一種CMOS 工藝制造的低功耗低價位通用編解碼電路,PT2262/PT2272 最多可有12 位(A0-A11)三態地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441 地址碼,PT2262 最多可有6 位(D0-D5)數據端管腳,設定的地址碼和數據碼從17 腳串行輸出,可用于無線遙控發射電路。
編碼芯片PT2262 發出的編碼信號由:地址碼、數據碼、同步碼組成一個完整的碼字,解碼芯片PT2272 接收到信號后,其地址碼經過兩次比較核對后,VT 腳才輸出高電平,與此同時相應的數據腳也輸出高電平,如果發送端一直按住按鍵,編碼芯片也會連續發射。
當發射機沒有按鍵按下時,PT2262 不接通電源,其17 腳為低電平,所以315MHz 的高頻發射電路不工作,當有按鍵按下時,PT2262 得電工作,其第17 腳輸出經調制的串行數據信號,當17 腳為高電平期間315MHz 的高頻發射電路起振并發射等幅高頻信號,當17 腳為低平期間315MHz 的高頻發射電路停止振蕩,所以高頻發射電路完全受控于PT2262 的17 腳輸出的數字信號,從而對高頻電路完成幅度鍵控(ASK 調制)相當于調制度為100%的調幅。
【51單片機心得體會】相關文章:
單片機實驗心得體會12-07
單片機實驗心得體會12-28
單片機學習心得體會03-17
單片機實訓心得體會08-15
單片機實訓的心得體會11-25
單片機實驗心得體會范文05-29
單片機課程設計心得體會04-09
單片機實驗心得體會(7篇)04-12
單片機實驗心得體會7篇03-12
單片機課程設計的心得體會04-27