摘 要:介紹一種以單片機(jī)AT89S52為核心的多功能出租車計(jì)價(jià)器的設(shè)計(jì),闡述軟硬件設(shè)計(jì)過程中關(guān)鍵技術(shù)的處理。仿真結(jié)果表明該計(jì)價(jià)器具有集計(jì)程、計(jì)時(shí)、計(jì)費(fèi)、存儲(chǔ)、查看、統(tǒng)計(jì)等多種計(jì)量功能,并且具有超速提醒、防止司機(jī)作弊、語(yǔ)音、打印和顯示等多種功能。與已有的系統(tǒng)相比,該系統(tǒng)具有超速提醒等更強(qiáng)的功能。
關(guān)鍵詞:出租車計(jì)價(jià)器;多功能;AT89C52;軟硬件設(shè)計(jì)
中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1618006
Design of Multifunction Taximeter Based on Single Chip Microcomputer
XIAO Weichu,CHEN Weihong,YANG Ming
(Hunan City University,Yiyang,413000,China)
Abstract: The designs of a new type of taximeter based on single chip microcomputer AT89S52 are presented.How to solve key problems in the process of designing software and hardware system is also discussed.The simulation results have proved that the system is satisfied with the practical requirements of distance,time and fare counting,storing,examining,accumulating data,reminding of the excessive speed,guarding against driver cheating,and the print,speech and display function.Compared with the existing system,this system has stronger function,such as reminding of the excessive speed and so on.
Keywords:taximeter;multifunction;AT89C52;software/hardware design
1 引 言
出租車計(jì)價(jià)器是出租車營(yíng)運(yùn)收費(fèi)的專用智能化儀表,隨著電子技術(shù)的發(fā)展,出租車計(jì)價(jià)器技術(shù)也在不斷進(jìn)步和提高。國(guó)內(nèi)出租車計(jì)價(jià)器已經(jīng)經(jīng)歷了4個(gè)階段的發(fā)展。從傳統(tǒng)的全部由機(jī)械元器件組成的機(jī)械式,到半電子式即用電子線路代替部分機(jī)械元器件的出租車計(jì)價(jià)器;再?gòu)募呻娐肥降侥壳暗膯纹瑱C(jī)系統(tǒng)設(shè)計(jì)的出租車計(jì)價(jià)器。出租車計(jì)價(jià)器計(jì)費(fèi)是否準(zhǔn)確、出租車司機(jī)是否超速才是乘客最關(guān)心的問題,而計(jì)價(jià)器營(yíng)運(yùn)數(shù)據(jù)的管理是否方便才是出租車司機(jī)最關(guān)注的。因此怎樣設(shè)計(jì)出一種既能有效防止司機(jī)作弊和超速又能方便司機(jī)的計(jì)價(jià)器尤為重要。
因此,本文以單片機(jī)AT89S52為核心設(shè)計(jì)一款多功能出租車計(jì)價(jià)器,該計(jì)價(jià)器能實(shí)現(xiàn)里程計(jì)價(jià)與顯示、數(shù)據(jù)存儲(chǔ)與查詢、時(shí)鐘顯示、超速提醒、語(yǔ)音播報(bào)和票據(jù)打印等功能。它比市場(chǎng)上的一些計(jì)價(jià)器使用更方便,功能更全,還具有有效防止司機(jī)作弊和系統(tǒng)穩(wěn)定性好的優(yōu)點(diǎn)。其中的超速提醒功能可以提醒司機(jī)和乘客,以告誡司機(jī)不要超速行駛,以避免交通事故的發(fā)生。
2 系統(tǒng)硬件結(jié)構(gòu)及功能特性
2.1 整體方案
整體方案設(shè)計(jì)方框圖如圖1所示,整個(gè)系統(tǒng)由單片機(jī)AT89S52控制電路、A44E霍爾傳感器電路、AT24C02存儲(chǔ)電路、DS1302時(shí)鐘電路、ISD2560語(yǔ)音播報(bào)電路、票據(jù)打印電路、按鍵調(diào)整電路、MAX7219驅(qū)動(dòng)顯示電路及電源電路組成。

