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