基于單片機(jī)出租車(chē)計(jì)價(jià)器[1]_第1頁(yè)
基于單片機(jī)出租車(chē)計(jì)價(jià)器[1]_第2頁(yè)
基于單片機(jī)出租車(chē)計(jì)價(jià)器[1]_第3頁(yè)
基于單片機(jī)出租車(chē)計(jì)價(jià)器[1]_第4頁(yè)
基于單片機(jī)出租車(chē)計(jì)價(jià)器[1]_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì) 基于單片機(jī)的出租車(chē)計(jì)價(jià)器目 錄前 言1第一章    方案設(shè)計(jì)21.1  功能要求21.2 系統(tǒng)工作原理及其組成2第二章  硬件設(shè)計(jì)42.1  單片機(jī)最小系統(tǒng)單元42.2 光電開(kāi)關(guān)單元52.3 鍵盤(pán)調(diào)整單元72.4 7279鍵盤(pán)、顯示接口8第三章  軟件設(shè)計(jì)103.1 系統(tǒng)主程序103.2 中斷程序123.3  計(jì)算程序123.4  顯示程序13第四章 系統(tǒng)測(cè)試154.1 調(diào)試與測(cè)試154.2  里程計(jì)價(jià)測(cè)試15第五章  總結(jié)17參考文獻(xiàn)18附錄:系統(tǒng)原理圖19前 言

2、隨著生活水平的提高,人們已不再滿足于衣食住的享受,出行的舒適已受到越來(lái)越多人的關(guān)注。于是,出租車(chē)行業(yè)以低價(jià)高質(zhì)的服務(wù)給人們帶來(lái)了出行的享受。但是總存在著買(mǎi)糾紛困擾著行業(yè)的發(fā)展。而在出租車(chē)行業(yè)中解決這一矛盾的最好方法就是改良計(jì)價(jià)器。用更加精良的計(jì)價(jià)器來(lái)為乘客提供更加方便快捷的服務(wù)。我國(guó)在70年代開(kāi)始出現(xiàn)出租車(chē),但那時(shí)的計(jì)費(fèi)系統(tǒng)大都是國(guó)外進(jìn)口不但不夠準(zhǔn)確,價(jià)格還十分昂。隨著改革開(kāi)放益深入,出租車(chē)行業(yè)的發(fā)展勢(shì)頭已十分突出,國(guó)內(nèi)各機(jī)械廠家紛紛推出國(guó)產(chǎn)計(jì)價(jià)器。出租車(chē)計(jì)價(jià)器的功能從剛開(kāi)始的只顯示路程(需要司機(jī)自己定價(jià),計(jì)算后四舍五入),到能夠自主計(jì)費(fèi),以及現(xiàn)在的能夠打發(fā)票和語(yǔ)音提示、按時(shí)間自主變動(dòng)單價(jià)等功

3、能。隨著城市旅游業(yè)的發(fā)展,出租車(chē)行業(yè)已成為城市的窗口,象征著一個(gè)城市的文明程度?,F(xiàn)在各大中城市出租車(chē)行業(yè)都已普及自動(dòng)計(jì)價(jià)器,所以計(jì)價(jià)器技術(shù)的發(fā)展已成定局。而部分小城市尚未普及,但隨著城市建設(shè)益加快,象征著城市面貌的出租車(chē)行業(yè)也將加速發(fā)展,計(jì)價(jià)器的普及也是毫無(wú)疑問(wèn)的,所以未來(lái)汽車(chē)計(jì)價(jià)器的市場(chǎng)還是十分有潛力的。凡乘過(guò)出租車(chē)的人都知道,只要汽車(chē)開(kāi)動(dòng),隨著行駛里程的增加,就會(huì)看到汽車(chē)前面的計(jì)價(jià)器里程數(shù)字顯示的讀數(shù)從零逐漸增大,而當(dāng)行駛到某一值時(shí)(如5KM)計(jì)費(fèi)數(shù)字顯示開(kāi)始從起步價(jià)(如10元)增加。當(dāng)出租車(chē)到達(dá)某地需要在那里等候時(shí),司機(jī)只要按一下“計(jì)時(shí)”鍵,每等候一定時(shí)間,計(jì)費(fèi)顯示就增加一個(gè)該收的等候費(fèi)

