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

下載本文檔

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

文檔簡(jiǎn)介

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

2、法。3掌握 基于LD3320的語(yǔ)音單元的編程、語(yǔ)音處理及與單片機(jī)間的通信。二、系統(tǒng)總體方案本次設(shè)計(jì)的小車采用STC89C52單片機(jī)作為主控芯片,通過(guò)LD3320語(yǔ)音單元接單片機(jī)控制小車行駛狀態(tài)(包括前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)及停車);小車行駛過(guò)程中遇到障礙物,如果沒(méi)有接收到語(yǔ)音信號(hào)而超聲波檢測(cè)模塊檢測(cè)周圍障礙物小于安全距離40cm,小車自動(dòng)轉(zhuǎn)向,距離通過(guò)LCD1602液晶顯示出來(lái);采用L298作為電機(jī)驅(qū)動(dòng)芯片驅(qū)動(dòng)小車行駛。系統(tǒng)總體框圖如圖2.1:圖2.1 系統(tǒng)總體框圖三、硬件設(shè)計(jì)3.1 主控系統(tǒng)本次設(shè)計(jì)采用STC89C52單片機(jī)作為控制芯片,STC89C52RC是STC公司生產(chǎn)的一種低功耗、高性能

3、CMOS8位微控制器,具有 8K字節(jié)系統(tǒng)可編程Flash存儲(chǔ)器。單片機(jī)系統(tǒng)電路圖2:圖3.1 單片機(jī)最小系統(tǒng)原理圖復(fù)位電路:手動(dòng)復(fù)位,按下復(fù)位按鈕,復(fù)位腳得到VCC的高電平,單片機(jī)復(fù)位,按鈕松開(kāi)后,單片機(jī)開(kāi)始工作。如圖3.2(1):時(shí)鐘電路:在52單片機(jī)片內(nèi)有一個(gè)高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,由該放大器構(gòu)成的振蕩電路和時(shí)鐘電路一起構(gòu)成了單片機(jī)的內(nèi)部時(shí)鐘方式。如圖3.2(2): (1)復(fù)位電路: (2) 時(shí)鐘電路: 圖3.2 (1)復(fù)位電路 (2)時(shí)鐘電路3.2 超聲波模塊超聲波模塊(HC-SR04)是小車測(cè)距和避障的重要模塊。該模塊可提供2cm-400

4、cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路?;竟ぷ髟恚?1)采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S)/2;超聲波時(shí)序圖3.3:圖3.3 超聲波時(shí)序圖由時(shí)序圖表明你只需要提供一個(gè)10uS以上脈沖觸發(fā)信號(hào),該模塊內(nèi)部將發(fā)出8個(gè)40kHz周期電平并檢測(cè)回波。一旦檢測(cè)到有回波信號(hào)則輸出回響信號(hào)?;仨懶盘?hào)的脈沖寬度與所測(cè)的距離成正比。

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

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

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

8、樣包含4通道邏輯驅(qū)動(dòng)電路。可以方便的驅(qū)動(dòng)兩個(gè)直流電機(jī),或一個(gè)兩相步進(jìn)電機(jī)。L298N芯片可以驅(qū)動(dòng)兩個(gè)二相電機(jī),也可以驅(qū)動(dòng)一個(gè)四相電機(jī),輸出電壓最高可達(dá)50V,可以直接通過(guò)電源來(lái)調(diào)節(jié)輸出電壓;可以直接用單片機(jī)的IO口提供信號(hào);而且電路簡(jiǎn)單,使用比較方便。L298N可接受標(biāo)準(zhǔn)TTL邏輯電平信號(hào)VSS,VSS可接4.57V電壓。4腳VS接電源電壓,VS電壓范圍VIH為2.546V。輸出電流可達(dá)2.5A,可驅(qū)動(dòng)電感性負(fù)載。L298驅(qū)動(dòng)電路如圖3.6:圖3.6 電機(jī)驅(qū)動(dòng)電路L298N電機(jī)驅(qū)動(dòng)邏輯控制表1:ENAIN1IN2運(yùn)轉(zhuǎn)狀態(tài)0XX停止110正轉(zhuǎn)101反轉(zhuǎn)111停止100停止表1 L298N電機(jī)驅(qū)動(dòng)

9、邏輯控制根據(jù)電機(jī)驅(qū)動(dòng)邏輯功能表,通過(guò)改變單片機(jī)IO口高低電平變化,可以方便實(shí)現(xiàn)小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止。3.5 LCD1602液晶顯示LCD1602是工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)1602液晶也叫1602字符型液晶它是一種專門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖形。其中RS為寄存器選擇端,高位時(shí)是數(shù)據(jù)寄存器,低位時(shí)是指令寄存器;RW時(shí)讀寫(xiě)信號(hào)線,高位時(shí)是讀,低位時(shí)是寫(xiě);E

