基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)_第1頁
基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)_第2頁
基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)_第3頁
基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)_第4頁
基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、大連理工大學(xué)城市學(xué)院 本科生畢業(yè)設(shè)計(jì)(論文)學(xué) 院:電子與自動化學(xué)院 專 業(yè):自動化 學(xué) 生: 姜美芹 指導(dǎo)教師:刁立強(qiáng) 完成日期:2013年6月6日 大連理工大學(xué)城市學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)題目基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)總計(jì) 畢業(yè)設(shè)計(jì)(論文)32 頁 表格 6 表 插圖 26 幅摘 要隨著社會的高度發(fā)展,出租車已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚拇焦ぞ?,但由于各個地方的生活水平不同,導(dǎo)致物價(jià)存在一定的差異,因此出租車的計(jì)費(fèi)標(biāo)準(zhǔn)也不盡相同。這就要求我們設(shè)計(jì)出簡易化、智能化、計(jì)價(jià)精確、可移植、可靠性高的出租車計(jì)價(jià)器。本次設(shè)計(jì)利用軟件設(shè)計(jì)和硬件設(shè)計(jì)相結(jié)合,設(shè)計(jì)出具有性能可靠、電路簡單、成本低

2、等特點(diǎn)的多功能計(jì)價(jià)器。由單片機(jī)AT89C51控制,使用12MHz 晶振提供時鐘信號,利用裝在車輪上的霍爾傳感器A44E發(fā)出的脈沖個數(shù)來測速,因?yàn)楸驹O(shè)計(jì)涉及到白天和黑夜的轉(zhuǎn)換,通過AT24C02實(shí)現(xiàn)白天和黑夜單價(jià)的修改和存儲,從而實(shí)現(xiàn)白天和黑夜不同的計(jì)費(fèi)標(biāo)準(zhǔn)。另外AT24C02中的數(shù)據(jù)是不可隨意更改的,具有防作弊的效果。通過C語言編程實(shí)現(xiàn)記時、里程檢測、費(fèi)用計(jì)算,同時通過LED數(shù)碼管將里從而達(dá)到計(jì)費(fèi)的目的。最后將總車費(fèi)和總金額很直觀的在LED數(shù)碼管中顯示出來,達(dá)到計(jì)價(jià)器計(jì)價(jià)收費(fèi)的目的。而且,本次設(shè)計(jì)還通過DS1302,可以在不計(jì)價(jià)的情況下作為時鐘顯示時、分、秒,使駕駛員了解實(shí)時時間。系統(tǒng)包括控制

3、模塊、里程傳感模塊、掉電保護(hù)模塊、獨(dú)立鍵盤電路、電源電路、時鐘顯示模塊部分。該系統(tǒng)設(shè)有五個按鍵(清除、查詢/確認(rèn)、停止、白天/黑夜、功能選擇),進(jìn)行相應(yīng)的操作就可實(shí)現(xiàn)單程/往返模式選擇、停止計(jì)費(fèi)、等待時間查詢、清除復(fù)位等功能,使操作簡單方便。關(guān)鍵詞:單片機(jī); 霍爾傳感器A44E; LED數(shù)碼管;DS1302AbstractWith the high degree of social development, the taxi has become an everyday essential means of transport, but because of the different lev

4、els of each of the local life, causing prices there are some differences, so taxis are not the same accounting standards. This requires us to design a simple, intelligent, accurate pricing, portable, high reliability taxi meter.The design of the software and hardware design using the combination of

5、design with reliable performance, the circuit is simple and low cost multifunction meter. Controlled by the microcontroller AT89C51 using 12MHz crystal oscillator provides the clock signal, the use of a wheel mounted on the Hall sensor A44E number of pulses sent to the gun, as the design involves th

6、e conversion of the day and night, night and day to achieve through AT24C02 price changes and storage, day and night in order to achieve different billing standards. The data in another AT24C02 can not be changed, with the effect of anti-cheating. Through the C programming language in mind, the mile

7、age testing, cost calculations, while the inside through the LED digital tube so as to achieve the purpose of billing. Finally, the total amount of the total fare and very intuitive in the LED digital tube display, to achieve the purpose of the meter valuation fees. Moreover, this design also adopte

8、d DS1302, can not denominated in the case as the clock displays hours, minutes, seconds, the driver understand real-time. System comprises a control module, mileage sensing module, power protection module, separate keyboard circuit, power circuit, the clock display module section. The system has fiv

9、e buttons (Clear, check / confirm, stop, day / night function selection), the appropriate action can be achieved one way / return mode selection, stop charging, waiting time queries, clear Reset function. make operation simple and convenient.Keywords: microcontroller; hall sensor A44E; LED digital t

10、ube; DS1302目錄第一章 引言11.1出租車簡介11.1.1出租車計(jì)價(jià)器概述11.1.2出租車計(jì)價(jià)器的工作原理11.2 單片機(jī)簡介21.2.1單片機(jī)的基礎(chǔ)知識21.2.2單片機(jī)的發(fā)展歷史、趨勢及應(yīng)用21.2.3 MCS-51 單片機(jī)的應(yīng)用特性31.3設(shè)計(jì)目的及要求41.3.1設(shè)計(jì)任務(wù)41.3.2 設(shè)計(jì)要求41.3.3系統(tǒng)主要功能5第二章 計(jì)價(jià)器硬件設(shè)計(jì)62.1.出租車計(jì)價(jià)器方案論證62.2 系統(tǒng)的硬件構(gòu)成及功能82.3 AT89C51單片機(jī)及其引腳說明82.4 AT24C02掉電存儲電路設(shè)計(jì)112.5里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)132.6電源電路設(shè)計(jì)152.7獨(dú)立鍵盤電路設(shè)計(jì)162.8指示

