根據(jù)合肥學(xué)院人才培養(yǎng)方案中的第五學(xué)期認(rèn)知實(shí)習(xí)教學(xué)大綱的要求,我于2012年7月2日至8月31日在合肥學(xué)院實(shí)習(xí)61天。
一、 實(shí)習(xí)單位簡介
合肥學(xué)院現(xiàn)有19個教學(xué)系部,設(shè)有43個本科專業(yè)(其中5個國家級特色專業(yè),4個卓越工程師教育培養(yǎng)計(jì)劃實(shí)施專業(yè))。學(xué)院是國家首批“卓越工程師教育培養(yǎng)計(jì)劃”實(shí)施高校、首批“服務(wù)國家特殊需求人才培養(yǎng)項(xiàng)目”培養(yǎng)碩士專業(yè)學(xué)位研究生試點(diǎn)工作單位。
我院學(xué)生先后獲得全國大學(xué)生機(jī)械創(chuàng)新設(shè)計(jì)競賽一等獎、全國大學(xué)生 “挑戰(zhàn)杯”世博會專項(xiàng)比賽一等獎、全國大學(xué)生電子設(shè)計(jì)競賽一等獎、“畢昇杯”全國電子創(chuàng)新設(shè)計(jì)競賽本科組一等獎、全國高校電子信息實(shí)踐創(chuàng)新作品評選榮獲本科組全國一等獎和最佳實(shí)用獎單項(xiàng)獎等;獲全國大學(xué)生擊劍錦標(biāo)賽金牌27塊、銀牌17塊、銅牌22塊。近幾年,合肥學(xué)院畢業(yè)生就業(yè)率一直保持在96%以上,其中68%以上畢業(yè)生在合肥工作,80%以上畢業(yè)生在安徽工作,許多畢業(yè)生已成為所在單位的技術(shù)和管理骨干。
為了學(xué)院建設(shè)添磚加瓦,也為完成學(xué)校的第五期認(rèn)知實(shí)習(xí),我選擇了在學(xué)校接受單片機(jī)培訓(xùn)。
二、認(rèn)知實(shí)習(xí)經(jīng)歷
(一)單片機(jī)的背景及應(yīng)用
單片機(jī)是計(jì)算機(jī)技術(shù)發(fā)展史上的一個重要里程碑,標(biāo)志著計(jì)算機(jī)正式形成了通用計(jì)算機(jī)系統(tǒng)和嵌入式系統(tǒng)兩大分支。
單片機(jī)軟硬件結(jié)合、體積小,容易嵌入到各種應(yīng)用系統(tǒng)中。得到廣泛應(yīng)用且其體積小、成本低,嵌入到工業(yè)控制單元、機(jī)器人、智能儀器儀表、汽車電子系統(tǒng)、武器系統(tǒng)、家電系統(tǒng)、辦公自動化設(shè)備、金融電子系統(tǒng)、玩具、個人信息終端及通訊產(chǎn)品中。
它功能齊全,應(yīng)用可靠,抗干擾能力強(qiáng);簡單方便,易于普及。單片機(jī)技術(shù)是易于掌握技術(shù)。應(yīng)用系統(tǒng)設(shè)計(jì)、組裝、調(diào)試已經(jīng)是一件容易的事情,工程技術(shù)人員通過學(xué)習(xí)可很快掌握其應(yīng)用設(shè)計(jì)技術(shù);發(fā)展迅速,前景廣闊。短短幾十年,單片機(jī)經(jīng)過4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)等幾大發(fā)展階段。尤其是集成度高、功能日臻完善得單片機(jī)不斷問世,使單片機(jī)在工業(yè)控制及工業(yè)自動化領(lǐng)域獲得長足發(fā)展和大量應(yīng)用。目前,單片機(jī)內(nèi)部結(jié)構(gòu)愈加完美,片內(nèi)外圍功能部件越來越完善,向更高層次和更大規(guī)模的發(fā)展奠定堅(jiān)實(shí)基礎(chǔ)。單片機(jī)是集成電路技術(shù)與微型計(jì)算機(jī)技術(shù)高速發(fā)展的產(chǎn)物。體積小、價(jià)格低、應(yīng)用方便、穩(wěn)定可靠,因此,給工業(yè)自動化等領(lǐng)域帶來了一場重大革命和技術(shù)進(jìn)步。由于體積小,很容易地嵌入到系統(tǒng)之中,以實(shí)現(xiàn)各種方式的檢測、計(jì)算或控制,這一點(diǎn)一般微機(jī)根本做不到。又由于單片機(jī)本身就是一個微型計(jì)算機(jī),因此只要在單片機(jī)的外部適當(dāng)增加一些必備外圍擴(kuò)展電路,就可以靈活的構(gòu)成各種應(yīng)用系統(tǒng),如工業(yè)自動監(jiān)測監(jiān)視系統(tǒng),數(shù)據(jù)采集系統(tǒng),自動控制系統(tǒng),智能儀器儀表等。
(二)認(rèn)識STC11F32XE單片機(jī)的基本結(jié)構(gòu)和原理
Stc11f32xe單片機(jī)是由一個8位CPU,4KB程序存儲器,一組特殊功能寄存器,4個輸入輸出口(即P0\P1\P2\P3), 一個全雙工串行口,2個16位定時(shí)器/計(jì)數(shù)器,5個中斷源等部分組成,各功能部件通過片內(nèi)單一總線連成一個整體,集成在一塊芯片上。共有40個引腳,采用雙列直插的封裝形式,每個引腳都有其特定功能。
(三)搭建開發(fā)板的各個模塊
學(xué)習(xí)單片機(jī)的前一個星期就是在設(shè)計(jì)好的電路板上用電烙鐵和錫絲把每個電阻、電容、芯片、開關(guān)、插槽、按鍵、數(shù)碼管等部件焊接到板子上。由于要鍛煉動手實(shí)踐能力,剛開始焊接電源模塊時(shí),出現(xiàn)虛焊、短路等各種狀況。由于剛接觸,不太熟練,不能輕車熟路的駕馭烙鐵,但是隨著模塊的慢慢搭建,錫焊技術(shù)已明顯好轉(zhuǎn),就美觀度而言和其他電子設(shè)備上的焊接技術(shù)可以相媲美了。
經(jīng)過一個星期的焊接,單片機(jī)開發(fā)板的每一個模塊已基本完成,經(jīng)過對各個模塊的檢查測試,全部通過后我自己的單片機(jī)開發(fā)板就完成了。
(四)編寫驅(qū)動程序,實(shí)現(xiàn)對各個模塊的操作
(1)、數(shù)碼管顯示
單片機(jī)開發(fā)板搭建完成后,寫的第一個驅(qū)動就是0—F在數(shù)碼管上的顯示。涉及到的兩個芯片分別是:74VHC595D和74LS138,前者實(shí)現(xiàn)對8段數(shù)碼管的段選,后者控制位選,兩者結(jié)合實(shí)現(xiàn)數(shù)碼管對不同數(shù)字的顯示。
單片機(jī)模板用的是共陽極的數(shù)碼管,建立數(shù)組保存數(shù)碼表,然后通過段選和位選對每個數(shù)組元素進(jìn)行顯示。
第一次接觸keil軟件,不僅要學(xué)習(xí)如何創(chuàng)建工程,還要掌握基本的引腳控制。在網(wǎng)上查詢資料和觀看單片機(jī)教程的過程中學(xué)會了如何寫驅(qū)動,經(jīng)過接近兩天的自我學(xué)習(xí),我的第一個驅(qū)動——數(shù)碼管顯示程序出爐了,很高興。然后便是把寫好的程序生成*.hex文件燒到單片機(jī)當(dāng)中,數(shù)碼管便可顯示。
(2)按鍵操作
我們所用的矩陣鍵盤與網(wǎng)上通用的鍵盤略不相同,(我們采用的是3X6,而通用的開發(fā)板多采用4X4鍵盤)但是思想相同。鍵盤的引腳分別用了P0口和P2^5引腳。
首先實(shí)現(xiàn)單擊,即按每一個鍵顯示不同的鍵值。調(diào)試通過后再實(shí)現(xiàn)雙擊和組合鍵。
按鍵的關(guān)鍵是先對行賦值(或?qū)α匈x值),若對行賦值(列賦值),則對列進(jìn)行檢索(行進(jìn)行檢索)。當(dāng)有按鍵被按下,相應(yīng)的列(或行)拉為低電平。
在用數(shù)碼管顯示按鍵的狀態(tài)時(shí),由于595 IO的引腳和按鍵第三行用的都是P2^5引腳,數(shù)碼管顯示有時(shí)出現(xiàn)問題,與程序中間的延時(shí)時(shí)間有關(guān)。不太好控制。
(3)溫度測量
溫度的測量主要用到DS18B20,通過對DS18B20芯片個參數(shù)的控制便可驅(qū)動該芯片,把結(jié)果顯示在數(shù)碼管上。
DS18B20芯片操作包括讀操作、寫操作以及對其的初始化。在讀操作時(shí)把讀的結(jié)果與10相除得溫度的十位,取余數(shù)得溫度的各位(在室溫下實(shí)驗(yàn))。
(4)時(shí)鐘控制
時(shí)鐘的顯示主要是通過對DS1302進(jìn)行控制,可以實(shí)現(xiàn)時(shí)、分、秒、年、月、日的顯示,并且有漏電保護(hù)功能。同樣把時(shí)分秒顯示在數(shù)碼管上,通過按鍵再切換到年月日。
在給DS1302初始化時(shí),如果寫保護(hù)關(guān),則有漏電保護(hù)功能(即斷電重連后,時(shí)鐘會自動記錄斷電的這段時(shí)間,并順著此時(shí)間繼續(xù)計(jì)時(shí)。)
(5)RS485通信
用RS485實(shí)現(xiàn)多機(jī)通信,編寫通信協(xié)議實(shí)現(xiàn)一臺主機(jī)和多臺從機(jī)進(jìn)行通信。在進(jìn)行該模塊設(shè)計(jì)時(shí),由于平臺搭建的有點(diǎn)問題,使得RS485的電壓拉不到工作電壓。然后把問題反映給了我們的兩位指導(dǎo)老師,經(jīng)過他們的一番測試,最終找到問題的所在:是因?yàn)橐粋€電阻的原因。當(dāng)然在觀看老師對電路的檢測中受益匪淺。也對多功能電壓表的應(yīng)用更為了解。
(6)Nokia 5110屏顯示
Nokia 5110屏是48X84的點(diǎn)陣LCD,可以顯示4行漢字。用Nokia 5110屏實(shí)現(xiàn)計(jì)算器、閱讀器、推箱子和足球射門等功能。這四個程序設(shè)計(jì)全是基于Nokia 5110屏和對按鍵的檢測,用按鍵來控制各個功能,并在屏上圖形化顯示。
在對計(jì)算器的設(shè)計(jì)要實(shí)現(xiàn)0——999之間的四則運(yùn)算,尤其是除法運(yùn)算還涉及到浮點(diǎn)數(shù)。閱讀器主要是上下?lián)Q行和左右翻頁,由于要存儲一段文字在寄存器中,文字不能太長,否則會超過程序寄存器的大小而不能進(jìn)行構(gòu)建。
推箱子是通過數(shù)組0和1實(shí)現(xiàn)小人和箱子的走與停。足球射門通過產(chǎn)生隨機(jī)數(shù)來控制球的方向的任意性。
三、總結(jié)
兩個月的暑期認(rèn)知實(shí)習(xí)很快結(jié)束了,總體上來說感覺很充實(shí),沒有白白浪費(fèi)暑假時(shí)光,也充實(shí)了自己的知識儲備,獲益匪淺。
當(dāng)然很感謝龍夏老師和肖連軍老師,他們放棄自己的假期,在酷暑中堅(jiān)持沒兩天一到,為我們解答學(xué)習(xí)過程中的疑問。還有就是系里的支持,為我們提供涼爽的學(xué)習(xí)環(huán)境,會議室配有空調(diào),在學(xué)習(xí)的同時(shí)不用經(jīng)受酷暑的考驗(yàn)。雖然我們的學(xué)習(xí)場所很簡陋:桌椅是我們從5棟教學(xué)樓搬的,電源插座是剛剛搭建的,和在普通教室上自習(xí)的同學(xué)來比我們是幸福的。
實(shí)習(xí)前雖說已經(jīng)大二結(jié)束,但是對我們的專業(yè)嵌入式方向始終不甚明白,縱然專業(yè)導(dǎo)論課已經(jīng)談過,但是總感覺迷茫與空洞。書本上的知識也學(xué)了不少,像電路,數(shù)字邏輯,組成原理等一些課,但是這些課始終是書本知識,得不到實(shí)際的應(yīng)用。通過這次的親自動手設(shè)計(jì)到編寫驅(qū)動設(shè)計(jì)程序,終于切身體會到在開發(fā)產(chǎn)品中要用到哪些知識。依然記得實(shí)訓(xùn)剛開始時(shí),大家都很興奮,因?yàn)槲覀円约簞邮趾附幼约洪_發(fā)板的每一模塊,從電源模塊開始著手?!皶接脮r(shí)方恨少,事要做時(shí)方知難”,一點(diǎn)也不假,感覺焊接應(yīng)該不難,不就把錫點(diǎn)到電器元件引腳上不就行了,可是真正拿著烙鐵去焊時(shí),手是抖動的,烙鐵也不打聽話……淡然這只是剛開始時(shí),經(jīng)過多次的練習(xí)慢慢的得心應(yīng)手。怪不得社會上的公司招聘都提到:有工作經(jīng)驗(yàn)者優(yōu)先。是啊,干過的總比紙上談兵的強(qiáng)的多,公司不需要對你培訓(xùn),可以直接工作給公司帶來效益。
焊接電路板的時(shí)間很短,這只是簡單的技術(shù)活,不需要邏輯上的考慮。接下來就是用我們焊接好的開發(fā)板開始我們的單片機(jī)之旅。由于單片機(jī)課程還沒開,我們不得不從網(wǎng)上查資料,看教程彌補(bǔ)自己基礎(chǔ)知識的匱乏。還記得自己寫的第一個程序,驅(qū)動數(shù)碼管。雖然看著焊接好的開發(fā)板很好看,但是要寫程序點(diǎn)亮它就不那么容易了,第一感覺就是無從下手。老師建議我們從網(wǎng)上看前人的驅(qū)動程序,然后比著寫,由于使用的單片機(jī)不同,電路的設(shè)計(jì)不同,在看網(wǎng)上程序時(shí)必須要明白其原理,否則還是無法借鑒過來,就這樣第一個驅(qū)動程序花費(fèi)了我兩天時(shí)間才把數(shù)碼管點(diǎn)亮。開發(fā)的過程是痛苦的,但是結(jié)果是令人無比興奮的??粗约狐c(diǎn)亮的數(shù)碼管心里特別高興。
接下來的日子就是每天對著電腦編寫程序,然后下載到單片機(jī)中進(jìn)行檢測,查看能否運(yùn)行。有時(shí)花費(fèi)了一天的時(shí)間編寫的一個程序下載單片機(jī)中竟然運(yùn)行不了或者顯示錯誤,心里真的特別失望;有時(shí)為了一個驅(qū)動程序想了一天還是一無所獲,會特別煩躁……但是看到其他同學(xué)都在專心的研究,自己也就安慰自己別灰心,要堅(jiān)持。就想《士兵突擊》中說的一樣不拋棄不放棄,所以自己也不能放棄自己。然后又重新打起精神,投入到學(xué)習(xí)當(dāng)中,就是在這樣的一次次的自我暗示中,在和同學(xué)們一起拼搏一起學(xué)習(xí)。
還記得在進(jìn)行多機(jī)通信時(shí),由于要把所有的單片機(jī)連接在一起,大家不得不默契配合,一起想辦法,編寫協(xié)議“眾人拾柴火焰高”,很快一個主機(jī)程序,從機(jī)程序就出爐了。
經(jīng)過一個暑假的認(rèn)知實(shí)習(xí)我學(xué)到的不僅是知識,還有責(zé)任心、信心、恒心以及團(tuán)隊(duì)合作能力。我想無論是在學(xué)校還是以后踏入社會這些都必不可少。我認(rèn)識到了我所學(xué)知識的重要性。知識猶如人的血液。人缺少了血液,身體就會衰弱,人缺少了知識,頭腦就要枯竭。這次的單片機(jī)培訓(xùn)應(yīng)用到的不僅是單片機(jī)知識,還有以前的課程,所以知識的積累也是非常重要的。這次親身體驗(yàn)讓我有了深刻感觸,這不僅是一次實(shí)踐,還是一次人生經(jīng)歷,是一生寶貴的財(cái)富。在磨練自己的同時(shí)讓自己認(rèn)識了很多,使自己未踏入企業(yè)就已經(jīng)對企業(yè)有了一定的了解。
通過這次的實(shí)習(xí),我對自己的專業(yè)更清楚的認(rèn)知,以前一直不清楚嵌入式的具體應(yīng)用,不知道以后畢業(yè)了該干什么。但通過這次的實(shí)習(xí),我對嵌入式有了更清楚地認(rèn)識,對單片機(jī)有了更清晰的理解。我認(rèn)識到做什么都要有責(zé)任心,只有抱著認(rèn)真負(fù)責(zé)的態(tài)度才能把任務(wù)完成。而程序員更是對耐心和細(xì)心有很高的要求。
在這次的實(shí)習(xí)過程中我學(xué)會了和同學(xué)相處,理解了互幫互助的道理,還有虛心求教的重要性!這對我以后畢業(yè)走向社會、走向企業(yè)打下了堅(jiān)實(shí)的基礎(chǔ)。在這次的實(shí)習(xí)中所增加的社會經(jīng)驗(yàn)才是我最寶貴的收獲!