單片機(jī)采集并判斷空車燈信號(hào)及路程檢測(cè)傳感器信號(hào),當(dāng)出租車啟動(dòng)時(shí),單片機(jī)檢測(cè)到霍爾傳感器的脈沖信號(hào)并進(jìn)行里程計(jì)算。當(dāng)無(wú)乘客時(shí),單片機(jī)調(diào)用實(shí)時(shí)時(shí)間芯片DS1302程序和MAX7219串口顯示驅(qū)動(dòng)程序,用4只LED進(jìn)行時(shí)鐘顯示;當(dāng)空車燈掰下乘客上車時(shí):ISD2560語(yǔ)音播報(bào)電路進(jìn)行語(yǔ)音播報(bào)1(歡迎乘客乘坐本出租車…),通過DS1302獲取時(shí)間信息分辨白天/晚上,然后調(diào)用AT24C02程序獲取白天/晚上的單價(jià)及起始價(jià),便開始計(jì)價(jià)并顯示時(shí)間、里程和金額等信息;當(dāng)空車燈打上乘客下車時(shí):進(jìn)行播報(bào)2(謝謝再次乘坐本出租車,請(qǐng)交金額¥…),并打印好票據(jù),單片機(jī)將營(yíng)運(yùn)數(shù)據(jù)信息存儲(chǔ)到24C02中,等待出租車再次啟動(dòng)后單次金額與里程等信息清零復(fù)位,就此完成一次計(jì)價(jià)。
2.2 硬件電路設(shè)計(jì)
其硬件電路整體圖如圖2所示。

由電源部分、霍爾傳感器路程測(cè)量部分、數(shù)據(jù)顯示部分、時(shí)鐘部分、語(yǔ)音播報(bào)部分、票據(jù)打印部分和數(shù)據(jù)存儲(chǔ)部分等組成,各部分端口分別與單片機(jī)AT89S52的輸出口相連,通過單片機(jī)的控制來(lái)實(shí)現(xiàn)計(jì)價(jià)器的功能實(shí)現(xiàn)。
2.2.1 電源部分
由于計(jì)價(jià)器的工作環(huán)境比較差,它要求有抗振動(dòng)、抗高低溫、抗潮濕、抗電磁干擾等能力,特別是電源方面的干擾,如出租車啟動(dòng)時(shí),發(fā)動(dòng)機(jī)打火、電瓶充電等造成輸入計(jì)價(jià)器的+12 V電源不穩(wěn)定。因此采用+12 V電瓶電源經(jīng)過濾波和電源穩(wěn)壓管理芯片7805后得到+5 V的穩(wěn)定電壓輸出,保證整個(gè)系統(tǒng)能夠正常工作。如圖3所示。
2.2.2 路程測(cè)量部分
出租車中需要一個(gè)能準(zhǔn)確獲得車輪轉(zhuǎn)動(dòng)即路程計(jì)量信號(hào)的裝置,以得到標(biāo)準(zhǔn)的脈沖信號(hào)送入單片機(jī)的定時(shí)/計(jì)數(shù)器T1即P3.5引腳,利用單片機(jī)的T1的計(jì)數(shù)功能完成100次的計(jì)數(shù)后產(chǎn)生一中斷來(lái)完成路程的測(cè)量。(設(shè)車輪周長(zhǎng)為1 m,則霍爾傳感器每產(chǎn)生100個(gè)脈沖便表示車已行程0.1 km,根據(jù)實(shí)際情況在程序中進(jìn)行設(shè)置)。汽車聯(lián)軸器按圓周間隔嵌入磁鋼,用霍爾傳感器集成芯片A44E檢測(cè)并輸出脈沖,其工作原理如圖4所示,霍爾傳感器集成芯片A44E有信號(hào)轉(zhuǎn)換、電壓放大、整形輸出等功能,為增加其抗干擾的能力,經(jīng)過74LS14對(duì)信號(hào)整形后再通過光偶送入P3.5引腳。如圖5所示。而在此電路中為了防止司機(jī)作弊,可采用加密傳感器的方法,先對(duì)霍爾傳感器采集到的計(jì)數(shù)脈沖加密,使計(jì)費(fèi)脈沖以密文方式傳輸,最后解密為明文脈沖,傳送到計(jì)價(jià)器計(jì)費(fèi)。在密碼傳感器中,加密器向解碼器發(fā)送的是密碼,只有加密器和解密器固有密碼相同時(shí),解碼器才向計(jì)價(jià)器發(fā)送計(jì)數(shù)脈沖,計(jì)價(jià)器才計(jì)費(fèi),因此,密碼傳感器提高了計(jì)價(jià)器計(jì)費(fèi)可靠性,不法出租車司機(jī)也無(wú)法使車費(fèi)增加,同時(shí)司機(jī)也不能私自更換計(jì)價(jià)器傳感器,實(shí)現(xiàn)了計(jì)價(jià)器由國(guó)家計(jì)量部門統(tǒng)一安裝、維修和年檢的統(tǒng)一管理。