11、燈電路設(shè)計(jì)162.9數(shù)碼管顯示電路設(shè)計(jì)172.10 DS1302時鐘電路設(shè)計(jì)20第三章 系統(tǒng)的軟件設(shè)計(jì)233.1 系統(tǒng)主程序設(shè)計(jì)233.2 定時中斷服務(wù)程序243.3 里程計(jì)數(shù)中斷服務(wù)程序253.4 中途等待程序273.5 鍵盤掃描子程序283.6計(jì)算程序30結(jié)束語32致謝33參考文獻(xiàn)34附錄 多功能計(jì)價(jià)器程序設(shè)計(jì)35設(shè)計(jì)原理圖55第一章 引言本次畢業(yè)設(shè)計(jì)利用單片機(jī)知識作為理論支撐來實(shí)現(xiàn)一臺多功能出租車計(jì)價(jià)器設(shè)計(jì),使之具有性能可靠、電路簡單、成本低、使用方便等特點(diǎn)。1.1出租車簡介1.1.1出租車計(jì)價(jià)器概述計(jì)價(jià)器顯示的總金額是總里程與不同情況下的單價(jià)(白天、黑夜、中途等待)的函數(shù)。出租車計(jì)價(jià)器

12、通過里程傳感器與車輪連接。出租汽車的實(shí)際里程通過傳感器的脈沖信號在計(jì)價(jià)器里按照設(shè)定的函數(shù)轉(zhuǎn)換成一定的總里程。出租車計(jì)價(jià)器功能主要有具有數(shù)據(jù)的復(fù)位功能、白天/黑夜轉(zhuǎn)換功能、數(shù)據(jù)輸出功能、計(jì)時計(jì)價(jià)功能等等,在原有功能的基礎(chǔ)上增加單價(jià)輸出、單價(jià)調(diào)整、路程輸出、顯示當(dāng)前的系統(tǒng)時間等功能。1.1.2出租車計(jì)價(jià)器的工作原理當(dāng)汽車運(yùn)行起來時,就啟動計(jì)價(jià),根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷行駛里程是否已超過起步價(jià)公里數(shù)。若已超過,則根據(jù)里程值、每公里的單價(jià)數(shù)和起步價(jià)數(shù)來計(jì)算出當(dāng)前的總金額,并將結(jié)果存于總金額寄存器中;中途等待時,無脈沖輸入,不產(chǎn)生中斷,當(dāng)時間超過等待設(shè)定值時,開始進(jìn)行計(jì)時,并把等待價(jià)格加到總金額

13、里,然后將總金額、里程和單價(jià)、白天黑夜價(jià)格送數(shù)碼管顯示出來。1.2 單片機(jī)簡介1.2.1單片機(jī)的基礎(chǔ)知識 單片機(jī)結(jié)構(gòu)包括:輸入設(shè)備,運(yùn)算器,輸出設(shè)備,控制器,內(nèi)存。 1946年第一臺計(jì)算機(jī)誕生,經(jīng)歷了電子管、晶體管、集成電路、大規(guī)模集成電路、超大規(guī)模集成電路的過程1.2.2單片機(jī)的發(fā)展歷史、趨勢及應(yīng)用歷史: 1974年12月,美國仙童(Fairchild)公司推出了世界上第一臺8位單片機(jī)F8。單片機(jī)的發(fā)展過程分為以下幾個發(fā)展階段。 1、第一代單片機(jī)(19741976年) 單片機(jī)發(fā)展的起步階段。集成度也較低,并且采用了雙片形式。 代表產(chǎn)品有Fairchild公司的F8和Mostek公司的3870

14、等。 2、第二代單片機(jī)(19761978年) 是單片機(jī)的發(fā)展階段。 最典型的產(chǎn)品有Intel公司的MCS-48系列單片機(jī)。 3、第三代單片機(jī)(1979一1982年) 是8位單片機(jī)的成熟階段。 代表產(chǎn)品有Intel公司的MCS-51系列機(jī)、Motorola公司的MC6801系列機(jī)、Zilog公司的Z8系列機(jī)等。 4、第四代單片機(jī)(1983年以后)1983年以后是16位單片機(jī)和8位高性能單片機(jī)并行發(fā)展的時代。趨勢:目前,單片機(jī)正朝著高速度、高性能和多品種方向發(fā)展,單片機(jī)的發(fā)展趨勢具體體現(xiàn)在以下四個方面:(1)4位、8位、16位、32位單片機(jī)共存,并各有自己的生存空間。(2)CPU功能不斷增強(qiáng)、運(yùn)行

15、不斷速度提高。(3)內(nèi)部資源增多,增加存儲器容量、片內(nèi)外設(shè)如AD、DA、LEDLCD驅(qū)動、DMA、PWM、WDT 。(4)引腳的多功能化 (5)低電壓和低功耗 (6)結(jié)合ASIC和RISC技術(shù),使單片機(jī)的應(yīng)用范圍進(jìn)一步擴(kuò)大。應(yīng)用: 單片機(jī)具有集成度高、結(jié)構(gòu)簡單、可靠性高、控制功能強(qiáng)、應(yīng)用靈活方便和價(jià)格低等優(yōu)點(diǎn),因此廣泛應(yīng)用于國民經(jīng)濟(jì)的各個領(lǐng)域。單片機(jī)的應(yīng)用提高了機(jī)電設(shè)備的技術(shù)水平和自動化程度,對各行各業(yè)的技術(shù)改造和產(chǎn)品更新?lián)Q代起到了重要的推動作用。1單片機(jī)特別適用于機(jī)、電、儀一體的智能產(chǎn)品 (1)單片機(jī)在日常生活中的應(yīng)用(2)單片機(jī)在數(shù)據(jù)處理方面的應(yīng)用 (3)單片機(jī)在智能化的儀器儀表中應(yīng)用2單

