余雅婷
摘要:在中國隨著生活水平的提高,越來越多的人們開始選擇乘坐出租車這種既方便又快捷的出行手段。以單片機(jī)AT89S52為核心控制元件,硬件系統(tǒng)包括有復(fù)位電路、振蕩電路、路程測量電路、按鍵電路、顯示電路等。能夠在1602字符型液晶顯示屏上顯示里程、單價(jià)、起步價(jià)、總價(jià),并且可以通過按鍵調(diào)整單價(jià)。該文設(shè)計(jì)的出租車計(jì)價(jià)器,其硬件電路所用元件較少,成本低廉,調(diào)節(jié)簡單;軟件采用c語言編程,其靈活性高,可讀性強(qiáng)。
關(guān)鍵詞:52單片機(jī);出租車計(jì)價(jià)器;霍爾傳感器;1602液晶顯示屏;仿真
中圖分類號:TP368.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)29-0233-02
1背景
隨著生活水平的提高,越來越多的人們開始選擇乘坐出租車這種既方便又快捷的出行手段。隨著嘀嘀打車等一系列打車軟件的誕生,乘客乘坐出租車的費(fèi)用也有了很大程度的下降。出租車開始成為生活在快節(jié)奏模式下的人們短途出行的首選交通工具。在我國的交通運(yùn)輸中,出租車所處的地位也越來越重要。
具有更加精良的出租車計(jì)價(jià)器無論是對于出租車司機(jī)還是乘客都是十分重要的?;趩纹瑱C(jī)的出租車計(jì)價(jià)器具有功能強(qiáng),性能可靠,電路簡單、成本低的優(yōu)點(diǎn),且靈活性強(qiáng),能通過軟件編程實(shí)現(xiàn)多種附加功能。
2系統(tǒng)硬件設(shè)計(jì)
硬件系統(tǒng)包括有復(fù)位電路、振蕩電路、路程測量電路、按鍵電路、顯示電路等。
2.1振蕩電路
單片機(jī)發(fā)出時(shí)鐘信號的方法有兩種,它們是內(nèi)部時(shí)鐘方法和外部時(shí)鐘方法。本次設(shè)計(jì)采用的是內(nèi)部時(shí)鐘方式:電路由兩個(gè)電容和一個(gè)晶振構(gòu)成,單片機(jī)內(nèi)部存在一個(gè)高增益反相放大器,XTAL1及XTAL2端口分別作為單片機(jī)內(nèi)部放大器的輸入端和輸出端,該放大器和功能是反饋元件的石英晶體振蕩器一塊兒組成自激振蕩器。振蕩電路脈沖經(jīng)歷二分頻之后成為系統(tǒng)的時(shí)鐘信號,然后在二分頻的底子之上進(jìn)行三分頻發(fā)出地址鎖存容許信號,這時(shí)候獲得的信號為機(jī)器周期信號。采用12MHz的晶振,作為系統(tǒng)的時(shí)鐘源。晶體振蕩頻率高,可得硬件系統(tǒng)的時(shí)鐘頻率高,因?yàn)楸倦娐反_定單片機(jī)運(yùn)轉(zhuǎn)速度所以單片機(jī)運(yùn)轉(zhuǎn)速度也跟著變快。
2.2復(fù)位電路
本電路除了正常的初始化功能外,當(dāng)單片機(jī)系統(tǒng)在運(yùn)轉(zhuǎn)過程當(dāng)中遭到外界情況滋擾而發(fā)生程序錯(cuò)誤時(shí),按下該電路的復(fù)位按鈕,單片機(jī)內(nèi)部的程序?qū)⒆詣?dòng)從頭執(zhí)行。想實(shí)現(xiàn)復(fù)位有上電自動(dòng)復(fù)位及按鍵手動(dòng)復(fù)位這兩種方法。其中按鍵手動(dòng)復(fù)位又分電平模式和脈沖模式。在本次設(shè)計(jì)中,為方便操作,采用按鍵手動(dòng)電平復(fù)位。電平復(fù)位原理:電路輸出端接RST引腳,按下按鈕后,電源經(jīng)兩電阻分壓后在RST端產(chǎn)生一個(gè)高電平。RST端口的高電平只需要確保兩個(gè)機(jī)器周期時(shí)段,單片機(jī)就將執(zhí)行復(fù)位的一系列操作。單片機(jī)的復(fù)位速率要比外圍I/O接口電路高,為保證硬件系統(tǒng)成功地復(fù)位,我們在進(jìn)行程序設(shè)計(jì)時(shí),必須要注意放置一定量的復(fù)位延遲時(shí)間。
2.3按鍵控制電路
單片機(jī)的P1.0管腳接復(fù)位按鈕,P1.1管腳接單價(jià)上調(diào)按鈕,P1.2管腳接單價(jià)下調(diào)按鈕,P1-3管腳接白天夜晚切換按鈕。按下復(fù)位按鈕后,單片機(jī)P1.0端口為低電平,通過軟件編程,調(diào)用清零子程序,在程序中給各數(shù)值賦0代碼,用于將記錄數(shù)據(jù)例如里程、總價(jià)、單價(jià),自動(dòng)恢復(fù)到初始狀態(tài),方便下次計(jì)價(jià)。該四個(gè)按鈕在計(jì)價(jià)過程中仍然有效。
2.4路程測量電路
霍爾傳感器是以霍爾效應(yīng)作為原理創(chuàng)造的某種磁場傳感器,其分為開關(guān)型和線性型。線性型輸出模擬量,開關(guān)型輸出數(shù)字量。A44E是單極性開關(guān)型的霍爾器件,它的工作電壓范圍相對較寬,為4.5V到18V。A44E輸出的信號滿足TTL電平準(zhǔn)則,能夠直接接入到單片機(jī)的I/O端口,并且它的最高檢測頻率能夠到達(dá)1mhz。安裝在車輪上的A44E霍爾傳感器,將檢測到的信號送給單片機(jī),單片機(jī)的P3.2端口作為信號的輸入端,利用該端口的第二功能即外部中斷0使編程得以簡化。經(jīng)過簡單的計(jì)算處理之后,送給顯示模塊,這樣便完成了里程數(shù)的測量。如圖1所示。
計(jì)價(jià)原理:假定車輪的周長是0.001千米,每當(dāng)車輪轉(zhuǎn)動(dòng)一圈,霍爾開關(guān)就檢測并且輸出信號,引發(fā)單片機(jī)的中斷,每逢霍爾開關(guān)輸出一個(gè)低電平信號就將令單片機(jī)發(fā)生一次中斷,對脈沖進(jìn)行計(jì)數(shù)。當(dāng)計(jì)價(jià)器對脈沖計(jì)數(shù)達(dá)到1000次時(shí)即車行駛了1千米時(shí),在單片機(jī)的控制下,總價(jià)將自動(dòng)增加。本次流程中,需實(shí)現(xiàn)將目前行駛的里程數(shù)和總價(jià)進(jìn)行疊加,并把運(yùn)轉(zhuǎn)成果保留到里程和總價(jià)寄存器當(dāng)中。其計(jì)算公式為單價(jià)×公里數(shù)=總價(jià)。
2.5顯示電路
本設(shè)計(jì)將LCD1602液晶顯示器的八位并行數(shù)據(jù)總線連接到單片機(jī)的P0口,RW端口接單片機(jī)P2.5口,RS端口接單片機(jī)P2.6口,E端口接單片機(jī)P2.7口。在VEE引腳接一個(gè)阻值為1K的電位器,用途是調(diào)節(jié)液晶的對比度。在LCD屏上可顯示公里數(shù),總價(jià),單價(jià)的數(shù)據(jù)。
3系統(tǒng)軟件設(shè)計(jì)
本設(shè)計(jì)中,軟件設(shè)計(jì)使用模塊化操作,充分利用各個(gè)模塊間的相互關(guān)聯(lián),通過主程序調(diào)用各個(gè)子程序令程序通俗易懂,方便易行。整體程序流程圖如圖2所示。
令main函數(shù)開始編寫,首先應(yīng)當(dāng)進(jìn)行液晶初始化、外部中斷初始化和參數(shù)初始化。經(jīng)過這一系列初始化,使得硬件處于準(zhǔn)備就緒狀態(tài)。
判斷有無按鍵按下,如果沒有則無計(jì)費(fèi)脈沖,顯示屏顯示初始值;如果有則通過判斷調(diào)節(jié)單價(jià),單價(jià)切換,參數(shù)復(fù)位它們的狀態(tài),以分別調(diào)用不同的子程序。這些放在硬件系統(tǒng)中就是通過按下各個(gè)控制按鈕,如單價(jià)上調(diào)下調(diào)按鈕、白天/夜晚切換按鈕、復(fù)位按鈕,來分別進(jìn)行不同的指令,最后液晶顯示屏依據(jù)輸入的信息,顯示不同的數(shù)據(jù)信息,從而達(dá)到了軟件控制硬件,輸入信息控制輸出信息的目的。
根據(jù)上述步驟設(shè)計(jì)出的程序具有很強(qiáng)的邏輯性和實(shí)用性,其靈活性高,可讀性強(qiáng)。
4系統(tǒng)仿真和調(diào)試
本設(shè)計(jì)是在Keil uVision4軟件上對AT89C52單片機(jī)進(jìn)行C語言編程。在Protues軟件上進(jìn)行仿真。
按下硬件系統(tǒng)路程測量電路中的開關(guān),里程開始上漲,當(dāng)公里數(shù)小于3km時(shí),隨機(jī)挑選某一里程數(shù),LCD顯示結(jié)果如下:
當(dāng)公里數(shù)超過3km時(shí),隨機(jī)挑選某一里程數(shù),LCD顯示結(jié)果如下:
4結(jié)束語
以AT89S52單片機(jī)作為中樞控制元件,出租車計(jì)價(jià)器具有精度高、具有靈敏度高、性能可靠、電路簡單、外接元件少、成本低、實(shí)用性強(qiáng)等特點(diǎn)。能夠很好地滿足出出租車計(jì)價(jià)器的要求。