2.2.3 數(shù)據(jù)顯示部分
由于設(shè)計(jì)要求有單價(jià)(2位)、中途等待時(shí)間(2位)、路程(4位)、金額(4位)顯示、時(shí)鐘(4位)輸出,如果采用LCD液晶顯示,在距離屏幕1 m之外就無(wú)法看清數(shù)據(jù),而且在白天其對(duì)比度也不能夠滿足要求,因此采用16 位的高亮度LED數(shù)碼管顯示。當(dāng)為空車時(shí),為了節(jié)電,只顯示時(shí)間,為供司機(jī)查看時(shí)間提供方便,當(dāng)司機(jī)要查詢以往的營(yíng)運(yùn)數(shù)據(jù)時(shí),按查詢鍵可提供顯示;在乘客時(shí)顯示營(yíng)運(yùn)的單價(jià)、等待時(shí)間、路程、金額及時(shí)鐘。
顯示驅(qū)動(dòng)器MAX7219具有串行輸入/并行輸出功能,最多可顯示8個(gè)LED數(shù)碼管,同時(shí)有可以對(duì)亮度、譯碼方式、顯示位數(shù)、工作模式進(jìn)行編程,非常滿足遠(yuǎn)距離數(shù)據(jù)顯示;MAX7219采用串行尋址方式,進(jìn)入DIN端的16位串行數(shù)據(jù)在每個(gè)CLK的上升沿被移入到內(nèi)部的16位移位寄存器中,在LOAD端的上升沿被鎖存到控制寄存器和數(shù)據(jù)寄存器中,接收到的第一位為最高位D15 ,在該電路中采用89S52的P1.5為數(shù)據(jù)口,P1.6為L(zhǎng)OAD端,P1.7為時(shí)鐘口。
由于要顯示16個(gè)LED,所以采用2片MAX7219級(jí)連進(jìn)行驅(qū)動(dòng)顯示,把上一片的數(shù)據(jù)輸出口和下一片的數(shù)據(jù)輸入口連接使用。而主電路板上TA89S52輸出的DIN,LOAD,CLK信號(hào)在傳輸?shù)斤@示板的過程中可能會(huì)由于干擾而產(chǎn)生變形,所以在顯示板電路板上對(duì)這3個(gè)信號(hào)進(jìn)行整形然后再通過光偶,以防止數(shù)據(jù)的錯(cuò)誤顯示或不顯示的現(xiàn)象發(fā)生。如圖6所示。圖

2.2.4 時(shí)鐘部分
計(jì)價(jià)器在出租車空車行駛時(shí)需要顯示實(shí)時(shí)時(shí)鐘,因?yàn)樗臅r(shí)鐘是作為白天/晚上單價(jià)自動(dòng)轉(zhuǎn)換的一個(gè)基準(zhǔn),而且計(jì)價(jià)器的時(shí)鐘顯示能為司機(jī)和乘客提供方便,所以選擇一個(gè)好的時(shí)鐘芯片對(duì)計(jì)價(jià)器很重要。DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,采用SPI三線接口與CPU進(jìn)行同步通信;時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年;通過設(shè)置DS1302的控制/狀態(tài)寄存器選擇日歷,時(shí)鐘方式經(jīng)過初始校準(zhǔn)后即可工作使用;工作電壓寬達(dá)2.5~5.5 V,采用雙電源供電(主電源和備用電源),并設(shè)置備用電源充電方式,提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力,在沒有主電源的情況下啟用備用電源能保存時(shí)間信息及數(shù)據(jù)。如圖7所示。

