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