




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)設(shè)計(jì)課題:基于51單片機(jī)電子鎖設(shè)計(jì)學(xué)生姓名:學(xué)號(hào):專業(yè):電子信息工程班級(jí):院(系):機(jī)械與電子信息工程學(xué)院指導(dǎo)教師:職稱:二○年月日畢業(yè)設(shè)計(jì)真實(shí)性承諾及指導(dǎo)教師聲明學(xué)生畢業(yè)設(shè)計(jì)真實(shí)性承諾本人鄭重聲明:所提交的畢業(yè)設(shè)計(jì)是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,內(nèi)容真實(shí)可靠,不存在抄襲、造假等學(xué)術(shù)不端行為。除文中已經(jīng)注明引用的內(nèi)容外,本設(shè)計(jì)不含其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過(guò)的研究成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。如被發(fā)現(xiàn)設(shè)計(jì)中存在抄襲、造假等學(xué)術(shù)不端行為,本人愿承擔(dān)相應(yīng)的法律責(zé)任和一切后果。學(xué)生(簽名):顏強(qiáng)日期:指導(dǎo)教師關(guān)于學(xué)生畢業(yè)設(shè)計(jì)真實(shí)性審核的聲明本人鄭重聲明:已經(jīng)對(duì)學(xué)生畢業(yè)設(shè)計(jì)所涉及的內(nèi)容進(jìn)行嚴(yán)格審核,確定其成果均由學(xué)生在本人指導(dǎo)下取得,對(duì)他人論文及成果的引用已經(jīng)明確注明,不存在抄襲等學(xué)術(shù)不端行為。指導(dǎo)教師(簽名):日期:注:此聲明由指導(dǎo)教師和學(xué)生本人親筆簽名。目錄摘要………………2第一章方案論證與選擇………31.1驅(qū)動(dòng)模塊………………31.2黑線檢測(cè)模塊……………41.3碼盤測(cè)距模塊……………41.4金屬檢測(cè)模塊……………51.5光源追蹤檢測(cè)模塊………51.6超聲波模塊……………51.7聲光提示模塊……………61.8.系統(tǒng)供電單元電路……………………6第二章系統(tǒng)理論分析與計(jì)算…………………72.1總體設(shè)計(jì)方案…………72.2電機(jī)PWM驅(qū)動(dòng)模塊的設(shè)計(jì)與實(shí)現(xiàn)……72.3單片機(jī)控制電路………82.4測(cè)距模塊設(shè)計(jì)…………92.5黑線循跡電路設(shè)計(jì)……………………102.6光源檢測(cè)電路的設(shè)計(jì)…………………11第三章軟件設(shè)計(jì)………………123.1系統(tǒng)流程圖……………133.2軟件程序設(shè)計(jì)部分源程序……………14第四章系統(tǒng)測(cè)試………………204.1硬件調(diào)試……………20第五章結(jié)論…………………21參考文獻(xiàn)………………………22附錄……………23附錄1……………23附錄2……………23附錄3……………23簡(jiǎn)易智能電動(dòng)車摘要本電路系統(tǒng)分為檢測(cè)、控制、驅(qū)動(dòng)三個(gè)模塊。首先利用紅外傳感器對(duì)地面信號(hào)進(jìn)行檢測(cè),然后送給控制模塊進(jìn)行實(shí)時(shí)控制,輸出相應(yīng)信號(hào)給驅(qū)動(dòng)電機(jī)控制小車的運(yùn)動(dòng)。該系統(tǒng)以STC12C5A60S2為主控核心,運(yùn)用AD轉(zhuǎn)換將光敏二極管采集的信號(hào)轉(zhuǎn)換為模擬值進(jìn)行控制,并且采用LCD12864顯示和語(yǔ)音播報(bào),系統(tǒng)測(cè)試性能優(yōu)異、穩(wěn)定。關(guān)鍵詞:PWM紅外檢測(cè)碼盤超聲波STC12C5A60S2光源追蹤聲光提示模塊金屬檢測(cè)AbstractThiscircuitsystemisdividedintotestandcontrol,drivethreemodules.First,theinfraredsensortothegroundsignaldetection,Thensenttocontrolmoduleforreal-timecontrol,Theoutputsignalcorrespondingtothedrivemotorcontrolthemovementofthecar.ThissystemtoSTC12C5A60S2formastercore.UsingtheADconversionwillphotosensitivediodeacquisitionsignalsareconvertedtoanalogvaluetocontrol.AndusingLCD12864displayandvoicebroadcast.Keywords:PWMInfrareddetectionCodediscUltrasonicSTC12C5A60S2LightsourcetrackingAcousto-opticpromptmoduleMetaldetection一:方案論證與選擇根據(jù)賽題要求的功能及指標(biāo),我們將整個(gè)系統(tǒng)劃分為七個(gè)基本模塊,如圖1-1所示。為了使各個(gè)模塊具有較好的性能,分別提出以下不同設(shè)計(jì)方案:MCUMCU聲光提示模塊黑線檢測(cè)模塊驅(qū)動(dòng)模塊碼盤測(cè)距模塊金屬檢測(cè)模塊超聲波模塊光源追蹤模塊圖1-11.1驅(qū)動(dòng)模塊H橋驅(qū)動(dòng)電路方案一:采用L298N直流電機(jī)驅(qū)動(dòng)模塊,一個(gè)芯片里面就集成了2路的H橋電路,還帶PWM控制和電流采集。通過(guò)單片機(jī)可以精確調(diào)整電動(dòng)機(jī)的轉(zhuǎn)速,達(dá)到對(duì)電機(jī)速度的控制。這個(gè)方案的優(yōu)點(diǎn)是控制比較簡(jiǎn)單、購(gòu)買方便。方案二:采用數(shù)控電位器X9313集合NE555多諧振蕩器輸出PWM信號(hào)。通過(guò)單片機(jī)控制數(shù)控電位器來(lái)調(diào)整NE555多諧振蕩器的輸出方波的占空比,達(dá)到對(duì)電機(jī)速度的控制。這個(gè)方案的優(yōu)點(diǎn)是控制比較方便、軟件資源消耗少。方案一中芯片簡(jiǎn)單便于控制,控制精度高。操作簡(jiǎn)單。方案二的硬件電路較為復(fù)雜,且驅(qū)動(dòng)能力不及方案一,功耗大。綜合考慮兩種方案的優(yōu)缺點(diǎn),我們選擇方案一實(shí)現(xiàn)本系統(tǒng)。1.2黑線檢測(cè)模塊圖3.3黑線檢測(cè)模塊方案一:使用發(fā)光二極管和光敏二極管。此方案缺點(diǎn)在于環(huán)境的其他光源對(duì)光敏二極管的工作產(chǎn)生很大的干擾,一旦外界光強(qiáng)改變,很可能造成誤判和漏判,即使采用超高亮發(fā)光管可以降低一定的干擾,但這又增加額外的功耗。 方案二:反射式紅外發(fā)射—接收管。此方案可以降低可見(jiàn)光的干擾,靈敏度高,同時(shí)其尺寸小、質(zhì)量輕、價(jià)格也低廉。外圍電路簡(jiǎn)單,安裝起來(lái)方便,電源要求不高,用它作為近距離傳感器是最理想的。方案三:利用激光。此方案雖然抗干擾性強(qiáng)、可靠性高,但其缺點(diǎn)在于體積大、功耗大、價(jià)格高。一般用在要求場(chǎng)合非常高的場(chǎng)合,本系統(tǒng)采用方案二已經(jīng)能夠勝任,無(wú)須采用此方案。1.3碼盤測(cè)距模塊方案一:采用霍爾器件。該器件內(nèi)部由三片霍爾金屬板組成,當(dāng)磁鋼正對(duì)金屬片時(shí),由于霍爾效應(yīng),金屬板發(fā)生橫向?qū)?,因此可在電機(jī)軸上安裝固定有磁片的圓片,而將霍爾器件固定在距圓片上方1cm3的范圍,通過(guò)對(duì)脈沖的記數(shù)實(shí)現(xiàn)對(duì)速度的檢測(cè)。方案二:采用碼盤。由于該器件是溝槽結(jié)構(gòu),可以將其置于固定軸上,再在電機(jī)軸上安裝圓片,均勻地固定多個(gè)遮光片,讓其恰好通過(guò)溝槽,產(chǎn)生一個(gè)個(gè)脈沖。通過(guò)脈沖的計(jì)數(shù)實(shí)現(xiàn)對(duì)速度的檢測(cè)。兩種方案都是可行性的轉(zhuǎn)速檢測(cè)方案。由于霍爾元件互換性差,信號(hào)隨溫度變化,非線性輸出,而且采用碼盤較容易獲取較為精確的數(shù)值。故采用方案二。1.4金屬檢測(cè)模塊該系統(tǒng)采用LJ183A-8-Z/BX。它由振蕩器和整形放大器組成振蕩器起振后在開(kāi)關(guān)的感應(yīng)頭上產(chǎn)生一個(gè)交變的磁場(chǎng),當(dāng)金屬體接近感應(yīng)區(qū)時(shí),在金屬體內(nèi)產(chǎn)生了渦流,從而吸收了振蕩的能量,使振蕩幅度減弱以至于停振使接近開(kāi)關(guān)達(dá)到反轉(zhuǎn)的目的,由整形放大器換成二進(jìn)制的開(kāi)關(guān)電信號(hào),從而達(dá)到檢測(cè)的目的。它無(wú)接觸、無(wú)壓力、無(wú)火花,迅速地發(fā)出檢測(cè)信號(hào),而且靈敏度高,頻率響應(yīng)快,重復(fù)定位精度高,舜變過(guò)程短,輸出功率大,抗干擾性能好,工作穩(wěn)定性可靠,使用壽命長(zhǎng)等優(yōu)點(diǎn)。1.5光源追蹤檢測(cè)模塊方案一:光敏電阻器又叫光感電阻,是利用半導(dǎo)體的光電效應(yīng)制成的一種電阻值隨入射光的強(qiáng)弱而改變的電阻器;入射光強(qiáng),電阻減小,入射光弱,電阻增大。光敏電阻器一般用于光的測(cè)量、光的控制和光電轉(zhuǎn)換。方案二:利用光敏二極管對(duì)光源變換的敏感反映,檢測(cè)外部光源。當(dāng)有光照射時(shí),光敏二極管呈強(qiáng)電阻,經(jīng)比較器輸出一個(gè)高電平,反之則輸出低電平。我們可以再外接一個(gè)LED作為檢測(cè)指示燈,則可以明顯觀察到這個(gè)變化。即有光照時(shí)LED亮,無(wú)時(shí)則滅。由于光敏電阻檢測(cè)范圍太廣,而本系統(tǒng)有三個(gè)光敏器件,分別在不同方向檢測(cè)光源信號(hào)。而方案一檢測(cè)范圍太大,不利于三個(gè)器件分別檢測(cè)。方案二檢測(cè)方便,感應(yīng)靈敏。故選擇方案二。1.6超聲波模塊本系統(tǒng)采用了HC-SR04超聲波測(cè)距模塊,該模塊可以提供2cm-400cm的非接觸式距離感測(cè)功能,測(cè)距精度高達(dá)3mm;并且該模塊包含了超聲波發(fā)射器、接收器和控制電路。本模塊使用方法簡(jiǎn)單,一個(gè)控制口發(fā)射一個(gè)10us以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開(kāi)定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,方可算出距離.如此不斷的周期測(cè),即可以達(dá)到你移動(dòng)測(cè)量的值。7.聲光提示模塊圖4.4蜂鳴器本系統(tǒng)采用了蜂鳴器和發(fā)光二極管作為聲光提示。本實(shí)驗(yàn)共有3種模式。在各個(gè)模式下分別要處理不同的情況。例如在模式一下檢測(cè)到金屬時(shí),聲光模塊中蜂鳴器會(huì)持續(xù)鳴叫5s鐘,發(fā)光二極管也會(huì)不停地閃爍5s鐘。1.8系統(tǒng)供電單元電路智能車控制系統(tǒng)中,芯片需要提供5V的工作電壓,而電機(jī)所需的電壓為12V,本設(shè)計(jì)中用到的是12V的電源供電,然后通過(guò)三端穩(wěn)壓器LM7805將電壓變換為5V電壓供給電路系統(tǒng)。電源系統(tǒng)的電路圖如圖5.5所示。圖5.5穩(wěn)壓電源提供電路二:系統(tǒng)理論分析與計(jì)算2.1總體設(shè)計(jì)方案智能小車采用前輪驅(qū)動(dòng),前輪左右兩邊各用一個(gè)電機(jī)驅(qū)動(dòng),調(diào)制兩個(gè)輪子的轉(zhuǎn)速?gòu)亩_(dá)到控制轉(zhuǎn)向的目的,后輪是萬(wàn)象輪,起支撐的作用。將四個(gè)紅外線光電傳感器裝在車體的底盤前端和底盤中間,小車根據(jù)傳感器檢測(cè)到的情況執(zhí)行。避障的原理是在車頭裝一個(gè)超聲波傳感器,通過(guò)軟件可以設(shè)置檢測(cè)的距離,當(dāng)傳感器檢測(cè)到有障礙物時(shí),小車做出相應(yīng)的反應(yīng)。小車距離的檢測(cè)利用的是紅外線,速度檢測(cè)的傳感器用的是對(duì)射式,把碼盤裝在電機(jī)的軸上,碼盤隨電機(jī)一起轉(zhuǎn)動(dòng)。通過(guò)測(cè)定碼盤在一定周期內(nèi)轉(zhuǎn)過(guò)的圈數(shù)和相應(yīng)的參數(shù),可以獲取實(shí)際的路程值。電機(jī)控制要使用PWM波形,而AT12C5A60S2單片機(jī)本身就能產(chǎn)生PWM,所以通過(guò)定時(shí)器設(shè)定頻率,通過(guò)軟件調(diào)節(jié)PWM。整體原理圖如下圖2-1整體原理電路圖2.2電機(jī)PWM驅(qū)動(dòng)模塊的設(shè)計(jì)與實(shí)現(xiàn)由于本實(shí)驗(yàn)采用的是STC12C5A60S2芯片,內(nèi)部就含有pwm調(diào)制,而本實(shí)驗(yàn)用到的電機(jī)驅(qū)動(dòng)的所需的pwm信號(hào)就是由該芯片產(chǎn)生的。首先,電機(jī)的控制采用脈沖寬度調(diào)制技術(shù)(PWM),單片機(jī)輸出一個(gè)頻率不變的方波,利用調(diào)制它的脈寬來(lái)改變電機(jī)轉(zhuǎn)動(dòng)的速度,其輸出電壓就是方波的平均值,當(dāng)輸出為低電平時(shí),電機(jī)停轉(zhuǎn),當(dāng)輸出高電平時(shí),電機(jī)最高速。利用定時(shí)器1的外部中斷才生3.2khz的方波頻率。如圖2.2,該圖為L(zhǎng)298N電機(jī)驅(qū)動(dòng)圖,當(dāng)INT1、INT3為高電平時(shí),INT2、INT4為低電平時(shí),左邊電機(jī)和右邊電機(jī)均正轉(zhuǎn),反之,反轉(zhuǎn)。ENA、ENB分別為左右電機(jī)的使能端,高電平時(shí)電機(jī)工作。此外,ENA、ENB由單片機(jī)pwm輸出P1.3、P1.4構(gòu)成的。圖2.2電機(jī)驅(qū)動(dòng)電路2.3單片機(jī)控制電路單片機(jī)是控制單元的核心。起著控制小車所有運(yùn)行狀態(tài)的作用。單片機(jī)控制模塊使用的是宏晶科技公司生產(chǎn)的STC12C5A60S2,使用該芯片很容易實(shí)現(xiàn)對(duì)其他模塊的控制。通過(guò)對(duì)單片機(jī)寫入程序,可以方便的用軟件來(lái)控制整個(gè)過(guò)程.控制部分如圖2-3所示。STC12C5A60S2單片機(jī)介紹:STC12C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。片上集成了1280字節(jié)RAM,有EEPROM功能,看門狗定時(shí)器,內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。其引腳排列如圖2-4所示圖2-3片機(jī)最小控制系統(tǒng)圖2-4STC12C5A60S2的引腳圖2.4測(cè)距模塊設(shè)計(jì)圖2-5測(cè)距碼盤示例圖通過(guò)開(kāi)啟一個(gè)外部中斷,用于記錄轉(zhuǎn)速傳感器發(fā)出的n個(gè)脈沖,我們首先記錄了車輪轉(zhuǎn)動(dòng)一圈傳感器發(fā)出的脈沖m個(gè),碼盤共有6個(gè)格。車輪的直徑為d。由此可計(jì)算出每檢測(cè)到一個(gè)格所走的距離s。2.5黑線循跡電路設(shè)計(jì)該智能小車在鋪有約兩厘米寬黑紙的路面行駛,路面可看作白色。由于黑紙和白色路面對(duì)光線的反射系數(shù)不同,可以根據(jù)接收的反射光的強(qiáng)弱來(lái)判斷道路——黑紙軌跡。本設(shè)計(jì)利用紅外線在不同顏色的物表面具有不同的反射性質(zhì)的特點(diǎn)。在小車行駛過(guò)程中不斷地向地面發(fā)射紅外光,當(dāng)紅外線遇到白色地面時(shí)發(fā)生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑紙則紅外光被吸收,小車上的接收管接收不到信號(hào)??紤]到集成紅外探測(cè)頭體積小、簡(jiǎn)便易用,性能可靠。所以本設(shè)計(jì)選擇了反射式紅外線光電傳感器作為紅外光的發(fā)射和接受器件,一般檢測(cè)距離可達(dá)4~10cm,其內(nèi)部結(jié)構(gòu)和外接電路均較為簡(jiǎn)單.鑒于小車底部聚地面的距離不超過(guò)五厘米,故用紅外光電傳感器足以滿足要求。其內(nèi)部結(jié)構(gòu)和外接電路均較為簡(jiǎn)單,檢測(cè)電路如圖4所示。圖2-6黑線檢測(cè)電路2.6光源檢測(cè)電路的設(shè)計(jì)光源檢測(cè)使用常見(jiàn)的光敏器件,光敏二極管。光敏電阻器(photovaristor)又叫光感電阻,是利用半導(dǎo)體的光電效應(yīng)制成的一種電阻值隨入射光的強(qiáng)弱而改變的電阻器;入射光強(qiáng),電阻減小,入射光弱,電阻增大。光敏電阻器一般用于光的測(cè)量、光的控制和光電轉(zhuǎn)換(將光的變化轉(zhuǎn)換為電的變化)。這里我們就可以利用光敏二極管對(duì)光源變換的敏感反映,檢測(cè)外部光源。當(dāng)有光照射時(shí),光敏二極管呈強(qiáng)電阻,經(jīng)比較器輸出一個(gè)高電平,反之則輸出低電平。我們可以再外接一個(gè)LED作為檢測(cè)指示燈,則可以明顯觀察到這個(gè)變化。即有光照時(shí)LED亮,無(wú)時(shí)則滅。光源小車光源小車圖2-7光源檢測(cè)電路圖2-8光敏二極管排布三:軟件設(shè)計(jì)3.1系統(tǒng)控制流程啟動(dòng)初始化程序I/O口啟動(dòng)初始化程序I/O口掃描I/O是否有變化是進(jìn)入程序判斷,輸出相應(yīng)信號(hào)控制電機(jī)否終止開(kāi)始單片機(jī)初始化檢測(cè)有無(wú)黑線YN終止前進(jìn)方向調(diào)整檢測(cè)有無(wú)金屬Y計(jì)數(shù)N避障檢測(cè)光源檢測(cè)圖3-1控制系統(tǒng)的流程圖
是采集尋跡模塊數(shù)據(jù)是采集尋跡模塊數(shù)據(jù)左側(cè)壓線保持原有轉(zhuǎn)速前進(jìn)結(jié)束右轉(zhuǎn)采集光敏傳感器信號(hào)開(kāi)始右側(cè)壓線都不壓線左轉(zhuǎn)尋線模塊是
是
否
否
否
開(kāi)始判斷光源位置無(wú)光源有光源前進(jìn)左轉(zhuǎn)右轉(zhuǎn)結(jié)束前
左
右
圖3-2尋跡模塊圖3-3光源追蹤模塊3.2軟件程序設(shè)計(jì)部分源程序本程序以c語(yǔ)言的形式編輯,結(jié)合硬件實(shí)現(xiàn)小車整個(gè)系統(tǒng)功能。小車以自動(dòng)尋跡為主體,不斷檢測(cè)黑線信號(hào),實(shí)時(shí)進(jìn)行調(diào)整,并且加入了超聲波避障模塊。此程序主要以查詢方式實(shí)現(xiàn),同時(shí)也結(jié)合了語(yǔ)音控制的中斷方式,主體程序如下:/****03年的賽題,車子需要裝有三個(gè)黑線傳感器,兩個(gè)光源傳感器,一個(gè)金屬探測(cè)傳感器****//****首先現(xiàn)在直線區(qū)進(jìn)行直線運(yùn)動(dòng),在經(jīng)過(guò)2.3m后開(kāi)始沿黑線進(jìn)行彎道行走****//****其要求做到可產(chǎn)生聲光信號(hào),通過(guò)led小燈與揚(yáng)聲器完成****//****運(yùn)動(dòng)區(qū)域現(xiàn)今分為直線區(qū)0、彎道區(qū)1、障礙區(qū)2、光源區(qū)3****/#include<STC12C5A.h>#include<stdio.h>#include"PWM.h"#include"JN12864.h"#include"metal_detect.h"#include"motoruse.h"#include"ultrasonic.h"#include"AD.h"#defineucharunsignedchar#defineuintunsignedintsbitinfrared=P3^2;/************各類計(jì)數(shù)變量************/ucharnumber=0;//用于記錄薄鐵片的數(shù)量bitj;charstatus=0;uintcounter; //與計(jì)時(shí)相關(guān)ucharDIS1[16]; //用于顯示的變量floattime,Venue,location[3]; //時(shí)間,距離,位置bitabc;floatrsl,rsm,rsr;//voidmotor(ucharindex,intspeed);voidcompare(){if(rsl<rsm&&rsl<rsr) //左輪的光感最強(qiáng) { motor(1,70);motor(2,248); }if(rsm<rsl&&rsm<rsr) //中輪的光感最強(qiáng) { motor(1,256);motor(2,248); }if(rsr<rsm&&rsr<rsl) //右輪的光感最強(qiáng) { motor(1,256);motor(2,70); }if(rsl<1.0||rsm<1.0||rsr<1.0) { CR=0; CCAPM0=CCAPM1=0; en1=0; en2=0;while(1){EA=0;} } }/*************************初始化函數(shù)***************************/voidinitial(){ EX0=1; ET1=1; IT0=1; EA=1;//用于啟動(dòng)外部中斷 TMOD|=0x12;//八位自動(dòng)重裝的 TH0=0xff; //產(chǎn)生的中斷頻率TR0=1;TR1=1; PWM_clock(2);//PCA/PWM時(shí)鐘源為定時(shí)器0的溢出 TH1=(65536-50000)/256; TL1=(65536-50000)%256; EX1=1;IT1=1;}/****************90S顯示函數(shù)**************/voidfinally(){ if(time>=90) { lcd_wcmd(0x34);//擴(kuò)充指令操作 delayult(5); lcd_wcmd(0x30);//基本指令操作 delayult(5); lcd_wcmd(0x01);//清屏 delayult(5); while(1) { s1=s3=0;EA=0; sprintf(DIS1,"Timer:%5.2fs",time);LCD_PutString(0,1,DIS1); sprintf(DIS1,"N=%d",(uint)number);LCD_PutString(6,1,DIS1); if(location[0]!=0){sprintf(DIS1,"%5.4f",location[0]);LCD_PutString(0,2,DIS1);} if(location[1]!=0){sprintf(DIS1,"%5.4f",location[1]);LCD_PutString(0,3,DIS1);} if(location[2]!=0){sprintf(DIS1,"%5.4f",location[2]);LCD_PutString(0,4,DIS1);} } }}/**************************主函數(shù)***************************/voidmain(){bitj=0;bitk=0;bitp=0;biti=0;bitq=0;floattimestore=300;initial();lcd_init();ADinitial();while(1){distances();sprintf(DIS1,"Timer:%6.3fs",time); //顯示小車跑過(guò)的時(shí)間 LCD_PutString(0,1,DIS1); sprintf(DIS1,"N=%d",(uint)number); LCD_PutString(6,1,DIS1); sprintf(DIS1,"Venue:%6.3fm",Venue); LCD_PutString(0,2,DIS1); sprintf(DIS1,"S=%d",(uint)status); LCD_PutString(6,2,DIS1); Metal_Detec(); rsl=get_AD_result(0); rsm=get_AD_result(1); rsr=get_AD_result(2); sprintf(DIS1,"S=%3.1f",rsl); LCD_PutString(0,3,DIS1); sprintf(DIS1,"S=%3.1f",rsm); LCD_PutString(0,4,DIS1); sprintf(DIS1,"S=%3.1f",rsr); LCD_PutString(4,4,DIS1); switch(status) { case0://直線區(qū):依賴黑線與三個(gè)黑線傳感器行走2.3m { speaker=1;led=1; external_interrupt(256,240,220,220); //直線區(qū)代碼保持不變,直線效果不錯(cuò) break; } case1://轉(zhuǎn)彎區(qū):進(jìn)行轉(zhuǎn)彎,待檢測(cè)到金屬的存在后進(jìn)行5S的停車 { CR=0; CCAPM0=CCAPM1=0; if(i==0){CR=0;CCAPM0=CCAPM1=0;external_interrupt(98,195,98,195);} if(Metal_Detec()==1&&i==0) { CR=0; CCAPM0=CCAPM1=0; en1=0; en2=0; timestore=time;i=1; } if(i==1&&((time)<=(timestore+5.0))){led=!led;speaker=!speaker;} if((time)>(timestore+5.0)) { CR=0; CCAPM0=CCAPM1=0;motor(1,256);motor(2,248); timestore=0; status=2;i=0;j=0;speaker=1; } break; } case2://障礙區(qū) //初步構(gòu)想先通過(guò)超聲波檢測(cè),走到離障礙物0.1m處,而后90度轉(zhuǎn),再直線行走,之后通過(guò)紅外避障來(lái)判定障礙物是否存在,當(dāng)判定不存在時(shí),再轉(zhuǎn) //難度:90度直線的實(shí)現(xiàn) { speaker=1;motor(1,256);motor(2,247); //這個(gè)是在無(wú)黑線修正情況下的直線 if(distances()<35&&i==0) //遇障轉(zhuǎn)彎 { CR=0;CCAPM0=CCAPM1=0;en1=0;motor(2,256); delay(3800); //實(shí)現(xiàn)角度的90度變化 CR=0;CCAPM0=CCAPM1=0;en1=en2=0; i=1;j=1; timestore=Venue; } if((Venue>=(timestore+0.35))&&j==1) //直行點(diǎn)四 //if(infrared==1&&j==1) //紅外檢測(cè)到是低電平 { timestore=0; CR=0;CCAPM0=CCAPM1=0;en2=en1=0;motor(1,256);motor(2,5); delay(3400); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; j=0;k=1; led=1;speaker=0; timestore=Venue; } //而后前行0.8m,之后停。 if((Venue>timestore+0.8)&&k==1) { timestore=0; CR=0;CCAPM0=CCAPM1=0;en2=en1=0;motor(1,256);motor(2,5); delay(3350); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; k=0;p=1; led=1;speaker=1; } if(rsl>3.9&&p==1) { CR=0;CCAPM0=CCAPM1=0;en1=0;motor(2,256); delay(3300); //實(shí)現(xiàn)角度的90度變化 CR=0;CCAPM0=CCAPM1=0;en1=en2=0; p=0;q=1; } //而后就進(jìn)入了光敏引導(dǎo)區(qū) if(q==1)compare(); /* if(distances()<35&&k==1) { CR=0;CCAPM0=CCAPM1=0;en2=0;motor(1,256); delay(3200); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; k=1;p=1; } if(infrared==1&&p==1) { CR=0;CCAPM0=CCAPM1=0;en2=0;motor(1,256); delay(3200); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; p=0; } */ break; } } finally();// compare();}}/*********************中斷函數(shù)************************/voidPCA_Interrpt(void)interrupt7 { if(CCF0)CCF0=0; if(CCF1)CCF1=0;//軟件清零 if(CF)CF=0;//軟件清零}/*****************外部中斷(留著以后備用)******************/voidwtimer0()interrupt2//用于測(cè)距{ Venue=Venue+0.000358;//0.01/30*0.807018*3.4/2.2*198/230; if(Venue>=2.3&&abc==0){status=1;abc=1;} }voidtimer1()interrupt3 //用于計(jì)時(shí){ TH1=(65536-50000)/256; TL1=(65536-50000)%256; counter++; time=0.05*counter;}四.系統(tǒng)測(cè)試4.1硬件調(diào)試對(duì)各個(gè)模塊的功能進(jìn)行調(diào)試,主要調(diào)試各模塊能否實(shí)現(xiàn)指定的功能。1.電機(jī)控制此模塊調(diào)試實(shí)現(xiàn)的功能是結(jié)合軟件共同實(shí)現(xiàn),當(dāng)連接單片機(jī)與電機(jī)控制芯片的I/0加上一定的電平可以實(shí)現(xiàn)電機(jī)左右轉(zhuǎn)向,前后轉(zhuǎn)向以及停止等功能,同時(shí)通過(guò)程序延時(shí)降低電機(jī)轉(zhuǎn)速。如表5-1為電機(jī)測(cè)試記錄。表4-1電機(jī)測(cè)試記錄P1.5P2.6小車行駛狀態(tài)11小車向前行駛10小車向前左轉(zhuǎn)01小車向前右轉(zhuǎn)00小車不轉(zhuǎn)光源追蹤調(diào)試光源追蹤是該系統(tǒng)最后的階段,在光源的引導(dǎo)下,小車會(huì)追隨光源的移而移動(dòng)小車的光敏二極管接收一定的光照,并將數(shù)據(jù)返回給單片機(jī),本實(shí)驗(yàn)用到了單片機(jī)內(nèi)置的A/D轉(zhuǎn)換,將光源的能量轉(zhuǎn)換模擬值,通過(guò)轉(zhuǎn)換光強(qiáng)以后,到達(dá)一定光強(qiáng)(即小車非常接近光源后)單片機(jī)便會(huì)發(fā)出指令,讓小車停止。表4-2光源強(qiáng)度檢測(cè)測(cè)試次數(shù)第1次第2次第3次第4次第5次第6次放置距離30cm25cm20cm15cm10cm5cm左側(cè)光照值右側(cè)光照值中間光照值
由于在測(cè)量之前,我們已經(jīng)知道我們所需要的測(cè)量距離,根據(jù)本實(shí)驗(yàn)要求和自身小車限制,我們所需的測(cè)量值為20cm。表4-2超聲波距離控制測(cè)試次數(shù)第1次第2次第3次第4次第5次第6次軟件預(yù)設(shè)值對(duì)應(yīng)測(cè)量值與所需值之差五.結(jié)論各模塊都調(diào)試通過(guò)之后,將各個(gè)模塊連接起來(lái)與硬件結(jié)合進(jìn)行聯(lián)合調(diào)試。在進(jìn)行聯(lián)合調(diào)試時(shí),經(jīng)過(guò)反復(fù)的實(shí)驗(yàn),不斷的來(lái)修改參數(shù)來(lái)完善結(jié)果。使程序按照要求設(shè)計(jì)的要求進(jìn)行。參考文獻(xiàn):[1]李建忠.單片機(jī)原理及應(yīng)用[M].西安:西安科技大學(xué)出版社,2002,2.[2]趙負(fù)圖.光電檢測(cè)控制電路手冊(cè)[M].北京:化學(xué)工業(yè)出版社,2001,1.[3]趙廣林.輕松跟我學(xué)Protel99SE電路設(shè)計(jì)與制版[M].北京:電子工業(yè)出版社,2005,2.[4]王東鋒、董冠強(qiáng).單片機(jī)C語(yǔ)言應(yīng)用100例[M].北京:電子工業(yè)出版社,2009,3.[5]陳繼榮.智能電子制作創(chuàng)新制作——機(jī)器人制作入門[M].北京:科學(xué)出版社,2007,10.[6]夏美云,張鴻彥.人工智能發(fā)展探討[J].焦作大學(xué)學(xué)報(bào),2005年4期,49~66.[7]張金.電子設(shè)計(jì)與制作100例[M].北京,2009,10.[8]王曉明.電動(dòng)機(jī)的單片機(jī)控制[J].學(xué)術(shù)期刊,2002,13(15):1322-1755.
附錄:附1:元器件明細(xì)表:STC12C5A60S2LCD12864LJ18A3-8-7JBXL298NHC-SR04附2:使用的儀器設(shè)備及軟件數(shù)字萬(wàn)用表穩(wěn)壓電源數(shù)字示波器電烙鐵畫(huà)圖制板軟件編譯軟件燒寫器附3:部分功能代碼/*用于STC12C5A的內(nèi)置AD轉(zhuǎn)換*/#include"AD.h"#defineucharunsignedchar#defineuintunsignedintfloatget_AD_result(ucharchannel){ inti; uintmyRS; ucharmyRSL; floatanswer
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南海區(qū)課題申報(bào)書(shū)
- 護(hù)理課題申報(bào)書(shū)范本
- 教學(xué)課題的申報(bào)書(shū)
- 合作購(gòu)銷產(chǎn)品合同范例
- 商法學(xué)課題申報(bào)書(shū)
- 眼科課題申報(bào)書(shū)范文
- 江西省中醫(yī)課題申報(bào)書(shū)
- 【復(fù)習(xí)大串講】【中職專用】高二語(yǔ)文上學(xué)期期末綜合測(cè)試題(五)(職業(yè)模塊)(解析版)
- 做廣告物料合同范本
- 合作加工木炭合同范本
- 咨詢公司項(xiàng)目風(fēng)險(xiǎn)控制方案
- 2024年初一英語(yǔ)閱讀理解專項(xiàng)練習(xí)及答案
- 污水處理廠防水防腐工程施工方案
- 幕墻作業(yè)安全技術(shù)交底
- 食堂晨午檢制度
- 23J916-1 住宅排氣道(一)
- 《邊緣計(jì)算與人工智能應(yīng)用開(kāi)發(fā)技術(shù)》全套教學(xué)課件
- 病例報(bào)告表(CRF)模板
- 2024年云南昆明市教育體育局直屬學(xué)校(單位)選調(diào)10人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- (完整版)建筑工程項(xiàng)目精益建造實(shí)施計(jì)劃書(shū)
- 幼兒園大班社會(huì)《服裝的由來(lái)》課件
評(píng)論
0/150
提交評(píng)論