2.2.5 語(yǔ)音播報(bào)部分
考慮到計(jì)價(jià)器的微型化、智能化,語(yǔ)音芯片采用集成度較高ISD2560芯片,其最大特點(diǎn)是采用E.2PROM進(jìn)行模擬信息直接存取而不必經(jīng)過A/D和D/A轉(zhuǎn)換。它內(nèi)部帶有話筒放大器、自動(dòng)增益控制時(shí)鐘、揚(yáng)聲器驅(qū)動(dòng)電路等,采用+5 V電源供電。
語(yǔ)音模塊與單片機(jī)的接口如圖8 所示,設(shè)計(jì)過程中,先將固定語(yǔ)音部分(上、下車用語(yǔ)、)信息存儲(chǔ)到ISD2560內(nèi)部的不同起點(diǎn)地址中。營(yíng)運(yùn)過程中根據(jù)上、下車的不同營(yíng)運(yùn)狀態(tài)來(lái)實(shí)現(xiàn)不同語(yǔ)音功能播放。在語(yǔ)音芯片工作時(shí),系統(tǒng)首先主程序調(diào)用放音處理程序,根據(jù)發(fā)音地址尋找ISD2560中的發(fā)音單元,然后將信號(hào)送到揚(yáng)聲器發(fā)出聲音。

2.2.6 票據(jù)打印部分
當(dāng)出租車到達(dá)指定地點(diǎn),司機(jī)翻起空車牌,便產(chǎn)生一個(gè)信號(hào)通知單片機(jī)AT89S52,單片機(jī)啟動(dòng)打印服務(wù),將行車的中途等待時(shí)間、營(yíng)運(yùn)里程、單價(jià)、金額、日期及上下車時(shí)間等數(shù)據(jù)打印成出租車專用發(fā)票,微型打印機(jī)接口電路如圖9所示。該電路采用接口插板方式與單片機(jī)相連,這一特點(diǎn)使得計(jì)價(jià)器的票據(jù)打印在功能上與主系統(tǒng)一體化,而在檢查、維修時(shí)又可單獨(dú)進(jìn)行。本設(shè)計(jì)中所用微打是EPSON公司生產(chǎn)的TPμp16微型打印機(jī),微打與單片機(jī)通過并行接口相連,當(dāng)所需要打印的數(shù)據(jù)出現(xiàn)在打印機(jī)I/O0~I(xiàn)/O7上時(shí),STB只要從高電平轉(zhuǎn)到低電平,再?gòu)牡碗娖睫D(zhuǎn)到高電平,就可把數(shù)據(jù)送入打印機(jī)。這時(shí)打印機(jī)將BUSY線置為忙(高電平),禁止新數(shù)據(jù)輸入;當(dāng)打印機(jī)取走數(shù)據(jù)并處理完畢后,BUSY線被置為閑(低電平),同時(shí)送出回答脈沖ACK通知系統(tǒng),可以再次輸入數(shù)據(jù)。

2.2.7 數(shù)據(jù)存儲(chǔ)部分
數(shù)據(jù)存儲(chǔ)部分的作用是在電源斷開時(shí),存儲(chǔ)當(dāng)前設(shè)定的單價(jià)信息。AT24C02 是ATMEL 公司的2 kB的電可擦除存儲(chǔ)芯片,采用2線串行的總線和單片機(jī)通訊,電壓最低可以到2.5 V,額定電流為1 mA,靜態(tài)電流10Ua(5.5 V),芯片內(nèi)的資料可以在斷電的情況下保存40 年以上,而且采用8 腳的DIP 封裝,使用方便。如圖10所示。