4、用。汽車(chē)?yán)^續(xù)行駛時(shí),停止計(jì)算等候費(fèi),繼續(xù)增加里程計(jì)費(fèi)。到達(dá)目的地,便可按顯示的數(shù)字收費(fèi)。汽車(chē)計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車(chē)行業(yè)發(fā)展的重要標(biāo)志,是出租車(chē)中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無(wú)論是對(duì)廣大出租車(chē)司機(jī)朋友還是乘客來(lái)說(shuō)都是很必要的。因此,汽車(chē)計(jì)價(jià)器的研究也是十分有一個(gè)應(yīng)用價(jià)值的。采用模擬電路和數(shù)字電路設(shè)計(jì)的計(jì)價(jià)器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試,對(duì)于模式的切換需要用到機(jī)械開(kāi)關(guān),機(jī)械開(kāi)關(guān)時(shí)間久了會(huì)造成接觸不良,功能不易實(shí)現(xiàn)。為此我們采用了單片機(jī)進(jìn)行設(shè)計(jì),相對(duì)來(lái)說(shuō)功能強(qiáng)大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎膶?shí)現(xiàn)設(shè)計(jì)要求,且

5、靈活性強(qiáng),可以通過(guò)軟件編程來(lái)完成更多的附加功能。第一章    方案設(shè)計(jì)1.1 功能要求1. 用前4位數(shù)碼管實(shí)時(shí)顯示里程數(shù)(Z),單位為公里,最后一位為小數(shù)位;用后4位數(shù)碼管時(shí)時(shí)顯示金額數(shù)(J),單位為元,最后一位為小數(shù)位。2. 規(guī)定出租車(chē)單程價(jià)格為2元/公里,往返則價(jià)格為1.5元/公里;單程/往返分別由“單程” 按鍵和“往返” 按鍵設(shè)定。3. 車(chē)速5公里/小時(shí)的時(shí)間累積為總等待時(shí)間T(分鐘),每5分鐘等待時(shí)間相當(dāng)于里程數(shù)增加1公里。4. 起步公里數(shù)為3公里,價(jià)格為6元;若實(shí)際運(yùn)行大于3公里, 按“設(shè)計(jì)任務(wù)2”計(jì)算價(jià)格。5. 必須充分利用比賽指定

6、的硬件平臺(tái)上的資源進(jìn)行設(shè)計(jì)。6. 用單片機(jī)控制電機(jī)轉(zhuǎn)動(dòng),并用光電傳感器檢測(cè)轉(zhuǎn)盤(pán)轉(zhuǎn)動(dòng)模擬車(chē)速,車(chē)速與轉(zhuǎn)盤(pán)轉(zhuǎn)速成正比。轉(zhuǎn)盤(pán)轉(zhuǎn)速為5轉(zhuǎn)/秒對(duì)應(yīng)車(chē)速為5公里/小時(shí),轉(zhuǎn)盤(pán)轉(zhuǎn)速為50轉(zhuǎn)/秒對(duì)應(yīng)車(chē)速為50公里/小時(shí),依此類推。7. 要求公里數(shù)檢測(cè)誤差不超過(guò)±10。8. 到達(dá)目的地后,按“暫?!?鍵,計(jì)價(jià)器可暫停計(jì)價(jià)。9. 按“清除” 鍵,計(jì)價(jià)器能將記錄數(shù)據(jù)(里程、等待時(shí)間與價(jià)格等)自動(dòng)清0。10.按“查詢”鍵,能自動(dòng)顯示總等待時(shí)間T,再按下該鍵回到顯示里程數(shù)、金額狀態(tài)。1.2系統(tǒng)工作原理及其組成出租車(chē)計(jì)價(jià)是根據(jù)車(chē)所行駛的路程以及乘客乘車(chē)的方式綜合決定的。出租車(chē)行駛總路程可以通過(guò)車(chē)輪的周長(zhǎng)乘車(chē)輪旋轉(zhuǎn)

7、圈數(shù)得到。即可計(jì)算得到車(chē)輪旋轉(zhuǎn)幾周出租車(chē)能行駛一公里的路程。因此,使用槽型光耦的目的就是方便地計(jì)量車(chē)輪旋轉(zhuǎn)的圈數(shù)??稍谲?chē)輪轉(zhuǎn)軸涂上白色條紋,其余部分涂成黑色,發(fā)光管照射轉(zhuǎn)軸。當(dāng)轉(zhuǎn)軸轉(zhuǎn)動(dòng)時(shí),反光與不反光交替出現(xiàn),所以槽型光耦間斷地接收光的反射信號(hào),輸出電脈沖。再經(jīng)過(guò)整形電路,輸出標(biāo)準(zhǔn)TTL信號(hào)。輸出的脈沖信號(hào)被接入到STC89C52單片機(jī)系統(tǒng)中,通過(guò)計(jì)算接收到的脈沖個(gè)數(shù),計(jì)算出當(dāng)前所行駛的路程。同時(shí),根據(jù)不同的收費(fèi)標(biāo)準(zhǔn),選擇相應(yīng)的起步價(jià)、單價(jià)等收費(fèi)標(biāo)準(zhǔn)進(jìn)行計(jì)算。HD 7279管理鍵盤(pán)和數(shù)碼顯示,通過(guò)鍵盤(pán)能夠?qū)崿F(xiàn)啟動(dòng)、暫停、停止計(jì)價(jià)器、切換顯示當(dāng)前的行駛里程和需支付的車(chē)費(fèi)。出租車(chē)計(jì)價(jià)器用于記錄里程