16、片機(jī)在工業(yè)控制中的應(yīng)用 單片機(jī)成功地應(yīng)用于玩具、游戲機(jī)、無繩電話、充電器、按摩器、IC卡電話、IC卡水表、IC卡煤氣表、IC卡電度表、流量溫控儀表、家庭自動化、電子鎖、電子秤、步進(jìn)電機(jī)、防盜報(bào)警、電子日歷時鐘等這些日常生活的產(chǎn)品中。 圖形終端、彩色黑白復(fù)印機(jī)、軟盤及硬盤驅(qū)動器、磁帶機(jī)、打印機(jī)的內(nèi)部都采用單片機(jī)進(jìn)行控制。 在各類儀器儀表中(包括醫(yī)療器械、色譜儀、溫度、濕度、流量、流速、電壓、頻率、功率、厚度、角度、長度、硬度、元素測定等)引入單片機(jī),使儀器儀表數(shù)字化、智能化、微型化,功能大大提高。11.2.3 MCS-51 單片機(jī)的應(yīng)用特性 由于MCS-51系列單片機(jī)具有體積小、功能全、價(jià)廉、面

17、向控制、應(yīng)用軟件豐富、技術(shù)在不斷更新、開發(fā)應(yīng)用方便等優(yōu)點(diǎn),可以適應(yīng)各個應(yīng)用領(lǐng)域的不同需要,因而具有極強(qiáng)的競爭力和生命力,應(yīng)用前景廣闊。今后它仍將是科技界、工業(yè)界廣泛選擇應(yīng)用的8位微控制器,仍將是單片機(jī)應(yīng)用的主流機(jī)種。各高校實(shí)驗(yàn)室大多都配備了MCS-51系統(tǒng)仿真實(shí)驗(yàn)裝置。所以,它今后仍將是高等院校教材的首選內(nèi)容之一。11.3設(shè)計(jì)目的及要求1.3.1設(shè)計(jì)任務(wù)設(shè)計(jì)一款基于AT89C51單片機(jī)的多功能出租車計(jì)價(jià)器。1.3.2 設(shè)計(jì)要求1.用前4位數(shù)碼管實(shí)時顯示里程數(shù)(Z),單位為公里,最后一位為小數(shù)位; 用后4位數(shù)碼管時時顯示金額數(shù)(J),單位為元,最后一位為小數(shù)位。格式:XXX.X 公里 XXX.X

18、元2.規(guī)定出租車白天價(jià)格為2元/公里,黑夜則價(jià)格為1.5元/公里;白天/黑夜分別由“白天” 按鍵和“黑夜” 按鍵設(shè)定。3.(1)不同情況具有不同的收費(fèi)標(biāo)準(zhǔn)。白天規(guī)定出租車單程價(jià)格為2元/公里,黑夜則價(jià)格為1.5元/公里起步公里數(shù)為3公里,價(jià)格為8元;若實(shí)際運(yùn)行大于3公里, 按“設(shè)計(jì)任務(wù)2”計(jì)算價(jià)格。途中等待 車速5公里/小時的時間累積為總等待時間T(分鐘), 每五分鐘等待時間相當(dāng)于里程加1公里。(2)能進(jìn)行手動修改單價(jià)。(AT24C02)(3)具有數(shù)據(jù)的復(fù)位功能。(4)IO 口分配的簡易要求 距離檢測使用霍爾開關(guān)A44E 白天/黑夜收費(fèi)標(biāo)準(zhǔn)的轉(zhuǎn)換開關(guān) 數(shù)據(jù)的清零開關(guān) 單價(jià)的調(diào)整起步價(jià)、里程計(jì)費(fèi)

19、單價(jià)、等待時間計(jì)費(fèi)單價(jià)(5)數(shù)據(jù)輸出l 前4位數(shù)碼管實(shí)時顯示里程數(shù)(Z),單位為公里,最后一位為小數(shù)位; 后4位數(shù)碼管時時顯示金額數(shù)(J),單位為元,最后一位為小數(shù)位。(6) 按鍵 功能鍵P1.0;白天黑夜切換鍵P1.1;停止鍵P1.2;清除鍵P1.3; 查詢、確認(rèn)鍵P3.0(7) LED指示燈 空車P1.4;查詢P1.5;等待P1.6;黑夜指示燈(僅晚上亮)P1.74.發(fā)揮部分(1) 能夠在掉電的情況下存儲單價(jià)等數(shù)據(jù)。(2) 能夠顯示當(dāng)前的系統(tǒng)時間。 (3) 增加了指示燈提示功能1.3.3系統(tǒng)主要功能 本課程設(shè)計(jì)所設(shè)計(jì)的出租車計(jì)價(jià)器的主要功能有:數(shù)據(jù)的復(fù)位、白天/晚上轉(zhuǎn)換、數(shù)據(jù)輸出、計(jì)時計(jì)價(jià)

20、、單價(jià)輸出及調(diào)整、路程輸出,實(shí)現(xiàn)在系統(tǒng)掉電的時候保存單價(jià)和系統(tǒng)時間等信息等功能。輸出采用8 段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天、黑夜、中途等待來調(diào)節(jié)單價(jià),同時在不計(jì)價(jià)的時候還能作為時鐘為司機(jī)同志提供方便。第二章 計(jì)價(jià)器硬件設(shè)計(jì)2.1.出租車計(jì)價(jià)器方案論證方案一: 采用數(shù)字電路控制。用傳感器件,輸出脈沖信號,經(jīng)過放大整形作為移位寄存器的脈沖,實(shí)現(xiàn)計(jì)價(jià),但是考慮到這種電路過于簡單,性能不夠,對于模式的切換需要用到機(jī)械開關(guān),機(jī)械開關(guān)時間久了會造成接觸不良,功能不易實(shí)現(xiàn);性能不夠穩(wěn)定,而且使用數(shù)字電路實(shí)現(xiàn)時整體規(guī)模大,使用器件多,難調(diào)試,出現(xiàn)故障時,不易發(fā)現(xiàn)原因,不

