版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于單片機(jī)智能小車畢業(yè)設(shè)計()名師資料合集(完整版)資料(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)
基于單片機(jī)智能小車畢業(yè)設(shè)計()名師資料合集(完整版)資料(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)畢業(yè)設(shè)計(論文)設(shè)計(論文)題目:基于單片機(jī)的智能小車學(xué)院名稱:電子與信息工程學(xué)院專業(yè):電子與信息工程班級:電信092班姓名:學(xué)號xxxxxxxxxx指導(dǎo)教師:xxx職稱教授定稿日期:2021年5月10日基于單片機(jī)的智能小車摘要 智能車輛是目前世界車輛研究領(lǐng)域的熱點(diǎn)和汽車工業(yè)新的增長點(diǎn)。未來的車輛也一定是智能化的車輛。所以,智能化的車輛是未來人們生活重要的載體。因此有必要對智能車輛進(jìn)行研究。研制一種智能,高效的智能小車控制系統(tǒng)具有重要的實際意義和科學(xué)理論價值。本文設(shè)計了一個能自動循跡的智能小車控制系統(tǒng)。以STC89C52單片機(jī)為控制核心,利用反射式光電傳感器檢測黑線實現(xiàn)小車循跡,利用超聲波傳感器檢測道路上的障礙并提示,利用LCD1602顯示小車的速度和路程。能實現(xiàn)小車自動根據(jù)地面黑線前進(jìn)倒退、轉(zhuǎn)向行駛,超聲波測距提示障礙物,LCD1602實時顯示小車的速度和行駛的路程,具有高度的智能化,達(dá)到設(shè)計目標(biāo)。關(guān)鍵詞:智能小車,STC89C52單片機(jī),超聲波傳感器,LCD1602THESMARTCARBASEDONMICROCONTROLLERABSTRACTIntelligentvehiclesarethehotspotsoftheworld'svehicleresearchareasandtheautomotiveindustryanewgrowthpoint.Thevehiclesofthefuturemustbeintelligentvehicles.So,intelligentvehiclesisanimportantcarrierofthefutureofpeople'slives.Therefore,thestudyofintelligentvehiclesarenecessary.Therefore,thedevelopmentofasmart,intelligentcarcontrolsystemwithhighefficiencyisofpracticalsignificanceandscientificimportanttheoreticalvalue.Thispaperintroducesthedesignofasmartcarcontrolsystemthatcanautomatictracking.Basedonsignle-chipmicrocomputerSTC89C52Toachievetrack-findingusingphotoelectricsensortodetectblackline,Theuseofultrasonicsensorstodetectobstaclesontheroadandprompt,UsingtheLCD1602todisplayspeedanddistance.Thecarcanrealizeautomaticbasedontheblacklineforwardregression.Steering,Ultrasonicranging,promptingobstacles,LCD1602real-timedisplayofthespeedofthecaranddriveaway,withahighdegreeofintelligence,achievethedesigngoal.KeyWords:Smartcar,STC89C52MCU,ultrasonicsensor,LCD1602目錄摘要 IABSTRACT II目錄 III第1章 緒論 11.1 智能小車的意義和作用 11.2 智能小車的現(xiàn)狀 1第2章 方案設(shè)計與論證 22.1 主控系統(tǒng) 22.2 電源模塊 22.3 電機(jī)驅(qū)動模塊 3電機(jī)模塊選擇與論證 3電機(jī)驅(qū)動模塊選澤與論證 32.4 循跡模塊 42.5 測速模塊 52.6 顯示模塊 62.7 壁障模塊 7第3章 硬件設(shè)計 83.1 總體設(shè)計 83.2 驅(qū)動電路 83.3 信號檢測電路 113.4 測速電路 123.5 顯示電路 133.6 主控電路 13第4章 軟件設(shè)計 174.1 主程序模塊設(shè)計 174.1.1主程序流程圖 174.1.2主程序的設(shè)計 174.2 電機(jī)驅(qū)動程序的設(shè)計 194.2.1電機(jī)驅(qū)動程序流程圖 194.3 循跡模塊程序的設(shè)計 22循跡模塊流程圖 22循跡模塊程序的設(shè)計 224.4 測距壁障模塊程序的設(shè)計 244.4.1超聲波測距模塊流程圖 244.4.2超聲波測距模塊程序的設(shè)計 254.5 顯示模塊程序的設(shè)計 264.5.1顯示模塊流程圖 264.5.2顯示模塊程序的設(shè)計 26第5章 系統(tǒng)軟硬件的調(diào)試 295.1 軟件程序的調(diào)試 295.2 硬件電路的焊接與調(diào)試 30參考文獻(xiàn) 31附錄1原理圖 32附錄2源程序 33附錄3實物圖 43致謝 44作品(軟件)使用說明書 ..45緒論智能小車的意義和作用智能的出現(xiàn),為我們的生活和生產(chǎn)帶來了很大的便利,同時也是以后的發(fā)展方向,智能就是可以在一個特定的環(huán)境中按照我們前面設(shè)定好的模式去自動的運(yùn)作,它并不需要我們?nèi)ト藶榈墓芾?,就可以達(dá)到我們前面設(shè)定的目標(biāo),它的應(yīng)用領(lǐng)域很廣,如可以應(yīng)用于工業(yè)控制、科學(xué)勘探、智能家居等領(lǐng)域。而智能小車就是智能的一個簡單的應(yīng)用,智能小車就是智能化玩具中的一種,由于這類智能玩具具有較好的交互性,可控性,能夠按照人們設(shè)定的模式去自動運(yùn)作也深受人們的喜歡。另外,智能小車還可以應(yīng)用于危險搜索、機(jī)器人等許多方面,尤其在機(jī)器人方面具有很好的發(fā)展前景。因此,智能化小車的研究不僅具有很大的現(xiàn)實意義,還具有極為廣闊的應(yīng)用前景和市場價值。智能小車的現(xiàn)狀智能小車的研究、開發(fā)和應(yīng)用涉及傳感技術(shù)、電氣技術(shù)、電氣控制技術(shù)、智能控制等學(xué)科,智能控制技術(shù)是一門跨科學(xué)的綜合性技術(shù),當(dāng)代研究十分活躍,應(yīng)用日益廣泛的領(lǐng)域[1]。眾所周知機(jī)器人技術(shù)的發(fā)展是一個國家高科技水平和工業(yè)自動化程度的重要標(biāo)志和體現(xiàn)。因此目前世界各國都在開展對機(jī)器人技術(shù)的研究。機(jī)器人由于有很高的靈活性、可以幫助人們提高生產(chǎn)率、改進(jìn)產(chǎn)品質(zhì)量等優(yōu)點(diǎn),在世界各地的生產(chǎn)生活領(lǐng)域得到了廣泛的應(yīng)用[2]。智能小車正是模仿機(jī)器人的一種嘗試。它是一種以汽車電子為背景,涵蓋多學(xué)科的科技創(chuàng)新性設(shè)計,一般主要由路徑識別、速度采集、角度控制以及車速控制等模塊組成。這種智能小車能夠自動搜尋前進(jìn)路線,還能爬坡,感知前方的障礙物,并自動尋找前進(jìn)方向,避開障礙物。另外如果加入相關(guān)聲光訊號后,更能體現(xiàn)出智能化和人性化的一面。方案設(shè)計與論證主控系統(tǒng)由于單片機(jī)具有價格低廉,資源豐富、有較為強(qiáng)大的控制功能,故本次設(shè)計采用STC89C52單片機(jī)作為整個系統(tǒng)的核心,用其控制行進(jìn)中的小車以實現(xiàn)其既定的性能指標(biāo)。STC89C52是一個超低功耗的增強(qiáng)型51單片機(jī),和標(biāo)準(zhǔn)51系列單片機(jī)相比較它的運(yùn)算速度更快,有超強(qiáng)的抗干擾能力,同時還支持ISP在線編程,片上集成了512字節(jié)的隨機(jī)存取數(shù)據(jù)存儲器(RAM),并且片內(nèi)含8k字節(jié)空間的可以反復(fù)擦寫1000次的Flash只讀存儲器,32個I/O口,以及3個16位可編程定時計數(shù)器。其指令系統(tǒng)和傳統(tǒng)的8051系列單片機(jī)指令系統(tǒng)完全兼容,降低了系統(tǒng)軟件設(shè)計的難度,電路設(shè)計簡單、價格低廉,在后來的實驗中我們發(fā)現(xiàn),STC89C52精確度和運(yùn)算速度也都完全符合我們系統(tǒng)的要求。電源模塊由于本系統(tǒng)需要給整個智能小車系統(tǒng)供電,考慮了以下幾種方案:方案一:采用4節(jié)1.2V可充電電池組。在電充滿時4節(jié)電池電壓可以達(dá)到5v且可充電電池組具有較強(qiáng)的電流驅(qū)動能力及穩(wěn)定的電壓輸出性能,但是直流電機(jī)工作時會對LCD1602顯示造成干擾,使其顯示不穩(wěn)定。故放棄此方案。方案二:使用雙電源供電,將9v可充電方塊電池電壓降壓、穩(wěn)壓到5V后給單片機(jī)系統(tǒng)和LCD1602及其它芯片供電。另外采用4節(jié)1.2V可充電電池組為直流電機(jī)供電,經(jīng)測試在用此種供電方式下,單片機(jī)和傳感器工作穩(wěn)定,直流電機(jī)工作良好,LCD顯示也很穩(wěn)定,小車也能長時間工作。綜上考慮,我們選擇了方案二來完成智能小車整個系統(tǒng)的供電。電機(jī)驅(qū)動模塊電機(jī)模塊選擇與論證方案一:使用步進(jìn)電機(jī)作為智能小車系統(tǒng)的驅(qū)動電機(jī),因為步進(jìn)電機(jī)的轉(zhuǎn)動角度可以精確的定位,這樣就可以比較精確的定位小車的前進(jìn)距離和位置。但是由于步進(jìn)電機(jī)的輸出力矩偏低,并且會隨著電機(jī)轉(zhuǎn)速的升高而下降,在達(dá)到較高的轉(zhuǎn)速時其輸出的力矩會急劇下降,因此不適于小車等對速度有著一定要求的系統(tǒng)。經(jīng)過綜合分析比較決定放棄此方案。方案二:使用直流減速電機(jī)作為智能小車系統(tǒng)的驅(qū)動電機(jī)。直流減速電機(jī)的轉(zhuǎn)動力矩比較大,而且體積較小,重量也很輕,使用方便。另外小車電機(jī)內(nèi)部還裝有減速齒輪組,所以并不需要去考慮調(diào)速的功能,可以很方便的通過單片機(jī)來控制直流減速電機(jī)的正傳、反轉(zhuǎn)、停止操作。綜合以上考慮選擇方案二的直流減速電機(jī)作為整個智能小車的驅(qū)動電機(jī)。電機(jī)驅(qū)動模塊選擇與論證方案一:采用繼電器對電動機(jī)進(jìn)行控制,通過切換電動機(jī)的開關(guān)來調(diào)整小車的速度。這個方案的優(yōu)點(diǎn)是電路相對比較簡單,但是它的缺點(diǎn)也比較多,如:繼電器的響應(yīng)時間偏慢,壽命較短,容易損壞,可靠性也不是很高。故決定放棄此方案。
方案二:采用專用的電機(jī)驅(qū)動芯片L298N來控制直流減速電機(jī),L298N芯片(如圖2-3)是一個具有高電壓大電流的全橋驅(qū)動芯片,一片L298N芯片可以分別的控制兩個直流減速電機(jī),在6~46V的電壓下,可以提供2A的額定電流,并且具有過熱自動關(guān)斷和電流反饋檢測功能,安全可靠。該芯片是利用TTL電平進(jìn)行控制的。通過單片機(jī)的IO口輸出高低電平來改變芯片控制端的輸入電平,即可以實現(xiàn)對電機(jī)進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)和停止操作。另外為了保證L298N的正常工作,我還安裝了8個續(xù)流二極管1N4007。用該芯片作為電機(jī)驅(qū)動,驅(qū)動能力大、操作方便、穩(wěn)定性好、性能優(yōu)良。綜合以上分析與論證我們選擇方案二的驅(qū)動芯片L298N作為整個智能小車系統(tǒng)的電機(jī)驅(qū)動電路。圖2-3L298N循跡模塊方案一:用光敏電阻來探測。光敏電阻的阻值會隨著周圍環(huán)境光線的變化而變化[6]。因此當(dāng)光敏電阻在黑色軌跡的上方和白色軌跡的上方時,阻值會發(fā)生較為明顯的變化。將阻值的變化值輸入到電壓比較器就可以輸出高低電平。單片機(jī)就可以根據(jù)反饋來的不同的電平信號,發(fā)出相應(yīng)的控制操作命令來控制小車的左轉(zhuǎn),右轉(zhuǎn),前進(jìn)或者停止。但實際效果并不理想,誤測幾率偏大、容易受外界的光線環(huán)境的影響,不能夠穩(wěn)定的工作。因此考慮其它更加穩(wěn)定的方案。方案二:采用紅外反射式光電管完成系統(tǒng)循跡[3]。TCRT5000(如圖2-4)是一種一體化反射型光電探測器,傳感器采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,其發(fā)射器是一個砷化鎵紅外發(fā)光二極管,而接收器是一個高靈敏度,硅平面光電三極管。它是利用了光的反射原理,當(dāng)光線照射在白紙上,反射量會比較大,反之,當(dāng)光照射在黑色物體上,反射回去的量比較少,因為黑色會吸收光,這樣就可以判斷黑膠帶帶軌道的走向。采用紅外線發(fā)射,外面可見光對接收信號的影響較小,利用紅外對管對黑線邊界進(jìn)行檢測,再用LM393對檢測信號進(jìn)行比較,取反,送單片機(jī)進(jìn)行處理。此光電對管電路簡單,工作性能穩(wěn)定。經(jīng)測試方案二不論是在黑暗或者是強(qiáng)光照射下,智能小車系統(tǒng)均可以很穩(wěn)定的工作,對外界環(huán)境的適應(yīng)能力比較強(qiáng)。因此我們選擇方案二。圖2-4TCRT5000測速模塊方案一:采用霍爾傳感器檢測輪子上的小磁鐵從而給單片機(jī)中斷脈沖,通過單位時間內(nèi)對脈沖的計數(shù)通過公式就可以算出實時的車速,達(dá)到測量速度的作用?;魻栐哂畜w積小,動態(tài)特性好,頻率響應(yīng)寬度大,對外圍電路要求簡單,使用壽命長,安裝方便,價格低廉等特點(diǎn)。但是需要和磁鋼配對使用比較麻煩。方案二:采用光電碼盤,即透射式光電傳感器(凹槽型如圖2-5)進(jìn)行測速。槽型光耦是由紅外發(fā)光管和光敏三極管構(gòu)成的,工作時紅外發(fā)光管發(fā)出紅外光線透過光耦的槽投射到光敏三極管上,光敏三極管導(dǎo)通,集電極輸出低電平。當(dāng)紅外光線被檢測物遮斷時,光敏三極管截止,集電極輸出高電平。遮擋一次槽型光耦輸出一個脈沖,因此脈沖的個數(shù)就是被檢測物的數(shù)量。車輪轉(zhuǎn)動時帶動碼盤轉(zhuǎn)動,單片機(jī)內(nèi)部計時可測出給定的時間內(nèi)通過的脈沖數(shù),從而測出小車的實時速度。使用方便,抗干擾性較強(qiáng)。通過比較方案一和方案二的優(yōu)缺點(diǎn),綜合多方面因素決定選用方案二。圖2-5槽型光電傳感器顯示模塊方案一:采用LED數(shù)碼管顯示。數(shù)碼管使用簡單,價格低廉,但一個數(shù)碼管只能顯示一個數(shù)字,要顯示多位數(shù)據(jù)時要使用多個數(shù)碼管,這就增加了硬件電路的復(fù)雜度和額外功耗,而且LED數(shù)碼管也無法顯示字符。由于我們計劃要顯示小車運(yùn)行的速度和路程,LED數(shù)碼管沒辦法顯示這么多的內(nèi)容,因此考慮其它的方案。方案二:采用LCD1602液晶(如圖2-6)顯示。LCD1602液晶具有功耗低,顯示內(nèi)容豐富清晰,顯示信息量大,顯示速度較快,界面友好,使用簡單等特點(diǎn)而得到了廣泛的應(yīng)用。并且外圍電路也比較簡單,因此我們選擇此方案。通過以上方案論述我們選擇方案二,顯示小車運(yùn)行速度和路程的任務(wù)。圖2-6LCD1602液晶顯示器壁障模塊方案一:用漫反射式光電開關(guān)進(jìn)行避障。光電開關(guān)的工作原理是根據(jù)光線發(fā)射頭發(fā)出的光束,被物體反射,其接收電路據(jù)此做出判斷反應(yīng),物體對紅外光由同步回路選通而檢測物體的有無。當(dāng)有光線反射回來時,輸出低電平。當(dāng)沒有光線反射回來時,輸出高電平。操作簡單但是測量的距離不遠(yuǎn)。方案二:用超聲波傳感器進(jìn)行測距避障。超聲波傳感器的原理是:超聲波由壓電陶瓷超聲波傳感器發(fā)出后,遇到障礙物便反射回來,然后再被超聲波傳感器接收[8]。超聲波傳感器在避障的設(shè)計中被廣泛應(yīng)用。為了使用方便,便于操作和調(diào)試,采用集成超聲波測距模塊HC-SR04(如圖2-7)。綜合考慮本系統(tǒng)只需要檢測障礙物,沒有十分復(fù)雜的環(huán)境。為了使用的方便,便于操作和調(diào)試,最終選擇了方案二。圖2-7HC-SR04超聲波測距模塊硬件設(shè)計總體設(shè)計智能小車采用前輪驅(qū)動,前輪左右兩邊各用一個電機(jī)驅(qū)動,通過電機(jī)驅(qū)動芯片L298N來控制前面兩個輪子的轉(zhuǎn)動與停止從而達(dá)到控制轉(zhuǎn)向的目的,后輪是萬向輪,起支撐轉(zhuǎn)向作用。將4個紅外光電傳感器裝在車體底盤的前端,小車根據(jù)傳感器檢測的情況來循跡前進(jìn)。小車速度的檢測通過槽型光電傳感器,將碼盤裝在電機(jī)的軸上,碼盤跟隨電機(jī)一起轉(zhuǎn)動,將檢測到的數(shù)據(jù)傳回單片機(jī)進(jìn)行處理。小車的避障用超聲波避障模塊HC-SR04,將其置于車頭,檢測到障礙物時,小車做出相應(yīng)的反應(yīng)??傮w設(shè)計框圖如圖3-1。圖3-1總體設(shè)計框圖驅(qū)動電路電機(jī)驅(qū)動芯片采用L298N,是一款承受高壓大電流的全橋型直流/步進(jìn)電壓驅(qū)動器,如下圖3-2。圖3-2電機(jī)控制芯片L298N的引腳排列其中L298N各引腳的編號與功能和內(nèi)部邏輯如下表3-1和圖3-3。表3-1L298N引腳編號與功能引腳編號名稱功能1電流傳感器A在該引腳和地之間接小阻值電阻可用來檢測電流2輸出引腳1內(nèi)置驅(qū)動器A的輸出端1,接至電機(jī)A3輸出引腳2內(nèi)置驅(qū)動器A的輸出端2,接至電機(jī)A4電機(jī)電源端電機(jī)供電輸入端,電壓可達(dá)46V5輸入引腳1內(nèi)置驅(qū)動器A的邏輯控制輸入端16使能端A內(nèi)置驅(qū)動器A的使能端7輸入引腳2內(nèi)置驅(qū)動器A的邏輯控制輸入端28邏輯地邏輯地9邏輯電源端邏輯控制電路的電源輸入端為5V10輸入引腳3內(nèi)置驅(qū)動器B的邏輯控制輸入端111使能端B內(nèi)置驅(qū)動器B的使能端12輸入引腳4內(nèi)置驅(qū)動器B的邏輯控制輸入端213輸出引腳3內(nèi)置驅(qū)動器B的輸出端1,接至電機(jī)B14輸出引腳4內(nèi)置驅(qū)動器B的輸出端2,接至電機(jī)B15電流傳感器B在該引腳和地之間接小阻值電阻可用來檢測電流圖3-3L298N內(nèi)部原理圖電機(jī)驅(qū)動A/B的控制邏輯如下表所示。表3-2電機(jī)驅(qū)動A/B的控制邏輯輸入信號電機(jī)運(yùn)動方式使能端A/B輸入引腳1/3輸入引腳2/4110前進(jìn)101后退111緊急停車100緊急停車0XX自由轉(zhuǎn)動L298N可直接對電機(jī)進(jìn)行控制,不需要隔離電路。通過單片機(jī)的I/O輸入改芯片控制端的電平,即可以對電機(jī)進(jìn)行正反轉(zhuǎn),停止的操作,操作非常方便,亦能滿足直流減速電機(jī)的大電流要求[4]。調(diào)試時依照上表,用程序輸入對應(yīng)的碼值,即可以實現(xiàn)對應(yīng)的操作。其驅(qū)動電路原理圖如下圖3-4所示。圖3-4L298N驅(qū)動原理圖信號檢測電路小車循跡的原理是在鋪有約四厘米寬黑膠帶的白紙“路面”上行駛,由于黑紙和白色路面對光線的反射系數(shù)不同,可以根據(jù)接收的反射光的強(qiáng)弱來判斷道路——黑紙軌跡。本設(shè)計采用簡單易用,應(yīng)用也較為普遍的紅外探測法。紅外探測法,即用紅外線在不同顏色的物表面具有不同的反射性質(zhì)的特點(diǎn)[7]。在小車行駛過程中傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒有被反射回來或被反射回來但強(qiáng)度不夠大時,光敏三極管一直處于關(guān)斷狀態(tài),此時模塊的輸出端為低電平,當(dāng)紅外線遇到白色地面時發(fā)生漫反射,紅外線被反射回來反射光被裝在小車上的接收管接收且強(qiáng)度足夠大,光敏三極管飽和,此時模塊的輸出端為高電平;如果遇到黑紙則紅外光被吸收,小車上的接收管接收不到信號,再通過LM393作比較器來采集高低電平,從而實現(xiàn)信號的檢測。避障亦是此原理。通過設(shè)計了如圖3-5所示的電路來檢測,圖中R18為限流電阻,當(dāng)有光反射回來時,光電傳感器的三極管導(dǎo)通,在LM393的2腳出產(chǎn)生低電平電壓,通過LM393處理后在P1.0出產(chǎn)生高電平,返回給單片機(jī),從而達(dá)到檢測的目的。并通過變阻器RV1可調(diào)節(jié)傳感器的靈敏度。圖3-5循跡原理圖測速電路采用透射式光電傳感器(凹槽型)進(jìn)行測速。槽型光耦是由紅外發(fā)光管和光敏三極管構(gòu)成的,將碼盤安裝在電機(jī)軸上,當(dāng)電機(jī)轉(zhuǎn)動時,碼盤也隨之轉(zhuǎn)動。工作時紅外發(fā)光管發(fā)出紅外光線透過光耦的槽投射到光敏三極管上,光敏三極管導(dǎo)通,集電極輸出低電平。當(dāng)紅外光線被檢測物遮斷時,光敏三極管截止,集電極輸出高電平。遮擋一次槽型光耦輸出一個脈沖,因此脈沖的個數(shù)就是被檢測物的數(shù)量。車輪轉(zhuǎn)動時帶動碼盤轉(zhuǎn)動,單片機(jī)內(nèi)部計時可測出給定的時間內(nèi)通過的脈沖數(shù),從而測出小車的實時速度。其電路原理圖與循跡原理圖類似。如圖3-6所示。圖3-6測速電路原理圖顯示電路用LCD1602來顯示數(shù)據(jù),LCD液晶具有功耗低、顯示內(nèi)容豐富、清晰,顯示信息量大,顯示速度較快等特點(diǎn)。其中用滑動變阻器RV0來調(diào)節(jié)顯示器的背光亮度。電路原理圖如下圖3-7。圖3-7顯示電路原理圖主控電路單片機(jī)是控制單元的核心。起著控制小車所有運(yùn)行狀態(tài)的作用。單片機(jī)控制模塊使用的是宏晶公司生產(chǎn)的STC89C52,使用該芯片很容易實現(xiàn)對其它模塊的控制。通過對單片機(jī)STC89C52寫入程序,可以方便的用軟件來控制,整個過程的控制部分如圖3-8所示。圖3-8單片機(jī)最小系統(tǒng)STC89C52單片機(jī)最小系統(tǒng)包括了晶振電路,電源電路以及復(fù)位電路,其中復(fù)位電路的復(fù)位按鍵用于小車的復(fù)位。P1.3~P1.7分別控制電機(jī)驅(qū)動。其它P口用外接控制小車的各種控制開關(guān),P0口外接上拉電阻,可用于外接LCD1602。STC89C52單片機(jī)介紹[5]:STC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時鐘/機(jī)器周期和6時鐘/機(jī)器周期可以任意選擇。主要特性如下:增強(qiáng)型8051單片機(jī),6時鐘/機(jī)器周期和12時鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實際工作頻率可達(dá)48MHz。工作電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V單片機(jī))片上集成512字節(jié)RAM。用戶應(yīng)用程序空間為8K字節(jié)。ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片。通用I/O口(32個),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴(kuò)展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。具有看門狗功能。具有EEPROM功能。共3個16位定時器/計數(shù)器。即定時器T0、T1、T2。外部中斷4路,下降沿中斷或低電平觸發(fā)電路,PowerDown模式可由外部中斷低電平觸發(fā)中斷方式喚醒。通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART。工作溫度范圍:-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)PDIP封裝。STC89C52單片機(jī)的引腳圖如下圖3-9。圖3-9STC89C52RC引腳圖另外STC單片機(jī)有兩種時鐘模式,一種是單倍速,也就是12時鐘模式,在該模式下,STC單片機(jī)與其他公司51系列單片機(jī)具有相同的機(jī)器周期,即12個振蕩周期為一個機(jī)器周期;另一種是雙倍速,又稱6時鐘模式,在該模式下,STC單片機(jī)比其他公司的51單片機(jī)運(yùn)行速度快一倍。軟件設(shè)計主程序模塊的設(shè)計主程序的流程圖圖4-1主程序流程圖在圖4-1主程序流程圖中,開始時先是單片機(jī)的初始化,包括定時器初始化,外部中斷的初始化,液晶的初始化。然后調(diào)用循跡子程序,小車循跡前進(jìn),如果定時時間到了則調(diào)用超聲波模塊子程序,判斷前方50cm處是否有障礙物,如果有的話led閃爍,如果檢測到停止線則小車停止。主程序的設(shè)計voidmain(){ Timer_Init();//定時器初始化 INT0_Init();//外部中斷初始化 LCD_Init();//LCD1602初始化 TR1=1; //啟動定時器 lcd_write_cmd(0x80); LED1=1; LED2=1; while(1) { PWM(); //pwm調(diào)速 track();//調(diào)用循跡子程序 lcd_write_cmd(0x80+0x09); lcd_write_dat(qian); lcd_write_cmd(0x80+0x0a); lcd_write_dat(bai2); lcd_write_cmd(0x80+0x0b); lcd_write_dat(shi2); lcd_write_cmd(0x80+0x0c); lcd_write_dat(ge2); lcd_write_cmd(0x80+0x47); lcd_write_dat(bai1); lcd_write_cmd(0x80+0x48); lcd_write_dat(shi1); lcd_write_cmd(0x80+0x49); lcd_write_dat(ge1); if(flag1==1&&flag2==1) { csb(); //調(diào)用超聲波子程序 flag1=0; } } }電機(jī)驅(qū)動程序的設(shè)計電機(jī)驅(qū)動程序流程圖圖4-2電機(jī)驅(qū)動程序流程圖電機(jī)驅(qū)動程序流程圖如上圖4-2,開始先檢測小車的狀態(tài)如果相對黑線是直的,則調(diào)用直走子程序,即左右兩個電機(jī)都正轉(zhuǎn);如果小車偏向黑線的左邊則調(diào)用向右走子程序,即左電機(jī)正轉(zhuǎn)右電機(jī)反轉(zhuǎn);如果小車偏向黑線的右邊則調(diào)用向左走子程序,即左電機(jī)反轉(zhuǎn)右電機(jī)正轉(zhuǎn);如果小車完全偏離黑線則調(diào)用向后退子程序,即兩個電機(jī)都反轉(zhuǎn);如果小車到終點(diǎn)了則調(diào)用停止子程序,即兩個電機(jī)都不轉(zhuǎn)。電機(jī)驅(qū)動程序的設(shè)計voidgoahead()//小車直走{ IN1=1; IN2=0; IN3 =1; IN4=0;}voidgoback() //小車后退{(lán) IN1=0; IN2=1; IN3=0; IN4=1;}voidturnright() //小車向右轉(zhuǎn){ IN1=1; IN2=0; IN3=0; IN4=1;}voidturnleft() //小車向左轉(zhuǎn){ IN1=0; IN2=1; IN3=1; IN4=0;}voidzw_turnright() //用于轉(zhuǎn)彎時的左轉(zhuǎn){ IN1=1; IN2=0; IN3=0; IN4=0;}voidzw_turnleft() //用于轉(zhuǎn)彎時的右轉(zhuǎn){ IN1=0; IN2=0; IN3=1; IN4=0;}voidstop() //小車停止{ IN1=0; IN2=0; IN3=0; IN4=0;}voidPWM(void)//小車調(diào)速{PWM_ENA=1;PWM_ENB=1;delayXms(H);PWM_ENA=0;PWM_ENB=1;delayXms(L); PWM_ENA=0;PWM_ENB=0;delayXms(N);}循跡模塊程序的設(shè)計循跡模塊流程圖 圖4-3循跡模塊流程圖在圖4-3循跡模塊流程圖中,通過檢測P1口第四位的電平并把它賦給變量temp然后用switch-case語句來根據(jù)P1口低四位的電平,給出相應(yīng)的電平送到電機(jī)驅(qū)動芯片L298N去,從而控制小車的直走,左轉(zhuǎn),右轉(zhuǎn),后退,停止等動作。循跡模塊子程序設(shè)計voidtrack(void){uchartemp=0;temp=P1&0x0f;//取P1口低四位賦給變量tempswitch(temp){case0x09:goahead();//直走 break;case0x0c: case0x0e:turnleft();//左轉(zhuǎn) break; case0x03: case0x07:turnright();//右轉(zhuǎn) break; case0x0f:goback();//后退 break; case0x00: stop();//停止 break; case0x08: zw_turnleft();//用于直角轉(zhuǎn)彎時的左轉(zhuǎn) delayXms(20); break; case0x01: zw_turnright(); //用于直角轉(zhuǎn)彎時的右轉(zhuǎn) delayXms(20); break; default: break;}}測距避障模塊程序的設(shè)計測距模塊流程圖圖4-4測距模塊流程圖測距模塊流程圖如圖4-4,開始時單片機(jī)先給超聲波測距模塊Trig端發(fā)送一個高電平且這個高電平要持續(xù)20us,然后再給Trig端發(fā)送一個低電平,即啟動了超聲波測距模塊,超聲波測距模塊會自動發(fā)送8個40KHZ的方波,等待是否有信號返回,如果有信號返回會通過IO口超聲波測距模塊的Echo端輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間,測試距離=(高電平時間*340)/2,單位為m。如果距離小于50cm,車前的兩個LED等閃爍提示,如果距離小于7cm,小車自動停下。測距模塊程序設(shè)計voidcsb(){ TH0=0; TL0=0; TX=1; //Trig發(fā)送端發(fā)出一個高電平 delay_20us(); //延時20us TX=0; //Trig發(fā)送端發(fā)出一個低電平 while(RX==0); //等待接收端為高電平 TR0=1; //啟動定時器 while(RX); //等待接收端為低電平 TR0=0; //關(guān)閉定時器 time=TH0*256+TL0; juli=time*0.017;//(1/(12*1000000))*340*12*100/2得到的是距離單位為cm; if(juli<=7) { stop(); LED1=!LED1; LED2=!LED2; delayXms(100); flag3=1; } elseif((juli>5)&&(juli<=50)) { LED1=!LED1; LED2=!LED2; delayXms(100); flag3=0; } elseif(juli>50) { LED1=1; LED2=1; flag3=0; }}顯示模塊程序的設(shè)計顯示模塊流程圖圖4-5顯示模塊流程圖圖4-5為顯示模塊流程圖,先是初始化LCD1602然后在液晶的第一行顯示"Journey:cm"液晶第二列顯示"Speed:mm/s"然后在主程序不斷的調(diào)用顯示程序刷新cm或者mm前面的數(shù)字。顯示程序設(shè)計bitlcd_busy() //判忙函數(shù){ bitresult; RS=0; RW=1; E=1; _nop_(); _nop_(); _nop_(); _nop_(); result=(bit)(P0&0x80); E=0; returnresult;}voidlcd_write_cmd(ucharcmd)//液晶寫指令{ while(lcd_busy()); RS=0; RW=0; E=0; _nop_(); _nop_(); P0=cmd; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; }voidlcd_write_dat(uchardat) //液晶寫數(shù)據(jù)指令{ while(lcd_busy()); RS=1; RW=0; E=0; P0=dat; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; }voidLCD_Init() ///液晶初始化指令{ delayXms(12); lcd_write_cmd(0x38); delayXms(4); lcd_write_cmd(0x0c); delayXms(4); lcd_write_cmd(0x06); delayXms(4); lcd_write_cmd(0x01); delayXms(4); lcd_write_cmd(0x80); for(i=0;i<16;i++)//液晶第一列顯示"Journey:mm" lcd_write_dat(display1[i]); lcd_write_cmd(0x80+0x40);//液晶第二列顯示"Speed:mm/s" for(i=0;i<16;i++) lcd_write_dat(display2[i]);}第5章制作安裝與調(diào)試軟件程序的調(diào)試軟件調(diào)試的任務(wù)是利用ISIS開發(fā)工具進(jìn)行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯誤,同時也能發(fā)現(xiàn)仿真結(jié)果故障。程序的調(diào)試是一個模塊一個模塊地進(jìn)行的,從最簡單的程序開始,先畫好單片機(jī)最小系統(tǒng)燒錄一個最簡單的點(diǎn)亮led的程序看單片機(jī)最小系統(tǒng)仿真電路是否連接正確了,是否后慢慢的調(diào)試和擴(kuò)充。我們首先單獨(dú)調(diào)試各功能子程序,檢驗程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程序連接起來總調(diào)。仿真圖如圖5-1所示:圖5-1智能小車仿真圖硬件電路的焊接與調(diào)試在硬件電路焊接中,由于需要焊接的模塊較多,為了提高調(diào)試的效率,將整個系統(tǒng)分成多個部分進(jìn)行焊接和調(diào)試。開始一個模塊設(shè)計之前和完成一個模塊設(shè)計之后都要進(jìn)行測試。在動手之前務(wù)必查清楚所用元件資料,對于稍微復(fù)雜一點(diǎn)的電路,之前可以先搭建其中的一部分電路,測試一下是否正常,然后再進(jìn)行總的電路設(shè)計。這樣循序漸進(jìn)設(shè)計可以節(jié)省時間并且保證電路的正確性。另外電路設(shè)計之后的測試也同樣重要,特別是和程序有關(guān)的外圍檢測、驅(qū)動等模塊,如果不排除硬件故障在調(diào)試的時候很難分清到底是硬件還是軟件的問題,因此硬件設(shè)計完成之后首先需要測試硬件能夠正常工作,這樣在遇到問題時才能夠排除硬件的干擾找出問題的所在。對小車的整體的調(diào)試按照模塊來進(jìn)行,分為以下幾個步驟:①首先測試電源的工作情況,各個模塊能否得到良好供電。②然后檢查單片機(jī)能否正常的燒寫程序和工作。③光電管安裝完成后根據(jù)測試數(shù)據(jù)調(diào)節(jié)電位器選擇合適的參考電壓。④測試兩前輪電機(jī)的工作情況,并試驗電機(jī)的驅(qū)動能力。⑤讓小車在黑色軌道上初步循跡運(yùn)行。⑥反復(fù)測試各參數(shù)變化對小車的影響,找出最有效的配置。⑦對小車運(yùn)行過程中各種可能出現(xiàn)的情況測試,發(fā)現(xiàn)問題,找出解決方法。⑧整理數(shù)據(jù),優(yōu)化程序設(shè)計。經(jīng)過多次調(diào)試,本系統(tǒng)能夠基本滿足設(shè)計要求,能夠較快較平穩(wěn)的沿黑色路面行駛。參考文獻(xiàn)李瀚霖等.智能小車研究與設(shè)計[J].科技致富向?qū)?2021年26期.王志良.競賽機(jī)器人制作技術(shù)[M].北京:機(jī)械工業(yè)出版社,韓毅,楊天.基于HCS12單片機(jī)的智能尋跡模型車的設(shè)計與實現(xiàn)[J].學(xué)術(shù)期刊,2021,29(18):1535-1955.王曉明.電動機(jī)的單片機(jī)控制[J].學(xué)術(shù)期刊,2002,13(15):1322-1755.溫子祺等.51單片機(jī)C語言創(chuàng)新教程[M].北京:北京航航天大學(xué)出版社,2021.4.朱小燕等.淺談智能控制小車的設(shè)計[J].機(jī)電信息,2021.唐華溢等.智能循跡小車系統(tǒng)與應(yīng)用[J].科技與生活,2021.何曄.基于AT89S52單片機(jī)自動避障自動追光小車新設(shè)計[J].科技致富向?qū)?2021.4.張毅剛,彭喜元,彭宇.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2021.5.趙海蘭.基于單片機(jī)的紅外遙控智能小車的設(shè)計[J].無線互聯(lián)科技,2021年3期.姚培等.基于單片機(jī)控制的智能循跡避障小車[J].機(jī)電信息,2021年12期.于連國,李偉,王妍瑋.基于單片機(jī)的智能小車設(shè)計[J].林業(yè)機(jī)械與木工設(shè)備,2021年4期.趙振德.多功能遙控智能小車的制作[J].電子制作,2021年4期.胡漢才.單片機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,1999.4.YamatoI.etalHighfrequencylinkDC/ACconverterforUPSwithanewvoltageclamper[J]1IEEEPESC,1990:52-105.附錄1原理圖附錄2源程序#include<reg52.h> //包含頭文件,頭文件包含特殊功能寄存器的定義#include<intrins.h>//Keil外部函數(shù)庫包含文件,_nop_函數(shù)在此庫中#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlong#definediameter60//碼盤直徑#definedisc20//碼盤柵格數(shù)20個即20個脈沖是一圈#defineH100#defineL10#defineN20uinti,n,m,time=0;ucharbai1,shi1,ge1,qian,bai2,shi2,ge2,flag1=0,flag2=1;ulongspeed,count1,count2,journey,juli;//以下是定義端口sbitPWM_ENA=P3^0;sbitPWM_ENB=P3^1;sbitIN1=P1^4;sbitIN2=P1^5;sbitIN3=P1^6;sbitIN4=P1^7;sbitRS=P2^5; sbitRW=P2^6; sbitE=P2^7; sbitLED1=P2^0;sbitLED2=P2^1;sbitTX=P3^6; //超聲波模塊Trig觸發(fā)信號控制端sbitRX=P3^7; //接收回波控制端uchardisplay1[]={"Journey:mm"};uchardisplay2[]={"Speed:mm/s"};voiddelay_20us() //延時20us{ inta; a=2; while(a>0) a--;}voiddelay1ms(void)//延時1ms{uintj;for(j=0;j<=120;j++){_nop_();}}voiddelayXms(uintms)延時n毫秒{ uintk; for(k=0;k<ms;k++) {delay1ms();}}bitlcd_busy() //判忙函數(shù){ bitresult; RS=0; RW=1; E=1; _nop_(); _nop_(); _nop_(); _nop_(); result=(bit)(P0&0x80); E=0; returnresult;}voidlcd_write_cmd(ucharcmd)//液晶寫指令{ while(lcd_busy()); RS=0; RW=0; E=0; _nop_(); _nop_(); P0=cmd; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; }voidlcd_write_dat(uchardat) //液晶寫數(shù)據(jù)指令{ while(lcd_busy()); RS=1; RW=0; E=0; P0=dat; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; }voidLCD_Init() ///液晶初始化指令{ delayXms(12); lcd_write_cmd(0x38); delayXms(4); lcd_write_cmd(0x0c); delayXms(4); lcd_write_cmd(0x06); delayXms(4); lcd_write_cmd(0x01); delayXms(4);lcd_write_cmd(0x80); for(i=0;i<16;i++)//液晶第一列顯示"Journey:mm" lcd_write_dat(display1[i]); lcd_write_cmd(0x80+0x40);//液晶第二列顯示"Speed:mm/s" for(i=0;i<16;i++) lcd_write_dat(display2[i]); }voidTimer_Init()//定時器0和定時器1初始化函數(shù){ TMOD=0x11; ET0=1; TR0=0; ET1=1; EA=1; TH1=(65535-50000)/256; //初使加載50毫秒 TL1=(65535-50000)%256;}voidINT0_Init()//外部中斷0初始化{ IT0=1; EX0=1; EA=1; }voidEXT_INT0(void)interrupt0//外部中斷0中斷處理函數(shù){count1++; count2++; }voidT0_time()interrupt1 //定時器0中斷處理函數(shù) { TH0=0; TL0=0; }voidT1_time()interrupt3 //定時器1中斷處理函數(shù) {TR1=0; TH1=(65535-50000)/256; TL1=(65535-50000)%256; n++; m++; if(m==2) { m=0; flag1=1; } if(n==20) //定時2秒(40個50ms為1秒) { n=0; journey=count2*3.14*diameter/disc/10;//路程等于總脈沖輸除以柵格數(shù)乘以周長單位cm qian=(journey/1000)+48; bai2=(journey%1000/100)+48; shi2=(journey%1000%100/10)+48; ge2=(journey%1000%100%10)+48; speed=count1*3.14*diameter/disc/2;//單位是mm/s因為定時兩秒所以除以2 bai1=(speed/100)+48; shi1=(speed%100/10)+48; ge1=(speed%100%10)+48; count1=0; } TR1=1;}voidgoahead()//小車直走{ IN1=1; IN2=0; IN3 =1; IN4=0;}voidgoback() //小車后退{(lán) IN1=0; IN2=1; IN3=0; IN4=1;}voidturnright() //小車向右轉(zhuǎn){ IN1=1; IN2=0; IN3=0; IN4=1;}voidturnleft() //小車向左轉(zhuǎn){ IN1=0; IN2=1; IN3=1; IN4=0;}voidzw_turnright() //用于轉(zhuǎn)彎時的左轉(zhuǎn){ IN1=1; IN2=0; IN3=0; IN4=0;}voidzw_turnleft() //用于轉(zhuǎn)彎時的右轉(zhuǎn){ IN1=0; IN2=0; IN3=1; IN4=0;}voidstop() //小車停止{ IN1=0; IN2=0; IN3=0; IN4=0;}voidPWM(void)//小車調(diào)速{PWM_ENA=1;PWM_ENB=1;delayXms(H);PWM_ENA=0;PWM_ENB=1;delayXms(L); PWM_ENA=0;PWM_ENB=0;delayXms(N);}voidtrack(void){uchartemp=0;temp=P1&0x0f;//取P1口低四位賦給變量tempswitch(temp){case0x09:goahead();//直走 break;case0x0c: case0x0e:turnleft();//左轉(zhuǎn) break; case0x03: case0x07:turnright();//右轉(zhuǎn) break; case0x0f:goback();//后退 break; case0x00: stop();//停止 break; case0x08: zw_turnleft();//用于直角轉(zhuǎn)彎時的左轉(zhuǎn) delayXms(20); break; case0x01: zw_turnright(); //用于直角轉(zhuǎn)彎時的右轉(zhuǎn) delayXms(20); break;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年劇本殺運(yùn)營公司綠色運(yùn)營推廣管理制度
- 2025年生態(tài)濕地公園建設(shè)可行性分析:技術(shù)創(chuàng)新與生態(tài)濕地修復(fù)
- 農(nóng)業(yè)病蟲害防控智能化趨勢:2025年監(jiān)測預(yù)警系統(tǒng)可行性報告
- 2026年生物科技行業(yè)創(chuàng)新報告及基因編輯技術(shù)臨床應(yīng)用
- 2025年跨境電商獨(dú)立站品牌忠誠度培養(yǎng)報告
- 2025年新能源汽車五年市場報告
- 生態(tài)養(yǎng)殖循環(huán)產(chǎn)業(yè)鏈建設(shè)項目2025年技術(shù)創(chuàng)新與農(nóng)業(yè)產(chǎn)業(yè)鏈優(yōu)化可行性研究
- 冷鏈物流配送路徑優(yōu)化系統(tǒng)開發(fā)可行性研究報告-2025年行業(yè)挑戰(zhàn)與對策
- 介休教師面試題目及答案
- 前列腺相關(guān)問題解答與護(hù)理
- 2026年酒店住宿預(yù)訂合同
- 選舉法知識課件
- 2026云南省產(chǎn)品質(zhì)量監(jiān)督檢驗研究院招聘編制外人員2人筆試備考題庫及答案解析
- 2026年1月浙江省高考首考選考地理試卷試題(含答案)
- 人教版PEP五年級英語上冊“閱讀理解”專項練習(xí)(含答案)
- 中學(xué)生網(wǎng)絡(luò)社交行為調(diào)查報告
- 2025-2026學(xué)年大象版小學(xué)科學(xué)五年級上冊期末復(fù)習(xí)卷及答案
- 精益工程師考試試題及答案2
- 道路清掃保潔服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 2025年牛肉醬行業(yè)分析報告及未來發(fā)展趨勢預(yù)測
- 2024腦動靜脈畸形多學(xué)科診療專家共識
評論
0/150
提交評論