基于STC單片機的智能語音控制小車_第1頁
基于STC單片機的智能語音控制小車_第2頁
基于STC單片機的智能語音控制小車_第3頁
基于STC單片機的智能語音控制小車_第4頁
基于STC單片機的智能語音控制小車_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于STC單片機的智能語音控制小車、實驗?zāi)康?.隨著科技的進(jìn)步和社會的發(fā)展,汽車技術(shù)的發(fā)展越來越智能化。本次接口實驗設(shè)計就是基于簡單智能化的基礎(chǔ)上,采用LD3320語音單元和STM片機和L298N電機驅(qū)動,開發(fā)出基于語音無線控制與智能避障的小車,實現(xiàn)非特定人聲語音控制小車,以及小車超聲波自動避障行駛的功能,同時液晶顯示出超聲波前方障礙物的距離。2,掌握用AltiumDesigned。軟件繪制原理圖和PCB電路,以及電路板的制作過程(包括轉(zhuǎn)印、腐蝕,焊接,下載與調(diào)試),熟練KeiluVision4環(huán)境以及單片機C代碼的編寫、調(diào)試和hex文件的生成并下載到單片機芯片內(nèi),掌握軟硬聯(lián)調(diào)技巧與方法。3.

2、掌握基于LD3320的語音單元的編程、語音處理及與單片機間的通信二、系統(tǒng)總體方案本次設(shè)計的小車采用STC89C52I片機作為主控芯片,通過LD3320語音單元接單片機控制小車行駛狀態(tài)(包括前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)及停車);小車行駛過程中遇到障礙物,如果沒有接收到語音信號而超聲波檢測模塊檢測周圍障礙物小于安全距離40cm,小車自動轉(zhuǎn)向,距離通過LCD1602夜晶顯示出來;采用L298三、硬件設(shè)計3.1 主控系統(tǒng)本次設(shè)計采用STC89C5常片機作為才5制芯片,STC89C52RCSTC公司生產(chǎn)的一種低功耗、高性能CMOS8微控制器,具有8K字節(jié)系統(tǒng)可編程Flash存儲器。單片機系統(tǒng)電路圖2:TI P