8、、等待時(shí)間、是否往返、起步公里數(shù)與價(jià)格的關(guān)系,它能有效地避免司機(jī)與乘客間的矛盾,保障雙方的利益。模擬出租車(chē)計(jì)價(jià)器能根據(jù)總里程數(shù)、總等待時(shí)間長(zhǎng)短、是否往返、起步公里數(shù)的情況作出相應(yīng)報(bào)價(jià)等。當(dāng)然實(shí)際的出租車(chē)計(jì)價(jià)器還具有能打印出車(chē)票等功能??傮w模塊如圖1.2所示。 圖1.2 電路的組成部分第二章  硬件設(shè)計(jì) 2.1  單片機(jī)最小系統(tǒng)單元主控機(jī)系統(tǒng)采用了Atmel 公司生產(chǎn)的 STC89C52單片機(jī),它含有256 字節(jié)數(shù)據(jù)存儲(chǔ)器,內(nèi)置8K 的電可擦除FLASH ROM,可重復(fù)編程,大小滿足主控機(jī)軟件系統(tǒng)設(shè)計(jì),所以不必再擴(kuò)展程序存儲(chǔ)器。復(fù)位電路和晶振電路是STC89C52

9、工作所需的最簡(jiǎn)外圍電路。單片機(jī)最小系統(tǒng)電路圖如圖2.1所示。 圖2.1 單片機(jī)最小系統(tǒng)圖STC89C52 的復(fù)位端是一個(gè)史密特觸發(fā)輸入,高電平有效。RST端若由低電平上升到高電平并持續(xù)2個(gè)周期,系統(tǒng)將實(shí)現(xiàn)一次復(fù)位操作。在復(fù)位電路中,按一下復(fù)位開(kāi)關(guān)就使在RST端出現(xiàn)一段時(shí)間的高電平,外接11.0592M 晶振和兩個(gè)30pF 電容組成系統(tǒng)的內(nèi)部時(shí)鐘電路。2.2 光電開(kāi)關(guān)單元傳耦合器以光為媒介輸電信號(hào)。它對(duì)輸入、輸出電信號(hào)有良好的隔離作用,所以,它在各種電路中得到廣泛的應(yīng)用。目前它已成為種類最多、用途最廣的光電器件之一。光耦合器一般由三部分組成:光的發(fā)射、光的接收及信號(hào)放大。輸入的電信號(hào)驅(qū)

10、動(dòng)發(fā)光二極管(LED),使之發(fā)出一定波長(zhǎng)的光,被光探測(cè)器接收而產(chǎn)生光電流,再經(jīng)過(guò)進(jìn)一步放大后輸出。這就完成了電光電的轉(zhuǎn)換,從而起到輸入、輸出、隔離的作用。由于光耦合器輸入輸出間互相隔離,電信號(hào)傳輸具有單向性等特點(diǎn),因而具有良好的電絕緣能力和抗干擾能力。又由于光耦合器的輸入端屬于電流型工作的低阻元件,因而具有很強(qiáng)的共模抑制能力。所以,它在長(zhǎng)線傳輸信息中作為終端隔離元件可以大大提高信噪比。在計(jì)算機(jī)數(shù)字通信及實(shí)時(shí)控制中作為信號(hào)隔離的接口器件,可以大大增加計(jì)算機(jī)工作的可靠性。而槽型光耦為中斷槽隙透視式光電傳感器。槽型光耦的特點(diǎn):信號(hào)單向傳輸,輸入端與輸出端完全實(shí)現(xiàn)了電氣隔離,輸出信號(hào)對(duì)輸入端無(wú)影響,抗

