基于PSoC的超聲波測(cè)距及其語音播報(bào)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第1頁(yè)
基于PSoC的超聲波測(cè)距及其語音播報(bào)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第2頁(yè)
基于PSoC的超聲波測(cè)距及其語音播報(bào)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第3頁(yè)
基于PSoC的超聲波測(cè)距及其語音播報(bào)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第4頁(yè)
基于PSoC的超聲波測(cè)距及其語音播報(bào)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于PSoC的超聲波測(cè)距及其語音播報(bào)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)作者姓名: 張昊天指導(dǎo)教師: 馬學(xué)文副教授單位名稱: 信息科學(xué)與工程學(xué)院專業(yè)名稱: 電子信息工程?hào)|北大學(xué)2021年6月DesignandImplementationofultrasonicmeasurementofdistanceandnumberofvoicereportingbasedonPSOCbyZHANGHaoTianSupervisor:AssociateProfessorMAXuWenNortheasternUniversityJune2021畢業(yè)設(shè)計(jì)〔論文〕任務(wù)書畢業(yè)設(shè)計(jì)〔論文〕題目:基于PSoC的超聲波測(cè)距及其語音播報(bào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)設(shè)計(jì)(論文)的根本內(nèi)容:(1)了解PSoC開發(fā)板和超聲測(cè)距模塊的根本情況。(2)編寫超聲測(cè)距程序用于測(cè)距。(3)編寫語音朗讀程序用于報(bào)數(shù)。(4)搭建硬件平臺(tái)以運(yùn)行軟件程序。畢業(yè)設(shè)計(jì)〔論文〕專題局部:題目:設(shè)計(jì)或論文專題的根本內(nèi)容:學(xué)生接受畢業(yè)設(shè)計(jì)〔論文〕題目日期第2周指導(dǎo)教師簽字:201基于PSoC的超聲波測(cè)距及其語音報(bào)數(shù)系統(tǒng)的實(shí)現(xiàn)摘要由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量,如測(cè)距儀和物位測(cè)量?jī)x等都可以通過超聲波來實(shí)現(xiàn)。利用超聲波檢測(cè)往往比擬迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能到達(dá)工業(yè)實(shí)用的要求。超聲波測(cè)距的原理是利用超聲波在空氣中的傳播速度為,測(cè)量聲波在發(fā)射后遇到障礙物反射回來的時(shí)間,根據(jù)發(fā)射和接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。由此可見,超聲波測(cè)距原理與雷達(dá)原理是一樣的。基于以上原因超聲波測(cè)距主要應(yīng)用于倒車提醒、建筑工地、工業(yè)現(xiàn)場(chǎng)等的距離測(cè)量。本文介紹了一種基于srf06超聲模塊的超聲波測(cè)距的設(shè)計(jì)方案,在分析國(guó)內(nèi)外超聲波測(cè)距開展現(xiàn)狀和工作特點(diǎn)的根底上,結(jié)合PSOC的特點(diǎn),實(shí)現(xiàn)距離的精確測(cè)量,和語音報(bào)數(shù),使人機(jī)工程更加人性化。系統(tǒng)采用CYPRESS公司的PSOC3為主要開發(fā)平臺(tái),其最大特點(diǎn)是在其內(nèi)核周圍集成了大量器件,根本不用外接其它器件。本設(shè)計(jì)中以其自身集成的計(jì)數(shù)器來對(duì)回聲信號(hào)進(jìn)行技術(shù)進(jìn)而通過算法確定距離。以其自身集成的DA對(duì)數(shù)字信號(hào)進(jìn)行處理進(jìn)而再由自身集成的OPMAP進(jìn)行放大通過io口輸出實(shí)時(shí)語音信號(hào),通過揚(yáng)聲器進(jìn)行播放。本系統(tǒng)采用PSOCCRETER軟件對(duì)程序進(jìn)行編譯。其中不僅包括代碼的編譯同時(shí)也包括根據(jù)所用器件而畫出的原理圖的編譯,這也是psoc的一個(gè)特點(diǎn)。通過MiniProg3將程序下載到芯片中,進(jìn)而對(duì)系統(tǒng)進(jìn)行測(cè)試。這些工具的使用,使得軟件的設(shè)計(jì)編程和調(diào)試工作得到了保證。經(jīng)過一系列的調(diào)試,本系統(tǒng)完成了預(yù)定目標(biāo)。關(guān)鍵詞:PSoC超聲測(cè)距模塊揚(yáng)聲器DAOPAMPDesignandImplementationofultrasonicmeasurementofdistanceandnumberofvoicereportingbasedonPSOCAbstractBcauseultrasonic’sdirectionalisstrong,slowenergyconsumption,longdistancepropagationinthemedium,thereforeultrasoundisoftenusedfordistancemeasurement.Forexampletherangefinderandlevelmeasurementandsoondependnotheultrasonic.Ultrasonictestingisoftenrapid,convenient,simplecalculationandeasytodoreal-timecontrol,Andthemeasurementaccuracytoachieveindustrialandpracticalrequirements.Theultrasonicdistancemeasurementprincipleistheuseofultrasonicpropagationvelocityintheairisknown,measuringthesoundwavesencounterobstaclesreflectedbackafterlaunch,accordingtothetransmittingandreceivingtimedifferencetocalculatetheactualdistancetothelaunchpointtotheobstacles.Thus,theprincipleofultrasonicrangingandradarprincipleisthesame.Basedontheabovereasonsultrasonicdistancemeasurementusedinreversingreminder,constructionsites,industrialsites,suchasdistancemeasurement.ThisarticledescribesadesignbasedonSrF06ultrasoundmodule.Accuratemeasurementofdistance,andthenumberofvoicereportingonthebasisofanalysisofthedevelopmentstatusandworkcharacteristicsofultrasonicdistancemeasurementathomeandabroad,combinedwiththecharacteristicsofPSOCtomakesprojectofmorehumane.ThesystemusesthetheCYPRESScompanyPSOC3asthemaindevelopmentplatform,itsmostimportantfeatureisintegratedinitscoresurroundedbyalargenumberofdevices,andalmostnoneedotherexternaldevices..Thedesignbyitsownintegratedcountertocountthelengthofechosignalandthenbythealgorithmtodeterminethedistance.OwnintegrationofDAonthedigitalsignalprocessingwhichcanthenbeamplifiedbyitsownOPMAPzoomandreal-timevoicesignalbyioportoutput.ThesystemusesthePSOCCRETERsoftwaretocompiletheprogram.Whichincludesnotonlythecompilationofthecodealsoincludesthecompilationofschematic.Thisisalsoafeatureofpsoc.ByMiniProg3,theprogramdownloadedtothechip,andthentestthesystem.Thesoftwareprogramminganddebuggingofthedesignworkhasbeenensuredbytheuseofthesetools.Afteraseriesofdebugging,thesystemtoachievethetarget.Keywords:PSOCultrasoundmodulespeakerDAOPAMP目錄畢業(yè)設(shè)計(jì)〔論文〕任務(wù)書 〔5〕I2C總線模塊:I2C外設(shè)提供了同步兩線接口用來與PSoC設(shè)備進(jìn)行連接,I2C總線與Philip的I2C標(biāo)準(zhǔn)版本兼容。額外的I2C接口能通過使用UDB進(jìn)行例化。圖2.9I2C總線模塊圖(6)CAN總線模塊:CAN外設(shè)是一個(gè)全功能的控制器局域網(wǎng)絡(luò)〔ControllerAreaNetwork,CAN〕,最大通信波特率為1Mbps。CAN控制器支持CAN和標(biāo)準(zhǔn),并且和ISO-11898-1標(biāo)準(zhǔn)一致。CAN總線最初用于汽車領(lǐng)域的應(yīng)用,主要集中在高級(jí)的缺陷檢測(cè)。這保證了低本錢的高可靠性的應(yīng)用。圖2.10CAN總線模塊圖(7)USB總線模塊:PSoCUSB作為一個(gè)USB設(shè)備和一個(gè)主機(jī)進(jìn)行通信。USB模塊作為PSoC內(nèi)的一個(gè)固定功能的設(shè)備。只支持全速通信〔12Mbps〕,并且和協(xié)議兼容。USB設(shè)備設(shè)計(jì)成即插即用,也支持熱插拔。USB模塊圖〔8〕通用數(shù)字塊UDB:UDB是由可編程邏輯PLD、結(jié)構(gòu)邏輯〔數(shù)據(jù)通道〕和靈活的布線資源來提供在這些元件、I/O連接和其它外設(shè)之間的互聯(lián)。比方最簡(jiǎn)單的功能是定時(shí)器、計(jì)數(shù)器、CRC生成器、PWM、死區(qū)生成器,通信功能包括UART、SPI、I2C。在可利用資源范圍內(nèi),PLD塊及其連接性,提供了全特性的通用可編程邏輯。圖2.12UDB模塊結(jié)構(gòu)圖〔9〕模擬前端模塊:模擬前端模塊為PSoC3提供了強(qiáng)大的模擬可編程能力,也是PSoC3比其它MCU功能更加強(qiáng)大的一個(gè)具體的表達(dá)。PSoC3的模擬前端模塊的使用提高了系統(tǒng)可靠性和系統(tǒng)設(shè)計(jì)本錢。〔10〕ADC和DAC模塊:PSoC3包含一個(gè)Δ-ΣADC。這個(gè)ADC提供了差分輸入,高分辨率和良好的線性度,該ADC可用于聲音信號(hào)處理和測(cè)量方面的應(yīng)用。Δ-Σ內(nèi)部功能原理圖在PSoC中的ADC模塊的具體結(jié)構(gòu)包括:輸入放大器;提供高輸入阻抗和用戶可選擇的增益。3階Δ-Σ調(diào)制器抽取器抽取器包含一個(gè)4階的CIC抽取濾波器和后端處理單元。PSoC提供了4個(gè)數(shù)-模轉(zhuǎn)換器DAC。每個(gè)DAC為8位,能配置成電壓或電流輸出。DAC支持Capsense,電源管理和波形生成等。圖2.14DAC模塊內(nèi)部結(jié)構(gòu)圖。 其特點(diǎn)主要包括:可調(diào)255級(jí)步長(zhǎng)的電壓或電流輸出;可編程的臺(tái)階大小〔取決于范圍〕;8位標(biāo)定用于校正25%的增益誤差;電流輸出模式下,源〔source〕和吸收(sink)選項(xiàng);電流模式下,8Msps的轉(zhuǎn)換率電壓模式下1Mbps的轉(zhuǎn)換率。單調(diào)性〔11〕電容感應(yīng)模塊:CapSense〔電容感應(yīng)〕系統(tǒng)提供了豐富和高效的手段來測(cè)量電容量,比方觸摸感應(yīng)按鍵,滑動(dòng)塊,接近度檢測(cè)。CapSense系統(tǒng)使用系統(tǒng)資源配置,包括一些用于CapSense硬件功能。圖2.15電容感應(yīng)模塊結(jié)構(gòu)圖〔12〕數(shù)字濾波器模塊:數(shù)字濾波器模塊〔DigitalFilterBlock,DFB〕有一個(gè)專用的乘法器和累加器在一個(gè)時(shí)鐘周期內(nèi)計(jì)算24x24位的乘法和48位的累加算法。這樣就能直接將直接形式的有限脈沖響應(yīng)濾波器〔FiniteImpulseResponse,F(xiàn)IR〕,因此一個(gè)時(shí)鐘就可以計(jì)算一個(gè)FIR結(jié)果。圖2.16數(shù)字濾波模塊結(jié)構(gòu)圖PSoCCreator相關(guān)知識(shí)介紹PSoCCreator的簡(jiǎn)介PSoCCreator2.0〔以下簡(jiǎn)稱PSoCCreator〕是最先進(jìn)的集成開發(fā)環(huán)境〔IntegratedDevelopmentEnvironment,IDE,帶有創(chuàng)新性的圖形設(shè)計(jì)編輯器,構(gòu)成獨(dú)特而強(qiáng)大的硬件/軟件協(xié)同設(shè)計(jì)環(huán)境。圖形化的設(shè)計(jì)入口簡(jiǎn)化了配置一個(gè)特殊元件的任務(wù)。設(shè)計(jì)者可以從元件庫(kù)內(nèi)選擇所要求的功能,并且將其放置在設(shè)計(jì)中。所有的參數(shù)化元件都有一個(gè)編輯器對(duì)話框,允許設(shè)計(jì)者根據(jù)需要對(duì)功能進(jìn)行裁減〔定制〕。PSoCCreator軟件平臺(tái)自動(dòng)的配置和布線I/O到所選擇的引腳,并且為給定的應(yīng)用產(chǎn)生應(yīng)用程序接口函數(shù)API。修改PSoC的配置是非常簡(jiǎn)單的,比方添加一個(gè)新元件,設(shè)置它的參數(shù)和重新建立(rebuilding)工程等。在開發(fā)的任何階段,設(shè)計(jì)人員都能很自由的修改硬件配置,甚至是目標(biāo)處理器。設(shè)計(jì)者可以將應(yīng)用修改到新的目標(biāo)上〔硬件和軟件〕,甚至是從8位平臺(tái)移植到32位平臺(tái)上〔只需要選擇新的設(shè)備,并進(jìn)行重新的建立〕。設(shè)計(jì)者也可以修改C編譯器和進(jìn)行性能評(píng)估。2.4.2PSoCCreatorPSoCCreator軟件平臺(tái)自動(dòng)的配置和布線I/O到所選擇的引腳,并且為給定的應(yīng)用產(chǎn)生應(yīng)用程序接口函數(shù)API。修改PSoC的配置是非常簡(jiǎn)單的,比方添加一個(gè)新元件,設(shè)置它的參數(shù)和重新建立(rebuilding)工程等。在開發(fā)的任何階段,設(shè)計(jì)人員都能很自由的修改硬件配置,甚至是目標(biāo)處理器。設(shè)計(jì)者可以將應(yīng)用修改到新的目標(biāo)上〔硬件和軟件〕,甚至是從8位平臺(tái)移植到32位平臺(tái)上〔只需要選擇新的設(shè)備,并進(jìn)行重新的建立〕。設(shè)計(jì)者也可以修改C編譯器和進(jìn)行性能評(píng)估PSoCCreator軟件平臺(tái)的特點(diǎn)主要有:集成了原理圖捕獲功能用于設(shè)備配置;可供選擇的豐富的元件IP核資源;集成了源代碼編輯器;內(nèi)置調(diào)試器;支持自定義元件創(chuàng)立〔設(shè)計(jì)重用〕功能;系統(tǒng)注解〔Annotation〕設(shè)計(jì)功能;靜態(tài)時(shí)序〔StaticTimingAnlysis,STA〕分析功能;PSoC3編譯器-KeilCA51〔無代碼大小限制〕;PSoC5編譯器-CodeSourcery的SourceryGLite版本PSoCCreator的程序下載與調(diào)試1.開發(fā)板默認(rèn)的編程接口是一個(gè)基于USB的板上編程接口。當(dāng)給PSoC3編程時(shí),將USB電纜插到開發(fā)板的編程USB連接器J1接口。當(dāng)使用板上編程器時(shí),不需要外部的12V電源或9V的電池電源。用于編程的USB電源可用于開發(fā)板的供電。如果板子已經(jīng)從其它地方供電的話,插入U(xiǎn)SB編程接口不會(huì)損壞開發(fā)板。2.板上的PSoC3芯片也可以通過使用MiniProg3〔CY8CKIT-002〕。當(dāng)使用MiniProg3編程PSoC3時(shí),使用開發(fā)板上的連接器J3。3.用下載電纜連接目標(biāo)系統(tǒng)和計(jì)算機(jī)的USB接口〔可選擇前面兩種方法中其中的一種〕;4.在PSoCCreator主界面下選擇Debug->Program,在PSoCCreator輸出窗口信息,表示正在編程和編程成功的信息〔第一次使用,需要設(shè)置編程環(huán)境〕。5.一直等待編程成功為止。在PSoCC主界面主菜單下,選擇Debug->Debug選項(xiàng),翻開調(diào)試器主界面。為了觀察程序?qū)Χ丝诘目刂?,在工程管理窗口,找到文件。?章超聲波測(cè)距方法的設(shè)計(jì)與實(shí)現(xiàn)超聲波測(cè)距方法的設(shè)計(jì)與實(shí)現(xiàn).1超聲測(cè)距模塊的概述〔1〕該模塊可提供2cm——450cm的非接觸式距離感測(cè)功能,測(cè)距精度可到達(dá)3mm,模塊包括超聲波發(fā)生器、接收器和控制電路?!?〕引腳定義:VCC5V電源GND為地線TRIG觸發(fā)控制,信號(hào)輸入ECHO回響信號(hào)輸出〔3〕電氣參數(shù)電氣參數(shù)HY—SRF05超聲波模塊工作電壓DC5V工作電流15mA工作頻率40Hz最遠(yuǎn)射程最近射程2cm測(cè)量角度15度輸入觸發(fā)信號(hào)10us的TTL脈沖輸出回響信號(hào)輸出TTL電平信號(hào)與射程成正比規(guī)格尺寸45*20*15mm〔4〕圖超聲模塊時(shí)序圖〔5〕圖3.2實(shí)物規(guī)格圖.2超聲模塊的工作原理根本工作原理:〔1〕采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);〔2〕模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;〔3〕有信號(hào)返回,通過IO口ECHO輸出一個(gè)高電平,高電平持續(xù)時(shí)間就是超聲波發(fā)射到返回的時(shí)間。3.2PSoC產(chǎn)生觸發(fā)信號(hào)與對(duì)超聲模塊產(chǎn)生回聲信號(hào)的接收及其處理方法設(shè)計(jì)IO口產(chǎn)生觸發(fā)信號(hào)與接收回聲信號(hào)的方法圖Pin_1口電路器件圖上圖為電路原理圖中的接受回聲信號(hào)的IO口Pin_1。調(diào)用軟件生成的庫(kù)函數(shù)Pin_1_Read〔〕來測(cè)試Pin_1口的回聲信號(hào)是否為高,當(dāng)是高電平時(shí)那么啟動(dòng)計(jì)數(shù)器來計(jì)算時(shí)間。下面是該讀取端口數(shù)據(jù)函數(shù)的程序:uint8Pin_1_Read(void){return(Pin_1_PS&Pin_1_MASK)>>Pin_1_SHIFT;}用于讀取Pin_1口的電平。與之類似的是大于10us的觸發(fā)信號(hào)的生成。圖Pin_2電路器件圖上圖是觸發(fā)引腳Pin_2電路器件圖。產(chǎn)生方法是調(diào)取自動(dòng)生成的庫(kù)函數(shù)Pin_2_Write()函數(shù)對(duì)管腳進(jìn)行賦值程序如下:voidPin_2_Write(uint8value){uint8staticBits=Pin_2_DR&~Pin_2_MASK;Pin_2_DR=staticBits|((value<<Pin_2_SHIFT)&Pin_2_MASK);}。用于對(duì)Pin_2口進(jìn)行賦值Pin_2_Write(1);delay_20us();Pin_2_Write(0);使用端口的賦值函數(shù)用以產(chǎn)生一段大于10us的高電平以觸發(fā)超聲波的發(fā)射。計(jì)數(shù)器計(jì)算時(shí)間圖計(jì)數(shù)器及相關(guān)器件的電路器件圖當(dāng)檢測(cè)到回聲信號(hào)為高電平時(shí)啟動(dòng)計(jì)數(shù)器和時(shí)鐘,當(dāng)回聲信號(hào)變?yōu)榈碗娖綍r(shí),計(jì)數(shù)器停止并且恢復(fù)初始狀態(tài)。其中需要注意的是復(fù)位端口一定要接數(shù)字地,clock端口接一個(gè)時(shí)鐘信號(hào)。下面是相關(guān)的程序:voidClock_1_Start(void){Clock_1_CLKEN|=Clock_1_CLKEN_MASK;}用于開啟時(shí)鐘voidCounter_1_WriteCounter(uint16counter){#if(Counter_1_UsingFixedFunction)CY_SET_REG16(Counter_1_COUNTER_LSB_PTR,(uint16)counter);#elseCY_SET_REG16(Counter_1_COUNTER_LSB_PTR,counter);#endif}用于對(duì)計(jì)數(shù)器賦初值,賦值內(nèi)容由計(jì)數(shù)器的工作方式?jīng)Q定。voidCounter_1_Start(void){if(Counter_1_initVar==0u){Counter_1_Init();Counter_1_initVar=1u;}Counter_1_Enable();}if(Pin_1_Read()==1){if(cflag==0){Counter_1_Start();Counter_1_WriteCounter(65535);cflag=1;}if(distance_data>65535)break;if(StartFlag==0){StartFlag=1;outcome=0;distance_data=outcome;}}else{if(StartFlag==1){outcome=65535-Counter_1_ReadCounter();distance_data=outcome;distance_data/=2;distance_data/=58;本段程序的功能是當(dāng)檢測(cè)到高電平時(shí),如果計(jì)數(shù)器標(biāo)志位為0那么開啟計(jì)數(shù)器為1那么跳過,這保證了每檢測(cè)一次回波只啟動(dòng)一次計(jì)數(shù)器保證了計(jì)數(shù)的正確性。當(dāng)檢測(cè)的數(shù)據(jù)超過規(guī)定范圍是那么跳出程序。當(dāng)有回聲信號(hào)返回時(shí)如果處理標(biāo)志位為0,那么標(biāo)志位設(shè)為1,并且清零數(shù)據(jù)存放器。當(dāng)處理標(biāo)志位為1時(shí)對(duì)數(shù)據(jù)進(jìn)行處理,由于計(jì)數(shù)器是倒序的那么真實(shí)數(shù)據(jù)為初值與計(jì)數(shù)器所顯示的值的差。由于計(jì)數(shù)器的時(shí)鐘是2MHZ的所以真實(shí)時(shí)間為除2后的結(jié)果根據(jù)微秒和厘米之間的轉(zhuǎn)化關(guān)系可以知道其為約58倍的關(guān)系,由此可知以厘米為單位的最終數(shù)據(jù)。3.3PSoC對(duì)超聲模塊產(chǎn)生信號(hào)的接收與處理的實(shí)現(xiàn)圖PSoC的軟件硬件開發(fā)設(shè)計(jì)流程圖.1系統(tǒng)開發(fā)運(yùn)行環(huán)境及必要工具硬件配置:IntelCOREi7CPUGHz內(nèi)存4G硬盤750G操作系統(tǒng):MicrosoftWindows7家庭高級(jí)版程序開發(fā)工具:PSoCcreator2.0PSoCcreator2.0是整個(gè)系統(tǒng)能夠運(yùn)行的根底,PSoCCreator2.0〔以下簡(jiǎn)稱PSoCCreator〕是最先進(jìn)的集成開發(fā)環(huán)境〔IntegratedDevelopmentEnvironment,IDE〕,帶有創(chuàng)新性的圖形設(shè)計(jì)編輯器,構(gòu)成獨(dú)特而強(qiáng)大的硬件/軟件協(xié)同設(shè)計(jì)環(huán)境。圖形化的設(shè)計(jì)入口簡(jiǎn)化了配置一個(gè)特殊元件的任務(wù)。設(shè)計(jì)者可以從元件庫(kù)內(nèi)選擇所要求的功能,并且將其放置在設(shè)計(jì)中。所有的參數(shù)化元件都有一個(gè)編輯器對(duì)話框,允許設(shè)計(jì)者根據(jù)需要對(duì)功能進(jìn)行裁減。.2IO口的設(shè)置IO口的設(shè)置是在原理圖局部完成的,也就是編程的硬件局部。從已有的器件庫(kù)中調(diào)用數(shù)字端口雙擊圖標(biāo)就可以進(jìn)行設(shè)置了。下面是Pin_1口IO的設(shè)置界面。圖IO配置界面圖Type欄中設(shè)置為DigitalInput模式其它選項(xiàng)均不選擇。圖IO配置界面圖General欄中DriveMode設(shè)置為StrongDrive,InitialState設(shè)置為L(zhǎng)ow圖IO配置界面圖Input欄中Threshold設(shè)置為CMOS,并且不設(shè)置中斷,之后開啟輸入時(shí)能。Pin_2口的設(shè)置方法與Pin_1口的設(shè)置方法是類似的,但是在具體的步驟上有很大的不同:Type欄中選擇digitaloutputGeneral欄中Drivemode選擇strongDrive模式初始電平設(shè)置為低。下列圖為最大不同之處在output欄slewrate設(shè)置為FastDrivelevel設(shè)置為FastDriveLevel設(shè)置為Vddio

current設(shè)置為4mAsource,8mAsink圖IO配置界面圖3.3計(jì)數(shù)器用于計(jì)算從激發(fā)到回音的時(shí)間,準(zhǔn)確的說是超聲模塊所產(chǎn)生的高電平的時(shí)間。這里我調(diào)用了元件庫(kù)中的計(jì)數(shù)器,并對(duì)其進(jìn)行配置。配置界面如下圖圖3.11計(jì)數(shù)器配置界面圖Resolution設(shè)置為16-BitImplementation設(shè)置為Max為65535圖3.12計(jì)數(shù)器配置界面圖上圖是計(jì)數(shù)器所用時(shí)鐘設(shè)置圖這里把時(shí)鐘選為新設(shè)置的時(shí)鐘頻率設(shè)置為2MHZ以上是本次設(shè)計(jì)中的計(jì)數(shù)器配置方案,經(jīng)過驗(yàn)證此計(jì)數(shù)器能正常工作,滿足系統(tǒng)需求。超聲波測(cè)距的測(cè)試3.超聲測(cè)距模塊及PSoC的操作與運(yùn)行結(jié)果按照下列圖的管腳配制方法連接管腳圖管腳配置圖連接完成后,電腦與仿真器,仿真器與開發(fā)板,之后接通電源。之后按Buildcsb2進(jìn)行仿真,仿真結(jié)果如下圖圖Build成功顯示界面代表仿真成功。之后向芯片中下載程序點(diǎn)擊Debug-selectDebugTarget如下圖對(duì)目標(biāo)進(jìn)行選擇圖下載目標(biāo)選擇界面上圖并沒有目標(biāo),當(dāng)連接時(shí)會(huì)出現(xiàn)目標(biāo)板的型號(hào)和名稱。下載并運(yùn)行時(shí)會(huì)出現(xiàn)下列圖所示信息上圖代表已經(jīng)下載運(yùn)行成功了。圖編譯成功顯示界面3.性能測(cè)試手持超聲波探頭在不同距離不同的外表進(jìn)行測(cè)試,再用米尺進(jìn)行測(cè)量,得到相同的結(jié)論,精度為1cm,與設(shè)計(jì)相符,證明超聲波測(cè)距局部程序是成功的。在此階段,有錄像可以參考。下面是測(cè)試時(shí)實(shí)物圖:圖3.17實(shí)物測(cè)試圖此外還有測(cè)試的錄像視頻可以參考。第4章音頻播放系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)4.1音頻文件的處理方式〔在這里要聲明的是本來應(yīng)該使用8k的采樣平率,但是受制于存儲(chǔ)空間的問題這里使用6k的采樣平率代替〕首先要介紹用這局部開發(fā)的幾塊軟件(1)WinHex是一個(gè)專門用來對(duì)付各種日常緊急情況的小工具。它可以用來檢查和修復(fù)各種文件、恢復(fù)刪除文件、硬盤損壞造成的數(shù)據(jù)喪失等。同時(shí)它還可以讓你看到其他程序隱藏起來的文件和數(shù)據(jù)。總體來說是一款非常不錯(cuò)的16進(jìn)制編輯器。在本課題中可以用來直接對(duì)WAV文件里面的信息進(jìn)行提取,而且可以再編輯選項(xiàng)里面直接生成符合C語言格式的數(shù)組文件,非常的方便,節(jié)約了大量時(shí)間?!?)WaveCN是一款32位免費(fèi)音頻編輯軟件,可運(yùn)行于Windows98/2000/XP等版本的操作系統(tǒng),用戶可以通過本軟件對(duì)音頻數(shù)據(jù)進(jìn)行輯修改和創(chuàng)造特殊效果。WaveCN是免費(fèi)的錄音軟件,支持音頻編輯和音頻效果處理,主要功能特性包括:強(qiáng)大而靈活的錄音功能;支持WAV、Ogg、MP3、WMA等文件格式;可對(duì)音頻數(shù)據(jù)進(jìn)行剪切、復(fù)制、粘貼等十?dāng)?shù)種編輯操作;多種音頻處理特效;在本課題中這塊軟件是至關(guān)重要的,由于我是用的是win7系統(tǒng),錄音機(jī)的生成文件不再是以前的WAV文件而是WMA這種格式,所以我就學(xué)要進(jìn)行格式轉(zhuǎn)換。而且需要對(duì)很多如采樣率的參數(shù)進(jìn)行設(shè)定并生成WAV文件,這款軟件在這方面發(fā)揮了不可替代的作用。而且操作簡(jiǎn)單,很容易上手。(3)MATLAB是矩陣實(shí)驗(yàn)室〔MatrixLaboratory〕的簡(jiǎn)稱,是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大局部。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線現(xiàn)行動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語言〔如C、Fortran〕的編輯模式,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平。本課題中matlab是用來處理加工音頻數(shù)組的重要工具,沒有他對(duì)元素較多的數(shù)組進(jìn)行處理是很困難的。下面是音頻文件的獲取處理流程:使用錄音機(jī)錄制0-9十百共十二個(gè)聲音文件,錄制格式為WMA格式再使用WaveCN軟件對(duì)文件進(jìn)行處理,主要是進(jìn)行截取有用的片段,并且設(shè)置采樣率和轉(zhuǎn)換為WAV文件具體過程如下:〔1〕圖WaveCN軟件界面點(diǎn)擊文件-翻開這里以0.WAV為例子翻開之后如圖〔2〕〔2〕圖解碼界面再點(diǎn)擊解碼會(huì)出現(xiàn)以下界面〔3〕圖源文件解碼波形圖這是聲音文件的解碼波形?,F(xiàn)在我們要對(duì)該文件進(jìn)行處理都得到8位6000采樣率單聲道的聲音文件,下列圖為設(shè)置轉(zhuǎn)換方式的界面和設(shè)置方法。圖4.4轉(zhuǎn)化配置界面轉(zhuǎn)換之后得到下面的波形圖4.5轉(zhuǎn)化后波形圖在對(duì)上面波形進(jìn)行截取,到達(dá)時(shí)間和采樣點(diǎn)數(shù)較為適宜的波形段。進(jìn)行截取后得到下列圖圖4.6截取后波形圖最后把這個(gè)有效的文件另存為WAV文件。經(jīng)過上述處理就可以得到有用的WAV文件。以便完成下面的工作。下一步工作是把上面的得到WAV文件用WinHex軟件進(jìn)行處理得到C語言編程中用到的音頻數(shù)組數(shù)據(jù)。具體過程如下:WinHex的界面之后翻開之前得到WAV文件的到了文件的內(nèi)部數(shù)據(jù)如下圖:圖4.8WAV內(nèi)部數(shù)據(jù)之后就要把得到的數(shù)據(jù)轉(zhuǎn)化為C語言所識(shí)別的數(shù)組形式。選中要復(fù)制的數(shù)據(jù)右鍵點(diǎn)擊選擇edit->copyblock->csource之后新建立一個(gè)txt文檔就可以復(fù)制得到想要的數(shù)組在經(jīng)過一些必要的處理如把數(shù)據(jù)固化在flash里面所用到的關(guān)鍵字const和code就可以得到最終我們想要的數(shù)組形式如下列圖所示:圖4.9c語言數(shù)組數(shù)據(jù)上面只是其中一個(gè)音頻文件的處理過程,除此之外還有11個(gè)文件進(jìn)行類似處理就可以了,得到10個(gè)阿拉伯?dāng)?shù)字和百,十的發(fā)音,以便在編寫程序時(shí)進(jìn)行調(diào)用。4.2相關(guān)器件的介紹及設(shè)置方式音頻局部主要使用了8位DAC和運(yùn)放兩種器件,用法是在電路圖中進(jìn)行調(diào)用并且進(jìn)行配置,以讓其正常工作,到達(dá)預(yù)定效果。如下列圖所示:圖4.10音頻局部電路器件圖這里的DAC和Opamp都是元件庫(kù)里存在的,直接調(diào)用即可。下面是原件配置圖:圖4.11DAC配置界面Speed設(shè)置為slowDataSource選擇CPUorDMA選項(xiàng)StrobeMode設(shè)置為RegisterWrite以上是本次課題中DAC的配置方法。圖4.12運(yùn)放配置界面Mode設(shè)置為FollowerPower設(shè)置為HighPower以上是放大器的配置方法,可以使播放的聲音更清晰可辨。如果不適用放大器,揚(yáng)聲器播放的聲音會(huì)很小,不容易進(jìn)行區(qū)分。需要注意的是在音頻的輸出端口的選擇上選擇了OpampOut型的端口,這樣的選擇有助于對(duì)聲音的放大。音頻播放的實(shí)現(xiàn)與性能測(cè)試音頻的播放主要依靠算法中對(duì)音頻數(shù)組的調(diào)用,并調(diào)用庫(kù)函數(shù)把數(shù)據(jù)寫到DAC中去。要讀出聲音并不難,關(guān)鍵是在算法中完成讀數(shù)細(xì)節(jié)的正確,不會(huì)出現(xiàn)一些我們不常見的讀法。下面是該算法相關(guān)的一些程序段:voidOpamp_1_Start(void){if(Opamp_1_initVar==0u){Opamp_1_initVar=1u;Opamp_1_Init();}}本段程序作為開啟運(yùn)放之用,其中Opamp_1_Enable()函數(shù)在頭文件中已經(jīng)聲明過了這里直接調(diào)用。voidVDAC8_1_Start(void){if(VDAC8_1_initVar==0){VDAC8_1_Init();VDAC8_1_initVar=1;}VDAC8_1_Enable();VDAC8_1_SetValue(VDAC8_1_DEFAULT_DATA);}與上一個(gè)功能類似,為開啟DAC之用。voidVDAC8_1_SetValue(uint8value){#if(CY_PSOC5_ES1)VDAC8_1_intrStatus=CyEnterCriticalSection();#endifVDAC8_1_Data=value;#if(CY_PSOC3_ES2||CY_PSOC5_ES1)VDAC8_1_Data=value;#endif#if(CY_PSOC5_ES1)CyExitCriticalSection(VDAC8_1_intrStatus);#endif}本段程序作為DAC讀入數(shù)據(jù)之用,把八位數(shù)據(jù)輸入到DAC中去。a=distance_data/100;b=distance_data%100;c=b/10;d=b%10;作用是把得到的距離數(shù)據(jù)的百位十位個(gè)位別離,并且分別付給3個(gè)變量。switch(a) { case0:;break; case1:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_1[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case2:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_2[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case3:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_3[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case4:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_4[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case5:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_5[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case6:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_6[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case7:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_7[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case8:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_8[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case9:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_9[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; }以上只是程序的一局部,由于篇幅較大,不在這里一一寫出了,只寫了a變量情況c變量和d變量的情況與之類似。其大致過程是將距離數(shù)據(jù)的百位十位個(gè)位分別賦值給3個(gè)變量在運(yùn)用switch語句對(duì)各種情況進(jìn)行選擇,并夾帶有十和百的發(fā)音,進(jìn)而可以很好的讀出數(shù)值。比擬特殊的是在為0的時(shí)候,當(dāng)0在不同的位置,或者前面的為是否存在不同時(shí),0位讀法不同或不讀。經(jīng)過測(cè)試讀音還是十分清晰的,而且讀音的正確性也是有所保障的。音頻文件的頻譜分析本局部使用的是8000采樣8位單聲道的音頻文件,與之前的不同,因?yàn)檫@里論述的過程不存在存儲(chǔ)空間不夠的情況。這局部的操作組要依靠matlab軟件進(jìn)行完成。和以前一樣首先還是進(jìn)行錄音,之后對(duì)所錄聲音進(jìn)行處理,使他變成8000采樣8位單聲道的wav文件。之后把它復(fù)制到matlab的工作文件夾中。下面開始進(jìn)行matlab的操作,程序如下:>>x=wavread('00.wav');>>t=(0:length(x)-1)/8000;>>figure(1)>>plot(t,x)主要步驟是:讀取想要處理的聲音文件;計(jì)算時(shí)間軸的長(zhǎng)度和刻度;在figure1中畫出時(shí)域波形。圖4.13時(shí)域波形圖之后編寫下面的程序來得到其頻域波形:>>y=fft(x,2048);>>figure(2)>>fs=8000;>>f=fs*(0:1023)/2048;>>plot(f,abs(y(1:1024)))主要步驟是:對(duì)WAV文件數(shù)據(jù)進(jìn)行2048個(gè)點(diǎn)的快速福利葉變換得到數(shù)據(jù)存儲(chǔ);計(jì)算頻率軸的長(zhǎng)度和刻度;畫出頻域波形圖。圖4.14頻域波形圖由抽樣定理可知,在8000抽樣的情況下,4000hz以上的信號(hào)是不會(huì)顯示的,圖上顯示的都是頻率在4000hz以下的信號(hào)。通過對(duì)音頻文件進(jìn)行的頻譜分析,可以使我們更好地了解聲音的特性,以及不同的處理方法對(duì)聲音的影響,如采樣頻率對(duì)聲音信號(hào)的影響。第5章結(jié)論本文對(duì)超聲波測(cè)距和語音報(bào)數(shù)進(jìn)行了研究,進(jìn)而對(duì)超聲波的原理用途以及各種音頻文件的特點(diǎn)進(jìn)行了細(xì)致的研究。之后根據(jù)PSOC的自身特點(diǎn)對(duì)要求的系統(tǒng)進(jìn)行了設(shè)計(jì).由于硬件平臺(tái)的資源十分豐富,除去特殊的外設(shè),其他的很多模擬器件在原件庫(kù)中都能找到,并且在程序開發(fā)時(shí),也是軟件與硬件的協(xié)同設(shè)計(jì),使效率提高很多,而且性能也十分出色。通過測(cè)試,發(fā)現(xiàn)本文提出的超聲波測(cè)距并伴隨語音報(bào)數(shù)的功能是可以實(shí)現(xiàn)的并且效果是很理想的。通過與障礙物距離的變化,LCD上顯示數(shù)字也隨之改變,讀音也隨之改變,因此,本次設(shè)計(jì)是成功的。另外,本文的研究的方法只是測(cè)量距離,但是超聲波類似的用法還有很多,如水位的測(cè)量等,所以本次課題的設(shè)計(jì)對(duì)以后相關(guān)的學(xué)習(xí)也有很好的借鑒意義。特別值得一提是PSOC以及他的開發(fā)工具PSOCCREATOR,在本次課題之前我對(duì)他十分陌生,并不是十分了解他的情況,通過這次學(xué)習(xí)我對(duì)他有了初步的認(rèn)識(shí),但是這次用到的只是它功能的一小局部。我覺得他和以前遇到過的任何開發(fā)平臺(tái)都很不同,讓我對(duì)以系統(tǒng)設(shè)計(jì)的方法有了很多新的認(rèn)識(shí)但是,通過測(cè)試結(jié)果,也可以看出這種測(cè)距方法所存在的缺乏。比方精度不是很精確,分辨率只有厘米計(jì)級(jí)。還有就是測(cè)試結(jié)果有時(shí)會(huì)欠缺平穩(wěn),這也是需要改良的地方。總之通過這次畢業(yè)設(shè)計(jì)學(xué)到很多東西,對(duì)自己有了更加全面和深入的了解。參考文獻(xiàn)何賓.可編程片上系統(tǒng)PSoC設(shè)計(jì)指南[M].北京:化學(xué)工業(yè)出版社,2021.何賓.8051偏上可編程系統(tǒng)原理及應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2021.薛定宇,陳陽泉.高等應(yīng)用數(shù)學(xué)問題的MATLAB求解〔第2版〕[M].北京:清華大學(xué)出版社,.胡萍.超聲波測(cè)距儀的研制[J].計(jì)算機(jī)與現(xiàn)代化,2003,7(10):21~23.時(shí)德剛,劉嘩.超聲波測(cè)距的研究[J].計(jì)算機(jī)測(cè)量與控制,2002,9(10):31~33.蘇長(zhǎng)贊.紅外線與超聲波遙控[M].北京:.張謙琳.超聲波檢測(cè)原理和方法[M]..樊昌元,丁義元.高精度測(cè)距雷達(dá)研究[J].電子測(cè)量與儀器學(xué)報(bào),2000,9(8):35~37.蘇偉,鞏壁建.超聲波測(cè)距誤差分析[J].傳感器技術(shù),2004,3(4):17~20.何希才.傳感器技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.余成波.傳感器與自動(dòng)檢測(cè)技術(shù)[M].北京:高等教育出版社,2004.劉憲坤.?dāng)?shù)字音響技術(shù)[M].北京:人民郵電出版社,1992.林達(dá)悃.錄音聲學(xué)[M].北京:中國(guó)電影出版社,1995.程勇,童乃文.音響技術(shù)與[M]設(shè)備.浙江:浙江大學(xué)出版社,1993.韓憲柱.聲音制作根底.北京:中國(guó)播送電影出版社,2001.韓憲柱,劉日.聲音素材拾取與采集[M].北京:中國(guó)播送電影出版社,2002.J.C.惠特克.?dāng)?shù)字音頻技術(shù)寶典[M].張雪英,劉建霞譯.北京:科學(xué)出版社,2004.鄭秋生.平安技術(shù)及應(yīng)用[M].北京:電子工業(yè)出版社,2021:209-219.羅.伊.拉恩斯坦.當(dāng)代錄音技術(shù)[M].李

勛,林作堅(jiān)譯.北京:中國(guó)電影出版社,1983.黃

崢.淺談數(shù)字音頻格式[J].北京:?音響技術(shù)?,2002年4期.致謝歷時(shí)三個(gè)多月的畢業(yè)設(shè)計(jì)已經(jīng)根本上結(jié)束。在我即將開始的研究生階段的導(dǎo)師李晶皎教授和本次畢業(yè)設(shè)計(jì)的指導(dǎo)教師馬學(xué)文副教授的認(rèn)真督導(dǎo)下,在實(shí)驗(yàn)室榮超群學(xué)長(zhǎng)王澤坤同學(xué)方志強(qiáng)同學(xué)和岳成海同學(xué)通過這次畢業(yè)設(shè)計(jì),我增長(zhǎng)了很多認(rèn)識(shí),也了解到了許多實(shí)際性的問題,同時(shí)我也意識(shí)到了自己在本科的理論學(xué)習(xí)中存在的漏洞和技能上的缺乏。畢業(yè)設(shè)計(jì)過程中,我回憶了以前學(xué)過的相關(guān)知識(shí),查閱了大量的超聲波測(cè)距和音頻處理方面的文獻(xiàn),學(xué)到了不少新的內(nèi)容,了解了這個(gè)領(lǐng)域的現(xiàn)狀和開展前景,也體會(huì)到了這門學(xué)科的意義和魅力。就我個(gè)人而言,畢業(yè)設(shè)計(jì)的過程給我的巨大收獲還包括編程能力的提高。我從一個(gè)對(duì)從事的專業(yè)都不甚明晰的學(xué)生開始逐漸的掌握系統(tǒng)開發(fā)的思維和脈絡(luò)。學(xué)習(xí)了使用PSOC為硬件平臺(tái),以C語言為編程語言的一整套系統(tǒng)開發(fā)模式。另外,經(jīng)歷了畢業(yè)設(shè)計(jì)的全過程,也讓我了解了研究開發(fā)一個(gè)工程的整體流程,這為我以后的進(jìn)一步學(xué)習(xí)深造打下了的根底,指引了方向。這個(gè)過程充滿了艱辛也充滿了喜悅,在此,再次感謝所有在畢業(yè)設(shè)計(jì)過程中給予我支持和幫助的人。大學(xué)四年的學(xué)習(xí)生活隨著畢業(yè)設(shè)計(jì)的結(jié)束也即將結(jié)束,但這也將是人生的另一個(gè)起點(diǎn)。學(xué)無止境,還有很多問題需要我去研究,去探索;人無完人,還有許多自身的缺乏需要我去完善,去提高。因此,在以后的學(xué)習(xí)生活中,我將繼努力,不怕困難,勇于接受新事物,敢于面對(duì)新挑戰(zhàn)。二十幾年的光陰已匆匆流過,值得我感謝的人實(shí)在很多,揣著一份份沉甸甸的情誼,我更要勇敢的去走,去闖,去譜寫我未來的人生路。附錄以下是本次系統(tǒng)設(shè)計(jì)的主程序#include<device.h>#include<absacc.h>#include<yinpin.h>#defineLCD_ROWS2u#defineLCD_COLUMNS16uuint16outcome,i,l;uint8abitStartFlag;bitcflag;voiddelay_20ms(){uint32ct;for(ct=0;ct<50000;ct++);}voiddelay_20us(){uint16bt;for(bt=0;bt<4;bt++);}voidmain(void){uint16distance_data;Pin_2_Write(0); Clock_1_Start();LCD_Start(); Opamp_1_Start();VDAC8_1_Start();while(1) {cflag=0; StartFlag=0;outcome=0;distance_data=0; while(1){Pin_2_Write(1);delay_20us();Pin_2_Write(0); while(1){if(Pin_1_Read()==1){if(cflag==0){Counter_1_Start();Counter_1_WriteCounter(65535);cflag=1;}if(distance_data>65535)break;if(StartFlag==0){StartFlag=1;outcome=0;distance_data=outcome;}}else{if(StartFlag==1){outcome=65535-Counter_1_ReadCounter();distance_data=outcome;distance_data/=2;distance_data/=58;a=distance_data/100; b=distance_data%100; c=b/10; d=b%10; LCD_ClearDisplay();LCD_Position(0u,0u); LCD_PrintNumber(distance_data); LCD_Position(5u,0u); LCD_PrintString("CM"); switch(a) { case0:;break; case1:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_1[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case2:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_2[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case3:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_3[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case4:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_4[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case5:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_5[i]); for(l=0;l<28;l++) ;} for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_bai[i]); for(l=0;l<28;l++) ;} ;break; case6:for(i=0;i<2377;i++) { VDAC8_1_SetValue(WAV_6[i]); for(l=0;l<28;l++) ;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論