3、- *;i TXP£¥ vp支(KD'PlO'JCiE網(wǎng)卬口ALEP圖3.2 (1)復(fù)位電路(2)時鐘電路圖3.1單片機最小系統(tǒng)原理圖復(fù)位電路:手動復(fù)位,按下復(fù)位按鈕,復(fù)位腳得到VCC的高電平,單片機復(fù)位,按鈕松開后,單片機開始工作。如圖3.2(1):時鐘電路:在52單片機片內(nèi)有一個高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,由該放大器構(gòu)成的振蕩電路和時鐘電路一(1)復(fù)位電路:(2)時鐘電路:3.2 超聲波模塊超聲波模塊(HC-SR04是小車測距和避障的重要模塊。該模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達(dá)高

4、到3mm模塊包括超聲波發(fā)射器、接收器與控制電路?;竟ぷ髟恚翰捎肐O口TRIG觸發(fā)測距,給至少10us的高電平信號;(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;有信號返回,通過IO口ECHOJ出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S)/2;超聲波時序圖3.3:iftiSMTrL融發(fā)信號模塊內(nèi)郃發(fā)出信號輸出回響信號回響電平一出與檢測距離床比例圖3.3超聲波時序圖由時序圖表明你只需要提供一個10uS以上脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出8個40kHz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號?;仨懶盘柕拿}沖

5、寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時問間隔可以計算得到距離。公式:uS/58二厘米或者uS/148=英寸;或是:距離=高電平時間*聲速(340M/S)/2;建議測量周期為60ms以上,以防止發(fā)射信號對回響信號的影響。超聲波電路如圖3.4:圖3.4超聲波電路3.3 LD3320語音識別單元語音識別作為信息技術(shù)中一種人機接口的關(guān)鍵技術(shù),具有重要的研究意義和廣泛的應(yīng)用價值。語音識別技術(shù)的應(yīng)用范圍極為廣泛,不僅涉及到日常生活的方方面面,在軍事領(lǐng)域也發(fā)揮著極其重要的作用。它是信息社會朝著智能化和自動化發(fā)展的關(guān)鍵技術(shù),使人們對信息的處理和獲取更加便捷,從而提高人們的工作效率。語音識別

6、是將人類的聲音信號轉(zhuǎn)化為文字或者指令的過程。語音識別以語音為研究對象,它是語音信號處理的一個重要研究方向,是模式識別的一個分支。根據(jù)在不同限制條件下的研究任務(wù),產(chǎn)生了不同的研究領(lǐng)域。這些領(lǐng)域包括:根據(jù)對說話人說話方式的要求,可分為孤立字(詞)、連接詞和連續(xù)語音識別系統(tǒng);根據(jù)對說話人的依賴程度,可分為特定人和非特定人語音識別系統(tǒng);根據(jù)詞匯量的大小,可分為小詞匯量、中等詞匯量、大詞匯量以及無限詞匯量語音識別系統(tǒng)。從語音識別模型的角度講,主流的語音識別系統(tǒng)理論是建立在統(tǒng)計模式識別基礎(chǔ)之上的。語音識別系統(tǒng)本質(zhì)上是一種多維模式識別系統(tǒng),對于不同的語音識別系統(tǒng),人們所采用的具體識別方法及技術(shù)不同,但其基本

7、原理都是相同的,即將采集到的語音信號送到特征提取模塊處理,將所得到的語音特征參數(shù)送入模型庫模塊,由聲音模式匹配模塊根據(jù)模型庫對該段語音進(jìn)行識別,最后得出識別結(jié)果。語音識別系統(tǒng)基本原理框圖如圖3.5所示,其中:預(yù)處理模塊濾除原始語音信號中的次要信息及背景噪音等,包括抗混疊濾波、預(yù)加重、模/數(shù)轉(zhuǎn)換、自動增益控制等處理過程,將語音信號數(shù)字化;特征提取模塊對語音的聲學(xué)參數(shù)進(jìn)行分析后提取出語音特征參數(shù),形成特征矢量序列識別結(jié)果圖3.5語音識別系統(tǒng)框圖3.4 電機驅(qū)動小車輪子驅(qū)動采用直流減速電機,驅(qū)動芯片使用恒壓恒流橋式2A驅(qū)動芯片L298N=L298是ST公司的產(chǎn)品,比較常見的是15腳Multiwatt

8、封裝的L298N,內(nèi)部同樣包含4通道邏輯驅(qū)動電路??梢苑奖愕尿?qū)動兩個直流電機,或一個兩相步進(jìn)電機。L298N芯片可以驅(qū)動兩個二相電機,也可以驅(qū)動一個四相電機,輸出電壓最高可達(dá)50V,可以直接通過電源來調(diào)節(jié)輸出電壓;可以直接用單片機的IO口提供信號;而且電路簡單,使用比較方便。L298N可接受標(biāo)準(zhǔn)TTL邏輯電平信號VSSVSS可接4.57V電壓。4腳VS接電源電壓,VS電壓范圍VIH為+2.546V。輸出電流可達(dá)2.5A,可驅(qū)動電感性負(fù)載。L298驅(qū)動電路如圖3.6:VCCl 4-12V10LSL'1L25ENP10 5 nP"P1.H,2INIVSS1N2vsNJIN1OUT

9、LOUT士ENAOUT3ENBOUT41SENAISES®Pl6PIS IIDSL298N電機驅(qū)動邏輯控制表1:ENAIN1IN2運轉(zhuǎn)狀態(tài)0XX一停止110止轉(zhuǎn)101反轉(zhuǎn)111停止100停止表1L298N電機驅(qū)動邏輯控制根據(jù)電機驅(qū)動邏輯功能表,通過改變單片機IO口高低電平變化,可以方便實現(xiàn)小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止。3.5 LCD1602t晶顯示LCD1602是工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以

10、顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形。其中RS為寄存器選擇端,高位時是數(shù)據(jù)寄存器,低位時是指令寄存器;RW寸讀寫信號線,高位時是讀,低位時是寫;E為使能控制端。超聲波避障的距離顯示采用LCD1602液晶實現(xiàn)。當(dāng)超聲波檢測到前方障礙物在安全距離內(nèi)(40cm),單片機驅(qū)使小車自動轉(zhuǎn)彎,并將超聲波測得的障礙物的距離送到液晶并顯示出來。液晶與單片機的電路圖如圖3.7:LCD1602LCDAs4% M 0 - EEM 憶 El U 口 C 二,及二一WC259US寸U"Il翼 POO3* PQ137 P0236 P”