21、利于維修。單價(jià)顯示金額顯示電源電路及保護(hù)電路移位寄存器里程傳感器圖2-1數(shù)字電路方案圖電路過于簡單,性能不夠穩(wěn)定,而且不能夠調(diào)節(jié)單價(jià),也不能根據(jù)白天黑夜中途等待轉(zhuǎn)換計(jì)費(fèi)標(biāo)準(zhǔn),電路不夠?qū)嵱?。方案二:出租車?qū)動輪轉(zhuǎn)數(shù)與轉(zhuǎn)軸轉(zhuǎn)數(shù)的傳動比是一定的,磁感應(yīng)傳感器會產(chǎn)生一個大約20 ms的低脈沖,通過計(jì)算磁感應(yīng)傳感器產(chǎn)生的低脈沖數(shù)來計(jì)算出租車跑的里程數(shù)及相應(yīng)的車費(fèi)。編碼器的單片機(jī)通過一個I/O口來檢測磁感應(yīng)傳感器信號,當(dāng)確定為傳感器產(chǎn)生的信號時,就通過另一個I/O口向解碼器的單片機(jī)發(fā)送一組編碼,而解碼器的單片機(jī)則首先判斷當(dāng)前準(zhǔn)備接收的數(shù)據(jù)是編碼器發(fā)送的編碼還是解碼寫入器發(fā)送的解碼。當(dāng)判斷是解碼寫入器發(fā)送的

22、解碼時,解碼器的單片機(jī)接收此解碼,并利用12C總線協(xié)議將解碼保存到EEPROM中去;當(dāng)判斷是編碼器發(fā)送的編碼時,解碼器的單片機(jī)先接收此編碼,然后讀出EEPROM中的解碼,將其與接收到的編碼相比較,如果相同則解碼器單片機(jī)通過一個I/O口向計(jì)價(jià)裝置發(fā)出計(jì)價(jià)脈沖,否則不發(fā)出計(jì)價(jià)脈沖。解碼器計(jì)價(jià)裝置編碼器磁感應(yīng)傳感器解碼寫入器計(jì)價(jià)脈 沖圖2-2編碼器方案圖此方法通常使干擾信號也能產(chǎn)生計(jì)數(shù)脈沖,分立元件過于復(fù)雜,電路穩(wěn)定性不好。方案三: 采用單片機(jī)控制。利用單片機(jī)豐富的I/O 端口來實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)功能。相對來說功能強(qiáng)大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎貙?shí)現(xiàn)設(shè)計(jì)要求,且靈活性

23、強(qiáng),可以通過軟件編程來完成更多的附加功能。設(shè)計(jì)采用AT89C51單片機(jī)為主控器, A44E霍爾傳感器測距,實(shí)現(xiàn)對出租車的基本的計(jì)價(jià)設(shè)計(jì),并采用AT24C02實(shí)現(xiàn)掉電保護(hù),輸出采用8段數(shù)碼顯示管動態(tài)顯示。根據(jù)按鍵轉(zhuǎn)換白天/黑夜/中途等待來選擇不同的工作模式。89C51單片機(jī)按鍵控制復(fù)位電路掉電保護(hù)顯示模塊時鐘電路顯示總里程和總金額圖2-3單片機(jī)方案圖通過比較以上三種方案,單片機(jī)方案有較大的活動空間,I/O端口豐富,且控制靈活。不但能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能, 而且還可以方便的對系統(tǒng)進(jìn)行升級, 所以我們采用最后一種方案。2.2 系統(tǒng)的硬件構(gòu)成及功能本系統(tǒng)的硬件設(shè)計(jì)主要包括單片機(jī)

24、AT89C51、數(shù)碼管顯示、A44E霍爾傳感器電路、AT24C02 掉電存儲單元的設(shè)計(jì)、里程計(jì)算及計(jì)價(jià)單元的設(shè)計(jì)。在硬件設(shè)計(jì)過程中,充分利用各部件的功能,實(shí)現(xiàn)多功能的出租車計(jì)價(jià)器設(shè)計(jì)。利用單片機(jī)豐富的IO端口,及其控制的靈活性,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)、時鐘顯示功能。不但能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能,而且還可以方便的對系統(tǒng)進(jìn)行升級??傮w方案圖如圖2-4: AT89C51復(fù)位電路鍵盤控制里程計(jì)量電路掉電保護(hù)電路DS1302時鐘電源數(shù)碼管顯示晶振電路指示燈電路圖2-4 總體方案圖2.3 AT89C51單片機(jī)及其引腳說明AT89C51是一種帶4K字節(jié)FLASH存儲器(FPE

25、ROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案13。下面是關(guān)于AT

26、89C51的引腳圖圖2-5。圖2-5 AT89C51的引腳圖AT89C51芯片的40個引腳功能為:VCC 電源電壓。GND 接地。RST 復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個機(jī)器周期時,將使單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISKRTO位缺省為RESET輸出高電平打開狀態(tài)。XTAL1 反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2 來自反向振蕩放大器的輸出。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲

27、器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須接上拉電阻。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為低八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低

28、,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序處理器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能的寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表2-1所示。P3

29、口還接收一些用于Flash閃速存儲器編程和程序校驗(yàn)期間的控制信號。表2-1 P3口特殊功能P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6 WR(外部數(shù)據(jù)存儲器寫選通)P3.7 RD(外部數(shù)據(jù)存儲器讀選通)PSEN/ 程序儲存允許輸出是外部程序存儲器的讀先通信號,當(dāng)AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN/有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,沒有兩次有效的PSEN/信號。EA/VPP 外部訪問允許。欲使CPU僅訪

30、問外部程序存儲器,EA端必須保持低電平,需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。Flash存儲器編程時,該引腳加上+12V的編程電壓VPP。2.4 AT24C02掉電存儲電路設(shè)計(jì)AT24C02芯片引腳配置如圖2-6所示圖2-6 AT24C02引腳配置圖AT24C02芯片DIP封裝,共有8個引腳,管腳描述如下:表2-2 AT24C02管腳描述管腳名稱功能A0、A1、A2器件地址選擇SDA串行數(shù)據(jù)/地址SCL串行時鐘WP寫保護(hù)Vcc+1.8V6.0V工作電壓GND接地SCL:串行時鐘端,用于對輸入和輸出數(shù)據(jù)的同步。在SCL上升沿時,把數(shù)據(jù)寫入EEPROM,在SCL下降沿時,

31、把數(shù)據(jù)從EEPROM中讀出。SDA:串行數(shù)據(jù)I/O端,用于輸入和輸出串行數(shù)據(jù)。當(dāng)SCL為高,SDA由高電平變成低電平(下降沿),為起始信號;當(dāng)SCL為高,SDA由低電平變成高電平(上升沿),為終止信號。WP:寫保護(hù)。通過此引腳可提供硬件數(shù)據(jù)保護(hù)。當(dāng)WP接地時允許芯片執(zhí)行一般的讀寫功能。當(dāng)WP接VCC時,對芯片實(shí)行寫保護(hù)。WP接地是因?yàn)閃P為寫保護(hù)引腳,由于AT24C02不具有寫保護(hù)功能,所以經(jīng)該引腳接地。采用I2C總線與AT89C51相連15。 AT24C02 掉電存儲單元的設(shè)計(jì)掉電存儲單元的作用是在電源斷開的時候,存儲當(dāng)前設(shè)定的單價(jià)信息。AT24C02 是ATMEL公司的2KB 字節(jié)的電可擦

