我是高中畢業后第二年(1998年)開始出來工作的。到目前為止,工作時間已有十一年之久。在這十一年里,我先后做過電子生產工、測試員、維修工、硬件工程師、軟件工程師、項目經理、工程主管等等工作。一路走來,我的工作始終都沒有偏離過電子這個領域。之所以選擇干電子這一行,一切都是緣于參加工作之前,我參加了一個為期3個月的電子培訓班。而后面的工作只不過是學以致用和技能提升的延續。
2003年,我在一家做門鈴的私人企業里做電子工程師。當時,社會上正刮起一股學單片機的熱潮!峨娮訄蟆、《電子制作》等電子刊物紛紛在其期刊上大篇幅介紹關于學習使用單片機的文章。當時我看了師兄們在電子刊物上發表的單片機編程實例,真是驚詫萬分!神了!世界上居然有這么好用的芯片,想實現什么功能都可以!一方面我對師兄們佩服得五體投地!因為那看起來象天書一樣的程序我怎么都想不出師兄們是怎樣弄出來的。另一方面我也徹底地失望了!因為我想這么個高深莫測的東西我是今生今世都學不會了!但是命運的安排卻出乎我的意料!
盡管我看不懂那天書一樣的程序,但在好奇心的驅使下,我還是不斷地去在網上找那些與單片機有關的文章。慢慢地,我通過單片機教程網http://www.sahacks.com/上28課精彩的自學教程知道了有一種叫MCS-51系列的單片機很流行。而這個系列的單片機需要用一個叫KEIL C51的軟件來對程序進行編譯。編譯完成后會產生一個HEX文件,把這個HEX文件下載到編程器后就可以把程序燒寫進單片機里面了。隨著時間的推移,我積累的單片機知識越來越多。終于,有一天,我在看《電子制作》上的一個程序實例時突然感覺好象明白了些什么,但模模糊糊的又不敢肯定。于是我反復的看,反復的對照,最后得出一個結論:“我看懂了程序!我進門了!我進門了!”。在那一刻,我真是欣喜若狂!是!經過了幾個月的不懈努力,終于得到了回報,又怎能不令人欣喜呢?
事情講到這里,我要先說一下另外一件事情:由于當時我感覺在那間門鈴廠里做已經沒有什么發展空間了,于是我在2003年年底辭掉了工作。而我真正接觸到單片機的時間是在2004年進入了一家專業開發、生產小家電控制板的公司以后。我當時是以硬件工程師的身份進入這家公司的。我要負責的工作就是按客戶的要求來設計好線路板,然后裝好元器件,把樣板交給軟件工程師編程。能夠進入這家公司工作是我這些年來最大的幸運!因為我在這家公司里學到太多東西了!例如:單片機的硬件電路、單片機的抗干擾方法、單片機編程技術等?梢哉f,我的單片機知識有90%以上都是在這家公司上班期間學到的。雖然我離開這家公司已經有一段時間,但我還是想在此向這家公司的老板和幾位已離開公司的師兄們道個謝!感謝他們曾經對我的培養和幫助!祝福他們一路走好!
閑話休聊,言歸正傳。話說當年我進這家公司之初,我對單片機的了解僅止于雞毛蒜皮而已!盡管單片機的硬件電路相對來說是比較簡單的,但我對這方面的了解還真是太少了。什么A/D型按鍵檢測電路、溫度檢測電路、數碼管、VFD、LCD、數碼屏的驅動顯示電路、I/O口的復合應用……,這些我都是一無所知!所以當時我要獨立設計出一個能滿足客戶各種要求的硬件電路,難度還是很大的!不過還好,當時的師兄們對我這個一無所知的小師弟還是很照顧的,在每次交給我任務的同時都能對我指點一二。就這樣,邊做邊學,經過大概半年時間的努力,我也逐漸掌握了一些單片機的硬件電路,基本上已經能夠滿足工作的需要了。這時候我才松了一口氣,關注起師兄們做的程序來?粗鴰熜謧冏龀鰜淼墓δ芊睆、花樣不斷的程序,我心里真是既佩服又羨慕!想起自己在書上辛苦學來的一點51單片機編程實例,在這里真是一點用處都沒有!因為書上的那些例子都是用來演示一下,幫助學者理解的,根本就不實用!而真正實用的東西都裝在象師兄們這樣的一線工程師的腦袋里面。“要學就要學實用的東西,不然,學來又有何用!”我當時這樣想。 “我再也不能象以前那樣學單片機了(之前我買了一些51單片機的書籍天天啃),我必須找到一個更好的學習方法!”我想。但是怎樣才能學到真正實用的單片機技術呢?我想到了向師兄們請教。得到的答復是:“你去買一臺單片機學習板,然后安排你做一個最簡單的項目,一邊做一邊學是最好和最快的單片機學習方法!”。于是我就找單片機教程網www.sahacks.com的站長買了一個單片機學習板。但公司里一時間還沒有適合我做的簡單項目,于是我向一位師兄要了一個公司里已經開發好的實用程序作為參考例子來重點學習。我一邊看師兄做的程序例子,一邊分析和理解每一行、每一段程序的真實意圖,并且在每一行程序的后面都補上了注釋。遇到不好理解的程序段就模擬運行一下程序來幫助理解。慢慢地,我對師兄們的編程技巧和單片機的運行模式有了初步的了解。過了一段時間,機會終于來了,一個比較簡單的項目被安排由我來編程。接到這個任務我是既高興又擔心!高興的是終于有機會試驗一下我的學習效果了。擔心的是怕自己做不出來,既丟臉又糟蹋了這樣一個好機會!所以我全力以赴!奮戰3天3夜終于將樣品送給了客戶。說實在話,這時候的我還是沒有很好的理解師兄們的編程技巧和單片機的運行模式,程序也編得有點不論不類。經過這次試水,我更覺得自己的單片機功底不夠。但是這個時候我已經不能再依靠師兄們的幫助了,因為他們都陸續離開了公司。于是我開始補課,這時51Hei的單片機實例資料剛好派上了用場。在往后的大概半年時間里,我一邊利用空余時間學習單片機的基礎知識,一邊對公司里一些客戶要求更改的程序做一些修改,從中我也學到了不少單片機知識。再后來,我就慢慢的開始編寫一些程序。從指示燈顯示的消毒柜控制板程序開始做起,再到數碼管顯示的電熱水器控制板程序、VFD顯示的抽油煙機控制板程序、數碼屏顯示的電子鞋柜控制板程序……。從此,我成為了該公司的一名軟件工程師。
我學單片機的經過并不是每個單片機學習者都必須要走過的歷程,也沒有什么值得模仿的東西推薦給大家。但我想我可以從我的學習經歷中得到一些啟發,總結一些經驗以供后學者參考。經驗之一:學單片機,跟有經驗的人學要比跟書學快得多,好得多!經驗之二:在沒有人教的情況下,是否能夠選擇一套好教材,一套好的學習工具,將決定你是否能夠學會單片機編程技術!經驗之三:學單片機一定要學方法,學思想,不能死記硬背!經驗之四:學單片機不但要多動腦,還必須要多動手!好了,我的學習經歷和學習經驗都已經向大家和盤托出了,希望對有興趣學習單片機的朋友有所啟發。在此也預祝各位想學好單片機的朋友能夠盡快學會單片機編程技術!