11、干擾能力強(qiáng),工作穩(wěn)定,無(wú)觸點(diǎn),使用壽命長(zhǎng),傳輸效率高。光耦合器是70年代發(fā)展起來(lái)產(chǎn)新型器件,現(xiàn)已廣泛用于電氣絕緣、電平轉(zhuǎn)換、級(jí)間耦合、驅(qū)動(dòng)電路、開(kāi)關(guān)電路、斬波器、多諧振蕩器、信號(hào)隔離、級(jí)間隔離 、脈沖放大電路、數(shù)字儀表、遠(yuǎn)距離信號(hào)傳輸、脈沖放大、固態(tài)繼電器(SSR)、儀器儀表、通信設(shè)備及微機(jī)接口中。在單片開(kāi)關(guān)電源中,利用線性光耦合器可構(gòu)成光耦反饋電路,通過(guò)調(diào)節(jié)控制端電流來(lái)改變占空比,達(dá)到精密穩(wěn)壓目的。槽型光耦的工作原理:槽隙兩邊分別裝有紅外發(fā)射器和接收器。當(dāng)槽內(nèi)無(wú)物體時(shí),紅外發(fā)射管的光直接照在硅光敏三極管的窗口上,從而產(chǎn)生大的電流輸出;當(dāng)有物體經(jīng)過(guò)槽隙時(shí),切斷了光路,阻擋了信號(hào)的傳輸,這時(shí)光敏

12、三極管無(wú)輸出,這樣可以辨別物體的有無(wú)。槽型光耦的應(yīng)用:(1) 在邏輯電路上的應(yīng)用 光電耦合器可以構(gòu)成各種邏輯電路,由于光電耦合器的抗干擾性能和隔離性能比晶體管好,因此,由它構(gòu)成的邏輯電路更可靠。 (2) 作為固體開(kāi)關(guān)應(yīng)用 在開(kāi)關(guān)電路中,往往要求控制電路和開(kāi)關(guān)之間要有很好的電隔離,對(duì)于一般的電子開(kāi)關(guān)來(lái)說(shuō)是很難做到的,但用光電耦合器卻很容易實(shí)現(xiàn)。 (3) 在觸發(fā)電路上的應(yīng)用 將光電耦合器用于雙穩(wěn)態(tài)輸出電路,由于可以把發(fā)光二極管分別串入兩管發(fā)射極回路,可有效地解決輸出與負(fù)載隔離地問(wèn)題。 (4) 在脈沖放大電路中的應(yīng)用 光電耦合器應(yīng)用于數(shù)字電路,可以將脈沖信號(hào)進(jìn)行放大。 (5) 在線性電路上的應(yīng)用 線

13、性光電耦合器應(yīng)用于線性電路中,具有較高地線性度以及優(yōu)良地電隔離性能。 (6) 特殊場(chǎng)合的應(yīng)用 光電耦合器還可應(yīng)用于高壓控制,取代變壓器,代替觸點(diǎn)繼電器以及用于A/D電路等多種場(chǎng)合。光電脈沖的轉(zhuǎn)換電路如圖2.2所示:圖2.2光電脈沖的轉(zhuǎn)換電路槽型光耦用VCC=5V電源(如圖2-2),可以安裝在出租車(chē)車(chē)輪處。當(dāng)出租車(chē)在行進(jìn)過(guò)程中,則車(chē)輪就會(huì)不斷對(duì)它遮擋,從而產(chǎn)生一系列脈沖。由于這些脈沖可能會(huì)被干擾,或者電平不穩(wěn)定,因此就需要增加一個(gè)三級(jí)管(Q1)對(duì)信號(hào)進(jìn)行放大。而74LS14是作為反相器的功能來(lái)使用,可以使OUT口輸出的脈沖符合TTL電平,直接可輸入到STC89C52的INT0口。計(jì)算:由于槽型光

14、耦中的二極管的導(dǎo)通電壓為0.7V,流過(guò)的電流為10mA,而電壓源為5V電壓,故R1兩端電壓為U=4.3V,流過(guò)的電流為I=10mA,因此R1=U/I=4.3V/10mA=430500。而上拉電阻R2是用來(lái)限流,故R210K,故R2=10K。設(shè)計(jì)中以槽型光耦作為傳感器元件,并且在實(shí)現(xiàn)階段用函數(shù)信號(hào)發(fā)生器模擬光電傳感器實(shí)現(xiàn)計(jì)程脈沖的形成。 2.3 鍵盤(pán)調(diào)整單元當(dāng)單價(jià)等信息需要進(jìn)行修改時(shí),就要用到鍵盤(pán)進(jìn)行修改。由于調(diào)節(jié)信息不多,故采用4個(gè)獨(dú)立鍵盤(pán)即可,分別實(shí)現(xiàn)顯示金額和公里數(shù)、 清零、暫停、單程和往返功能等作用。鍵盤(pán)采用4*4矩陣按鍵,接在STC89C52的P3口,當(dāng)有鍵按下時(shí),相對(duì)應(yīng)的接口被置0。

