單片機初學者必看
寫給初學者的一些話
本文原創(chuàng),僅代表我搞單片機的一些想法,有不妥之處,不承擔任何責任。
第一個問題,講一下初學者到底學習那個系列單片機。
51、AVR、430、ARM(包括嵌入操作系統(tǒng))、FPGA當前單片機系統(tǒng)如此豐富,對于新手到底該如何選擇呢?我認為最大的誤區(qū),在于新手普遍的追時髦心理,急功近利心理,妄想短時間之內學會ARM,學會嵌入操作系統(tǒng)。網上資料、廠家宣傳、培訓機構廣告也對初學者產生誤導,使之誤認為ARM很容易學。但是沒有51單片機知識作為基礎,其他一切都是空中樓閣。必不能達到預期效果。51單片機作為入門級產品,現在更多的體現在教學意義上了。雖然大部分的產品,已經淘汰51,使用高級芯片或者增強型51芯片,但是奉勸初學者,還是要從底層、基礎、即51開始單片機的學習。學好、學會、精通51單片機再學習其他單片機也能很快入門。
第二個問題,學習單片機,需要有哪些基礎,入門都學哪些東西。
很多初學者經常問,我能學單片機嗎?難嗎?我現在什么也不會啊?這里想說幾句,要想學習單片機開發(fā),需要有以下幾方面基礎,但要求并不是很高,可以在以后的學習過程中慢慢學。
1、電路基礎:一些數字電路、模擬電路基礎。畢竟以后要自己設計電路,這些知識是很有用的。
2、C語言基礎:我個人比較喜歡C語言開發(fā),相比匯編最大的優(yōu)點就是移植性要好。學習51單片機,C語言編程當然需要有些基礎。
3、一些單片機的基礎知識:雖然是初學者,但是一些基礎理論知識還是應該知道的。
4、一些焊接等動手能力,這個要求就不是那么嚴格了。呵呵。不過能搭一手漂亮的電路還是挺好的。
怎么樣算入門?
1、學會使用編譯器軟件:就是在編譯器下建立一個項目,編寫一點點代碼,生成一個程序文件。當你熟悉這個流程以后,就變得非常容易了。不過第一次還是很難實現的,最好有一個比較詳細點的教程。
2、學會使用下載工具和軟件:把程序燒錄到單片機里,運行起來,需要動手去操作。
3、學會使用調試工具:如有條件,可以學習硬件仿真調試。
4、以上可以在學習板上實現,不過以后你要學會自己設計 并制作電路。所以還要學會PRTEL軟件使用。
第三個問題,學過一段51單片機了,入門也會了。以后怎么辦啊?
很多初學者,學了一款51學習板,基礎東西也都會了,下一步怎么發(fā)展卻不知道了。下面的一些理論是我的一點不成熟想法,有這樣困惑的朋友可以參考參考。
1、單片機的平面發(fā)展理論:不斷學習同一個層次、不同結構、不同品牌的單片機。
學會了一個系列、一個公司單片機,比如51(AT89S51),了解的它的全部內部資源。下一步學習,仍然可以圍繞51進行?梢詳U展到其它公司的51單片機,比如stc、pic因為他們有很多增強型51單片機。功能比普通AT89S51強很多。如果可以,接觸更多的同系列的51單片機。最終能夠在做產品時,選擇最正確的單片機,對每一種51單片機的優(yōu)劣有清晰的判斷。
2、單片機的縱向發(fā)展理論:不斷學習高級別的單片機。
在學會一個系列的單片機,繼續(xù)學習高級的單片機,比如從51到AVR、到ARM?梢詫W習到更多的單片機,接觸到更多的知識。
3、單片機的外圍發(fā)展理論:不斷學習單片機的外圍功能模塊。
學會一個系列的單片機以后,轉而研究外圍電路。不論是輸入、輸出、通訊、邏輯和計算。單片機外圍電路千變萬化,其功能模塊也千奇百怪。這樣的模塊學的越多,對你做產品的好處越大。畢竟所有功能模塊都是用在單片機上的,不論是51還是ARM都需要有外圍電路才能實現功能。
4、總結:無論以上那種發(fā)展模式,其最終目的都是單片機開發(fā),都是研發(fā)出產品。所以最終的產品才是目標。
第四個問題,學習要精 還是要多的問題。
這個問題也比較麻煩,很多認為搞單片機要學那么多東西,還要軟硬件結合。我不可能每一種都做的很好。到底是要什么都會,還是要精通一種呢?
個人認為,如果是學生,還沒有工作,那么還是什么都會一點才好。畢竟誰也不知以后的工作內容是什么,可以參加工作以后再選擇優(yōu)勢發(fā)展方向。
另外通常精通一種工作的都是大公司,分工比較明確,每個人負責自己的一部分,而在小公司,可能連技術文件都需要你來編寫,當然是會的越多越好了。
第五個問題,隨便聊一聊開發(fā)的流程,主要研發(fā)設計人員在這些流程中的工作。
1、產品需求階段:可能是根據市場需要或者公司安排,確定要開發(fā)一種產品。開發(fā)人員需要和產品需求方溝通,明確客戶的需求,對即將開發(fā)的產品有一個總體上的印象。
2、產品立項:這時產品已經確定要開發(fā),需要立項,開發(fā)人員可能需要填寫立項相關文件。有可能設計項目獎金哦。。。
3、產品總體設計:一般由高級系統(tǒng)架構師(我也不知道這個是什么樣的牛人呢,還沒參加過有這種牛人的項目)搞定整個產品的系統(tǒng)設計。形成系統(tǒng)結構圖,有可能分解成軟硬件部分。(此處的軟件指上位機應用軟件,不是單片機內部程序)。
4、技術難點攻關:這里看需要開發(fā)人員出力了,就是把整個系統(tǒng)比較難或者不能確定的部分,先進行研究實驗,以確認不會因為這些部分導致項目無法實現。
5、電路設計制作:涉及到單片機開發(fā)人員了,涉及產品電路,并形成PCB電路板。
6、單片機程序編寫:終于要編程序了。到單片機工程師大顯身手的時候了。
7、硬件調試:電路板焊接完成,程序編寫完成。進行硬件調試,以發(fā)現程序的缺陷。 還有可能因增加或刪除功能進行修改。
8、與上位機聯機調試:基本是整個系統(tǒng)都完成了,所有功能都要調試,以保證產品穩(wěn) 定。如果沒有上位機軟件,這一步就省略了。
9、測試:產品都搞完了,當然需要測試了。測試過程和方法很復雜的,這里就不說了。 如果測試出現問題,是需要返回到開發(fā)人員那里進行修改的。
10、制作樣機,完成項目開發(fā)部分:到這里基本上已經告一段落了,不過開發(fā)人員可能 還需要提供說明書等很多文件。
11、小批量生產,投放市場:用市場檢驗產品。如有不合格或者需要升級,開發(fā)人員就 要進行修改了。
12、產品實現量產:量產銷售到市場,如有問題,一般歸售后服務人員處理,處理不了 也會讓開發(fā)人員幫忙,畢竟開發(fā)人員對產品最為熟悉嘛。
13、總結,開發(fā)人員的工作可是貫穿整個產品開發(fā)過程的。。。初學者可以對照一下,看看你都需要學會哪些東西。
擴展閱讀:如何快速學習單片機?
編輯:admin 最后修改時間:2018-05-19