圖10中的時(shí)鐘信號(hào)線SCL與數(shù)據(jù)線SDA需外接5.1 kΩ的上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗,24C02 采用I.2C 總線與AT89S52 相連,AT89S52 的P1.3 作為它的串行時(shí)鐘線,P1.4 作為它的串行數(shù)據(jù)線。當(dāng)通過通過按鍵設(shè)定一次數(shù)據(jù)完畢后(如:晝夜單價(jià)、等候時(shí)間、起租里程、起租金額等),系統(tǒng)就自動(dòng)調(diào)用存儲(chǔ)程序,將數(shù)據(jù)信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電時(shí),自動(dòng)調(diào)用讀存儲(chǔ)器程序,將存儲(chǔ)器內(nèi)的數(shù)據(jù)信息,讀到緩存單元中,供主程序使用。由于保存在24C02 中的數(shù)據(jù)是不能隨意進(jìn)行改動(dòng)的,因此它具有防作弊功能。此外出租車營(yíng)運(yùn)過程中的一些營(yíng)運(yùn)數(shù)據(jù),如:?jiǎn)未纬鲎獾臓I(yíng)運(yùn)額和營(yíng)運(yùn)里程、一段時(shí)間內(nèi)的營(yíng)運(yùn)總額和總路程等,也存儲(chǔ)在24C02中,以便出租車公司及司機(jī)查詢,使出租車司機(jī)更方便的管理營(yíng)運(yùn)數(shù)據(jù),出租車行業(yè)得到更有效的管理。
2.2.8 超速提醒與按鍵設(shè)置部分
有些出租車司機(jī)為了獲取更多的時(shí)間來(lái)多送一個(gè)乘客,他們?cè)谒涂瓦^程中以高速行駛來(lái)榨取時(shí)間,而引起一些交通事故,為了制止這些事故發(fā)生,在系統(tǒng)程序中通過軟件檢測(cè)行駛速度,當(dāng)速度高于設(shè)置的最高速度時(shí)即超速時(shí)以紅色LED顯示,乘客觀察后可以提醒司機(jī)不要超速行駛,以避免交通事故發(fā)生。
如圖11所示,按鍵部分有營(yíng)運(yùn)數(shù)據(jù)查詢鍵和數(shù)據(jù)設(shè)置鍵,營(yíng)運(yùn)數(shù)據(jù)查詢按鍵置于計(jì)價(jià)器的外面,司機(jī)通過該查詢鍵可以查看1個(gè)月的總營(yíng)運(yùn)額與總營(yíng)運(yùn)里程,和單次的營(yíng)運(yùn)額與營(yíng)運(yùn)里程。