11、35P0434 P。三33 POE32 PQP10TPH T P12 P13P14P15P16P17CC POO P01 PQ2 P03 P04 P05 P06 P07II-JO圖3.7液晶電路圖3.6 電源與穩(wěn)壓電路由于小車電機的驅(qū)動電壓一般選擇8V,單片機白電壓為5V,要實現(xiàn)小車供電和續(xù)航,采用18650大容量可充電鋰電池,鋰電池可提供12V供電,為了不影響驅(qū)動電機的供電電源和單片機供電電源產(chǎn)生信號干擾,設(shè)計中加入了可調(diào)降壓模塊,使12V18650鋰電池電壓調(diào)至8V后供給直流減速電機,使12V18650鋰電池經(jīng)7805穩(wěn)壓至5V后供給STC單片機、L298N電機驅(qū)動芯片、基于LD3320的

12、語音單元和超聲波等使用,L7805的穩(wěn)壓和電源電路如圖3.8:J9X/個寸<1i4圖3.8L7805穩(wěn)壓和電源電路3.7 系統(tǒng)整體原理圖與系統(tǒng)整體原理圖與PCB主控圖PCB主控圖如圖3.9:(1)系統(tǒng)整體原理圖(2) PCB主控圖圖3.9(1)系統(tǒng)整體原理圖(2)PCB主控圖四、軟件設(shè)計2.1 系統(tǒng)總體軟件設(shè)計軟件設(shè)計部分分為兩大類,一類是語音芯片應(yīng)用程序的開發(fā)設(shè)計,另一類是單片機下位機的程序編寫。小車操作流程是:1,按下開關(guān)給單片機和驅(qū)動電路供電,系統(tǒng)初始化,語音啟動小車;3,通過語音控制小車前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)、后退、停止;4,行駛過程如遇障礙物,小車自動轉(zhuǎn)彎避障,同時實時顯示障礙物與車

13、的距離。小車操作流程如下圖4.1:初始化中斷發(fā)生語音中斷服務(wù)輸出運動狀態(tài)LCD160現(xiàn)示圖4.1小車操作流程圖2.2 語音識別開發(fā)圖4.2語音編程界面語音單元測試語音單元測試主要是語音識別參數(shù)進(jìn)行測試,測試參數(shù)有麥克風(fēng)靈敏度設(shè)置,語音端點檢測,語音信號起始確認(rèn)時間,語音信號結(jié)束時間,語音信號最長持續(xù)時間。參數(shù)測試主要是麥克風(fēng)靈敏度和語音端點檢測。通過控制變量法,在保持麥克風(fēng)靈敏度一定的前提下,調(diào)節(jié)端點檢測,來觀察揚聲器音頻輸出的準(zhǔn)確性,反之,保持端點檢測值至一定的前提下,調(diào)節(jié)麥克風(fēng)靈敏度,以此來找到使語音準(zhǔn)確輸出的最優(yōu)麥克風(fēng)靈敏度參數(shù)和語音端點檢測值,以保證語音輸出的準(zhǔn)確性。誤差分析:本次作品

14、的相對誤差如表2,造成相對誤差可從以下幾方面分析。其中,環(huán)境噪聲是造成誤差最重要的因素,在做系統(tǒng)測試時,并沒有做到在低分貝理想環(huán)境下進(jìn)行測試。其次,本次作品是使用了麥克風(fēng),所以,麥克風(fēng)的靈敏度不高也會造成誤差。在語音識別模塊,語音斷點檢測和語音信息相似度也會造成誤差。本次作品電源設(shè)計設(shè)置的語音信息相差太近,會對識別造成難度。最后,說話距離的遠(yuǎn)近也會造成誤差,做測試時并不是每一次都在最佳距離范圍內(nèi)測試,所以會有誤差。語速慢速中速較快聲音(dB)601206012060120距離(mj)3.852.653.152.252.751.95測試次數(shù)40正確識別次數(shù)373535312927正確率92.5%