15、矩陣鍵盤(pán)又稱為行列式鍵盤(pán),它是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤(pán)。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。電路原理圖如圖2.3所示,行線接P3.0P3.3,列線接P3.4P3.7。S8:按1次,顯示金額和公里數(shù);按2次,進(jìn)入調(diào)整中途等待計(jì)價(jià)。S9:對(duì)上一次的計(jì)費(fèi)進(jìn)行清零,為下次載客準(zhǔn)備。S10:停止計(jì)價(jià),方便客戶查看金額。S11:實(shí)現(xiàn)單程和往返單價(jià)的切換。 圖2.3 鍵盤(pán)調(diào)整單元接線圖2.4 7279鍵盤(pán)、顯示接口采用HD7279芯片構(gòu)成鍵盤(pán)顯示電路,HD7279是一片具串行接口的,可同時(shí)驅(qū)動(dòng)8位共陰式數(shù)碼的智能顯示驅(qū)動(dòng)芯片,該芯片同時(shí)還可以連接多達(dá)64鍵的鍵

16、盤(pán)矩陣,單片即可完成LED顯示、鍵盤(pán)接口的全部功能。DIG0DIG7和SASG鍵盤(pán)的列線和行線端口,用來(lái)完成對(duì)鍵盤(pán)的監(jiān)視,譯碼和鍵值的識(shí)別。DIG0DIG7為8個(gè)LED管的位驅(qū)動(dòng)輸出端,SASG分別為L(zhǎng)ED數(shù)碼管的A段G段的輸出端,DP為小數(shù)點(diǎn)的驅(qū)動(dòng)輸出端。HD7279與單片機(jī)僅需4跟接口線,其中的CS為片選信號(hào),當(dāng)單片機(jī)訪問(wèn)HD7279即讀鍵號(hào)或?qū)懼噶顣r(shí),應(yīng)將片選端置為低電平,低電平有效。CLK為數(shù)據(jù)串行傳送的同步時(shí)鐘輸入端,時(shí)鐘的上升沿表示數(shù)據(jù)有效。DATA為串行數(shù)據(jù)端,當(dāng)向HD7279發(fā)送數(shù)據(jù)時(shí),DATA為輸入端;當(dāng)HD7279輸出鍵盤(pán)代碼時(shí),DATA為輸出端。KEY為按鍵信號(hào)輸出端,在

17、無(wú)鍵按下時(shí)為高電平;而有鍵按下時(shí)此引腳變?yōu)榈碗娖讲⑶乙恢北3值芥I釋放為止。在64陣列鍵盤(pán)中每個(gè)鍵的鍵碼是用十六進(jìn)制表示的,可用讀鍵盤(pán)數(shù)據(jù)指令讀出,其范圍是00H3FH。HD7279需要一外接的RC震蕩電路以供系統(tǒng)工作,其典型值R=1.5k,C=15pF。RESET為復(fù)位端。該端口由低電平變成高電平并保持25ms即復(fù)位結(jié)束。HD7279A片內(nèi)具有驅(qū)動(dòng)電路,它可以直接驅(qū)動(dòng)LED數(shù)碼管,使外圍電路變得簡(jiǎn)單可靠。HD7279鍵盤(pán)、顯示接口電路如圖2-4:圖2.4 7279鍵盤(pán)顯示接口電路第三章 軟件設(shè)計(jì)軟件是單片機(jī)系統(tǒng)的靈魂,根據(jù)設(shè)計(jì)的要求,在本系統(tǒng)中主要有主程序、中斷服務(wù)程序和鍵盤(pán)顯示子程序、計(jì)算子

18、程序等。在主程序中主要完成了寄存器的初始化部分以及對(duì)鍵盤(pán)和顯示的控制。而現(xiàn)在應(yīng)用更廣泛的是單片機(jī)C語(yǔ)言,因其簡(jiǎn)單明了,故此次課程設(shè)計(jì)采用單片機(jī)C語(yǔ)言編程。3.1系統(tǒng)主程序 在主程序模塊中,需要完成對(duì)各參量和接口的初始化、出租車(chē)起價(jià)和單價(jià)的初始化以及中斷、計(jì)算、循環(huán)等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作。 當(dāng)汽車(chē)運(yùn)行起來(lái)時(shí),就啟動(dòng)計(jì)價(jià),根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷行駛里程是否已超過(guò)起步價(jià)公里數(shù)。若已超過(guò),則根據(jù)里程值、每公里的單價(jià)數(shù)和起步價(jià)數(shù)來(lái)計(jì)算

