聶 茹
(華南理工大學廣州學院電子信息工程學院,廣州 510800)
隨著我國城市建設(shè)的發(fā)展,公交車已成為人們的主要交通工具,公交車的服務(wù)質(zhì)量代表了一個城市交通發(fā)展的水平。如今由售票員人工售票,報站的公交車已經(jīng)基本沒有了,無人售票公交車在街頭逐漸多起來了,語音報站器也被廣泛使用,這在相當大程度上免除了乘務(wù)人員沿途報站的麻煩,給許多不熟悉公交線路的乘客帶來了方便。隨著單片機技術(shù)的日益成熟,多媒體技術(shù)的普通應(yīng)用,公交車語音報站器系統(tǒng)的服務(wù)得到進一步完善。
在結(jié)合單片機和公交車報站器特點的基礎(chǔ)上,設(shè)計了一種基于單片機STC89C52來控制語音芯片ISD4004進行公交車語音報站,并通過LCD1602來顯示當前實時情況的公交車自動報站系統(tǒng)。該公交車報站器系統(tǒng)結(jié)構(gòu)簡單,音質(zhì)清晰,可以在各種公交車上提供及時報站服務(wù),具有很強的實用性。
公交車自動報站系統(tǒng)的主要功能如下:
(1)不同公交線路站名的輸入和更換。
(2)實現(xiàn)完整手動播報一條公交線路的站名,包括上行線路與下行線路。
(3)進行語音播報,使報站器更人性化。
(4)可以在LED顯示屏上顯示時間、日期、報站信息、提示語和廣告。
(5)利用汽車后門的打開與關(guān)閉實現(xiàn)對當前站名的播報和下一站的預(yù)報,當播報出錯時還可以利用調(diào)試按鈕對播報系統(tǒng)進行調(diào)試。
本系統(tǒng)硬件部分主要包括MCU微處理控制器單元、LCD液晶顯示模塊、語音芯片、功放、按鍵控制、紅外電路模塊、溫度測試模塊、實時時鐘電路、晶振電路、電源模塊等電路。
系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)以STC89C52單片機為CPU進行系統(tǒng)搭建,它是宏晶科技推出的新一代高速、低功耗、超強抗干擾的單片機,具有8K可編程Flash存儲器,512字節(jié)RAM,32位I/O口線,指令代碼完全兼容傳統(tǒng)8051[1]。
系統(tǒng)利用液晶1602模塊進行顯示。LCD1602是一種用5×7點陣圖形來顯示字符的液晶顯示器模塊,它顯示的容量為2行16個字。它的顯示內(nèi)容豐富、體積小、美觀和易于控制都是本設(shè)計選擇它作為顯示模塊的原因。常以I/O口方式進行讀寫訪問,在該設(shè)計中,我們使用P0口直接驅(qū)動1602,由P2.0、P2.1、P2.2 這3 個引腳做控制端。
語音芯片采用 ISD4004。美國 ISD公司的ISD4004芯片是一種功能非常強大的語音芯片[2],它的錄放時間為8至16分鐘,而本公交車系統(tǒng)的錄音時間長,采用ISD4004利于每個站臺的錄音和報站。另外在控制上,ISD4004可以直接通過地址方式查詢錄音信息并通過揚聲器報放錄音信息。最后也是最重要的,ISD4004具有錄音結(jié)束標志,當錄音結(jié)束后,單片機可以通過讀取該標志產(chǎn)生中斷信號,使CE、PD置高電平,從而控制ISD4004進入不工作節(jié)能狀態(tài)。
紅外無線控制電路,由發(fā)射和接收兩大部分組成,應(yīng)用編/解碼專用集成電路芯片來進行控制操作。發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。
實時時鐘模塊采用DS1302時鐘芯片實現(xiàn)。DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路[3],它可以對年、月、日、星期、時、分、秒計時,DS1302與單片機之間用同步串行的方式進行通信,用RST(復(fù)位)、I/O(數(shù)據(jù)線)、SCLK(串行時鐘)這三個接口線進行連接。
溫度傳感模塊采用單總線數(shù)字溫度傳感器DS18B20,單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成。DALLAS公司的DS18B20是這樣一種獨特的溫度傳感器,它只需一個接口引腳即可通信,可用數(shù)據(jù)線供電,并具備多點測溫能力[4]。DS18B20具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點[5],本設(shè)計在P3.3懸掛該溫度傳感器。
按鍵控制模塊使用簡單的獨立式按鍵來控制報站信息,同時設(shè)置系統(tǒng)在不同功能下單個按鍵的功能也隨之不同。按鍵采用重復(fù)使用功能,這使系統(tǒng)看起來較簡便,控制簡單,設(shè)計新穎。
系統(tǒng)的軟件設(shè)計包括中斷服務(wù)程序、錄音/放音控制程序、紅外遙控解碼程序及主程序的設(shè)計。
在CPU工作的同時,它也在查詢INTO是否有中斷信號(低電平有效)產(chǎn)生。當檢查到有中斷信號時,CPU發(fā)出讓顯示器和ISD4004工作的控制信號,把接收到的站牌信息顯示并播報出來,播報結(jié)束后,系統(tǒng)返回到相應(yīng)的主程序。圖2為本設(shè)計使用的中斷服務(wù)程序流程圖。
圖2 中斷服務(wù)流程圖
如果有按鍵按下,電路將執(zhí)行該按鍵指向的工作程序。有放音鍵,停止鍵,加一,減一鍵以及特殊語鍵。在待機狀態(tài)下,如果放音鍵首次被按下,程序?qū)⑹紫扰袛嗍侨ミ€是回(公交車路徑一般是既去又回的),并點亮相應(yīng)的指示燈。自動讀出第一站的放音內(nèi)容,站號顯示1。如果不是首次按下,程序則首先判斷當前站號,并以該站號為依據(jù)獲得存放該站放音內(nèi)容的首地址。調(diào)用放音子程序,讀入前面獲得的本站放音內(nèi)容首地址,開始放音。每一句放音完畢后,ISD4004的中斷引腳(25腳)會自動送一低電平信號。在硬件設(shè)計中,該引腳與單片機的P3.3連接。因此,會引起一次中斷,在中斷子程序中會有一個計數(shù)器記錄中斷次數(shù),從而判斷何時一站結(jié)束,站號加一并刷新顯示。加一鍵按下后則使程序放音內(nèi)容轉(zhuǎn)向下一站,減一鍵則使程序放音內(nèi)容轉(zhuǎn)向上一站,相應(yīng)的站號顯示也將隨之刷新。特殊語鍵按下后,程序轉(zhuǎn)向執(zhí)行特殊語放音(比如拐彎請注意等語句)。停止鍵被按下將中止當前的放音狀態(tài)。
系統(tǒng)的主程序設(shè)計是用來控制整個系統(tǒng)運行的時序工作狀態(tài),因此,完善的程序設(shè)計是本設(shè)計的重點內(nèi)容。圖4是本設(shè)計使用的主程序設(shè)計流程圖。
圖3 錄音/放音程序流程圖
圖4 主程序流程圖
以STC89C52單片機為核心設(shè)計公交車自動報站系統(tǒng)。系統(tǒng)經(jīng)過實際調(diào)試,可以正常運行,音質(zhì)清晰,在各種公交車上都可以提供及時報站服務(wù),具有很強的實用性。
[1]劉維紅,譚永超.基于STC89C52單片機的電子時鐘研究[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2012(9):57-58.
[2]靖大同,吳向前,司志澤.基于ISD4004芯片的電梯智能語音系統(tǒng)的設(shè)計[J].電子世界,2012(11):35-36.
[3]裘昌利,金美善,楊坤.串行時鐘芯片DS1302在單片機系統(tǒng)中的應(yīng)用[J].現(xiàn)代教育科學,2010(1):96-97.
[4]何慧娟,何芝仙,趙轉(zhuǎn)哲.基于DS18B20的單片機溫控系統(tǒng)[J].科技信息,2008(13):149-150.
[5]王琪,朱光衡.一種基于DS18B20的單點測溫方法的研究[J].科技傳播,2011(17):223-224.