短按查看總營(yíng)運(yùn)數(shù)據(jù),再次短按則循環(huán)依次往上翻閱過去單次的營(yíng)運(yùn)數(shù)據(jù),長(zhǎng)按3 s則跳出數(shù)據(jù)查詢。數(shù)據(jù)設(shè)置鍵則秘密安放于計(jì)價(jià)器內(nèi)部,且必須對(duì)計(jì)價(jià)器多處進(jìn)行鉛封,以防止司機(jī)通過該按鍵對(duì)營(yíng)運(yùn)的重要數(shù)據(jù)進(jìn)行設(shè)置而作弊,該按鍵由出租車公司的專業(yè)人員來(lái)調(diào)整數(shù)據(jù),由功能設(shè)置/確認(rèn)鍵、UP、DOWN鍵組成,其中功能設(shè)置/確認(rèn)鍵對(duì)系統(tǒng)時(shí)間、起步價(jià)、白天/晚上單價(jià)、等待時(shí)間等數(shù)據(jù)調(diào)整進(jìn)行設(shè)置,然后通過UP與DOWN來(lái)對(duì)數(shù)據(jù)值進(jìn)行加與減。然后再通過功能設(shè)置/確認(rèn)鍵來(lái)對(duì)所設(shè)數(shù)據(jù)的確認(rèn)。
3 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)部分可分為:主程序控制程序、外部中斷0空車燈信號(hào)中斷程序、外部中斷1里程計(jì)算程序、T0等待時(shí)間計(jì)數(shù)中斷程序、MAX7219串口靜態(tài)16位LED顯示程序、DS1302時(shí)鐘程序、ISD2560語(yǔ)音播報(bào)程序、24C02數(shù)據(jù)存儲(chǔ)程序、打印程序和鍵盤服務(wù)程序等;在整個(gè)軟件中一些變量使用全局變量形式,以供主程序的調(diào)用并進(jìn)行顯示。
3.1 主程序設(shè)計(jì)
在主程序模塊中,需要完成對(duì)各芯片的初始化(MAX7219,AT24C02,ISD2560語(yǔ)音芯片及微型打印機(jī)的初始化)、各中斷的初始化(外部中斷0、外部中斷1、T0的初始化),另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作。主程序流程圖如圖12所示。當(dāng)空車信號(hào)燈打下時(shí),表示有乘客上車,就就進(jìn)行語(yǔ)音播報(bào)1,并啟動(dòng)計(jì)價(jià),將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程是否已超過起價(jià)公里數(shù)。若已超過,則根據(jù)里程值、每公里的單價(jià)和起價(jià)來(lái)計(jì)算出當(dāng)前的累計(jì)價(jià)格,并將結(jié)果存于價(jià)格寄存器中,然后將當(dāng)前時(shí)間和累計(jì)價(jià)格送MAX7219驅(qū)動(dòng)的LED顯示電路顯示出來(lái)。當(dāng)中途塞車(等待或低速行駛)時(shí),在一定時(shí)間內(nèi)沒有檢測(cè)到傳感器的脈沖信號(hào)就啟動(dòng)T0計(jì)時(shí)器進(jìn)行計(jì)時(shí),當(dāng)超過規(guī)定的等待時(shí)間后,計(jì)價(jià)器就根據(jù)等待價(jià)格進(jìn)行當(dāng)前金額的累加與顯示,并在計(jì)價(jià)器上顯示等待時(shí)間;當(dāng)?shù)竭_(dá)目的地的時(shí)候,司機(jī)把空車燈打上,就停止計(jì)價(jià),顯示當(dāng)前所應(yīng)該付的金額和對(duì)應(yīng)的單價(jià),并進(jìn)行語(yǔ)音播報(bào)2,及票據(jù)打印。等乘客下車后,啟動(dòng)出租車,計(jì)價(jià)器檢測(cè)到傳感器的脈沖信號(hào),系統(tǒng)自動(dòng)對(duì)顯示清零,并重新進(jìn)行初始化過程,完成1次計(jì)價(jià)。
3.2 幾個(gè)關(guān)鍵子程序
3.2.1 外部中斷1里程計(jì)數(shù)程序
霍爾傳感器輸出的脈沖信號(hào)輸入到單片機(jī)的外部中斷1接口,車輪每轉(zhuǎn)一圈就產(chǎn)生一個(gè)脈沖信號(hào),單片機(jī)就進(jìn)行一次中斷,在中斷程序中完成兩項(xiàng)任務(wù):
(1) 啟動(dòng)定時(shí)器0,表示出租車啟動(dòng);
(2) 單次里程與總里程的累加計(jì)算并將結(jié)果存入寄存器中(設(shè)車輪轉(zhuǎn)1圈為1 m,則每中斷1次,里程就增加1 m)。
3.2.2 T0中途等待計(jì)時(shí)程序
當(dāng)外部中斷1進(jìn)行中斷時(shí)就啟動(dòng)改T0開始計(jì)時(shí),每當(dāng)計(jì)時(shí)到達(dá)1 min,等待時(shí)間累加器值就自加,而超過規(guī)定的等待時(shí)間后,就對(duì)當(dāng)前金額加上額外的中途等待的價(jià)錢,以后每0.1 min都自動(dòng)加上中途等待的單價(jià)。當(dāng)中途等待結(jié)束的時(shí)候,也就自動(dòng)切換到正常的計(jì)價(jià)。