10、為使能控制端。 超聲波避障的距離顯示采用LCD1602液晶實(shí)現(xiàn)。當(dāng)超聲波檢測(cè)到前方障礙物在安全距離內(nèi)(40cm),單片機(jī)驅(qū)使小車自動(dòng)轉(zhuǎn)彎,并將超聲波測(cè)得的障礙物的距離送到液晶并顯示出來(lái)。液晶與單片機(jī)的電路圖如圖3.7:圖3.7 液晶電路圖3.6 電源與穩(wěn)壓電路 由于小車電機(jī)的驅(qū)動(dòng)電壓一般選擇8V,單片機(jī)的電壓為5V,要實(shí)現(xiàn)小車供電和續(xù)航,采用18650大容量可充電鋰電池,鋰電池可提供12V供電,為了不影響驅(qū)動(dòng)電機(jī)的供電電源和單片機(jī)供電電源產(chǎn)生信號(hào)干擾,設(shè)計(jì)中加入了可調(diào)降壓模塊,使12V18650鋰電池電壓調(diào)至8V后供給直流減速電機(jī),使12V18650鋰電池經(jīng)7805穩(wěn)壓至5V后供給STC單片機(jī)

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

12、避障,同時(shí)實(shí)時(shí)顯示障礙物與車的距離。小車操作流程如下圖4.1:圖4.1 小車操作流程圖4.2 語(yǔ)音識(shí)別開(kāi)發(fā) 圖4.2 語(yǔ)音編程界面語(yǔ)音單元測(cè)試語(yǔ)音單元測(cè)試主要是語(yǔ)音識(shí)別參數(shù)進(jìn)行測(cè)試,測(cè)試參數(shù)有麥克風(fēng)靈敏度設(shè)置,語(yǔ)音端點(diǎn)檢測(cè),語(yǔ)音信號(hào)起始確認(rèn)時(shí)間,語(yǔ)音信號(hào)結(jié)束時(shí)間,語(yǔ)音信號(hào)最長(zhǎng)持續(xù)時(shí)間。參數(shù)測(cè)試主要是麥克風(fēng)靈敏度和語(yǔ)音端點(diǎn)檢測(cè)。通過(guò)控制變量法,在保持麥克風(fēng)靈敏度一定的前提下,調(diào)節(jié)端點(diǎn)檢測(cè),來(lái)觀察揚(yáng)聲器音頻輸出的準(zhǔn)確性,反之,保持端點(diǎn)檢測(cè)值至一定的前提下,調(diào)節(jié)麥克風(fēng)靈敏度,以此來(lái)找到使語(yǔ)音準(zhǔn)確輸出的最優(yōu)麥克風(fēng)靈敏度參數(shù)和語(yǔ)音端點(diǎn)檢測(cè)值,以保證語(yǔ)音輸出的準(zhǔn)確性。誤差分析:本次作品的相對(duì)誤差如表2,造

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

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

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

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

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

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

19、制系統(tǒng)設(shè)計(jì)J.中國(guó)新技術(shù)新產(chǎn)品,2013,3(上):21-22附錄:附錄一主控板和小車整體實(shí)物圖:附錄二單片機(jī)程序:24#include reg52.h#include /*宏定義*/#define uchar unsigned char /宏定義無(wú)符號(hào)字符型#define uint unsigned int /宏定義無(wú)符號(hào)整型#define LCD_Data P0#define Busy 0x80 /檢測(cè)LCD狀態(tài)字中的Busy標(biāo)識(shí)/*IO引腳定義*/sbit LCD_E =P27;sbit LCD_RW=P26;sbit LCD_RS=P25;/定義引腳sbit RX =P16;/模塊超聲

20、波模塊ECH0 接 P13sbit TX =P17;/超聲波模塊Trig 接 P14sbit IN1=P10;sbit IN2=P11;sbit IN3=P12;sbit IN4=P13;sbit EN1=P14;sbit EN2=P15;unsigned char code net = ZTAI JLCM ;unsigned char code forward = ford ;unsigned char code back = back ;unsigned char code left = left ;unsigned char code right = righ ;unsigned cha

