李公昕
(河南省經(jīng)濟(jì)管理學(xué)校,河南 南陽 473000)
?
基于AT89C51設(shè)計(jì)的出租車計(jì)價(jià)器設(shè)計(jì)方案
李公昕
(河南省經(jīng)濟(jì)管理學(xué)校,河南 南陽 473000)
摘要:隨著科技的不斷進(jìn)步,出租車上的計(jì)價(jià)器也在朝著更加精確化和智能化的方向發(fā)展。利用AT89C51單片機(jī)的接口外接顯示、時(shí)鐘和語音等模塊,通過按鍵可以調(diào)整起步價(jià),里程收費(fèi),等待時(shí)間收費(fèi)。在1602液晶上可以顯示運(yùn)行的時(shí)間,通過計(jì)算可以得出總共的費(fèi)用和總的路程,模擬出租車的運(yùn)行、暫停、停止及收費(fèi)等功能模塊。
關(guān)鍵詞:AT89C51;出租車計(jì)價(jià)器;設(shè)計(jì)方案
出租車計(jì)價(jià)器系統(tǒng)需要“啟動(dòng)/停止”和“復(fù)位”兩個(gè)按鍵,為了更加人性化,可以在里程統(tǒng)計(jì)和費(fèi)用計(jì)算以外,再加上萬年歷和語音播報(bào)功能,方便乘客和駕駛員。系統(tǒng)可利用AT89C51單片機(jī)豐富的 I/O端口,及其控制的靈活性,用六個(gè)七段數(shù)碼管作為顯示器,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)、時(shí)鐘顯示功能。萬年歷由時(shí)鐘芯片DS1302實(shí)時(shí)提供時(shí)鐘信號(hào),語音播報(bào)由語音芯片ISD1420提供語音信息,語音信息放在不同的地址里,利用ISD1420的語音功能,模擬實(shí)現(xiàn)帶語音提示的出租車計(jì)價(jià)系統(tǒng)。比較真實(shí)地模擬出租車的空車、載客、到站及對(duì)各狀況的費(fèi)率的計(jì)算、統(tǒng)計(jì)、顯示和語音播報(bào)等功能。由單片機(jī)從這些地址中調(diào)用合適的語音進(jìn)行播放。上電后顯示最初的起步價(jià),里程計(jì)費(fèi)單價(jià),等待時(shí)間計(jì)費(fèi)單價(jià),通過按鍵可以調(diào)節(jié)起步價(jià),里程計(jì)費(fèi)單價(jià),等待時(shí)間計(jì)費(fèi)單價(jià)。同時(shí)具有運(yùn)行,暫停,停止等狀態(tài),可以顯示運(yùn)行的時(shí)間,同時(shí)可以顯示暫停的時(shí)間,具有累加功能,暫停和運(yùn)行時(shí)間在暫停和運(yùn)行前一次的狀態(tài)上計(jì)時(shí)。出租車停止后能夠顯示行駛的總費(fèi)用。
(一)按鍵掃描模塊。整個(gè)系統(tǒng)只有五個(gè)按鍵,一個(gè)“啟動(dòng)/停止”,四個(gè)功能調(diào)整按鍵;本模塊功能:掃描按鍵功能,返回掃描。
(二)顯示模塊。用六個(gè)七段數(shù)碼管動(dòng)態(tài)掃描來實(shí)現(xiàn)的時(shí)鐘與計(jì)價(jià)的顯示。為實(shí)現(xiàn)電源斷開的時(shí)候,存儲(chǔ)當(dāng)前設(shè)定的單價(jià)信息功能,采用了24C02電可擦除存儲(chǔ)芯片來完成。
每當(dāng)設(shè)定一次單價(jià),系統(tǒng)就自動(dòng)調(diào)用存儲(chǔ)程序,將單價(jià)信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時(shí)候,自動(dòng)調(diào)用讀存儲(chǔ)器程序,將存儲(chǔ)器內(nèi)的單價(jià)等信息,讀到緩存單元中,供主程序使用。
(三)脈沖發(fā)生器模塊。用NE555定時(shí)器外部配接適當(dāng)?shù)淖枞菰?,組成多諧振蕩器,產(chǎn)生振蕩脈沖。
(四)時(shí)鐘模塊。DS1302內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM, 通過簡單的同步串行接口與單片機(jī)進(jìn)行通信,實(shí)時(shí)提供秒分時(shí)日日期月年的信息,電源管腳可由電池或大容量電容輸入。
(五)語音模塊。ISD1420系列有唯一的錄音控制和邊緣/電平觸發(fā)兩種放音控制,單片錄放時(shí)間在8至20秒。在錄放操結(jié)束后,芯片自動(dòng)進(jìn)入低功耗節(jié)電模式、功耗僅0.5uA。
主程序流程:開始→單片機(jī)I/O口初始化→IC總線初始化→顯示模塊初始化→時(shí)鐘模塊初始化→各標(biāo)量清零→判斷
flag狀態(tài):
若flag=0,則進(jìn)入空車狀態(tài),顯示時(shí)間;
若flag=1,則進(jìn)入載客狀態(tài),播放語音信息→顯示總價(jià)和里程。
總程序流程圖如圖二所示。
系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。測試包括里程計(jì)價(jià)測試、掉電存儲(chǔ)測試測試。
(一)軟件調(diào)試方案。在“文件新建文件”中,新建C語言源程序文件,編寫相應(yīng)的程序。在“文件新建項(xiàng)目”的菜單中,新建項(xiàng)目并將C語言源程序文件包括在項(xiàng)目文件中。在“項(xiàng)目編譯”菜單中將C源文件編譯,檢查語法錯(cuò)誤及邏輯錯(cuò)誤。在編譯成功后,產(chǎn)生以“*.hex”和“*.bin”后綴的目標(biāo)文件。通過peotel軟件仿真,上電時(shí)液晶顯示起步價(jià),里程單價(jià),等待單價(jià)(以每分鐘為單位),按鍵1可以選擇調(diào)整起步價(jià),里程價(jià),等待單價(jià),再按鍵3進(jìn)入待運(yùn)行狀態(tài),按鍵4可以運(yùn)行,暫停,停止同時(shí)顯示運(yùn)行的時(shí)間,等待的時(shí)間和總的金額數(shù),最后按鍵5可以退出,重新計(jì)費(fèi)。在30s鐘內(nèi)液晶顯示起步價(jià),30s后開始計(jì)價(jià),等待價(jià)每1分鐘,才收費(fèi)一次。
(二)硬件調(diào)試方案。在設(shè)計(jì)平臺(tái)中,將單片機(jī)的P1.0-P1.1分別與2個(gè)獨(dú)立式鍵盤通過插線連接起來,將P3.0與脈沖輸出連接起來。
(三)軟硬件聯(lián)調(diào)。將程序文件編譯成目標(biāo)文件后,將下載線安裝在實(shí)驗(yàn)平臺(tái)上,運(yùn)行“MCU下載程序”,選擇相應(yīng)的flash 數(shù)據(jù)文件,點(diǎn)擊“編程”按鈕,將程序文件下載到單片機(jī)的Flash中。然后,上電重新啟動(dòng)單片機(jī),檢查所編寫的程序是否達(dá)到要求。
參考文獻(xiàn):
[1]李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].第3版.北京航空航天大學(xué)出版社,2007年1月
[2]李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京航空航天大學(xué)出版社,1996
中圖分類號(hào):TP368.1
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1671-864X(2016)07-0131-01