32、除存儲芯片,采用兩線串行的總線和單片機(jī)通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10Ua(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40 年以上,而且采用8 腳的DIP 封裝,使用方便。其電路如圖2-7所示。圖 2-7掉電存儲電路原理圖由于在EEPROM內(nèi)部,SCL和SDA是漏極開路結(jié)構(gòu)的,所以,使用時需要外接上拉電阻。圖中R11、R12是上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗,由于AT24C02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移位脈沖)和SDA(數(shù)據(jù)/地址)與單片機(jī)傳送數(shù)據(jù)。每當(dāng)設(shè)定一次單價(jià),系統(tǒng)就自動調(diào)用存儲程序,將單價(jià)

33、信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時候,自動調(diào)用讀存儲器程序,將存儲器內(nèi)的單價(jià)等信息,讀到緩存單元中,供主程序使用。由于保存在24C02 中的數(shù)據(jù)是不能隨意進(jìn)行改動的, 因此它具有防作弊功能。此外出租車營運(yùn)過程中的一些營運(yùn)數(shù)據(jù), 如: 單次出租的營運(yùn)額和營運(yùn)里程、一段時間內(nèi)的營運(yùn)總額和總路程等, 也存儲在24C02 中, 以便出租車公司及司機(jī)查詢, 使出租車司機(jī)更方便的管理營運(yùn)數(shù)據(jù), 出租車行業(yè)得到更有效的管理。2.5里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)信號采集主要是通過傳感器對采集車軸轉(zhuǎn)數(shù),通過主機(jī)模塊進(jìn)行計(jì)算,從而得出里程,金額等信息。通過對傳感器的工作方法研究發(fā)現(xiàn),傳感器A44E是比較符合條件。其工

34、作原理圖如圖2-8所示:圖2-8 霍爾傳感器工作原理圖霍爾傳感器以霍爾效應(yīng)為原理,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中時,霍爾傳感器的輸出端輸出低電平。當(dāng)車輪轉(zhuǎn)動一圈時小磁鐵提供一個磁場,則霍爾傳感器輸出一次低電平完成一次數(shù)據(jù)采集,從而產(chǎn)生信號?;魻杺鞲衅鳈z測并輸出信號到單片機(jī)的IO口計(jì)算脈沖輸入端,引起單片機(jī)的中斷,對脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到特定的次數(shù)時,里程就會增加,單片機(jī)對里程進(jìn)行計(jì)算后,通過接口電路將計(jì)算好的結(jié)果傳送到數(shù)碼管并顯示出來。A44E集成結(jié)構(gòu)及工作點(diǎn)如圖2-9所示。圖2-9 A44E集成結(jié)構(gòu)圖(a)及工作點(diǎn)圖(b)A44E型霍爾傳感器屬于霍爾開關(guān)器件,其工作電壓范圍比較寬(4.5

35、18V)。其輸出的信號符合TTL電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的I/O端口上,而且其最高檢測頻率可達(dá)到1MHZ。集成霍爾傳感器外形圖如圖2-10所示。圖2-10集成霍爾傳感器外形圖表2-3A44E外部引腳說明管腳名稱管腳功能VCC 外接電源輸入端GND外接電源地OUT數(shù)字信號輸出端霍爾傳感器A44E實(shí)現(xiàn)對車輪信號的檢測,并輸出脈沖信號送給單片機(jī)。單片機(jī)對傳感器輸出的脈沖信號進(jìn)行計(jì)數(shù),并進(jìn)行里程(單位:km)換算。每一個脈沖信號代表輪胎旋轉(zhuǎn)一圈,設(shè)輪胎一圈的長度為1m;輪胎轉(zhuǎn)數(shù)為N,則里程Z=1*N/1000(km)。當(dāng)圈數(shù)達(dá)到1000次時,也就是一公里,單片機(jī)就控制將金額自動增加,其計(jì)算公式:當(dāng)

