略談兩個月單片機(jī)設(shè)計與開發(fā)的感慨
寫這篇文章的時候,我的兩個月單片機(jī)設(shè)計與開發(fā)已經(jīng)結(jié)束了,頗有感慨,所以寫了這篇文章。
首先,我先跟大家介紹一下什么是單片機(jī)。單片機(jī),它的全名叫“單片微型計算機(jī)”,英文名叫Micro-Controller Unit,或簡稱MCU。為什么叫它單片微型計算機(jī)呢?因為它就是一臺小型計算機(jī)。大家都知道,我們現(xiàn)在日常生活中所用的計算機(jī)都由存儲設(shè)備,輸入、輸出設(shè)備,控制器等部分組成。而我們的單片機(jī)也同樣由這些組成,誠然,單片機(jī)就是一臺計算機(jī)。然而,單片機(jī)不管是從運(yùn)算速度,還是存儲容量上來講,遠(yuǎn)遠(yuǎn)不及我們?nèi)粘I钪兴玫腜C機(jī)。那有些人可能會問了:“既然單片機(jī)性能遠(yuǎn)遠(yuǎn)不及PC機(jī),那干嘛不直接全用PC機(jī)呢?還用什么單片機(jī)呢?”是的,PC機(jī)功能是特別強(qiáng),基本上應(yīng)用在生活中各個領(lǐng)域。但是,我們?nèi)粘I钪懈鞣N應(yīng)用系統(tǒng)并不一定要求計算機(jī)功能那么強(qiáng)大,只要能處理好我們該系統(tǒng)所要處理的任務(wù)就OK啦!所以,并不是每個系統(tǒng)都要一個那么大的計算機(jī)放在那兒控制。我舉一個最簡單的例子,譬如,現(xiàn)在的汽車產(chǎn)業(yè)發(fā)展的特別好,而汽車的車載電子技術(shù)也跟著發(fā)展起來,F(xiàn)在的汽車都向豪華型,智能型,人性化方向發(fā)展,使得人們的生活變得輕松,舒適。而這些都是建立在智能控制前提下,所以就必須用到計算機(jī)來控制。試想,如果每個控制系統(tǒng)都用一臺很大的PC機(jī)放在汽車上,好幾十臺計算機(jī)放那兒,那么這輛汽車不就成了計算機(jī)房啦!那這輛汽車的造價也可想而知啦!況且,那么多的計算機(jī)放車子里面,也占據(jù)了太大的空間。所以,人們就不用PC機(jī),改用單片機(jī)來控制它。單片機(jī)就是一塊芯片,用它既節(jié)省經(jīng)費(fèi),又節(jié)省空間,而且又能達(dá)到同樣的控制效果,何樂而不為呢?如果用了PC機(jī),是不是有點“殺雞用宰牛刀”的感覺呢?就是因為這樣,單片機(jī)發(fā)展的非常好,在各種領(lǐng)域都能見到它的身影。如消費(fèi)類電子領(lǐng)域,工業(yè)控制領(lǐng)域,儀器、儀表領(lǐng)域,軍事領(lǐng)域等等,都是它的天下!
好了,剛才有些跑題了,現(xiàn)在讓我們言歸正傳。其實這次單片機(jī)設(shè)計與開發(fā)全是我們大家自己組織起來的。我們在整個系里面,找了20個志同道合的同學(xué),參加了這次單片機(jī)設(shè)計與開發(fā)。說實話,剛開始,我們大家從來沒有做過單片機(jī)最小系統(tǒng),根本不知道從哪兒做起。但是,我們并沒有灰心,而是一步一個腳印,從最簡單的做起。在這次實訓(xùn)過程中,我們學(xué)習(xí)數(shù)碼管的靜、動態(tài)顯示;獨立鍵盤、矩陣鍵盤;MAX813看門狗電路;EEPROM選了24C02;時鐘芯片DS1302的數(shù)碼管顯示,點陣顯示;單總線數(shù)據(jù)結(jié)構(gòu)溫度芯片DS18B20;SPI串行數(shù)據(jù)總線;I2C數(shù)據(jù)結(jié)構(gòu);串行數(shù)據(jù)通信;并且,在最后接了一個項目:大型LED顯示屏。我們這次單片機(jī)實訓(xùn)正值暑假,那天氣可真是叫熱啊!我們每學(xué)習(xí)一個模塊,都要做硬件電路。每次拿烙鐵焊接時,整個身體上汗珠往下滴,全身都濕透了。因為焊接時松香對皮膚有影響,我臉上長了好多痘痘,難受死了。然而,天氣越熱還越不能用電風(fēng)扇吹,因為一吹電風(fēng)扇,烙鐵就沒有溫度,焊錫就根本融化不了,沒法焊接。然而,硬件電路制作完后,還并不能算完事,更重要的還是程序。程序的編寫還不算太難,讓人頭痛的就是調(diào)試程序。有的時候,明明程序在電腦上模擬仿真非常完美,一點兒都沒問題,可是,當(dāng)程序一旦上硬件調(diào)試時,卻總是出問題,達(dá)不到預(yù)期的效果,非常惱人。有時氣憤的真想一腳把所有的東西都給踹掉算了。那時,大家都非常努力,每天盯著自己的電腦屏幕一直到深夜,不斷的調(diào)試程序,觀察里面的數(shù)據(jù)變化。到最后,很多人的眼睛都變得酸痛起來。因為天氣太熱,大家身體上都長滿了痱子,但卻一直堅持著。我很感動,真的!我在這次單片機(jī)設(shè)計與開發(fā)中,嘗到了成功的喜悅,也品味到了失敗的痛苦。特別是那次寫DS1302時鐘模塊時,因為要調(diào)整時間,所以數(shù)碼管必須要在調(diào)整時閃爍顯示,就這個閃爍顯示,把我折騰了整整3天,3天一點進(jìn)展都沒有,當(dāng)時,那真是痛苦死了,感覺真的是做不出來了,差點就放棄了閃爍顯示部分程序的編寫。然后我就和別人討論商量,慢慢的,我摸索出來了。當(dāng)那次上電調(diào)試時,等我按下調(diào)時按鍵的剎那,時鐘閃爍顯示了!我好高興,好有成就感,當(dāng)時腦子里面第一個想到的就是如果我開始放棄了,我就不會達(dá)到這樣的效果。真的好開心,那一刻。當(dāng)然,在兩個月當(dāng)中,出現(xiàn)了許許多多的問題,然而,又一次次被解決。真是痛并快樂著!還有,在這兩個月中,我也明白了細(xì)節(jié)很重要這個道理。比如那次寫DS18B20的時候,程序少了個延時,它就是讀不出來溫度數(shù)據(jù),多了點時間,它也讀不出來。真的是一點差錯都不能有。
在這次單片機(jī)設(shè)計與開發(fā)中,最重要的就是做了一個項目,它是大型LED顯示屏的顯示。記得我們是7月22號接了這個項目。當(dāng)然,項目是老師幫我們接的,但是,這個項目完全是由我們自己設(shè)計并開發(fā)的。在做這個項目之前,我們首先要做的就是市場調(diào)查。所以,我們20個人全體出動,分為3個小組,分別去了用戶、公共場所、電子市場這3大市場調(diào)查了一下,整整花了1天時間。最后回來時,大家在一起又商量討論了一下,擬定了一個方案。當(dāng)我們把材料買回來以后,我們的任務(wù)便是測出LED單元板的硬件電路。我們是每一小組發(fā)4塊單元板,大家用萬用表測出其內(nèi)部電路結(jié)構(gòu)并畫出電路圖。令人可喜的是大家竟然用一上午的時間測出了全部電路,進(jìn)展的很快。為了搞好這個項目,我們在正式接手這個顯示屏之前就做了一個點陣顯示。為了能更好的理解里面的數(shù)據(jù)變化,我們從最簡單的做起。先是16*16的漢字固定顯示,然后是16*16的漢字移動顯示,而在移動顯示中,又分為半字移動和列移動。接著,我們開始了32*32的漢字固定顯示,最后是32*32的漢字移動顯示。就這樣,我們一步一步,踏踏實實地完成了整個顯示屏的數(shù)據(jù)屏部分的顯示。其實,在整個數(shù)據(jù)屏部分,程序上并沒有什么難點,它的難點則是在算法上面。你要通過怎樣的算法才能找到你所需要的顯示數(shù)據(jù)才是最關(guān)鍵的。接下來,我們的任務(wù)是把信息屏部分給完成。但是,信息屏部分并沒有我們想象中的那么簡單。可以說,這個信息屏部分是這兩個月中我們遇到最難的部分。信息屏部分要求能顯示時分秒、年月日、星期、溫度等數(shù)據(jù),并且具有自動切換屏幕,按鍵調(diào)整等功能。這樣,單片機(jī)所需要處理的任務(wù)就非常多,CPU出現(xiàn)了嚴(yán)重的資源、時間、空間沖突。所以,后期的單片機(jī)系統(tǒng)開發(fā)難點之處就在于怎樣很好的解決CPU的資源,時間,空間沖突。因為我們是第一次開發(fā)項目,沒有任何經(jīng)驗,所以最后這個信息屏部分我們剛開始是沒有任何思路,不知道怎么辦。接著,老師給我們指點了一些方法,畫出了流程圖。這樣,我們就慢慢摸索,一遍一遍的燒片子試驗。還好,經(jīng)過將近1個多星期的努力,信息屏部分才算完成了。然而,當(dāng)信息屏完成后,我們離交產(chǎn)品時間僅有1天了。那天晚上,我們4個同學(xué)一夜沒洗澡沒睡覺,通宵裝屏調(diào)試,一直忙到第二天早上6點鐘,真的是非常辛苦!
在這兩個月的單片機(jī)設(shè)計與開發(fā)中,也出現(xiàn)了好多問題。很多同學(xué)心理上出現(xiàn)了浮躁、靜不下心來的情況。遇到麻煩,困難時,總是不愿意自己主動去動腦想想。不是有句話叫勤奮至卓越嗎?中國人多啊,每個人都是智商100,誰比誰傻啊。憑什么你比別人強(qiáng)?你能有好的工作、好的收入,你能香車寶馬,醇酒美人?我認(rèn)為,沒有別的辦法,就是勤奮!勤奮學(xué)習(xí),這個道理大家知道,知識就是金錢啊!勤奮工作,想比別人多賺錢,在智商相同的情況下,就是多付出時間干活,再提高工作效率。別人5×8小時工作,你是7×16小時,再提高工作效率一倍,你不就賺了比別人多5倍的錢嗎?就象一壺水,老是小火,燒了半天,也是溫吞水;可是大火一上,一會就開了,就是這個意思。你看《射雕英雄轉(zhuǎn)》中的郭靖,沒有別的本事,就是傻練,有一天開竅了,如有神助。技術(shù)這個東西就是這樣,突破了門檻,就是坦途。需要勤奮勤奮再勤奮。有一天這個日子來了,你就苦盡甘來了。所以嘛,我們很多同學(xué)就是缺乏這種“傻練”的精神。
回顧一下這兩個月的奮斗歷程,有過成功也有過不足。這對我個人來說,是一筆非常好的財富!我深刻地認(rèn)識到,僅僅死學(xué)書本上的理論而不與實際硬件結(jié)合進(jìn)行實踐,這樣的理論沒有用;僅僅在校園里做的簡單硬件實踐如果不與工業(yè)現(xiàn)場應(yīng)用結(jié)合,這樣的實踐是不成熟的。學(xué)校里的簡單實驗是根本不能拿到工業(yè)現(xiàn)場上用的。如果你想開發(fā)單片機(jī)系統(tǒng),必須要真刀實槍的做產(chǎn)品,只有通過實實在在的產(chǎn)品開發(fā),你才能遇到許多實際問題,才能積累開發(fā)經(jīng)驗。這在學(xué)校實驗室做的一些小實驗是根本而且是絕對不可能遇到這些實際問題,當(dāng)然,你也就根本沒有什么單片機(jī)開發(fā)經(jīng)驗之談!在接下來的日子里,我會更加堅定地走上單片機(jī)開發(fā)這條路。
大學(xué)生活是我們?nèi)松凶顚氋F的經(jīng)歷,我們付出了幾年光陰的代價,我們應(yīng)該也必須為此有所收獲。很多同學(xué)在大學(xué)校園里迷失了方向,不知道自己來到這里究竟是為了什么,單純的認(rèn)為畢業(yè)后找個好工作就萬事大吉了,可你們是否想過,沒有真正的本領(lǐng)如何能找到好工作?如何能為這個社會做出貢獻(xiàn)?更現(xiàn)實一些,沒有一份好工作如何買房成家,建立起屬于你自己的幸?鞓返募夷?真本事不是*混日子混出來的,我們身邊有很多機(jī)會可以發(fā)揮自己的能力,實現(xiàn)自己的理想,即使這些機(jī)會不是很明顯地讓我們看見,我們也應(yīng)該努力地去爭取。偶爾的娛樂是可以的,可是成宿在網(wǎng)絡(luò)游戲中揮舞大刀的同學(xué)們,那里可以砍出你的未來嗎?適當(dāng)?shù)倪\(yùn)動也是應(yīng)該的,可整天都泡在籃球場上的同學(xué)們,你覺得你還有希望成為第二個喬丹嗎?哥們義氣固然重要,可三天兩頭為朋友兩肋插刀,你的肋骨夠用嗎?戀愛誠然美好、溫馨,但是你們沒有真正的本領(lǐng)能保證以后過得幸?鞓穯?年輕人應(yīng)該有更高的追求!!!你要為你的將來做好準(zhǔn)備,外面的世界很精彩,外面的世界也很殘酷,你活著的每一天都應(yīng)該好好珍惜!
擴(kuò)展閱讀:學(xué)單片機(jī)從構(gòu)建最小系統(tǒng)開始
編輯:admin 最后修改時間:2019-06-23