19、出當(dāng)前的總金額,并將結(jié)果存于總金額寄存器中;中途等待時(shí),無(wú)脈沖輸入,不產(chǎn)生中斷,當(dāng)時(shí)間超過(guò)等待設(shè)定值時(shí),開(kāi)始進(jìn)行計(jì)時(shí),并把等待價(jià)格加到總金額里,然后將總金額、里程和單價(jià)、往返價(jià)格送數(shù)碼管顯示出來(lái)。程序流程如圖3.1所示。、各單元初始化及7279初始化T0初始化(計(jì)數(shù)方式 中斷允許)調(diào)鍵掃描程序是否有鍵按下開(kāi)始求取鍵號(hào)并保存啟動(dòng)鍵8?啟動(dòng)T0 開(kāi)始計(jì)價(jià)切換鍵9?切換顯示金額里程暫停鍵10?停止計(jì)費(fèi)等待時(shí)間鍵8?復(fù)位鍵11?單程 往返價(jià)格切換 清零返回 圖3.1 主程序流程圖 3.2 中斷程序 每當(dāng)光電傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對(duì)里程脈沖計(jì)滿3600次時(shí),進(jìn)

20、入里程計(jì)數(shù)中斷服務(wù)程序中,里程變量加一。主函數(shù)中總金額也相應(yīng)地變化。在中途等待中斷程序中,每1ms產(chǎn)生一次中斷,將由當(dāng)前里程計(jì)算出速度值送入某個(gè)緩存變量,每5分鐘將緩存變量中的值和當(dāng)前速度值比較,當(dāng)汽車(chē)小于設(shè)定的車(chē)速,光電傳感器5分鐘輸出信號(hào),當(dāng)前速度值小于緩存變量?jī)?nèi)的值,則進(jìn)入等待計(jì)時(shí),每5分鐘記一次價(jià)格。如圖3.2中斷開(kāi)始中斷初始化是否到60次脈沖計(jì)數(shù)測(cè)量速度返回 圖3.2 中斷服務(wù)程序3.3  計(jì)算程序計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價(jià)+(里程-3)*單價(jià)+等待時(shí)間*等待單價(jià);否則,執(zhí)行公式:總金額=起步價(jià)+等待時(shí)間*等待單

21、價(jià);程序框圖如3.3所示。里程>3?總金額=起步價(jià)總金額+=(里程-3)*單價(jià)調(diào)用計(jì)算程序總金額+=等待時(shí)間*等待單價(jià)返回總金額=起步價(jià)總金額+=等待時(shí)間*等待單價(jià)圖3.3 計(jì)算程序框圖3.4  顯示程序   程序利用定時(shí)器每1ms產(chǎn)生一次中斷,相應(yīng)變量置位,點(diǎn)亮一個(gè)數(shù)碼管,顯示一位數(shù)據(jù),利用主函數(shù)內(nèi)的循環(huán),實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,同時(shí)根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,即可實(shí)現(xiàn)顯示。 0x1c,0x1d,0x1e,0x1f,0x14,0x15,0x16,0x17, 0x0c,0x0d,0x0e,0x0f,0x04,0x05,0x06,0x07; /實(shí)際電路當(dāng)

22、中所測(cè)得鍵值編碼s0-s15開(kāi)始接收里程數(shù),價(jià)格顯示數(shù)據(jù)Flag2是否為真轉(zhuǎn)化為字型碼輸出顯示接收等待時(shí)間車(chē)速顯示數(shù)據(jù)返回 圖3.4 鍵盤(pán)顯示子程序第四章 系統(tǒng)測(cè)試4.1調(diào)試與測(cè)試采用KeilC51編譯器進(jìn)行源程序編譯及仿真調(diào)試,同時(shí)進(jìn)行硬件電路板的設(shè)計(jì)制作。硬件電路制作完畢,用萬(wàn)用表檢測(cè)有無(wú)短路開(kāi)路等現(xiàn)象,確定硬件電路沒(méi)有問(wèn)題后,用仿真頭與硬件電路相連,運(yùn)行程序進(jìn)行調(diào)試。若調(diào)試不成功,則可再單獨(dú)調(diào)試程序和硬件電路。程序用軟件仿真運(yùn)行,硬件電路再次檢查有無(wú)焊錯(cuò),或者元件與插座接觸不良等方面問(wèn)題;確認(rèn)均無(wú)問(wèn)題后,再次把軟件和硬件聯(lián)機(jī)調(diào)試,直至功能正常。把程序燒錄進(jìn)單片機(jī)STC89C52結(jié)束調(diào)試。