36、前單價(jià)*公里數(shù)=金額。設(shè)速度為V,脈沖信號頻率為f,脈沖時間為T,則V=LunChang/I(m/s)=1*f(m/s) = 3.6*1*f(km/h)。如圖2-11所示,霍爾傳感器IC有3個外接端子,2個是電源的正負(fù)極端子,最后一個是脈沖信號輸出,只要將此信號輸出端接到單片機(jī)的IO口端子上便可以實(shí)現(xiàn)距離檢測。其中,單片機(jī)的P3.2(INT0)引腳作為信號的輸入端接收來自傳感器輸出的信號,采用外部中斷0進(jìn)行計(jì)數(shù)。圖2-11霍爾傳感器路程檢測電路圖2.6電源電路設(shè)計(jì)由于計(jì)價(jià)器的工作環(huán)境比較差, 它要求有抗振動、抗高低溫、抗潮濕、抗電磁干擾等能力, 特別是電源方面的干擾, 如出租車啟動時, 發(fā)動機(jī)

37、打火、電瓶充電等造成輸入計(jì)價(jià)器的+ 12 V 電源不穩(wěn)定。因此采用+ 12 V電瓶電源經(jīng)過濾波和電源穩(wěn)壓管理芯片7805 后得到+ 5 V的穩(wěn)定電壓輸出, 保證整個系統(tǒng)能夠正常工作。如圖2-12所示: 圖2-12電源電路圖2.7獨(dú)立鍵盤電路設(shè)計(jì)鍵盤分為獨(dú)立式鍵盤和矩陣式鍵盤,本次設(shè)計(jì)采用獨(dú)立式鍵盤。獨(dú)立式鍵盤中,每個按鍵占用一個獨(dú)立的I/O口線,每個按鍵電路相互獨(dú)立。I/O口線通過按鍵與地相連,I/O口有上拉電阻,無鍵按下時,引腳端為高電平,有鍵按下時,引腳端為低電平,電平被拉低。I/O口內(nèi)部有上拉電阻時,外部可不用接上拉電阻。本次設(shè)計(jì)用到五個按鍵,分別與P1.0P1.3、P3.0相連。需要注

38、意的是:當(dāng)按鍵按下和釋放的瞬間都有抖動現(xiàn)象,一般來說,抖動的時間長短與鍵盤的機(jī)械特性有關(guān),大約為5-10ms。所以在實(shí)際編程時一定要注意鍵盤的去抖動。鍵盤去抖動有專用的延時電路,也有專門的延時芯片,也可以用軟件去抖,考慮到電路的難易程度,從簡化硬件的角度,本次設(shè)計(jì)采用軟件去抖動,用一個短延時程序,進(jìn)行鍵盤去抖操作。本設(shè)計(jì)的鍵盤電路由5個獨(dú)立按鍵組成,如圖2-13所示。查詢、確認(rèn)鍵切換鍵清除鍵停止鍵功能鍵清除鍵圖2-13獨(dú)立鍵盤電路圖2.8指示燈電路設(shè)計(jì)指示燈電路由4個LED組成,包括空車指示燈、查詢指示燈、等待指示燈、黑夜指示燈。如圖2-14所示等待黑夜查詢空車圖2-14指示燈電路圖這些指示燈

39、能對計(jì)程車的每一種狀態(tài)進(jìn)行指示,空車時空車指示燈亮,查詢時查詢指示燈亮,當(dāng)車速小于5km/h時等待指示燈亮。如果選擇的模式為黑夜時黑夜指示燈亮,白天時不亮。2.9數(shù)碼管顯示電路設(shè)計(jì)數(shù)碼管顯示電路由8個LED數(shù)碼管組成, LED數(shù)碼管是由發(fā)光二極管排列組成的顯示器件。它采用低電壓掃描驅(qū)動,具有耗電少、使用壽命長、成本低、故障少、視角大、可視距離遠(yuǎn)等特點(diǎn)。此外,它的響應(yīng)時間短(一般不超過0.1us),亮度也比較高。它的缺點(diǎn)是工作電流比較大,每一段的工作電流在10mA左右。其中每位數(shù)碼管內(nèi)部由8個LED組成,其中AG代表7個發(fā)光二極管構(gòu)成7筆字形,余下一個DP構(gòu)成小數(shù)點(diǎn),稱為8段LED。8段LED數(shù)

40、碼管可以顯示09等10個數(shù)字和小數(shù)點(diǎn),使用非常廣泛。如圖2-15所示。圖2-15段數(shù)碼管圖這類數(shù)碼管可以分為共陽極和共陰極兩種,本設(shè)計(jì)采用共陰極數(shù)碼管共陰極則是把所有LED的陰極連接到共同接點(diǎn),而每個LED的陽極分別為a、b、c、d、e、f、g、dp。共陽極則相反。如圖2-16(a)、(b)所示。圖2-16(a)8段共陽數(shù)碼管 (b)8段共陰數(shù)碼管通過控制這個公共端,可使該位對應(yīng)的LED亮或暗。當(dāng)共陰極端接地或共陽極接高電平,該位顯示器有效,反之無效。本設(shè)計(jì)采用共陰LED數(shù)碼管。其段選碼如表2-4所示:表2-4共陰數(shù)碼管的段選碼03FH106H25BH34FH466H56DH67DH707H8

