郭曉華
我是西北工業(yè)大學研三的學生。本科讀計算機時,我就有想法將來創(chuàng)業(yè),于是考研就選了當時大熱的電子信息工程,希望以后可以從事自己感興趣的監(jiān)控系統(tǒng)的研發(fā)。當時自己信心滿滿的,想著好歹計算機和電子技術是本家,但是接觸了才發(fā)現(xiàn),電子信息技術更加注重創(chuàng)造性和應用性,本科的那些理論學習似乎并不能給我?guī)硖蟮膬?yōu)勢。
沒入門,先設計
研一入學沒多久,導師就要求所有研究生新生參加學校的電子設計競賽,每人有一個半月的準備時間。“還沒入門呢,馬上就要我們做設計?”不少同學都傻了眼,我也是完全摸不著方向,但導師說比賽必須要參加!
在百般無奈又不愿服輸?shù)摹按竽凶又髁x”脅迫下,我找了許多電子類的行業(yè)雜志,發(fā)現(xiàn)了個電話控制方面的小作品,它能通過電話遠程控制其他家電的開關。這一下提起了我的興趣,如果有了這個控制器,就能遠程控制電飯煲,回到家就能吃上熱乎乎的晚飯了。
我仔細研究了原理圖中的元件型號,理解了它們的特性與功能后,就準備去電子市場上買元件自己動手做一個。花了六七十塊錢買了一堆的電容、三極管等其他零配件后,我借鑒著書上的原理圖把所有的元件一一焊接了起來。當我進行調試時,又看到網(wǎng)上有不少人反映說,如果在家人不知情的情況下使用遠程控制功能,有時可能會造成一定的恐慌。于是,我又在設計中增加了一個程序,在有電話指示進入時,電話遠程控制器頂端就會有一盞小燈在來電期間保持閃爍,這樣一來,家人看到了信號燈就知道是電話控制電器運轉了。
看著傾注了不少心血的第一個作品,當時的我還頗有成就感。然而遞交了參賽申請不過3天,興奮的心情就全沒了,申請書被駁了回來。導師說,這個設計老早就有了,你得有創(chuàng)新!可是怎么才能創(chuàng)新?時間緊迫我又能做什么呢?無奈之下,我只好去找導師。沒想到導師對我說:“你可以到我的實驗室里來,剛好你的師兄師姐在準備畢業(yè)設計,你先跟著他們學習學習吧!”
實驗室里有個師姐做的課題是兩種設備間的激光通信,我在旁邊看著她一會兒焊電路,一會兒寫程序,雖不知道她具體在設計些什么。但我始終記得那次看到師姐在編完幾句程序,按下回車后的情景,只見一道激光穿過眼前,另一臺電腦上就出現(xiàn)了整屏滾動的數(shù)據(jù),這是電影里才有的吧!實在是太神奇了。
前前后后在實驗室跟了一個月,我對于激光通信的硬件部分總算是有了基本的了解。依托師姐的課題,我幸運地趕上了比賽的末班車。不知是不是因為我是新生,作品又是一個比較完整的系統(tǒng),基本沒什么漏洞,我最終還得了個優(yōu)秀參與獎。
單片機是“大腦”
其實這個獎項沒有讓我有多興奮,倒是師姐的研究讓我對電子信息技術有了很大的興趣。我決定深入研究下去,首要的任務就是要選擇一個研究方向。
一次聽學長們說,學電子的如果學會了單片機、C語言、DSP,那么前途必定是一片光明。單片機相當于電子產品的大腦,如果這個核心控制器件失靈的話,那么家里的電冰箱、微波爐、電視、空調等電子產品恐怕都要變成廢品了。于是我果斷地將研究方向定在了單片機上。
單片機重視動手實踐,但是必須先對單片機的各個功能寄存器有個大致的了解。單片機的原理就是用軟件去控制各個功能寄存器,通過控制各種管腳的電平功率來控制系統(tǒng)板,實現(xiàn)我們需要的各個功能。于是,我買來《新編MCS-51單片機應用設計》每天看。看書不難,但是當要應用到硬件系統(tǒng)中時,我卻發(fā)現(xiàn)沒有實踐機會就只能原地打轉,于是,我省下一個月的錢從網(wǎng)上買了單片機學習板,開始邊查書邊上手操作。
知道了調試軟件的操作方法后,我的第一個實驗是流水燈實驗。MCS-51系列單片機有四組8位并行I/O口,每組I/O口內部都有8位數(shù)據(jù)輸入緩沖器、8位數(shù)據(jù)輸出鎖存器及數(shù)據(jù)輸出驅動等電路。先畫好電路圖,在Proteus軟件中放入所需的器件,設置參數(shù),再利用Keil2軟件編寫相應的程序,最后回到Proteus仿真軟件中進行仿真。當我看到8個流水燈按照我的意圖開始“流動”的時候,那種成就感可比剛開始時仿制人家的作品大多了。接著,我一鼓作氣又進行了更多的嘗試:第1、3、5、7號燈半亮,其余燈全亮;第1個亮1/8,第2個亮2/8,第3個亮3/8,以此類推,到第8個全亮;所有燈逐漸從暗到亮,再從亮到暗;最難的是讓8個燈從第一個開始依次漸亮,直到最后一個,再從最后一個起漸暗,直到第一個。如此循環(huán)往復。當最后的實驗效果出來的時候,我宿舍的兄弟也驚呆了:“還有這么漂亮的流水燈啊!”
就這樣,流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、AD或DA、液晶、蜂鳴器……我每天早上八點不到就到實驗室了。除了上課之外,其他時間都泡在里面,各種實驗讓我忙得不亦樂乎,一直到晚上十點多看樓的大爺敲門催了,我才依依不舍地離開。
高強度的學習讓我在研一暑假時就做出了第一個獨立的單片機作品——自動報時電子鐘。一般電子鐘的原理是主電路系統(tǒng)每60秒發(fā)出一個信號進行分計數(shù),每60分鐘發(fā)出一個信號作為時計數(shù)。而我在這個基礎上又加入了報時和其他一系列優(yōu)化程序,這樣一來,電子鐘不僅能夠整點報時,還能自動校時了。導師對我的這個作品很滿意:“你能把它做出來,說明你對單片機的掌握已經有80%了。”得到了導師的肯定,接下來的研究我也更有動力了。
總結這幾年玩單片機的感受,我發(fā)現(xiàn)單片機對編程的綜合性要求很高,編程工作在單片機應用中占的比重也很大,因此不少人在學單片機之前會下很大的功夫在學匯編語言上。但是以我的經驗,如果你是學過C語言的,不妨直接用C語言為單片機編程,這樣既省時間學起來又容易上手。
越學越覺得深不可測
初嘗實驗的甜頭后,我開始關注各種電子設計的實踐機會。研二時,我參加了一個空中機器人大賽。空中機器人是指能夠在空中自由飛行的飛行器,包括固定翼無人飛行器、旋翼無人飛行器、無人飛艇等。我參與的是旋翼無人飛行器小組的比賽,由于我是新手,被導師分到已參加過兩屆比賽的師兄團隊,主要負責伺服控制。
空中機器人主要是由飛行器載體、飛行控制計算機、慣性導航系統(tǒng)(INS)、伺服信號處理系統(tǒng)(SERVO BOARD)和地面站5個主要部分組成,空中機器人伺服電機運動控制的好壞決定了空中機器人飛行狀況的好壞,因此伺服電機的控制是此次設計應用過程中最重要的一環(huán)。
PWM信號的采集與發(fā)送都是通過單片機控制Intel8254來實現(xiàn)的,我單片機玩得順手,覺得信號系統(tǒng)設計也應該不在話下,便自告奮勇接下了這個任務。由于每片8254只有3路計數(shù)通道,而伺服信號處理系統(tǒng)的PWM采集需要6路計數(shù)通道,我想當然就認為兩片8254就可以實現(xiàn)PWM的采集。
不料師兄一看我的報告就笑了:“你這個新手還是沒經驗,你雖然考慮了PWM的信號采集,但是,信號系統(tǒng)的信號采集通道和信號發(fā)送通道不能共用一條技術通道。PWM的產生和發(fā)送需要5路技術通道,你必須要保證實現(xiàn)5路PWM控制信號的同步輸出,以及6路PWM控制信號的精確讀取才行。”在師兄的指點下,我最終利用Atmega162L高速單片機和Intel8254計數(shù)器芯片,通過232串口與上位飛行控制計算機(人可以直接發(fā)出操控命令的計算機)通信,實現(xiàn)了上位機產生的控制信號對伺服電機的自動控制。最終,這項設計在空中機器人的整體制作中得到了充分的應用,我們的作品也拿到了第二名的好成績。
這次比賽涉及到的知識領域很廣,無論是遙控器、遠程無線數(shù)據(jù)傳輸、遠程微波圖像傳輸、還是慣性導航、飛行器制造技術,都讓我覺得電子領域真的是“深不可測”。在整個參賽過程中,不管是成功還是失敗,每一次學到新知識都讓我十分興奮。我越來越發(fā)現(xiàn)電子設計是很件迷人的事情,當我編寫的程序能按我的意愿實現(xiàn)時,比做什么事都開心,這也是電子信息工程獨特的魅力吧。