基于SLH89F5162單片機(jī)的公交車語音報站系統(tǒng)
一、項目設(shè)計背景及概述
隨著城市化的進(jìn)展和經(jīng)濟(jì)的快速發(fā)展,城市“乘車難”、“行車難”的局面在加劇,很多城市建議人們出門乘坐公交車。但是在天氣惡劣或視線不好的時候,乘客乘坐公交車的時候往往無法清楚的分辨到達(dá)的站牌,導(dǎo)致沒有正常下車或錯誤下車,給出行帶來不必要的麻煩。傳統(tǒng)的報站方式是由售票人員進(jìn)行人工報站,這個售票人員多的工作不僅需要負(fù)責(zé)售票工作,還要準(zhǔn)確的為乘客報站,作為一個地區(qū)的公交車站行業(yè),有一定的地方特色,他們報站時多采用地方口音,作為一個外地人有時候很難聽懂報站,從而引起很多麻煩。
本系統(tǒng)設(shè)計的公交車語音報站系統(tǒng),利用科大訊飛的語音軟件對語音進(jìn)行詞組和句子劃分,合成wav文件,然后裝載到WT588D語音芯片里面,然后通過深聯(lián)華SLH89F5162單片機(jī)進(jìn)行控制語音播放相關(guān)信息。系統(tǒng)通過四個按鍵進(jìn)行司機(jī)對起點(diǎn)站、上一站、下一站、終點(diǎn)站聲音播放的選擇,通過一個128*64的液晶屏顯示當(dāng)前信息,利用LM386功放芯片將聲音信號放大,驅(qū)動喇叭進(jìn)行聲音的輸出。本系統(tǒng)結(jié)構(gòu)簡單、性能優(yōu)良、價格低廉,十分適合大面積推廣使用。
二、項目設(shè)計原理
1、原理概述
本系統(tǒng)的原理是利用深聯(lián)華SLH89F5162單片機(jī),使用單線傳輸協(xié)議控制WT588D進(jìn)行語音播報,系統(tǒng)通過四個按鍵進(jìn)行司機(jī)對起點(diǎn)站、上一站、下一站、終點(diǎn)站聲音播放的選擇,以播放對應(yīng)的聲音,通過一個128*64的液晶屏顯示當(dāng)前信息,利用LM386功放芯片將聲音信號放大,驅(qū)動喇叭進(jìn)行聲音的輸出。
2、硬件設(shè)計原理
2.1 SLH89F5162單片機(jī)小系統(tǒng)設(shè)計
圖2.1.1 SLH89F5162管腳圖
SLH89F5162是一種高邊高效率8051兼容單片機(jī),具有很好的加密性能和高速的處理速度,本系統(tǒng)使用SLH89F5162單片機(jī)作為處理芯片,具有很好的實(shí)驗效果。SLH89F5162管腳圖如圖2.1.1所示。
SLH89F5162單片機(jī)小系統(tǒng)設(shè)計如圖2.1.2所示,系統(tǒng)通過四個按鍵進(jìn)行司機(jī)對起點(diǎn)站、上一站、下一站、終點(diǎn)站聲音播放的選擇,系統(tǒng)設(shè)計了串口下載端口和系統(tǒng)復(fù)位按鍵,電源由一個手機(jī)充電器提供標(biāo)準(zhǔn)的5V輸入。
圖2.1.2 SLH89F5162單片機(jī)小系統(tǒng)原理圖
2.2 WT588D語音模塊電路設(shè)計
WT588D是廣州唯創(chuàng)公司生產(chǎn)的一款功能強(qiáng)大的可重復(fù)擦除和燒寫的語音芯片。WT588D讓語音芯片不再為控制方式而尋找合適的外圍單片機(jī)電路,高度集成的單片機(jī)技術(shù)足于取代復(fù)雜的外圍控制電路。配套WT-APP上位機(jī)操作軟件可隨意更換WT588D語音單片機(jī)芯片的任何一種控制模式,把信息下載到SPI-Flash上即可。軟件操作方式簡潔易懂,撮合了語音組合技術(shù),大大減少了語音編輯的時間。完全支持在線下載,即便是WT588D通電的情況下,一樣可以通過下載器給關(guān)聯(lián)的SPI-Flash下載信息,WT588D電路復(fù)位一下,就能更新到剛下載進(jìn)來的控制模式。其管腳圖如圖2.2.1所示。
圖2.2.1 WT588D的管腳圖
WT588D語音芯片的特點(diǎn)如下:
支持插入靜音模式,插入靜音不占用SPI-Flash內(nèi)存的容量,一個地址位可插入10ms~25min的靜音;
MP3控制模式下,完全迎合市場上MP3的播放/暫停、停止、上一曲、下一曲、音量+、音量-等功能;
按鍵控制模式下觸發(fā)方式靈活,可隨意設(shè)置任意按鍵為脈沖可重復(fù)觸發(fā)、脈沖不可重復(fù)觸發(fā)、無效按鍵、電平保持不循環(huán)、電平保持可循環(huán)、非電平保持可循環(huán)、單鍵向前不循環(huán)、單鍵向后不循環(huán)、單鍵向前可循環(huán)、單鍵向后可循環(huán)、音量+、音量-、播放/暫停、停止、播放/停止等15種觸發(fā)方式,最多可控制10個按鍵觸發(fā)輸出;
3×8按鍵組合控制模式下能以脈沖可重復(fù)觸發(fā)的方式觸發(fā)24個地址位語音,所觸發(fā)地址位語音可在0~219之間設(shè)置;
并口控制模式最多可用8個I/O口進(jìn)行控制;
一線串口控制模式可通過發(fā)碼端控制語音播放、停止、循環(huán)播放和音量大小,或者直接觸發(fā)0~219地址位的任意語音,發(fā)碼速度600us~2000us;
三線串口控制模式和三線串口控制I/O口擴(kuò)展輸出模式之間可通過發(fā)碼切換,三線串口控制模式下,能控制語音播放、停止、循環(huán)播放和音量大小,或者直接觸發(fā)0~219地址位的任意語音,發(fā)碼速度40us~4000us可調(diào),三線串口控制I/O口擴(kuò)展輸出可以擴(kuò)展輸出8位,在兩種模式下切換,能讓上一個模式的最后一種狀態(tài)保持著進(jìn)入下一個模式。
PWM和DAC輸出方式,PWM輸出可直接推動0.5W/8Ω的揚(yáng)聲器,DAC輸出外接功放,音質(zhì)好。應(yīng)用范圍廣,幾乎可以涉及到所有的語音場所,如報站器、報警器、提醒器、鬧鐘、學(xué)習(xí)機(jī)、智能家電、治療儀、電子玩具、電訊、倒車?yán)走_(dá)以及各種自動控制裝置等場所,工藝上達(dá)到工業(yè)應(yīng)用的要求。
WT588D的電路設(shè)計如圖2.2.2所示。單片機(jī)通過單線連接模式和WT588D進(jìn)行通信,WT588D的語音信號通過DAC輸出方式輸出。
圖2.2.2 WT588D語音模塊的電路圖
2.3 LM386功放電路設(shè)計
LM386是美國國家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20.但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至200.其管腳圖如圖2.3.1所示。
圖2.3.1 LM386芯片的引腳圖
本系統(tǒng)用LM386構(gòu)成了聲音信號放大器,將WT588D輸出的DAC信號進(jìn)行放大輸出,驅(qū)動喇叭發(fā)出聲音,電路設(shè)計如圖2.3.2所示,通過調(diào)節(jié)R3的10K的電阻可以調(diào)節(jié)放大音量的大小。
圖2.3.2 LM386構(gòu)成的放大器電路圖
2.4液晶顯示電路設(shè)計
本系統(tǒng)采用一塊128*64的LCD液晶屏作為信息的輸出界面,配合語音信息,一起方便司機(jī)師傅進(jìn)行調(diào)試和選擇,LCD液晶屏的實(shí)物圖如圖2.4.1所示。液晶屏的驅(qū)動電路采用官方的驅(qū)動電路,利用單片機(jī)來控制液晶屏的顯示和刷新,液晶屏顯示電路設(shè)計圖如圖2.4.2所示,可以通過調(diào)節(jié)R4的10K電阻調(diào)節(jié)液晶屏顯示的對比度。
圖2.4.1 LCD液晶屏的實(shí)物圖
圖2.4.1 LCD液晶屏的顯示驅(qū)動電路
3、軟件設(shè)計原理
本系統(tǒng)的軟件設(shè)計分為兩部分,WT588D的語音庫下載和SLH89F5162單片機(jī)程序下載。
3.1 WT588D的語音庫下載程序
首先利用科大訊飛的語音軟件《文語通》進(jìn)行語音合成,合成需要的站臺信息和提示聲音,利用詞語分組和句子劃分,讓語音通順流暢,最后生成wav文件,如圖3.1.1所示。然后利用WT588D的處理軟件WT588D VoiceChip V-B進(jìn)行語音文件的編譯處理,如圖3.1.2所示,最后下載到WT588D里面。
圖3.1.1文語通的CSSML Editor語音生成界面
圖3.1.2 WT588D VoiceChip V-B語音編譯與下載界面
3.2單片機(jī)的SLH89F5162程序設(shè)計
單片機(jī)的程序是用KEIL4編制的,主要是按鍵的識別、液晶屏的顯示、語音芯片WT588D的單線通信程序三部分。主要程序如下,詳情見附件。
void main(void)
{
uint block_n;
uint updata;
uint key_flag;
uchar flag_hold;
initinal(); //調(diào)用LCD字庫初始化程序
delay(50); //大于100uS的延時程序
flag_key=0;
flag_hold=0;
beep1(2-1);
block_n=2;
updata=1;
Display_hanzi(0,0,“公交報站系統(tǒng)”,8);
Display_hanzi(0,2,“本站:”,3);
Display_hanzi(0,1,“上站:”,3);
Display_hanzi(0,3,“下站:”,3);
Display_hanzi(3,2,Station[block_n],5);
Display_hanzi(3,1,Station[block_n-1],5);//上一站
Display_hanzi(3,3,Station[block_n+1],5);//下一站
Display_hanzi(0,1,“本站:”,3);
Display_hanzi(0,2,“上站:”,3);
Display_hanzi(0,3,“下站:”,3);
while(1)
{
delay(200);
if(K1==0
key_flag=0;
updata=1;
block_n=1;
beep1(block_n-1);
}
else if(K2==0
key_flag=0;
updata=1;
block_n=block_n+1;
if(block_n》10)
block_n=10;
beep1(block_n-1);
}
else if(K3==0
key_flag=0;
updata=1;
block_n=block_n-1;
if(block_n《1)
block_n=1;
beep1(block_n-1);
}
else if(K4==0
key_flag=0;
updata=1;
block_n=10;
beep1(block_n-1);
}
if(K1!=0
{
key_flag=1; ///標(biāo)志,當(dāng)按鍵按下,動作一下,按鍵松開后才能再次按下響應(yīng),防止連續(xù)動作
}
if(updata==1){
updata=0;
if(block_n==1){
Display_hanzi(3,1,Station[block_n],5);
Display_hanzi(3,2,Station[block_n],5);//上一站
Display_hanzi(3,3,Station[block_n+1],5);//下一站
}else if(block_n==10){
Display_hanzi(3,1,Station[block_n],5);
Display_hanzi(3,2,Station[block_n-1],5);//上一站
Display_hanzi(3,3,Station[block_n],5);//下一站
}else{
Display_hanzi(3,1,Station[block_n],5);
Display_hanzi(3,2,Station[block_n-1],5);//上一站
Display_hanzi(3,3,Station[block_n+1],5);//下一站
}}}}
三、項目設(shè)計框圖
1、硬件設(shè)計框圖
2、軟件設(shè)計框圖
四、測試結(jié)果
系統(tǒng)的PCB板實(shí)物圖
系統(tǒng)調(diào)試好的實(shí)物圖
經(jīng)過仔細(xì)認(rèn)真的焊接和調(diào)試,最終完成了系統(tǒng)的實(shí)物系統(tǒng),經(jīng)過調(diào)試,系統(tǒng)穩(wěn)定可靠。性能指標(biāo)如下:
1、系統(tǒng)功率小于5W.
2、能夠通過按鍵操作,進(jìn)行起始站、上一站、下一站、終點(diǎn)站的語音報警和液晶屏顯示,當(dāng)按鍵按下時,液晶屏顯示相應(yīng)的信息,語音輸出響應(yīng)的信息。
3、語音的聲音輸出清晰,流暢,普通話標(biāo)準(zhǔn),聲音最大能夠輸出60分貝。
4、顯示屏采用128*64的漢字顯示屏,能夠顯示字母、數(shù)字、漢字。