41、7BH96FH數(shù)碼管有靜態(tài)顯示和動態(tài)顯示兩種顯示方式,本設(shè)計(jì)采用動態(tài)顯示。靜態(tài)顯示的特點(diǎn):數(shù)據(jù)穩(wěn)定,占用CPU時間少,每個顯示單元都需要單獨(dú)的顯示驅(qū)動電路,使用的硬件較多;動態(tài)顯示的特點(diǎn):有閃爍感,占用的CPU時間多,使用的硬件少,能節(jié)省線路板空間,更重要的是能節(jié)省成本。相比較而言,采用動態(tài)顯示方式,比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多是,CPU要依次掃描,占用CPU較多時間。本設(shè)計(jì)中使用的8個LED數(shù)碼管接P0口作為段選,接P2口作為位選。空車時顯示當(dāng)前時間,開始計(jì)價(jià)時前四位顯示里程,后四位顯示金額。當(dāng)查詢等待時間時顯示為等待時間。如圖2-

42、17所示。圖2-17數(shù)碼管顯示電路圖由于數(shù)碼管內(nèi)部二極管點(diǎn)亮?xí)r需要10mA以上的電流,而單片機(jī)的輸出電流還不到1mA,所以數(shù)碼管與單片機(jī)連接時需加驅(qū)動電路,可以使用上拉電阻的方法,也可以使用專門的驅(qū)動芯片,考慮到復(fù)用單片機(jī)I/O接口,節(jié)省單片機(jī)I/O資源,此次設(shè)計(jì)采用74HC573鎖存器驅(qū)動LED數(shù)碼管段選端,其輸出電流較大,電路接口簡單且可直接驅(qū)動數(shù)碼管顯示。用三極管驅(qū)動LED數(shù)碼管的位選端。因而本次數(shù)碼管顯示部分用到三極管驅(qū)動電路、8位數(shù)據(jù)鎖存器74HC573鎖存電路、8位LED數(shù)碼管顯示,74HC573用于連接51單片機(jī)和LED數(shù)碼管,51單片機(jī)的P0.0P0.7分別順序?qū)?yīng)數(shù)碼管的ag

43、和dp,當(dāng)位P0.0為1時,對應(yīng)A段點(diǎn)亮,以次類推。74HC573的管腳圖如圖2-18所示:圖2-18 74HC573管腳圖OE:為三態(tài)允許輸入端(低電平有效),也可稱作輸出允許端;1D-8D為數(shù)據(jù)輸入端;1Q-8Q為數(shù)據(jù)輸出端;LE為鎖存允許端。本次設(shè)計(jì)中LE接高電平,OE接低電平。74HC573的真值表如表2-5所示,其中H表示高電平,L低電平,Qo數(shù)據(jù)保持不變,Z高阻態(tài)。 表2-5 74HC573真值表DnLEOEQnHHLHLHLLXLLQoXXHZ2.10 DS1302時鐘電路設(shè)計(jì)計(jì)價(jià)器在出租車空車行駛時需要顯示實(shí)時時鐘,因?yàn)樗臅r鐘作為白天/晚上單價(jià)自動轉(zhuǎn)換的一個基準(zhǔn),且計(jì)價(jià)器的時

44、鐘顯示能為司機(jī)和乘客提供方便。DS1302是美國DALLAS公司推出的一種高性能、低功耗的實(shí)時時鐘芯片,采用SPI三線接口與CPU進(jìn)行同步通信;始終可提供秒、分、時;通過設(shè)置DS1302的控制狀態(tài)寄存器選擇日歷,時鐘方式經(jīng)過初始校準(zhǔn)后即可工作使用;工作電壓寬2.55.5 V,采用雙電源供電(主電源和備用電源),并設(shè)置備用電源充電方式,提供了對后背電源進(jìn)行涓細(xì)電流充電的能力,在沒有主電源的情況下啟用備用電源能保存時間信息及數(shù)據(jù)14。DS1302的管腳圖如圖2-19所示:圖2-19DS1302管腳圖表2-6 DS1302管腳說明管腳名稱管腳功能VCC1后備電源VCC2主電源X1、X2振蕩源RST復(fù)

45、位/片選線I/O串行數(shù)據(jù)輸入輸出端SCLK輸入端GND外接電源地DS1302由VCC1或VCC2兩者中的較大者供電;當(dāng)VCC2大于VCC10.2V時,VCC2給DS1302供電;當(dāng)VCC2小于VCC1時,DS1302由VCC1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能。首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此

46、次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK始終是輸入端。本設(shè)計(jì)連接圖如圖2-20所示,其中CI和C2起微調(diào)晶振的作用14。圖2-20 DS1302電路圖第三章 系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)主要可分為主程序模塊、定時計(jì)數(shù)中斷程序、里程計(jì)數(shù)中斷服務(wù)程序、中途等待中斷服務(wù)程序、顯示子程序服務(wù)程序、鍵盤服務(wù)程序六大模塊。下面對各部分模塊作介紹。3.1 系統(tǒng)主程序設(shè)計(jì)本設(shè)計(jì)中采用了主程序調(diào)用各個子程序的方法。在main函數(shù)編寫開始,要進(jìn)行初始化,包括對系統(tǒng)初始化和

47、對硬件設(shè)備進(jìn)行初始化,并使硬件處于就緒狀態(tài)。在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價(jià)和單價(jià)的初始化中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。主程序流程圖如圖3-1所示:圖3-1 主函數(shù)流程圖void main()uchar i=0; KongChe_Led=0; init_device();SDA = 1;SCL = 1;while(1) data_process(); keyscan(); 3.2 定時中斷服務(wù)程序在定時中斷服務(wù)程序中,每 10ms 產(chǎn)生一次中斷,當(dāng)產(chǎn)生 100次中斷的時候,也就到了一秒,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r顯示。 當(dāng)選擇定時/計(jì)數(shù)

