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