單片機牛人是怎樣煉成的
第六章 升級
本文引用地址:http://dyxdggzs.com/article/221686.htm當時(shí)在論壇上,網(wǎng)上看到有人做USB接口的,覺(jué)得很牛啊,于是自己也想做,但一直就是沒(méi)資料,也不知道如何學(xué)。這時(shí)候好象又回到了當初認識單片機的時(shí)候,好象一切都很新鮮,全部都不懂一樣。感到無(wú)從下手。2003年一月,是我大學(xué)4年級第一學(xué)期末,我們開(kāi)始要畢業(yè)設計選題了,當時(shí)有兩個(gè)最難的題目USB接口設計和藍牙協(xié)議通信(我的是普通學(xué)校,這樣的題目已經(jīng)是最難的了,嗚。。)我選了USB題目(順便提一下,鄰班的那家伙,就是我現在的室友,選了藍牙的)。其實(shí)我選USB的時(shí)候對USB還是完全沒(méi)有了解的,有時(shí)候想當時(shí)真的是勇字當胸了,因為做不出來(lái)很可能畢業(yè)不了的。但有時(shí)候一些技術(shù)的研究當成為了壓力和任務(wù)的時(shí)候,進(jìn)步反而快。
于是,我的USB就是這樣起步的了。。。有了任務(wù)在身,就不象以前那么地邊玩邊實(shí)驗了,我放下了很多打算,開(kāi)始專(zhuān)心研究起USB來(lái),說(shuō)是專(zhuān)心,但什么底子都沒(méi)有。做個(gè)P呢!開(kāi)始是上驅動(dòng)開(kāi)發(fā)網(wǎng)的USB專(zhuān)欄的,但一看就傻了眼,哪里除了牛B的蝦,就是菜鳥(niǎo)一群,帖子要么看不懂,看懂的都對我沒(méi)有幫助。不過(guò)上那里我也獲得了信息,就是用D12做USB比較普遍,于是設計就定位在D12了。正好這個(gè)時(shí)候周立功哪里出了本USB D12編程的書(shū),雖然我對周X沒(méi)有什么好感,但無(wú)論那本書(shū)是不是真正是他公司出的,在當時(shí)的環(huán)境下,這本書(shū)對于我是有著(zhù)劃時(shí)代的意義的(夸張了),當時(shí)是馬上到廣州買(mǎi)的,要價(jià)35元,還是爛紙油印版,不過(guò)學(xué)懂了就不說(shuō)虧了;再要一片D12,20元;之后再買(mǎi)本USB協(xié)議的書(shū),再從網(wǎng)上下了USB的相關(guān)東西,好了,就這么多,2本書(shū),一個(gè)芯片,放下我的實(shí)驗和一點(diǎn)點(diǎn)的激情和幻想,靜下心來(lái),我開(kāi)始了閉門(mén)造車(chē)。那時(shí)候是2003年的農歷新年啊,我的快樂(lè )的新年,基本就在閉門(mén)中度過(guò),幸好還有拜年,討了點(diǎn)紅包,不然真的窮死了。 說(shuō)起這個(gè)USB,他的確和我之前做的小實(shí)驗有天淵之別,之前做的東西只是了解一下原理, 動(dòng)一動(dòng)腦然后就可以寫(xiě)程序了,但這個(gè)是涉及協(xié)議,當時(shí)我還是第一次接觸協(xié)議類(lèi)的東 西,沒(méi)有什么動(dòng)腦的空間了,只能老實(shí)地看,學(xué)。記得魯迅在寫(xiě)文章救國家之前呆在屋子里抄了一年的碑文,那一年的工夫練就了魯迅的堅韌。之前經(jīng)常焊萬(wàn)能板飛線(xiàn)的實(shí)驗板,做多了,除了做出點(diǎn)板子來(lái)玩,還讓我學(xué)會(huì )了堅韌和耐性(不知道多少人試過(guò)焊復雜線(xiàn)路的萬(wàn)能板?別以為簡(jiǎn)單,很煩的呢,要很有耐性,萬(wàn)一錯一跟線(xiàn),修改是比較痛苦的)有了這么一點(diǎn)耐性一個(gè)月的閉關(guān)練功,某天我突然領(lǐng)悟,
(只見(jiàn)關(guān)內石門(mén)頓開(kāi),一人影身披彩云,飛星天外,此刻山搖地動(dòng)——白菜出山啦~~·· #%#—%—)
臺下眾大蝦:-_-#!..
當時(shí)是看懂了,其實(shí)是開(kāi)始看懂了而已,明白到D12每個(gè)寄存器的意義,USB那些反反復復的數據交換的一點(diǎn)意義,說(shuō)實(shí)在的,板子沒(méi)做,程序沒(méi)開(kāi)始寫(xiě),我只是放下所有東西看了 一個(gè)月的書(shū)。。。呵呵
臺下眾大蝦: -_-####!!!!.....
離開(kāi)2003寒假結束還有一個(gè)星期,我盡情地玩去了~~ 于是是開(kāi)學(xué),找指導老師談畢業(yè)設計等等,我的指導老師是個(gè)博士豬,為什么叫博士豬? 因為他有博士的證書(shū)和頭腦,但象豬般懶惰,所以叫博士豬,聽(tīng)說(shuō)他很懶,講完課了,就 玩去了,不過(guò)這家伙講課技術(shù)不簡(jiǎn)單,為什么?因為他講的東西不簡(jiǎn)單,但我們聽(tīng)起來(lái)簡(jiǎn) 單——牛也!!以下簡(jiǎn)稱(chēng)他博豬,博豬很有錢(qián),因為偶然不偷懶的時(shí)候就出去接點(diǎn)活干
干,一般一兩個(gè)星期就干完,然后就拿個(gè)幾萬(wàn)到幾十萬(wàn),之后又開(kāi)始豬的生活,到快沒(méi)錢(qián) 的時(shí)候,又會(huì )去干活。跟博豬的畢業(yè)設計不錯,因為他不懂USB,于是就沒(méi)有什么要求,我 想怎么發(fā)揮就怎么發(fā)揮。博豬對通信和DSP的算法等東西非常牛牛牛!!!讓我感到什么是 天外有天,豬外有豬!不過(guò)我最后也沒(méi)有走通信的路。
博豬的牛沒(méi)有帶給我什么,只是送我4片D12,然后說(shuō),拿去做吧。我暗喜,4片啊,發(fā)達了:)有兩片我做感光板子把他們焊成雙列直插,一片現在焊到老丁的板子上,自己還留了2片。于是當然就是做板調試啦,搞USB弄了不少時(shí)間呢。當時(shí)其實(shí)想花錢(qián)買(mǎi)周立功的USB板子的,不過(guò)要價(jià)450大元,廣東話(huà)說(shuō):好過(guò)去搶!于是沒(méi)買(mǎi),但到廣州的時(shí)候死死地盯著(zhù)柜臺的哪個(gè)450元看了半小時(shí),2個(gè)LED,2個(gè)鍵,D12喚醒用了片74XX,D12是總線(xiàn)方式連接。。于是我就做了塊類(lèi)似的板子出來(lái)了,而且還多了個(gè)串口,比周立功的450元強!!不過(guò)做的時(shí)候不小心把串口的收發(fā)腳調亂了。。(主要是選封裝的時(shí)候搞錯了,PROTEL不過(guò)關(guān)啊,后來(lái)苦練了)總的來(lái)說(shuō)板子比較難看。
之后就是寫(xiě)程序。不過(guò)程序還沒(méi)怎么寫(xiě),之前投簡(jiǎn)歷的公司要求我過(guò)去實(shí)習一個(gè)月了,于是那些早上12點(diǎn)起來(lái),晚上2點(diǎn)睡覺(jué)的生活沒(méi)有了。我得去上班了。上班實(shí)習,其實(shí)就是沒(méi)事情干,當時(shí)有個(gè)工程師跳走,留下一個(gè)USB接口的項目沒(méi)人做也,于是我又勇字掛胸前,對主管說(shuō):我來(lái)做¥……¥#……—%主管瞪起金魚(yú)眼看我,好象說(shuō):你小子!!!。。。 我不做,也沒(méi)人手做,我不做,我又沒(méi)事情做,所以,USB我做。那個(gè)USB可不是D12,他是三菱的16位單片機自帶的USB接口(我討厭三菱,各位要多抵制日貨),困難比較大,幸好他有所有的DEMO程序,呵呵,有程序在手,簡(jiǎn)單啦:)那次是我第一次接觸51以外的單片機,而且還是16位的,算是升級了。而且那個(gè)項目是跑UCOSII的,當時(shí)還沒(méi)有2.51出來(lái),那些工程師手拿的是橙黃色的那本UCOS書(shū),好象是2.01版本左右吧,不記得了??傊揖晚槺氵B帶UCOS也學(xué)了。
實(shí)習時(shí)間一個(gè)月,我收獲不少:1。為他們的項目寫(xiě)了一個(gè)VC界面,用來(lái)做USB的上位機通信,2。修改了三菱的單片機DEMO程序(C的)讓他能基本運行來(lái)收發(fā)數據,3。修正了三菱USB技術(shù)手冊上的一個(gè)重大錯誤(那次后我知道日本芯片的DATASHEET經(jīng)常出問(wèn)題的,好象有意坑我們中國人)4。讓我知道這個(gè)世界上有UCOS這樣東西,正打算買(mǎi)書(shū)回來(lái)看5。勞累過(guò)度,住了一天醫院。
走的時(shí)候主管說(shuō)我行:)不過(guò)我走后,做的東西就沒(méi)有用了,他們中沒(méi)有人會(huì )VC,我寫(xiě)的東西是白寫(xiě),后來(lái)哪個(gè)項目泡了,單片機部分的程序也就沒(méi)了。再后來(lái),我的電腦出問(wèn)題 了,我不小心把自己硬盤(pán)干掉了,第一份工作的成果完全沒(méi)有了。一點(diǎn)底子都沒(méi)有留。連 帶一些重要的資料也沒(méi)有了,應該有幾位老哥知道我這件事情的吧。還好,畢業(yè)設計我刻 了光盤(pán),不然。。。這次意外說(shuō)明一個(gè)問(wèn)題,我并不是別人想象中那么幸運的。
由于電腦的問(wèn)題,拖了我好幾個(gè)星期,幸好堅持之前下班的時(shí)候晚上一定要動(dòng)動(dòng)腦做點(diǎn)東西,不然真的趕死!最后USB畢業(yè)設計還是馬馬乎乎干完了(主要是PC端的程序是拿非利譜網(wǎng)上的,和我的51+USB配合起來(lái)不是很好,這個(gè)問(wèn)題我還得有時(shí)間再解決,然后把整個(gè)系統完善一下)
在這里有個(gè)小插曲的:
在我下載了非利譜的USB資料后,看了一兩天的哪個(gè)上位機VC程序,看懂了點(diǎn),于是決定動(dòng)手改改,發(fā)現改動(dòng)起來(lái)其實(shí)很簡(jiǎn)單。于是沉迷了幾天去研究和看懂那個(gè)程序。在畢業(yè)答辯的前一天,我突然想改進(jìn)我的USB畢業(yè)設計,就是在下位機的板子上添一塊128*64的LCD(我以前一直用來(lái)玩的那塊),然后上位機的VC程序構造一個(gè)字符輸入欄,在PC上輸入漢字,然后在PC上轉換出他的點(diǎn)陣(16*16的)再發(fā)到我的USB板子上,并在LCD上顯示出哪個(gè)漢字來(lái)。但離開(kāi)畢業(yè)答辯還只有一天,我當晚就挑燈夜戰。先用跨線(xiàn)的方式把板子上51的多余腳引出來(lái),接到LCD上(其實(shí)剛好夠,呵呵)這樣不用總線(xiàn)方式來(lái)驅動(dòng)LCD,確保我即使到最后調試失敗了,也不會(huì )影響我原先的USB部分(我還得畢業(yè),輸不起!!)焊好電路了,就要改動(dòng)VC部分,因為PC負責把輸入的漢字轉換內碼,然后在一個(gè)點(diǎn)陣文件中提取點(diǎn)陣(點(diǎn)陣文件是16*16的,可以用網(wǎng)上的很多點(diǎn)陣提取軟件生成),所以涉及到文件的讀寫(xiě),當時(shí)是用API來(lái)讀寫(xiě)文件的:)提取點(diǎn)陣了,就要通過(guò)USB傳到板子上,再通過(guò)單片機在LCD上重顯。時(shí)間只有一天,我是不停的想不停的寫(xiě)了,當時(shí)我的VC還是不怎么樣的,所以用了不少時(shí)間。最大問(wèn)題是我沒(méi)有仿真器!!還是用燒片子,插片子的方法調啊。我記得一
LCD顯示屏相關(guān)文章:lcd顯示屏原理
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
lcd相關(guān)文章:lcd原理
評論