【正文】
5) 將語音模塊正確連接到AT89C51最小系統(tǒng)。在這一測(cè)試中,按鍵要控制兩項(xiàng)LCD1602的液晶顯示以及ISD4004語音的播放,而且兩個(gè)要同時(shí)。初始狀態(tài),系統(tǒng)上電,所有LED燈亮,有鍵按下時(shí)LED1滅。圖 “Huan Ying Cheng Zuo”示例圖其次,按鍵與ISD4004的調(diào)試。主要的問題是如何將按鍵加入到程序中,對(duì)LCD1602顯示的內(nèi)容進(jìn)行控制。移位的目的就是將不同的語音段保存在指定的位置,這樣以便地址的查詢。若程序燒錄成功后,按下錄音鍵,喇叭出現(xiàn)“滴滴滴滴”連續(xù)的響聲,說明錄音開始,可以進(jìn)行錄音。圖 LCD1602液晶顯示調(diào)試模塊示例最后,進(jìn)行ISD4004錄放音的調(diào)試。而數(shù)據(jù)輸入口接在P0口上,因此只要將其連接上即可。首先,我進(jìn)行了按鍵調(diào)試。圖 “Yiyaoxuexiao Dao Le” Num=4 LCD1602液晶顯示“Yinzhoueryuan Dao Le”,同時(shí)LED5亮。按下k1鍵 LCD1602液晶顯示“Huan Ying Cheng Zuo”,同時(shí)LED1亮。而D0~D7分別與51單片機(jī)的P0口進(jìn)行連接,用來輸出數(shù)據(jù)與字符,這樣就可以在液晶上顯示出自己想要的字符[13]。其實(shí)用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由68或88點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。由于Proteus軟件的限制,無法對(duì)ISD4004語音芯片進(jìn)行仿真,從而在此處我選用了LED燈來代替語音芯片,當(dāng)按鍵按下時(shí),相對(duì)應(yīng)的LED燈點(diǎn)亮。同時(shí)液晶顯示部分按照數(shù)組序號(hào)顯示字符程序,程序中table為要顯示的數(shù)組序號(hào),按照數(shù)組的次序依次顯示每站的站名。按下k4鍵,錄音地址往后移100,此時(shí)再按下k1鍵,開始第二段錄音。 軟件主流程圖系統(tǒng)上電后,液晶顯示模塊LCD1602與語音模塊ISD4004進(jìn)行初始化,當(dāng)檢測(cè)到有按鍵按下時(shí),進(jìn)行鍵值的判斷,根據(jù)鍵值,跳轉(zhuǎn)到相應(yīng)的顯示程序和語音播放程序并執(zhí)行,從而實(shí)現(xiàn)公交車語音報(bào)站功能。num=4,ISD4004播報(bào)“醫(yī)藥學(xué)校到了,請(qǐng)從后門下車,下車請(qǐng)當(dāng)心;車輛起步,請(qǐng)拉好扶手,前方??扣粗荻骸?,同時(shí)LCD1602上顯示“Yiyaoxuexiao Dao Le”。具體如下:k1鍵——起始鍵現(xiàn)象:ISD4004播報(bào)“歡迎乘坐”,同時(shí)LCD1602上顯示“Huan Ying Cheng Zuo”。因此在設(shè)計(jì)按鍵模塊時(shí),通過延時(shí)進(jìn)行了按鍵去抖動(dòng)的現(xiàn)象[11]。后者則通過軟件來確定按鍵并計(jì)算鍵值。鍵盤是若干按鍵的集合,是向系統(tǒng)提供操作人員干預(yù)命令及數(shù)據(jù)的接口設(shè)備。這樣一來就組成某個(gè)字符。4) 撥動(dòng)開關(guān)k1為錄音狀態(tài),k2為放音狀態(tài)。/,用來控制數(shù)據(jù)輸出,用來控制數(shù)據(jù)輸入。對(duì)51 系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:?jiǎn)纹瑱C(jī)、時(shí)鐘電路、復(fù)位電路、輸入/輸出設(shè)備等()。在本次設(shè)計(jì)中,我選擇了一個(gè)按鍵模塊。讓它正常工作。ISD4004具有如下特點(diǎn):首先是記錄聲音沒有段長度限制,并且聲音記錄不需要A/D轉(zhuǎn)換和壓縮。除此之外,我將仿真中的LED換成了真正的語音模塊,ISD4004語音模塊,用以實(shí)現(xiàn)語音播放的功能。1602液晶模塊內(nèi)部的控制器共有11條控制指令,通過這11條指令,可以完成1602上數(shù)據(jù)、字幕等顯示。當(dāng)按下k1鍵時(shí),LCD上顯示“HuanyingChengzuo”,同時(shí)LED1亮;如果當(dāng)前的站是“Wanlixueyuan Dao Le”,當(dāng)按下k2鍵時(shí),LCD上顯示“Ningboligong Dao Le”,此時(shí)LED2亮,LED3滅;當(dāng)按下k3鍵時(shí),LCD上顯示“Yiyaoxuexiao Dao Le”,此時(shí)LED4亮,LED3滅。 系統(tǒng)原理圖,在整個(gè)系統(tǒng)軟件設(shè)計(jì)中,依舊從語音,液晶顯示以及按鍵這三大部分進(jìn)行綜合考慮。 技術(shù)指標(biāo)針對(duì)本次基于單片機(jī)的公交車語音報(bào)站系統(tǒng)的設(shè)計(jì),其技術(shù)指標(biāo)主要來源于ISD4004語音模塊以及LCD1602液晶顯示模塊。num=3,ISD4004播報(bào)“萬里學(xué)院到了,請(qǐng)從后門下車,下車請(qǐng)當(dāng)心;車輛起步,請(qǐng)拉好扶手,前方??酷t(yī)藥學(xué)?!?,同時(shí)LCD1602上顯示“Wanglixueyuan Dao Le”。在本次軟件設(shè)計(jì)中,主要設(shè)計(jì)了4站,通過三個(gè)按鍵進(jìn)行控制。在此就不做詳細(xì)介紹。(注:NC為空腳) MISO串行輸出 MOSI串行輸入 VCC+5V /SS片選 SCLK時(shí)鐘 GND地 此處為IDC10接口標(biāo)有白色框的為音頻輸入MIC音頻輸出電源轉(zhuǎn)換輸入和輸出音量調(diào)節(jié)圖 語音模塊的接口定義 LCD1602液晶顯示模塊的rs,rw,e分別與51單片機(jī)的P3^5,P3^6,P3^7端口連接,進(jìn)行程序的讀寫數(shù)據(jù),字符操作。輸入:MIC輸入以及耳機(jī)插口輸入;輸出:喇叭輸出與耳機(jī)插口輸出。圖 LCD1602內(nèi)部顯示地址 硬件功能分配硬件需要實(shí)現(xiàn)的主要功能是將AT89C51最小系統(tǒng),LCD1602液晶顯示模塊,ISD4004語音芯片模塊以及按鍵模塊,按照程序正確的連接,觀察現(xiàn)象,看是否能夠?qū)崿F(xiàn)所需要的功能。指令10:寫數(shù)據(jù)。指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。高電平表示有效,低電平則無效。(說明:1為高電平、0為低電平)。當(dāng)單片機(jī)作為主芯片控制ISD4004時(shí),我們只需要在主程序中完成一些初始化的工作以及錄放結(jié)束工作,如ISD上電,掉電等。MCS51單片機(jī)的串行口方式0與其要求一致的。ISD4004工作于SPI串行接口。為求取編碼,在逐列掃描時(shí),可用計(jì)數(shù)器記錄下當(dāng)前掃描列的列號(hào),檢測(cè)到第幾行有鍵按下,就用該行的首鍵碼加列號(hào)得到當(dāng)前按鍵的編碼。其過程如下:PA口輸出00H,即所有列線置成低電平,然后將行線的電平狀態(tài)讀入累加器A中。將液晶的數(shù)據(jù)輸入端DB0~DB7與單片機(jī)的P2口相連,,RW,E端連接,用來控制液晶LCD1602的顯示。采樣頻率可為 ,頻率越低,錄放時(shí)間越長,而音質(zhì)則有所下降,片內(nèi)信息存于閃爍存貯器中,可在斷電情況下保存100年(典型值),反復(fù)錄音10萬次。ISD4004系列工作電壓3V,單片錄放時(shí)間8分鐘至16分鐘,音質(zhì)好,適用于移動(dòng)電話及其他便攜式電子產(chǎn)品中。ISD4004具有如下特點(diǎn):首先是記錄聲音沒有段長度限制,并且聲音記錄不需要A/D轉(zhuǎn)換和壓縮。[5]。第2章 系統(tǒng)體系結(jié)構(gòu)本設(shè)計(jì)采用單片機(jī)AT89C51作為自動(dòng)報(bào)站的檢測(cè)和驅(qū)動(dòng)控制核心,控制ISD4004語音芯片電路以及LCD1602液晶顯示站名的硬件設(shè)計(jì)和軟件設(shè)計(jì),實(shí)現(xiàn)公交車的語音報(bào)站。此報(bào)站器是在公交車上安裝GPS自動(dòng)語音報(bào)站器,自動(dòng)識(shí)別站點(diǎn)并報(bào)告站點(diǎn)信息。這類控制器是由乘務(wù)人員按動(dòng)進(jìn)站按鈕開始報(bào)站,出站時(shí),由乘務(wù)人員按下出站按鈕,開始預(yù)報(bào)下站的站名,通過序號(hào)來記錄各個(gè)站點(diǎn);2) 門控語音報(bào)站器。即由售票人員進(jìn)行人工報(bào)站,這個(gè)售票人員多的工作不僅需要負(fù)責(zé)售票工作,還要準(zhǔn)確的為乘客報(bào)站,作為一個(gè)地區(qū)的公交車站行業(yè),有一定的地方特色,他們報(bào)站時(shí)多采用地方口音,作為一個(gè)外地人有時(shí)候很難聽懂報(bào)站,從而引起很多麻煩??梢?,未來,公交車將充當(dāng)現(xiàn)代城市生活中一個(gè)重要的角色,也就是說城市公共交通在今后的發(fā)展中將得到迅速的發(fā)展。城市交通需求與供給之間的矛盾越來越突出,城市“乘車難”、“行車難”的局面在加劇,交通堵塞呈現(xiàn)出點(diǎn)到線,由線到面的擴(kuò)展趨勢(shì),交通擁擠、交通延誤、交通堵塞以及由此引起的噪音、廢氣污染,城市空氣質(zhì)量指數(shù)的嚴(yán)重跌落嚴(yán)重影響著居民的正常生活以及社會(huì)經(jīng)濟(jì)的持續(xù)、健康發(fā)展。系統(tǒng)主要由AT89C51單片機(jī)、語音模塊ISD400按鍵和LCD1602顯示器組成。系統(tǒng)通過3個(gè)按鍵控制實(shí)現(xiàn)起始站、上一站、下一站的控制功能。關(guān)鍵詞:?jiǎn)纹瑱C(jī)控制;液晶顯示;ISD4004;鍵盤AbstractIn order to improve the quality of bus service and satisfy the requirements of all kinds of passengers, a busstopreporting system with voice player is designed. The system realizes the function of reporting the originating station、the previous station and the next station. The system is made up of AT89C5voice module ISD400buttons and monitor LCD1602. Information of stations reported is stored in ISD4004 voice module. Voice player is controlled by buttons, broadcasted information is displayed on LCD. The design is tested by six groups of people and the result shows that the system works stably and reliably. It reaches the design requirements.Keywords:Single chip microputer;LCD;ISD4004;Keys 目錄摘要 IAbstract II目錄 III第1章 選題背景和意義 1第2章 系統(tǒng)體系結(jié)構(gòu) 3 系統(tǒng)構(gòu)成 3 軟硬件功能分配 6 軟件功能分配 6 硬件功能分配 8 功能描述 10 技術(shù)指標(biāo) 11第3章 系統(tǒng)硬件 12 設(shè)計(jì)思想 12 系統(tǒng)原理圖 12 元器件選擇 13 各模塊介紹 14第4章 系統(tǒng)軟件 18 設(shè)計(jì)思想 18 模塊程序設(shè)計(jì) 18 軟件主流程圖 19 ISD4004語音模塊錄放音 19 LCD1602 21 按鍵部分 22 仿真過程、結(jié)果分析 23第5章 系統(tǒng)調(diào)試 28 硬件調(diào)試 28 軟件調(diào)試 29 綜合調(diào)試 32 測(cè)試結(jié)果 32第6章 測(cè)試結(jié)果及分析 37 測(cè)試環(huán)境 37 測(cè)試結(jié)果 37第7章 總結(jié)與展望 39參考文獻(xiàn) 41附件 42致 謝 56第1章 選題背景和意義 隨著城市化的進(jìn)展和經(jīng)濟(jì)的快速發(fā)展,大城市人口高度集中并大幅度增長,同時(shí)汽車越來越普及,交通需求迅速擴(kuò)大,而道路交通基礎(chǔ)設(shè)施建設(shè)的發(fā)展相對(duì)滯后。實(shí)施“公交優(yōu)先”是解決我國城市交通問題的有效途徑,也是我國目前城市交通發(fā)展的基本政策。其次,傳統(tǒng)的報(bào)站方式效果太差。目前語音報(bào)站器技術(shù)主要有以下四種[2]:1) 手動(dòng)語音報(bào)站器。4) GPS自動(dòng)語音報(bào)站器[4]。考慮到各方面的因素后,在本次公交車報(bào)站器系統(tǒng)設(shè)計(jì)中,我采用了第一種的語音報(bào)站方法。采用AT89C51單片機(jī)作為主控芯片,利用ISD4004數(shù)碼語音芯片實(shí)現(xiàn)語音報(bào)站,顯示采用LCD1602,鍵盤采用通用按鍵開關(guān),簡(jiǎn)單易行且控制方便。總之,AT89C51在系統(tǒng)中實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的全局控制,是該系統(tǒng)的指揮部件。而且ISD4004開發(fā)應(yīng)用具有所需外圍電路簡(jiǎn)單的優(yōu)點(diǎn)。芯片采用多電平直接模擬量存儲(chǔ)技術(shù), 每個(gè)采樣值直接存貯在片內(nèi)閃爍存貯器中,因此能夠非常真實(shí)、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和金屬聲。控制電路選用單片機(jī)AT89C51,本電路/EA接高電平,沒有擴(kuò)展ROM。1) 檢測(cè)鍵盤上是否有按鍵按下的處理方法是:將列線送入全掃描字,讀入行線的狀態(tài)來辨別。其具體過程如下:從PA0開始,依次輸出“0”,置對(duì)應(yīng)的列線為低電平,然后從PC口讀入行線狀態(tài),如果全為“1”,則按下的鍵不在此列;如果不全為“1”,則按下的鍵必在此列,而且是該列與“0”電平行線相交的交點(diǎn)上的那個(gè)鍵。ISD4004 采用多電平直接模擬量存儲(chǔ)技術(shù),每個(gè)采樣值直接存儲(chǔ)在片內(nèi)閃爍存儲(chǔ)器中,因此能夠非常真實(shí)的再現(xiàn)語音,音樂等效果。即在時(shí)鐘上升沿鎖存MOSI引腳數(shù)據(jù),寫入命令字;在下降沿將數(shù)據(jù)送至MISO引腳,讀取狀態(tài)字。ISD4004總共10條命令。1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。模塊有兩路輸入和兩路輸出。模塊的接口定義如下(頂視)。圖 本次設(shè)計(jì)的按鍵模塊采用通用按鍵開關(guān),簡(jiǎn)單易行且控制方便,用以控制整個(gè)系統(tǒng)設(shè)計(jì)中LCD液晶顯示以及語音播放。鍵盤采用通用按鍵開關(guān),簡(jiǎn)單易行且控制方便。num=2,ISD4004播報(bào)“寧波理工到了,請(qǐng)從后門下車,下車請(qǐng)當(dāng)心;車輛起步,請(qǐng)拉好扶手,前方??咳f里學(xué)院”,同時(shí)LCD1602上顯示“Ningboligong Dao Le”。num=6,ISD4004播報(bào)“謝謝乘坐本次公交車”,同時(shí)LCD1602上顯示“Xie Xie Cheng Zuo”。因此當(dāng)公交車到達(dá)某站時(shí)通過鍵盤來控制本系統(tǒng)進(jìn)行工作,通過語音輸出電路進(jìn)行語音報(bào)站,CPU同時(shí)通過程序讀取字符信息送入LCD液晶顯示電路進(jìn)行液晶顯示[8]。在此次軟件設(shè)計(jì)過程中,總共有4個(gè)按鍵,k1:Huany