15、87.5%87.5%77.5%72.5%67.5%表2語音模塊誤差測試2.3 單片機下位機軟件設(shè)計單片機下位機軟件設(shè)計采用模塊化結(jié)構(gòu),由主程序、定時子程序、定時器中斷子程序、電機驅(qū)動子程序、串口中斷子程序、顯示子程序、超聲波避障子程序、算法子程序構(gòu)成。其中:避障中斷服務(wù)子程序完成對超聲波探測器產(chǎn)生的外部中斷進(jìn)行處理,如果超出預(yù)定的危險距離就進(jìn)行避障。遙控中斷服務(wù)子程序完成對遙控信號產(chǎn)生的串口中斷進(jìn)行處理,對不同的遙控信號產(chǎn)生相應(yīng)的控制信號。超聲波程序設(shè)計流程圖4.3:避障開始圖4.3超聲波程序流程圖語音串口通信:由于語音單元和單片機通信的方式是用口,為了小車能迅速響應(yīng)語音單元發(fā)送來的信號,單片

16、機使用用口中斷的方式,在中斷函數(shù)里面主要就是處理中斷接收到的數(shù)據(jù),并控制電機的轉(zhuǎn)向,處理函數(shù)見附錄二。五、個人總結(jié)本次設(shè)計是智能語音控制小車兼有避障功能,主控制芯片采用STC89C5彈片機,開發(fā)LD3320語音芯片,成功實現(xiàn)了語音控制小車和小車的自動避障的功能。設(shè)計內(nèi)容包括小車硬件、軟件、LD3320語音單元編程、調(diào)試等。在此期間主要完成的工作包括以下幾個方面:(1)設(shè)計初期收集電機驅(qū)動、單片機等相關(guān)資料,對智能小車的實現(xiàn)原理有比較清晰的了解。(2)確定系統(tǒng)框圖,對電源模塊、單片機最小系統(tǒng)模塊、LD3320語音單元和電機及其驅(qū)動電路模塊等的實施方案進(jìn)行比較,確定最終的智能小車控制的設(shè)計方案。(

17、3)根據(jù)智能小車控制的設(shè)計方案畫原理圖、PCB圖,轉(zhuǎn)印PCB圖,手工制作PCB板。(4)根據(jù)設(shè)計電路,購買元器件,焊接電路,完成硬件組裝和調(diào)試。(5)根據(jù)系統(tǒng)要實現(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停車、避障等功能編寫出小車端的軟件程序。(6)軟硬件分別調(diào)試通過后進(jìn)行整體聯(lián)合調(diào)試,并查找該系統(tǒng)存在的缺陷,并逐步完善。(8)最終小車能夠?qū)崿F(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、避障等功能,達(dá)到設(shè)計的基本要求。通過此次實驗設(shè)計,使我對單片機編程和設(shè)計都有了進(jìn)一步的了解,對軟硬件的應(yīng)用更加熟悉,在電路設(shè)計、PCB制板等方面都有所加強。軟件設(shè)計方面,語音單元的可視化編程,在可視化編程設(shè)計方面也還有許多問題需要解決,這些都是自

18、己以后要努力學(xué)習(xí)的地方。小車雖然基本功能實現(xiàn),但仍存在一些問題,避障的穩(wěn)定性并不高,仍需要不斷完善。六、致謝首先要感謝XXg師給了我們這樣一個動手實踐的機會,讓我們有機會可以針對自己的興趣進(jìn)行一些自主課外動手實踐。本實驗設(shè)計是在XXg師的指導(dǎo)下和XXXX學(xué)的幫助下修改完成的。在設(shè)計過程中,XX®師給予了悉心的指導(dǎo),最重要的是給我們提供了解決問題的思路和方法,在此,我對XXg師的細(xì)心幫助和指導(dǎo)表示最真摯的感謝!同時感謝所有幫助過我的老師和同學(xué)們!參考文獻(xiàn):1郭天祥,新概念51單片機C語言教程.北京:電子工程出版社,2009.1:98-1032符強,任風(fēng)華.基于手機藍(lán)牙的遙控小車的設(shè)計J

19、.廣西桂林電子科技大學(xué)信息與通信學(xué)院;廣西桂林電子科技大學(xué)電子工程與自動化學(xué)院,2010.3譚思良等。VisualC+周口通信工程開發(fā)實例導(dǎo)航M.人民郵電出版社.2034宋戈,黃鶴松,員玉良,蔣海峰.51單片機應(yīng)用開發(fā)范例大全.北京:人民郵電出版社,20105池保忠.基于單片機的電動車控制系統(tǒng)設(shè)計J.機械與電子,2011,(4):51-53.6 王曉侃蘇全衛(wèi)基于單片機控制的多功能電動車自行車智能保護(hù)儀的設(shè)計與實現(xiàn)電子設(shè)計工程2005,7,107-110.7 王立欣,靳剛,程樹康.混合電動車用PWM整流器控制方法的研究J.電機與控制學(xué)報,2005,9(2):199-202.8尹洪波基于單片機的電

20、動車控制系統(tǒng)設(shè)計J.中國新技術(shù)新產(chǎn)品,2013,3(上):21-22附錄:附錄一主控板和小車整體實物圖:附錄二單片機程序:#include"reg52.h"#include<intrins.h>/*宏定義*/#defineucharunsignedchar/宏定義無符號字符型#defineuintunsignedint/宏定義無符號整型#defineLCD_DataP0#defineBusy0x80檢測LCD狀態(tài)字中的Busy標(biāo)識/*IO引腳定義*/sbitLCD_E=P2A7;sbitLCD_RW=P2A6;sbitLCD_RS=P2A5;/定義引腳sbitR

21、X=P1A6;/模塊超聲波模塊ECH0接P1A3sbitTX=P1A7;/超聲波模塊Trig接P1A4sbitIN1=P1A0;sbitIN2=P1A1;sbitIN3=P1A2;sbitIN4=P1A3;sbitEN1=P1A4;sbitEN2=P1A5;unsignedcharcodenet="ZTAIJLCM"unsignedcharcodeforward="ford"unsignedcharcodeback="back"unsignedcharcodeleft="left"unsignedcharcoder

22、ight="righ"unsignedcharcodestop="stop"unsignedcharcodeClef="Clef"unsignedinttime=0;unsignedlongS=0;bitflag=0,flagg=0;unsignedcharl_disbuff4=0,0,0,0,;/顯示緩沖uchardate;ucharrec,startmove=0;ucharx,speed=100,speed2;ucharii;ucharsudu;uintmm,mmm;voiddelayms(unsignedinttimer)/毫秒

23、延時LCD_RS = 1;LCD_RW = 0;LCD_E = 0;LCD_Data = 0;WriteCommandLCD(0x38,0);/ 三次模式設(shè)置,不檢測忙信號delayms(5);intx,y;for(x=timer;x>0;x-)for(y=120;y>0;y-);/*讀狀態(tài)*/unsignedcharReadStatusLCD(void)LCD_Data=0xFF;LCD_RS=0;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;while(LCD_Data&Busy);/檢測忙信號return(LCD_Data);/*寫數(shù)據(jù)*/void

24、WriteDataLCD(unsignedcharWDLCD)ReadStatusLCD();/檢測忙LCD_Data=WDLCD;/若晶振速度太高可以在這后加小的延時LCD_E=0;/延時LCD_E=1;/*寫指令*/voidWriteCommandLCD(unsignedcharWCLCD,BuysC)/BuysC為0時忽略忙檢測if(BuysC)ReadStatusLCD();/根據(jù)需要檢測忙LCD_Data=WCLCD;LCD_RS=0;LCD_RW=0;LCD_E=0;LCD_E=0;LCD_E=1;/*初始化*/voidLCDInit(void)WriteCommandLCD(0x

25、38,0);delayms(5);WriteCommandLCD(0x38,0);delayms(5);WriteCommandLCD(0x38,1);/顯示模式設(shè)置,開始要求每次檢測忙信號WriteCommandLCD(0x08,1);/關(guān)閉顯示W(wǎng)riteCommandLCD(0x01,1);/顯示清屏WriteCommandLCD(0x06,1);/顯示光標(biāo)移動設(shè)置WriteCommandLCD(0x0C,1);/顯示開及光標(biāo)設(shè)置/*按指定位置顯示一個字符*/voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData)Y

