陳雪 鄭琳 高鑫
沈陽工學(xué)院信息與控制學(xué)院
基于單片機(jī)的模擬計價器的設(shè)計與實(shí)現(xiàn)
陳雪 鄭琳 高鑫
沈陽工學(xué)院信息與控制學(xué)院
本設(shè)計的是一個基于單片機(jī)STC89C52的出租車自動計價器,帶復(fù)位電路、時鐘電路、鍵盤電路等功能。在通電狀態(tài)下液晶顯示LCD1602顯示起步價,里程收費(fèi)。在等待時間時,有三種收費(fèi)方式,用戶可以通過按鍵的方式來調(diào)整起步價,里程收費(fèi),等待時間收費(fèi)。通過按鍵模擬出租車的運(yùn)行、暫停、停止這三個狀態(tài)。在LCD1602液晶上可以顯示運(yùn)行的時間,運(yùn)行時暫停的時間,通過計算可以得出總的里程數(shù),從而可以計算對應(yīng)客戶的乘車費(fèi)用。
STC89C52 LCD1602液晶 出租車計價器
計價器開啟時系統(tǒng)自動顯示實(shí)時時間,系統(tǒng)能夠自動校正時間,用戶也可以且通過按鍵這一手動方式來對時間進(jìn)行矯正。計價器有默認(rèn)的起步公里數(shù)與起步價,當(dāng)然用戶可以通過手動設(shè)置計價器的起步公里數(shù)以及起步價。
其中起租里程3公里,起步價白天為6元、晚上為6.9元。每天6:30至22:00之間作為“白天”模式,計價費(fèi)用為每公里單價1.5元;22:00至次日6:30之間作為“夜晚”模式,計費(fèi)費(fèi)用作為每公里單價1.8元。
計價器將“行駛里程數(shù)”與“等待時間”作為計價的兩個因素。當(dāng)汽車行駛里程少于起步里程數(shù)時,費(fèi)用按起步價計算;行駛里程超過起步里程,對超出起步里程數(shù)的部分實(shí)行每公里按單價收費(fèi)的方式來計算費(fèi)用;在行車過程中遇到等待時,等待時間每超過10s按每秒0.4元收費(fèi)。
系統(tǒng)使用的是最小單片機(jī)開發(fā)板作為控制核心,外拓以電源模塊、按鍵模塊、復(fù)位模塊、顯示模塊等部分構(gòu)成。獨(dú)立式鍵盤:在獨(dú)立式鍵盤中,每個按鍵電路是相對獨(dú)立的,每個按鍵占用一個I/O口。I/O口通過按鍵接地,且在I/O口連接上拉電阻,當(dāng)按鍵為斷開狀態(tài)時,引腳端的電平為高電平狀態(tài);當(dāng)按鍵狀態(tài)為按下的連接狀態(tài)時,引腳端在連接的一剎那接地,此時電平由高電平狀態(tài)被更改為低電平狀態(tài)。
中斷程序,用于處理較為“緊急”的事件。在該系統(tǒng)中,只要定時器計數(shù)滿時,系統(tǒng)就會產(chǎn)生50ms一次的中斷指令,總共會發(fā)送20次中斷,之后秒數(shù)加1,當(dāng)秒數(shù)計滿60次時,秒數(shù)歸0分鐘數(shù)加1,當(dāng)分鐘加到99時則全部清零。
對于獨(dú)立式鍵盤的判斷,首先系統(tǒng)要確認(rèn)是否有鍵按下,如果檢測到有鍵按下則系統(tǒng)會做一次延時操作,然后再次判斷是否真的有鍵按下,此功能用來避免一些誤操作。如果系統(tǒng)二次確認(rèn),發(fā)現(xiàn)確實(shí)有鍵按下,再判斷按鍵釋放,最后執(zhí)行對應(yīng)按鍵的功能程序,執(zhí)行用戶所需要執(zhí)行的操作指令。
LCD1602液晶顯示屏自帶了字符庫,可以顯示兩行字符,每行可以顯示40個字符。在編寫顯示程序的時候,需要先寫入命令,再去設(shè)定字符的顯示,最后寫入想要顯示的數(shù)據(jù)。在每寫一次寫入命令或者數(shù)據(jù)的時候,系統(tǒng)都需要去判斷液晶是處于繁忙狀態(tài)。
步驟一:焊接完畢后檢測外觀狀態(tài),確認(rèn)每個引腳連接無誤。
步驟二:通電,進(jìn)入設(shè)置頁面。分別為時間設(shè)置、白天價格設(shè)置、夜晚價格設(shè)置。
步驟三:進(jìn)入time set(時間設(shè)置),設(shè)置時間,分別是“時、分、秒、星期、年、月、日。”
步驟四:返回,進(jìn)入bai-can shu-set(白天價錢設(shè)置),里面有三項設(shè)置3L、3W、DD,分別是3公里以內(nèi)價錢設(shè)置,超出三公里每公里價錢設(shè)置,等時超出3分鐘每分鐘等時價錢。
步驟五:返回,進(jìn)入wan-can shu-set(夜晚價錢設(shè)置),里面有三項設(shè)置3L、3W、DD,分別是3公里以內(nèi)價錢設(shè)置,超出三公里每公里價錢設(shè)置,等時超出3分鐘每分鐘等時價錢。
步驟六:設(shè)置完畢后,進(jìn)入主界面,模擬里程,測試價格。
系統(tǒng)開機(jī)狀態(tài)下可以顯示當(dāng)前時間、起步價、超出部分每公里單價,通過鍵盤可以修改當(dāng)前時間,系統(tǒng)可自行設(shè)定晝夜的起步價、超出部分每公里單價。系統(tǒng)分為白天模式與夜間模式,可自行設(shè)定晝夜的起步價和每公里單價數(shù),通過時間的不同進(jìn)入白天模式或者黑夜模式。初始設(shè)定的起步里程為3公里,白天3公里以內(nèi)6元、夜間3公里以內(nèi)6.9元。早晨6:30到晚上10:00,按白天模式計費(fèi),白天初始超出部分每公里1.5元;晚上10:00到次日早晨6:30,按夜間模式計費(fèi),超出部分每公里單價為1.8元。
[1] 李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].第3版.北京:北京航空航天大學(xué)出版社,2007.1
[2] 李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1996
[3] 馬忠梅,張凱,馬巖.單片機(jī)的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2003.11
[4] 胡輝.單片機(jī)原理及應(yīng)用設(shè)計—21世紀(jì)高等院校規(guī)劃教材[M].水利水電出版社,2005.7
[5] 劉守義.單片機(jī)應(yīng)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,1996.8
陳雪、高鑫,女,沈陽工學(xué)院,學(xué)生。
鄭琳(通訊作者),女,漢族,遼寧人,沈陽工學(xué)院,教師,講師,碩士學(xué)位。