3.2.3 鍵盤服務(wù)程序
鍵盤采用查詢的方式,其放在主程序中,當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。鍵盤服務(wù)包括司機(jī)查詢與出租車管理人員對(duì)數(shù)據(jù)的調(diào)整。
4 系統(tǒng)仿真
在Proteus的ISIS 6軟件環(huán)境下畫出電路原理圖,如圖13所示。接下來(lái)就是將設(shè)計(jì)的程序在Keil C51 μVision2開發(fā)集成環(huán)境上編譯成機(jī)器語(yǔ)言,進(jìn)入Proteus的ISIS,鼠標(biāo)左鍵點(diǎn)擊菜單“Debug”, 選中“use romote debuger monitor”,便可實(shí)現(xiàn)KeilC與Proteus連接調(diào)試。首先在Proteus中雙擊單片機(jī)AT89S52,將KeilC下編程生成的 .HEX文件導(dǎo)入到AT89S52中,可在Proteus中單擊全速仿真運(yùn)行按鈕,進(jìn)行現(xiàn)象的查看,能清楚地觀察到芯片上每一個(gè)引腳的電平變化,紅色代表高電平,藍(lán)色代表低電平;并在LED顯示器上顯示相應(yīng)的數(shù)據(jù),如圖13所示。如果現(xiàn)象不正確,則在KeilC中單步調(diào)試程序,并在Proteus觀察現(xiàn)象,那一步不正確則對(duì)該段的程序進(jìn)行修改,調(diào)試直到仿真完全成功為止。
該仿真中霍爾傳感器采集的路程脈沖信號(hào)用系統(tǒng)提供的脈沖信號(hào)源代替,其他器件均可找到,電路設(shè)計(jì)及程序調(diào)試完畢,表明系統(tǒng)硬件和程序通過了模擬,為檢驗(yàn)設(shè)計(jì)的電路和程序,將調(diào)試好的程序下載到制作的實(shí)物電路板的單片機(jī)中,制作電路印刷板,得到的實(shí)物運(yùn)行結(jié)果與Proteus的仿真結(jié)果完全一致。

5 結(jié) 語(yǔ)
本文設(shè)計(jì)了以單片機(jī)AT89S52為核心,以語(yǔ)音芯片ISD2560、時(shí)鐘芯片DS1302、MAX7219等芯片為外設(shè)的新型出租車計(jì)價(jià)器。給出硬件電路圖及主程序流程圖,闡述了軟硬件設(shè)計(jì)過程中關(guān)鍵技術(shù)的處理。該系統(tǒng)完全滿足集計(jì)程、計(jì)時(shí)、計(jì)費(fèi)、存儲(chǔ)、查看、統(tǒng)計(jì)等多種計(jì)量功能為一體的出租車計(jì)價(jià)器的實(shí)用要求。本文在出租車計(jì)價(jià)器的設(shè)計(jì)中,優(yōu)化了的設(shè)計(jì)的程序,實(shí)現(xiàn)Keil C51與Proteus連接調(diào)試,這對(duì)于單片機(jī)應(yīng)用系統(tǒng)、電子電路的開發(fā)和教學(xué)等都有較大的實(shí)用價(jià)值。與已有的系統(tǒng)相比,該系統(tǒng)具有超速提醒等更強(qiáng)的功能。
參 考 文 獻(xiàn)
[1]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1999.
[2]求實(shí)科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2004.
[3]陳小忠.單片機(jī)接口技術(shù)實(shí)用子程序[M].北京:人民郵電出版社,2005.
[4]趙晶主.電路設(shè)計(jì)與制版Protel99高級(jí)應(yīng)用[M].北京:人民郵電出版社,2000.
[5]全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽組委會(huì).全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品精選[M].北京:北京理工大學(xué)出版社,2000.
[6]楊恢先,黃輝先.單片機(jī)原理及應(yīng)用[M].長(zhǎng)沙:國(guó)防科技大學(xué)出版社,2003.
[7]康華光.電子技術(shù)基礎(chǔ)數(shù)字部分[M].4版.北京:高等教育出版社,2003.
[8]童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2003.
[9]戴勝華,蔣大明.單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[10]陳學(xué)平,蘭帆.Protel 2004 電路設(shè)計(jì)與電路仿真[M].北京:清華大學(xué)出版社,2007.
[11]求是科技.單片機(jī)典型外圍器件及應(yīng)用實(shí)例 [M].北京:人民郵電出版社,2006.
作者簡(jiǎn)介 肖衛(wèi)初 男,1974年出生,湖南婁底人,講師。主要研究方向?yàn)榧呻娐吩O(shè)計(jì)、移動(dòng)通信中的無(wú)線定位。