基于Proteus的公交車液晶顯示報站系統(tǒng)的設計與仿真
摘 要: 在嵌入式系統(tǒng)軟硬件設計仿真平臺Proteus 的基礎上設計了公交車液晶顯示報站系統(tǒng)。硬件電路包括控制器件AT89C51、顯示模塊LCD 128 ×64 和4 個操作按鍵。通過漢字取模軟件生成漢字點陣,采用匯編語言編程實現(xiàn)了康定城第2 路公交車單線方向的報站仿真。
本文引用地址:http://m.butianyuan.cn/article/167457.htm1 引 言
公交車對提升城市形象、促進社會經(jīng)濟發(fā)展起到積極推動作用。但在我國偏遠的西部和經(jīng)濟還不太發(fā)達的一些地方,公交車的發(fā)展還明顯跟不上人們?nèi)找嬖鲩L的物質(zhì)需求,如2009 年3 月,康定縣才成為四川藏區(qū)第一個開通公交服務的城市。對于我國二級以下的城市,目前公交車報站的情況大多還存在以下問題: ①沒有自動報站,實行人工報站;②有自動報站,卻停留在單一的語言報站上;③LED站臺數(shù)字編號(比如002) 顯示;④LED 漢字顯示屏,但屏幕顯示內(nèi)容單一。這些在乘客對路線不熟悉或在乘車擁擠的情況下,勢必會給乘客帶來不便。本文設計了公交車報站系統(tǒng)液晶顯示漢字的控制電路,并在Proteus 仿真平臺上完成了模擬。
2 Proteus 介紹
Protus ISIS 是英國Labcenter 公司開發(fā)的電路分析實物仿真軟件。該軟件可以提供嵌入式系統(tǒng)(單片機應用系統(tǒng)、ARM 應用系統(tǒng)) 軟硬件設計仿真平臺,支持主流單片機系統(tǒng)的仿真并集SPICE 分析于一身,把用戶編寫的應用程序下載到微處理器(MCU) 中,結合外界連線及模擬、數(shù)字電路對微處理器進行系統(tǒng)邏輯功能的控制。該軟件除了大量的元件庫外,還有常用的虛擬儀器;在編譯調(diào)試方面,還支持Keil 和MPLAB 等第三方集成開發(fā)工具。
3 報站系統(tǒng)液晶顯示的硬件仿真電路設計
液晶顯示器(Liquid Crystal Display ,LCD)具有體積小便于攜帶、功耗低、抗干擾能力強、信息豐富等優(yōu)點,已被廣泛地運用在了儀器儀表和控制系統(tǒng)中。在公交報站系統(tǒng)中,采用LCD 進行站名漢字顯示,具有直觀性,增強了系統(tǒng)的實用性。
表1 AMPIR 128 ×64 管腳說明
本文液晶模塊選用Proteus 中的AMPIRE128 ×64 .其管腳說明見表1 ,顯示模式見表2。
根據(jù)表1 完成硬件電路的連接,根據(jù)表2 完成軟件部分液晶驅(qū)動程序。
表2 AMPIR 128 ×64 的顯示方式控制
報站系統(tǒng)液晶顯示的電路連接圖如圖1 所示??刂齐娐愤x用單片機AT89C51 , 本電路
接高電平,沒有擴展ROM.將液晶的數(shù)據(jù)輸入端DB0~DB7 與單片機的P0 口相連,將P2. 0 ,P2. 1 , P2. 2 分別與液晶的E , RW , RS 端連接,P2. 4 和P2. 3 分別和CS1 和CS2 端連接,用來控制液晶左右屏的顯示。為了便于司機操作,采用4 個獨立式按鍵對顯示進行控制,分別與單片機的P1. 0~ P1. 3 相連,分別代表4 種功能: 起點站、上一站、下一站和終點站。
圖1 公交車報站系統(tǒng)液晶顯示仿真電路
4 報站系統(tǒng)液晶顯示的軟件設計
液晶顯示模塊中按字節(jié)為單位劃分,單個屏幕中,共分為8 個頁,每頁為8 行,而每一行為64個位(即64 列) .同計算機一樣,單片機控制液晶點陣顯示中的數(shù)據(jù)也是以0和1代碼來表示的。一般地, 0代表不顯示數(shù)據(jù), 1代表有顯示數(shù)據(jù),根據(jù)編碼的不同,最終會顯示出不同的字符。顯示器上的顯示點與驅(qū)動控制芯片中的顯示緩存RAM 是一一對應的,即字模當中的一個位代表LCD 顯示中的一個像素點,取點方式為從左到右,自上到下的順序。這里采用16 ×16 的點陣輸出顯示每個漢字,那么就需要屏幕上的256 個點組成的方塊來顯示。一個字節(jié)對應8 個點,所以一個漢字需要32 個字節(jié)來存儲顯示。漢字字模點陣數(shù)據(jù)批量生成工具就是運用這個原理來實現(xiàn)漢字編碼的軟件。
本文采用PCtoLCD2002 漢字提取軟件,打開窗口,如圖2 所示,設置好字體、字號等格式參數(shù),在漢字輸入?yún)^(qū),輸入漢字或其他字符,即得到需要的代碼。將本設計所涉及的漢字用軟件取模批量生成16 ×16 點陣代碼,放入ROM 區(qū)的TA2BL E 表格中,通過邏輯控制,最終可將代碼讀出到硬件驅(qū)動電路上,顯示出不同的漢字。
圖2 漢字字模點陣數(shù)據(jù)批量生成軟件
本設計針對康定城第2 路公交車,共有7 站,對單邊線路的報站進行了仿真。軟件流程圖如圖3 所示。
圖3 程序流程圖
系統(tǒng)上電后,對液晶模塊進行初始化,并進行清屏。按鍵部分采用掃描法,當檢測到按鍵按下時,進行鍵值判斷,并進行相應顯示程序的跳轉,實現(xiàn)公交報站的功能。整個程序的詳細流程如下:
Step1 :對LCD 進行初始化,即根據(jù)系統(tǒng)的需要對液晶控制器的各項參數(shù)進行設置,顯示開關、顯示起始行、光標位置等設置,再對LCD 所有單元寫零清屏后準備顯示。
Step2 :掃描P1 端口,等待按鍵的按下,進行鍵值判斷,不同的按鍵對應不同的分支:
①K1 按鍵:表示是起始站,顯示歡迎詞,在LCD 上固定顯示:歡迎您乘坐康定城第2 路公交車!;②K2、K3 按鍵:分別表示上一站和下一站,可方便進行站臺調(diào)節(jié),在LCD 上顯示:1 # 站到了! 下一站2 # .其中1 # 和2 # 分別是本站和下一站的站臺名,如本線路要涉及5 個站臺(除去起始站和終點站) .而站到了!和下一站是公交線路中各站都要顯示的,則固定顯示,故按鍵改變的只是模塊的左半屏上半部分和右半屏下半部分內(nèi)容的顯示。
評論