摘要:本文在Proteus仿真平臺上設計了城市公交報站系統(tǒng)。該報站系統(tǒng)的硬件電路由單片機AT89C51、顯示模塊LCD 128x64和紅綠雙色發(fā)光二極管等構成,采用C語言編程和漢字取模軟件,實現(xiàn)LCD液晶屏文字報站和指示燈顏色提示位置的功能。本文網(wǎng)絡版地址: http://www.eepw.com.cn/ article/266058.htm
關鍵詞:Proteus;報站系統(tǒng);LCD
DOI: 10.3969/j.issn.1005-5517.2014.11.015

概述
隨著城市化的推進,大力發(fā)展公共交通,提高公交運行效率將成為緩解城市交通壓力的一大措施。通過實地考察,目前天津市區(qū)的公交車站存在以下問題:①車站仍是傳統(tǒng)站牌,沒有實現(xiàn)數(shù)字化;②公交車上報站目前采用LED屏幕文字報站和語音報站,可以參考地鐵報站系統(tǒng)添加上指示燈,方便乘客掌握該車位置信息。本文設計了城市公交報站系統(tǒng)的控制電路,并在Proteus仿真平臺上完成模擬。
1 Proteus介紹
Proteus軟件是英國Lab Center Electronics公司推出的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)[1]。該軟件可以提供嵌入式系統(tǒng)(單片機應用系統(tǒng)、ARM應用系統(tǒng))軟硬件設計仿真平臺,支持主流單片機系統(tǒng)的仿真并集SPICE分析于一身,可以把用戶編寫的應用程序下載到微處理器(MCU)中,結合外界連線及模擬、數(shù)字電路對微處理器進行系統(tǒng)邏輯功能的開發(fā)。該軟件除了大量的元件庫外,還有常用的虛擬儀器;在編譯調試方面,還支持Keil和MPLAB等第三方集成開發(fā)工具[2]。
2 報站系統(tǒng)硬件仿真電路設計
本文采用ATMEL公司生產(chǎn)的低功耗、高性能AT89C51單片機。
液晶顯示屏采用的是 LCM12864R,12864是128×64點陣液晶模塊的點陣數(shù)簡稱。該器件具有體積小、便于攜帶、功耗低、抗干擾能力強、信息豐富等優(yōu)點,被廣泛運用在儀器儀表和控制系統(tǒng)中[3]。在公交報站系統(tǒng)中,采用液晶屏進行站名漢字顯示,具有直觀性。本文使用的液晶模塊為Proteus中的AMPIRE 128×64,其引腳說明見表1。
城市公交報站系統(tǒng)的電路連接圖如圖1所示。為了便于公交車上的乘客和車站候車的乘客,參考地鐵報站系統(tǒng),采用紅綠發(fā)光二極管指示來確定該車的大致位置,紅色指示燈代表已經(jīng)到達的車站,綠色指示燈代表未到或者即將到達的車站。車輛的到站伴隨著燈的顏色切換,液晶顯示模塊會及時報站。本文的站名是參考X大學校區(qū)內公交車在學校的行車路線設定的。P3.0~P3.7引腳為無線通信模塊TC35i保留。


3 報站系統(tǒng)軟件設計
3.1 字符的顯示
LCD顯示一個字符是由16×8(半角字符)或16×16(全角字符)點陣組成。對于內帶字符發(fā)生器的控制器來說,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應的地址,設立光標,在該RAM地址上賦值上該字符對應的代碼即可。漢字的顯示一般采用圖形的方式,要事先提取漢字的點陣碼,每個漢字占32B,分左右兩半,各占16B,左邊為1、3、 5?右邊為2、4、6?,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應的地址,設立光標,賦值待顯示的漢字的第一字節(jié),光標位置加1,賦值第二個字節(jié),換行按列對齊,賦值第三個字節(jié),直到32B顯示完就可以在LCD上得到一個完整漢字[4]。
本文采用PCtoLCD2002完美版軟件提取字模,打開窗口,如圖2所示,設置好字體、字號等格式參數(shù),在漢字輸入?yún)^(qū),輸入要顯示的漢字,點擊生成字模即得到需要的代碼。將本設計涉及的漢字用軟件取模批量生成16x8點陣代碼,存入單片機的EEPROM區(qū)的TABLE表格中,需要時將代碼讀出到硬件電路上,顯示出漢字[5]。
3.2 程序設計
本設計針對該路公交設計了4站:第一站為東區(qū)食堂、第二站為體育中心、第三站為大學生活動中心、第四站終點站為西區(qū)食堂。對該路公交單邊線路的報站進行了仿真。軟件流程圖如圖3所示。
單片機C51上電后,初始化液晶顯示屏LCD,并進行清屏。報站內容可以采用常見的按鍵方法(即到哪站按下相應站的按鈕,LCD會顯示對應的報站內容,對應的提示燈也會發(fā)生變化),也可以采用無線報站的方法,該方法通過GPS模塊發(fā)送經(jīng)緯度信息到車載和車站顯示系統(tǒng),經(jīng)過處理顯示相應公交到站信息。后面一種方法更加智能化,可在以后進一步研究。無論哪種方法,在實現(xiàn)公交報站功能方面都是一樣的。程序的流程如下:
第一步:對LCD液晶屏初始化,設置屏相關參數(shù),如屏幕開關、起始行等等。
第二步:檢測是否到第X站,到達后指示燈變換和LED報站顯示。
第三步:檢查是否到終點站,若到達指示燈全滅,液晶屏清屏,等待重新發(fā)車。
4 仿真結果

對用C語言編寫的程序在keil uvision4軟件開發(fā)平臺上進行了編譯調試,最終編譯成功,生成.HEX文件,把.HEX文件下載到Proteus軟件的C51單片機中,并在Proteus軟件中設置單片機的晶振為12 MHz,最終實現(xiàn)了如圖4所示的顯示效果。
5 結論
本文設計的城市公交報站系統(tǒng),通過了Proteus仿真平臺的驗證,不僅實現(xiàn)了在相應站臺下液晶模塊顯示相應文字的功能,還實現(xiàn)了通過紅綠雙色燈顯示車輛的位置。對提高城市公交的人性化有一定的技術幫助,也為乘客向導系統(tǒng)(PIS,Passenger Information System)的建立提供了一些方法和思路[6]。在本設計基礎上可以添加無線通信模塊TC35i,通過短信收發(fā)模塊TC35i接入單片機,實現(xiàn)無線通信進而可以在車站端發(fā)布公交到站時間等實時信息,便于乘客乘車出行。
參考文獻:
[1]proteus百度百科[R/OL].http://baike.baidu.com/link?url
=OJ0bEIpbkWT2ejq1N5wXyicuKzbmssLdqLilV6ls9vrvR5im wK3__5_eEUi3ffLX.
[2]李吉志,鄧發(fā)明,張本文.基于 Proteus 的公交車液晶顯示報站系統(tǒng)的設計與仿真[J].液晶與顯示,2009 (6): 874-878
[3]史良.LCD12864 顯示模塊與微處理器的接口設計[J].礦業(yè)安全與環(huán)保,1999(5):16-17
[4]嚴家明,楊燕翔.基于單片機的 LCD 顯示原理與實現(xiàn)[J].工程地質計算機應用,2005(2):20-22
[5]楊延寧,劉立軍,張志勇.基于 Proteus 的單片機漢字點陣顯示電路設計[J].液晶與顯示,2009,24(1):98-102
[6]李瑛,趙紅.天津地鐵1號線車站乘客向導系統(tǒng)的設計與實現(xiàn)[J].鐵道通信信號,2009(11):21-22