于麗麗 郭靜靜
摘要:日常生活中各單位、高校等都有設置風格迥異的大大小小的靜態的地圖指示牌,因為沒有動態的指引或語音提示,人們往往要花很長的時間來查找目標地點的路線。針對上述問題,以高校校園地圖為例,通過設置目標地點LED燈和道路指引LED燈,利用單片機控制目標地的按鍵來實現快速定位,同時進行語音播放,達到快速查找的目的。
關鍵詞:單片機;動態地圖;語音地圖;指示牌
中圖分類號:TN709? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2019)03-0197-02
道路指示牌在日常生活中隨處可見,企事業單位、各類高校校園等都設置了各式各樣的大大小小的靜態地圖或道路指示牌,為外來人員快速預覽全局或者指引行走路線。但是人們在預覽時不能很快地找到自己的當前所在地以及自己想去的地點。本設計針對上述缺點,通過設置目標地點LED燈、道路指引LED燈、目標地按鍵,利用單片機控制來實現快速定位當前所在地和目標地的路線,同時跟隨語音播放模塊,讓人們能夠快速地在地圖指引上找到自己想走的路線。
1 系統總體結構
如圖1所示,系統總體結構由單片機控制模塊、按鍵掃描模塊、目標地點LED驅動模塊、道路LED驅動模塊、語音播放模塊組成。
單片機控制模塊作為整個系統的控制中心,分別連接其他各個模塊,控制其他模塊工作,實現系統所需功能。按鍵掃描模塊用于檢測用戶輸入的目標地點,并輸出給單片機控制模塊。目標地點LED驅動模塊用于從單片機控制模塊接收目標地點各個LED的數據,并驅動目標地點各個LED工作。道路LED驅動模塊用于從單片機控制模塊接收道路上各個LED的數據,并驅動道路上各個LED工作。語音播放模塊從單片機控制模塊接收語音播放內容并合成語音播放。
系統工作時,單片機掃描模塊接收到用戶通過按鍵掃描模塊輸入的目標地點后,生成目標地點LED驅動數據、道路LED驅動數據及到達目標地點的語音播放內容,并把數據輸出給各個模塊,驅動目標地點LED和道路LED,控制語音播放模塊播放語音。
2 系統各個模塊說明
2.1 單片機控制模塊
單片機控制模塊選用STC89C58單片機[1],指令代碼完全兼容傳統8051單片機。系統連接中,由P1口和P3.2口連接按鍵掃描模塊。P3.0和P3.1引腳構成的UART接口連接語音播放模塊。P2口連接目標LED驅動模塊和道路LED驅動模塊。
2.2 按鍵掃描模塊
本系統以榆林職業技術學院校園地圖為例,根據系統設計需求,實現20個目標地點的功能,因此按鍵掃描模塊設計成4x5的按鍵掃描模塊,每個按鍵對應一個目標地點,每個按鍵對應的目標地點基本與實際目標地點的位置對應。采用行選擇列數據輸出的方式進行按鍵掃描。行選擇分別接P1.0到P1.3接口,列數據輸出接P1.4到P1.7及P3.2接口。
2.3 目標地點LED驅動模塊
由于LED數量較多,而單片機IO口的數量有限,因此本系統采用74HC595串并轉換芯片[2]對IO口進行擴展,滿足驅動多個LED的需求。74HC595每片可驅動8個LED燈,可通過級聯多片的方式驅動更多LED,每個IO口具有35mA的驅動電流,可直接驅動LED。
74HC595內部主要由移位寄存器和鎖存器組成(如圖2所示)。SRCLK為移位寄存器時鐘觸發引腳,SER為數據輸入。SRCLK時鐘信號為上升沿觸發,時鐘信號觸發時,輸入數據由SER引腳移入Bit0,同時所有數據向高位移動一位,最高位Bit7則移到輸出引腳OUT。RCLK接到鎖存器的鎖存時鐘,由上升沿觸發,當鎖存時鐘觸發時,各個位的移位寄存器輸出數據分別鎖存到鎖存器的輸出,驅動各個LED燈,鎖存器時鐘不變時,鎖存器輸出數據不隨鎖存器的輸入數據變化。
當有多片74HC595級聯時,各片74HC595的移位寄存器時鐘SRCLK和鎖存器時鐘RCLK并聯在一起,第1片74HC595的數據輸入引腳SER接到單片機數據輸出引腳,后一片74HC595的數據輸入引腳SER接到前一片的移位寄存器輸出引腳OUT進行級聯。由于系統設計20個目標地點,因此需級聯3片74HC595芯片,最多可提供24路輸出,滿足20個目標地點的設計需求。
控制LED時,單片機先把LED驅動數據的每一位輸出74HC595的數據輸入引腳,同時控制移位寄存器時鐘移位數據,高位LED數據先輸出。當所有LED數據輸入到移位寄存器,控制鎖存器時鐘RCLK鎖存數據。
設計LED的驅動電流為15mA,74HC595驅動芯片引腳輸出為5V電壓,LED自身壓降為2V,因此選擇限流電阻為200歐,限流電阻和LED串聯接到74HC595的輸出引腳。
2.4 路上LED驅動模塊
路上LED驅動模塊電路和目標地點LED驅動模塊類似。路上所有LED先按照一定的順序排列,逐個LED分別接到74HC595芯片的一個輸出引腳上,從第1片74HC595芯片的第1個輸出開始連接。由于路上LED數量比較多,因此需要比較多的75HC595芯片級聯。
路上LED程序設置分2步進行。
第1步,根據目標地點標號,首先查找通向目標地點LED的所有路段編號;其次清空所有路段的緩存數據;最后根據目標地址的路段編號,設置對應路段的緩存數據為1,不在該路段上的數據仍然為0。
第2步,首先清空設置LED數據緩存;其次,根據第1步計算的路段LED數據緩存,對于路徑上設置為1的數每隔2位取1位寫入到設置為1,其他數據保存為0寫入到設置LED數據緩存的相應位置中;然后把LED數據緩存下發到74HC595芯片,高位先發;最后控制74HC595芯片鎖存輸出,驅動目標地點LED點亮。為了實現流水燈效果,每間隔300ms,根據第1步設置的路段緩存數據,在第2步中設置下一個流水燈的數據。
2.5 語音播放模塊
語音播放模塊采用科大訊飛的語音合成芯片XFS5152CE[3],XFS5152CE是一款高集成度的語音合成芯片,可實現中文、英文語音合成;并集成了語音編碼、解碼功能,可支持用戶進行錄音和播放。如圖3所示。語音合成芯片XFS5152CE通過UART接口和單片機通信,單片機按照通信協議把語音播放內容封裝成數據包,通過UART接口發送給語音合成芯片,語音合成芯片收到正確的數據包后先應答單片機收到正確的數據包,然后開始語音合成,語音信號通過功放放大后輸出給喇叭播放。語音播放完畢,語音合成芯片應答單片機語音播放完畢。
正常通信過程中,單片機發送語音合成數據幀給語音合成芯片后,語音合成芯片校驗數據幀無誤后應答0x41給單片機,表示收到正確的數據幀。當語音合成播放完畢,語音合成芯片應答0x4F給單片機,表示語音播放完畢,進入空閑狀態。
3 單片機處理流程
主處理流程如圖4所示。
4 結論
本文設計通過單片機作為控制核心模塊,采取設置目標地點按鍵,利用串并轉換芯片74HC595,通過級聯的方式實現了目標地點和目標路線上的LED的控制顯示,同時加裝了語音解讀模塊,實現了快速預覽查找目標位置地點及路線的功能。各高校、企業等可根據需要自行定制本單位的動態語音地圖,為外來人員提供便利。
參考文獻:
[1] STC89C552系列單片機指南. http://www.stcisp.com/stcmcu-pdf.html
[2] SN74HC595_datasheet. http://www.alldatasheet.com/view.jsp?Searchword=74HC595
[3] XFS5152CE語音合成芯片用戶開發指南V1.2. https://wenku.baidu.com/view/8ef6c438df80d4d8d15abe23482fb4daa58 d1db1.html
【通聯編輯:張薇】