48、器作為定時器工作時,計(jì)數(shù)器的加1,信號由振蕩器(晶振)的12分頻產(chǎn)生,即每經(jīng)過1個機(jī)器周期,計(jì)數(shù)器增1,直至計(jì)數(shù)溢出為止。顯然,定時器的定時時間與系統(tǒng)的振蕩頻率有關(guān)。 本設(shè)計(jì)的晶振頻率為12MHZ。由于晶振的頻率為12MHz,則計(jì)數(shù)周期為: T=1/(Hz)*12=1us ,本設(shè)計(jì)選用定時器0,TMOD=0X11, 選用模式1,故T0、T1為16位計(jì)數(shù)器,計(jì)數(shù)最大值為65536 。要定時 10 ms,需要計(jì)數(shù)10000個1us(計(jì)數(shù)周期)計(jì)數(shù)初值=最大值-計(jì)數(shù)周期數(shù)=65536-10000=5553655536轉(zhuǎn)換為十六進(jìn)制即為D8F0,計(jì)數(shù)器從D8F0開始計(jì)數(shù),計(jì)數(shù)到65536溢出,產(chǎn)生定時

49、中斷。定時中斷服務(wù)程序流程圖如圖3-2所示:開始保護(hù)現(xiàn)場重置計(jì)數(shù)初值否中斷100次是數(shù)據(jù)送顯示子程序調(diào)用子程序恢復(fù)現(xiàn)場中斷返回圖3-2 定時中斷服務(wù)程序流程圖3.3 里程計(jì)數(shù)中斷服務(wù)程序每當(dāng)霍爾傳感器輸出一個低電平信號就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對里程脈沖計(jì)滿1000 次時,使微機(jī)進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中。在該程序中,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器中。本設(shè)計(jì)是用外部中斷INT0測量從P3.2引腳輸出的負(fù)跳變信號累計(jì)數(shù),要使用外部中斷,必須對中斷允許控制寄存器IE和定時器/計(jì)數(shù)器控制寄存器TCON進(jìn)行如下設(shè)計(jì):void int0_init() EX0=

50、1;/外中斷0 允許 IT0=1; /外中斷0 觸發(fā)方式設(shè)為 下降沿觸發(fā)每當(dāng)車輪轉(zhuǎn)動一圈,車輪的磁鐵與霍爾傳感器感相遇時,霍爾傳感器就會產(chǎn)生一個下降沿的脈沖信號。脈沖信號傳到P3.2引腳,外部中斷請求源INT0,單片機(jī)就會產(chǎn)生一次中斷。根據(jù)源代碼:void int0() interrupt 0 using 1 INT0霍爾脈沖計(jì)數(shù) EA=0;Count+; EA=1;if(count=1000)count=0;Count為車輪轉(zhuǎn)動圈數(shù),總路程等于圈數(shù)乘以車輪周長,把總路程的數(shù)據(jù)送到里程相識單元顯示。再按照里程收費(fèi)標(biāo)準(zhǔn),將價(jià)格數(shù)據(jù)送到計(jì)費(fèi)顯示單元。里程技術(shù)中斷服務(wù)程序流程圖如圖3-3所示:開始初

51、始化中斷請求?開外中斷Count+Count=0NY計(jì)Count=10000?NY圖3-3 里程計(jì)數(shù)中斷服務(wù)程序流程圖3.4 中途等待程序60s到了嗎?加1處理1s到了嗎?定時器T0啟動當(dāng)出租車的速度5km/h時,等待時間開始計(jì)時,出租車進(jìn)入中途等待模式時,片內(nèi)的T0定時啟動,中途等待程序流程圖如3-4所示:開始否是否是分鐘數(shù)加1數(shù)據(jù)送顯示子程序返回圖3-4 中途等待程序流程圖void timer0() interrupt 1 using 2 T0等待時間計(jì)算 TH0=0XD8; TL0=0XF0; Count1+; if(Count1=100) 脈沖記滿100 Count1=0; 脈沖清零

52、Second+; 加一秒 if(Second=60) 有60S? Second=0; 秒清零 Minute+; 分加一 3.5 鍵盤掃描子程序鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時候,單片機(jī)循環(huán)主程序,一旦右按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。鍵盤掃描子程序流程圖如圖3-5所示:功能鍵。按下時進(jìn)入白天黑夜選擇模式,再按回到實(shí)時時間顯示狀態(tài)。切換鍵。按功能鍵進(jìn)入白天黑夜選擇模式后再按此鍵可進(jìn)行白天和黑夜之間切換。停止鍵。運(yùn)行狀態(tài)按下此鍵即停止計(jì)程計(jì)費(fèi)。清除鍵。按下時清除里程和金額等數(shù)據(jù)信息,并將此次信息送入存儲電路儲存。查詢、確認(rèn)鍵。功能選擇模式時按下此鍵確認(rèn)選擇,運(yùn)

53、行時按下此鍵可查詢等待時間,再次按下回到顯示里程數(shù)、金額狀態(tài)。圖3-5 鍵盤掃描子程序流程圖3.6計(jì)算程序計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價(jià)+(里程-3)*單價(jià)+等待時間*等待單價(jià);否則,執(zhí)行公式:總金額=起步價(jià)+等待時間*等待單價(jià);如果進(jìn)入中途等待模式,每等待五分鐘相當(dāng)于加1公里,因?yàn)檩嗛L設(shè)為1m,采集脈沖數(shù)為n,總里程=n*1/1000+等待分鐘/5。計(jì)算程序流程圖如圖3-6所示:里程3?總金額=起步價(jià)總金額+=(里程-3)*單價(jià)調(diào)用計(jì)算程序總金額+=等待時間*等待單價(jià)返回總金額=起步價(jià)總金額+=等待時間*等待單價(jià)圖3-6計(jì)算程序流程圖void data_process() LiCheng=(uint)(Count*LunChang)/100+Minute*10/5; if(LiCheng=30) JinEr=80; else JinEr=80+(DanJia*(LiCheng-30)/10; 結(jié)束語本次設(shè)計(jì)中,遇到了許多問題,有許多以前沒有接觸過的芯

溫馨提示

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

最新文檔

評論

0/150

提交評論