26、&=0x1;X&=0xF;限制X不能大于15,Y不能大于1if(Y)X|=0x40;/當(dāng)要顯示第二行時地址碼+0x40;X|=0x80;/算出指令碼WriteCommandLCD(X,0);/這里不檢測忙信號,發(fā)送地址碼WriteDataLCD(DData);/*按指定位置顯示一串字符*/voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData)unsignedcharListLength;ListLength=0;Y&=0x1;X&=0xF;限制X不大于15,Y不大于1whil

27、e(DDataListLength>=0x20)/若到達(dá)字串尾則退出if(X<=0xF)/X坐標(biāo)應(yīng)小于0xFDisplayOneChar(X,Y,DDataListLength);/顯示單個字符ListLength+;X+;1,l_disbuff1);voidConut(void)time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100;/算出來是CMif(S>=100)|flag=1)/超出測量范圍顯示“-”flag=0;DisplayOneChar(7,1,'-');DisplayOneChar(8,1,'.

28、9;);DisplayOneChar(9,1,'-');DisplayOneChar(10,1,'-');DisplayOneChar(11,1,'m');elsel_disbuff0=S%1000/100+0x30;加上0X30是將數(shù)字轉(zhuǎn)為ASCI碼l_disbuff1=S%1000%100/10+0x30;l_disbuff2=S%1000%10%10+0x30;DisplayOneChar(7,1,l_disbuff0);DisplayOneChar(8,1,'.');DisplayOneChar(9,DisplayOneC

29、har(10,1,l_disbuff2);DisplayOneChar(11,1,'m');if(S<40|flag=1)&(startmove=1|startmove=2)IN1=1;IN2=0;IN3=1;IN4=0;delayms(5);EN1=1;EN2=1;delayms(50);IN1=0;IN2=0;IN3=0;IN4=1;delayms(10);EN1=1;EN2=1;DisplayListChar(1,1,Clef);delayms(800);IN1=0;IN2=1;IN3=0;IN4=1;delayms(10);EN1=1;EN2=1;void

30、StartModule()/啟動模塊TX=1;/啟動一次模塊_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;voidmain()delayms(400);啟動等待,等LCD講入工作狀態(tài)LCDInit();/初始化delayms(5);/延時片刻(DisplayListChar(0,0,net);TMO

31、D=0x21;/設(shè)T0為方式111.0592M晶振TH1=0xfd;TL1=0xfd;SCON=0x50;/串口的工作方式,設(shè)置為方式1TR1=1;/打開定時器ES=1;/打開串口中斷TH0=0;TL0=0;ET0=1;/允許T0中斷EA=1;/開啟總中斷while(1)StartModule();while(!RX);/當(dāng)RX為零時等待TR0=1;/開啟計數(shù)while(RX);/當(dāng)RX為1計數(shù)并等待TR0=0;/關(guān)閉計數(shù)Conut();/計算delayms(200);EN1=1;delayms(100);delayms(10);voidzd0()interrupt1/T0中斷來計數(shù)器溢出,超

32、過測距范圍flagg=1;/中斷溢出標(biāo)志/*中斷服務(wù)子函數(shù)*/voidcom_isr(void)interrupt4if(RI)rec=SBUF;/從串口緩沖區(qū)取得數(shù)據(jù)flag=1;RI=0;/清除串行接受標(biāo)志位/*根據(jù)串口指令電機運轉(zhuǎn)函數(shù)*/delayms(10);if(rec=0x01)/正轉(zhuǎn)(前進(jìn))startmove=1;DisplayListChar(1,1,forward);IN1=0;IN2=1;IN3=0;IN4=1;EN2=1;flag=0;if(rec=0x02)/反轉(zhuǎn)(后退)startmove=2;IN1=1;IN2=0;IN3=1;IN4=0;DisplayListCha

33、r(1,1,back);delayms(100);EN1=1;EN2=1;flag=0;if(rec=0x03)/左轉(zhuǎn)IN1=0;IN2=0;IN3=0;IN4=1;delayms(10);EN1=1;EN2=1;DisplayListChar(1,1,left);delayms(800);IN1=0;IN2=1;IN3=0;N4=1;EN1=1;EN2=1;flag=0;if(rec=0x04)/右轉(zhuǎn)IN1=0;IN2=1;IN3=0;IN4=0;delayms(10);EN1=1;EN2=1;DisplayListChar(1,1,right);delayms(800);IN1=0;IN2=1;IN3=0;IN4=1;EN2=1;flag=0;if(rec=0x05)/停車startmove=0;DisplayListChar(1,1,stop)IN1=0;IN2=1;IN3=0;IN4=0;delayms(10);EN1=0;EN2=0;flag=0;startmove=0;delayms(10);EN1=1;附錄三語音單元可

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論