21、r code stop = stop ;unsigned char code Clef = Clef ;unsigned int time=0;unsigned long S=0;bit flag =0,flagg=0;unsigned char l_disbuff4= 0,0,0,0,;/顯示緩沖uchar date;uchar rec,startmove=0;uchar x,speed=100,speed2;uchar ii;uchar sudu;uint mm,mmm;void delayms(unsigned int timer) /毫秒延時(shí)int x,y;for(x=timer;x0

22、;x-)for(y=120;y0;y-);/*讀狀態(tài)*/unsigned char ReadStatusLCD(void) LCD_Data = 0xFF; LCD_RS = 0; LCD_RW = 1; LCD_E = 0; LCD_E = 0; LCD_E = 1; while (LCD_Data & Busy); /檢測(cè)忙信號(hào) return(LCD_Data);/*寫(xiě)數(shù)據(jù)*/void WriteDataLCD(unsigned char WDLCD) ReadStatusLCD(); /檢測(cè)忙 LCD_Data = WDLCD; LCD_RS = 1; LCD_RW = 0; LCD_E

23、 = 0; /若晶振速度太高可以在這后加小的延時(shí) LCD_E = 0; /延時(shí) LCD_E = 1;/*寫(xiě)指令*/void WriteCommandLCD(unsigned char WCLCD,BuysC) /BuysC為0時(shí)忽略忙檢測(cè) if (BuysC) ReadStatusLCD(); /根據(jù)需要檢測(cè)忙 LCD_Data = WCLCD; LCD_RS = 0; LCD_RW = 0; LCD_E = 0; LCD_E = 0;LCD_E = 1; /*初始化*/void LCDInit(void) LCD_Data = 0; WriteCommandLCD(0x38,0); /三次模

24、式設(shè)置,不檢測(cè)忙信號(hào) delayms(5); WriteCommandLCD(0x38,0); delayms(5); WriteCommandLCD(0x38,0); delayms(5); WriteCommandLCD(0x38,1); /顯示模式設(shè)置,開(kāi)始要求每次檢測(cè)忙信號(hào) WriteCommandLCD(0x08,1); /關(guān)閉顯示 WriteCommandLCD(0x01,1); /顯示清屏 WriteCommandLCD(0x06,1); /顯示光標(biāo)移動(dòng)設(shè)置 WriteCommandLCD(0x0C,1); /顯示開(kāi)及光標(biāo)設(shè)置/*按指定位置顯示一個(gè)字符*/void Display

25、OneChar(unsigned char X, unsigned char Y, unsigned char DData) Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1 if (Y) X |= 0x40; /當(dāng)要顯示第二行時(shí)地址碼+0x40; X |= 0x80; /算出指令碼 WriteCommandLCD(X, 0); /這里不檢測(cè)忙信號(hào),發(fā)送地址碼 WriteDataLCD(DData);/*按指定位置顯示一串字符*/void DisplayListChar(unsigned char X, unsigned char Y, unsigned char c

26、ode *DData) unsigned char ListLength;ListLength = 0; Y &= 0x1; X &= 0xF; /限制X不大于15,Y不大于1 while (DDataListLength=0x20) /若到達(dá)字串尾則退出 if (X =100)|flag=1) /超出測(cè)量范圍顯示“-” flag=0; DisplayOneChar(7, 1,-); DisplayOneChar(8, 1,.); DisplayOneChar(9, 1,-); DisplayOneChar(10, 1,-); DisplayOneChar(11, 1,m); else l_d

27、isbuff0=S%1000/100+0x30;/加上0X30是將數(shù)字轉(zhuǎn)為ASCII碼l_disbuff1=S%1000%100/10+0x30;l_disbuff2=S%1000%10 %10+0x30;DisplayOneChar(7, 1,l_disbuff0);DisplayOneChar(8, 1,.); DisplayOneChar(9, 1,l_disbuff1); DisplayOneChar(10, 1,l_disbuff2);DisplayOneChar(11, 1,m); if(S40|flag=1)&(startmove=1|startmove=2) IN1=1;IN2

28、=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 StartModule() /啟動(dòng)模塊 TX=1; /啟動(dòng)一次模塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _no

29、p_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0;void main()delayms(400); /啟動(dòng)等待,等LCD講入工作狀態(tài)LCDInit();/初始化delayms(5); /延時(shí)片刻( DisplayListChar(0, 0,net); TMOD=0x21; /設(shè)T0為方式1 11.0592M晶振TH1=0xfd;TL1=0xfd;SCON=0x50; /串口的工作方式,設(shè)置為方式1TR1=1;/打開(kāi)定時(shí)器ES=1; /打開(kāi)串口中斷TH0=0;TL0=0; ET0=1; /允許T0中斷EA=1;/開(kāi)啟總中斷while(1) StartModule(); while(!

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論