何小映
西安航空學(xué)院電氣系,陜西 西安 710077
目前的城市公交售票有兩種形式:無(wú)人售票和有人售票,對(duì)于無(wú)人公交來(lái)說(shuō),乘客只需要打卡或者投幣即可,無(wú)所謂遠(yuǎn)近,一律都是同樣的價(jià)錢(qián),比較方便;另一種形式是有人售票,主要是中巴車及部分站點(diǎn)較多的大巴車,這部分車輛由售票員根據(jù)路途的遠(yuǎn)近收取相應(yīng)的票價(jià),所以售票員需要記住所有站點(diǎn)的名稱及站數(shù),對(duì)于站點(diǎn)比較多的公交來(lái)說(shuō),往往出現(xiàn)記錯(cuò)站收錯(cuò)錢(qián)的情況。本文針對(duì)這一具體情況,設(shè)計(jì)出一種公交車計(jì)價(jià)系統(tǒng),有效地解決了這一問(wèn)題,售票員只需要點(diǎn)擊起點(diǎn)、終點(diǎn)及站名,進(jìn)行兩到三次按鍵選擇即能自動(dòng)計(jì)算出相應(yīng)的價(jià)格,即方便又快捷準(zhǔn)確。
該系統(tǒng)的整體框圖如圖1所示:
圖1 系統(tǒng)框圖
該系統(tǒng)主要包括鍵盤(pán)、單片機(jī)、液晶顯示器三大部分,系統(tǒng)以單片機(jī)為核心,加上鍵盤(pán)和液晶顯示器,實(shí)現(xiàn)了起點(diǎn)站和終點(diǎn)站的選擇,也實(shí)現(xiàn)了站名和站數(shù)的顯示,并能根據(jù)站數(shù)自動(dòng)計(jì)算出應(yīng)繳納的費(fèi)用。
整個(gè)硬件以單片機(jī)89S52為核心,主要電路包括鍵盤(pán)與單片機(jī)的接口電路以及單片機(jī)與液晶顯示器的接口電路兩部分,其他的輔助電路包括時(shí)鐘電路和復(fù)位電路,現(xiàn)將主要電路分別進(jìn)行介紹。
鍵盤(pán)一般有獨(dú)立式和行列式兩種,中巴車的站數(shù)比較多,基本上都在三十個(gè)以上,比如設(shè)計(jì)中以西安504路中巴車為例,該線路共有39個(gè)站,由于站數(shù)比較多,所以鍵盤(pán)采用行列式結(jié)構(gòu)[1]。設(shè)計(jì)中采用5行8列的結(jié)構(gòu),行線是P1.0~P1.4,列線是P3.0~P3.7,在行列交匯處布下40個(gè)鍵,鍵盤(pán)接口如圖2所示。
圖2 鍵盤(pán)接口
另外還有兩個(gè)鍵用于選擇起點(diǎn)站和終點(diǎn)站,采用獨(dú)立式結(jié)構(gòu),其中起點(diǎn)站由P2.6控制,終點(diǎn)站由P2.7控制。
顯示器采用液晶顯示器PG12864[2],與單片機(jī)的連接由P2.0~P2.4提供控制信號(hào),由P0口提供數(shù)據(jù)信號(hào)。顯示字體采用16*16點(diǎn)陣結(jié)構(gòu),顯示4行,每行8個(gè)字符。字符由子模軟件產(chǎn)生。
圖3 程序流程圖
在PG12864上面一共顯示4行信息,系統(tǒng)上電或復(fù)位后顯示的初始信息是第1行顯示:“起點(diǎn):”、第2行顯示:“終點(diǎn):”、第3行顯示:“站數(shù):”、第4行顯示:“價(jià)格:”。
軟件主要包括鍵盤(pán)處理程序、顯示程序兩部分,程序采用C51語(yǔ)言[3]編寫(xiě),程序流程圖如圖3所示。
其中,12864初始化完成12864的初始信息設(shè)置,包括:光標(biāo)指針設(shè)置、圖形區(qū)首地址、圖形區(qū)寬度設(shè)置、顯示方式及顯示狀態(tài)設(shè)置。12864顯示4行的初始信息如2.2部分所示。這些工作完成后,等待站屬性鍵按下,站屬性鍵是指起點(diǎn)站還是終點(diǎn)站,分別由P2.6、P2.7表示,當(dāng)都沒(méi)按下時(shí)則一直等待,若P2.6按下,則行號(hào)為0,表示是起點(diǎn)站,站名將在第1行顯示,第一行的行號(hào)為0;若P2.7按下,則行號(hào)為1,表示是終點(diǎn)站,站名將在第2行顯示,第2行的行號(hào)為1。接下來(lái)等待站點(diǎn)鍵按下,若無(wú)鍵按下則等待,若有鍵按下則讀其鍵值,鍵值從1到39,讀到鍵值后,根據(jù)前述行號(hào),從相應(yīng)行的相應(yīng)列開(kāi)始顯示站名,站名控制在五個(gè)字以內(nèi)。接下來(lái)在第3行顯示站數(shù),格式為:起點(diǎn)站序號(hào)——終點(diǎn)站序號(hào),最后在第4行顯示價(jià)格,價(jià)格依據(jù)起點(diǎn)站和終點(diǎn)站的站數(shù)差取不同的值,起步價(jià)0.5元,最多4元,三站內(nèi)0.5元,28站及以上都是4元。顯示器截圖如圖4所示。
圖4 顯示器截圖
在圖4中,曲江池是第3站,西門(mén)外是第23站,兩站之間相差20個(gè)站,價(jià)格是3.0元。
該系統(tǒng)不僅適用于有人售票公交系統(tǒng)的票價(jià)計(jì)算,也適用于有類似計(jì)算要求的場(chǎng)合,該系統(tǒng)減輕了售票員的記憶負(fù)擔(dān),能提供及時(shí)準(zhǔn)確的票價(jià)計(jì)算,不會(huì)出現(xiàn)人為算錯(cuò)價(jià)格的情況,具有一定的實(shí)用性。
[1]劉建華.單片機(jī)原理及應(yīng)用技術(shù)[M].上??茖W(xué)技術(shù)出版社,2010.06:86
[2]楊斌等.微機(jī)原理與接口技術(shù)試驗(yàn)及課程設(shè)計(jì)[M].西南交通大學(xué)出版社,2005.10:122
[3]劉文濤.單片機(jī)語(yǔ)言C51程序設(shè)計(jì)[M].原子能出版社,2004.07:1~139