23、4.2  里程計(jì)價(jià)測(cè)試 由于實(shí)驗(yàn)條件的限制,我們采用光電傳感器產(chǎn)生外部中斷,設(shè)定中斷間隔為10ms,假定3600個(gè)脈沖為1公里,則此時(shí)車(chē)速為1km/h=5圈/S.整個(gè)系統(tǒng)以此為基礎(chǔ),通過(guò)計(jì)費(fèi)程序完成中金額的計(jì)算。表4.1的測(cè)試條件是:假設(shè)單程的單價(jià)是1.5元,起步價(jià)為8元(包含3公里),分別不公里程測(cè)試得數(shù)據(jù)如表: 表4.1 實(shí)際金額和里程數(shù)4km6km7km9km 總 金額理論 6.5元 9.5元11元 14元實(shí)際 6.5元9.5元11元14元行駛里程理論4km6km7km9km實(shí)際4km6km7km9km表4.2的測(cè)試條件是:假設(shè)在單程運(yùn)行中的單價(jià)1.5元的情況下行駛了10km,

24、進(jìn)行中途等待,分別等待不同的時(shí)間(5分鐘為一個(gè)單位計(jì)費(fèi)1元),起步價(jià)為8元(包含3km)。表4.2 總金額對(duì)比5min10min15min20min總金額理論 16.5元17.5元18.5元19.5元實(shí)際16.5元17.5元18.5元19.5元 第五章  總結(jié)為了使我們?cè)O(shè)計(jì)的系統(tǒng)更具人性化,我們將電源開(kāi)關(guān)都引到盒外,是用了手動(dòng)開(kāi)關(guān)按鍵,使用起來(lái)非常方便。通常在不同的方式,不同的情況下都會(huì)有不同的收費(fèi)標(biāo)準(zhǔn);單程、白天和中途等待,考慮后首選用開(kāi)關(guān)來(lái)實(shí)現(xiàn)這些切換功能,簡(jiǎn)單方便,同時(shí)顯示器會(huì)顯示相應(yīng)的指示。最大的方便了司機(jī)的計(jì)費(fèi)控制。并且能根據(jù)市場(chǎng)經(jīng)濟(jì)的變化而發(fā)生相應(yīng)的跳動(dòng)計(jì)價(jià)。但是設(shè)計(jì)和調(diào)

25、試的過(guò)程中,也發(fā)現(xiàn)了一些問(wèn)題,譬如計(jì)價(jià)的金額數(shù)有限,實(shí)際的里程可能會(huì)很遠(yuǎn),會(huì)超出實(shí)際的顯示范圍;計(jì)價(jià)過(guò)程出現(xiàn)突然斷電時(shí)如何處理這些問(wèn)題,因此對(duì)此方案還可以進(jìn)行進(jìn)一步改進(jìn),如:實(shí)現(xiàn)白天、晚上計(jì)費(fèi)自動(dòng)切換和具有記憶功能,這樣可以保證了乘客和司機(jī)的利益。計(jì)價(jià)器的設(shè)計(jì)不夠人性化,比如加上語(yǔ)音的提示功能??赡軙?huì)更有生命力。小組在動(dòng)手的過(guò)程中產(chǎn)生一個(gè)想法,如果計(jì)價(jià)器兼具有防作弊功能可能會(huì)更讓乘客放心乘坐出租車(chē),并得到廣泛的應(yīng)用。參考文獻(xiàn)1 譚浩強(qiáng)著. C程序設(shè)計(jì)M. 北京:清華大學(xué)出版社, 20052 張友德、趙志英、涂時(shí)亮著.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)M. 上海:復(fù)旦大學(xué)出版社, 2006.103 吳戈

26、、李玉峰編著.案例學(xué)單片機(jī)C語(yǔ)言開(kāi)發(fā)M.北京: 人民郵電出版社,2008.104 孫余凱.傳感器應(yīng)用電路300例M. 北京:電子工業(yè)出版社, 2008.5 田立. 51單片機(jī)C語(yǔ)言程序設(shè)計(jì)快速入門(mén)M. 北京:人民郵電出版社, 20076 AT89C52概述EB/OL:7 Chirs J.Georgopoulos.Interface Fundamentals In MicroprocessorControlled SystemM.D.Reidel Publishing Company,1985附錄A:系統(tǒng)原理圖附錄B:源程序及注釋#include <reg52.h>#define u

