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