27、char unsigned char#define uint unsigned int/*7279指令*/#define com_read 0x15 /讀鍵盤(pán)數(shù)據(jù)指令/*變量及I/O口定義 */ sbit cs= P10; /cs 連接于 P1.0,低電平有效sbit clk=P11; /clk 連接于 P1.1sbit key=P13; /dat 連接于 P1.2sbit dat=P12; /key 連接于 P1.3,低電平有效 /*函數(shù)原型聲明 */void write7279(uchar,uchar); /寫(xiě)入到HD7279uchar read7279(uchar); /從HD7279讀

28、出 void send_byte(uchar); /發(fā)送一個(gè)字節(jié)uchar receive_byte(void); /接收一個(gè)字節(jié)void short_delay(void); /延時(shí)約8usvoid long_delay(void); /延時(shí)約50usvoid delay_10ms(uchar times); /延時(shí)約times*10msvoid delay_1ms(uchar times) ; /延時(shí)約times*1ms void Init_date();uchar qianwei,baiwei,shiwei,gewei;uint tt,aa,aaa,wait,dengdai,gongli

29、,jiage,jg;bit flag0,flag1,flag2,flag3;uchar led=0x1c,0x1d,0x1e,0x1f,0x14,0x15,0x16,0x17, 0x0c,0x0d,0x0e,0x0f,0x04,0x05,0x06,0x07; /鍵值編碼s0-s15 /*發(fā)送字節(jié)函數(shù) 發(fā)送的字節(jié)為out_byte*/void send_byte(uchar out_byte) uchar i; cs=0; long_delay(); for(i=0;i<8;i+) if(out_byte&0x80) dat=1; else dat=0; clk=1; short_

30、delay(); clk=0; short_delay(); out_byte=out_byte*2; /左移一位 dat=0; /*接收字節(jié)函數(shù) 接收的字節(jié)in_byte*/uchar receive_byte(void) uchar i,in_byte; dat=1; long_delay(); for(i=0;i<8;i+) clk=1; short_delay(); in_byte=in_byte*2; if(dat) in_byte=in_byte|0x01; clk=0; short_delay(); dat=0; return(in_byte); /*發(fā)送帶數(shù)據(jù)指令函數(shù)*/

31、void write7279(uchar commond,uchar date) send_byte(commond); send_byte(date); /*讀指令函數(shù)*/uchar read7279(uchar commond) send_byte(commond); return(receive_byte(); /*短延時(shí)函數(shù)1*/void short_delay(void) /延時(shí)約8us uchar i; for(i=0;i<2;i+); /*短延時(shí)函數(shù)2*/void long_delay(void) /延時(shí)約50us uchar i; for(i=0;i<12;i+);

32、 void zting()/停止子程序 flag1=!flag1;if(flag1) EX0=0; /關(guān)閉中斷 定時(shí)器TR0=0;elseEX0=1;TR0=1; uchar read_key_code(void) /讀鍵值 uchar i_code;if(!key)i_code=read7279(0x15);while(!key); /消除鍵盤(pán)抖動(dòng) return i_code; /讀鍵盤(pán)值 else return 0xff; /無(wú)鍵盤(pán)按下uchar read_key_number(void) /讀鍵盤(pán)號(hào) uchar l_o;uchar i;l_o=read_key_code();if(l_o

33、!=0xff) /判斷是否有鍵盤(pán)按下for(i=0;i!=l_o;i+);return i;else return 0xff;void keyscan()uchar k_p;k_p=read_key_number(); /讀鍵值號(hào) 選擇相應(yīng)的操作 switch(k_p)case 12: flag0=!flag0;break; /顯示金額 公里 等待時(shí)間T 脈沖數(shù) case 13: Init_date();break; /數(shù)據(jù)初始化函數(shù)case 14: zting();break; /暫停 case 15: flag2=1;break; /單程 case 11: flag2=0;break; /往返 default :break;void jisuan()/計(jì)算數(shù)據(jù)處理 if(0<=aaa<=180) gongli=aaa/6+dengdai/3000;jiage=60; /60角 if(!flag2) jg=20; /單程價(jià)格 jg=15; /往返價(jià)格 if(aaa>180) gongli=aaa/6+dengdai

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論