基于plc單片機出租車計費系統(tǒng)的設(shè)計電子102班王東風(fēng)_第1頁
基于plc單片機出租車計費系統(tǒng)的設(shè)計電子102班王東風(fēng)_第2頁
基于plc單片機出租車計費系統(tǒng)的設(shè)計電子102班王東風(fēng)_第3頁
基于plc單片機出租車計費系統(tǒng)的設(shè)計電子102班王東風(fēng)_第4頁
基于plc單片機出租車計費系統(tǒng)的設(shè)計電子102班王東風(fēng)_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河南科技學(xué)院新科學(xué)院2014屆本科畢業(yè)論文(設(shè)計)基于PIC單片機的出租車計費系統(tǒng)的設(shè)計學(xué)生姓名:所在院系:新科學(xué)院電氣工程系所學(xué)專業(yè):電子信息工程導(dǎo)師姓名:馬紅標完成時間:2014年5月10日基于PIC單片機的出租車計費系統(tǒng)的設(shè)計摘要計價器顯示的營運金額是營運里程與價格的函數(shù)(等候時間一般折算成一定比例的里 程來計算),出租汽車的實際里程通過傳感器的脈沖信號在計價器里折算成一定的計價營運里 程。本設(shè)計采用16F877單片機為主控器,通過安裝在車輪上的霍爾傳感器A44E檢測到的信號, 送到單片機,由單片機計算里程,經(jīng)處理計算,送給顯示單元的,連接AT24C02掉電存儲單 元,保證在斷電的情況下

2、能夠儲存單價,并設(shè)置復(fù)位電路,當(dāng)按下復(fù)位鍵,內(nèi)部指令重頭開 始執(zhí)行,系統(tǒng)重新運作,計費系統(tǒng)能夠顯示時間,單價,總里程和總金額,時間和單價可調(diào) 整,以方便各地的出租車能夠使用。具有性能可靠、電路簡單、成本低等特點。關(guān)鍵詞:PIC單片機,數(shù)碼管顯示,計費,控制PIC microcontroller design taxi billing systemAbstractOperating the amount shown on the meter is operating mileage and price function (waiting time is usually translated in

3、to a certain proportion of mileage to calculate). Actual mileage taxi through the pulse signal from the sensor are translated into acertain denominated operating mileage meter inside.The design uses a 16F877 microcontroller-based con- troller the signal detected by a wheel mounted on the Hall sensor

4、 A44E, sent to the microco ntroller calculated by the microcontroller mileage, processed calculations, to the display unit connected AT24C02-down storage unit guarantee in case of power failure can store priceband set the reset circuit, when you press the reset button, re-start internal instruction

5、execution, the system re-operation, billing system can display time, unit price, total mileage and total amount, time and price adjustable to facilitate the country's ability to use a taxi.VVith reliable performance, the circuit is simple and low cost.Keywords: PIC microcontroller, digital displ

6、ay, billing, control緒論11 I十 *1* 彳牛I十1 1.1系統(tǒng)的硬件構(gòu)成及功能11.2設(shè)計要求21.2.1基本要求21.2.2發(fā)揮部分21.2.3系統(tǒng)主要功能21.3 PIC16F877原理簡介31.3.1 PIC16F877特性31.3.2特殊內(nèi)嵌功能41.3.3 PIC16F877基本電路51.4AT24C02引腳圖及其引腳功能61.5 AT24C02掉電存儲單元的設(shè)計71.6里程計算、計價單元的設(shè)計71.7數(shù)據(jù)顯示單元設(shè)計82系統(tǒng)的軟件設(shè)計92.1系統(tǒng)主程序設(shè)計92.2定時中斷服務(wù)程序102.3里程計數(shù)中斷服務(wù)程序102.4中途等待中斷服務(wù)程序102.5顯示子程序

7、服務(wù)程序102.6鍵盤服務(wù)程序103結(jié)論13參考文獻14致謝15附錄I電路設(shè)計原理圖16附錄II程序17I緒論隨著出租車行業(yè)的發(fā)展,出租車已經(jīng)是城市交通的重要組成部分,計價器 是出租汽車的經(jīng)營者和乘坐出租汽車的消費者之間用于公平貿(mào)易結(jié)算的工具,我 國的出租車行業(yè)也在這些日常生活中逐漸看到出租車計費系統(tǒng)自身存在的問題, 同時也在尋找新的發(fā)展契機,因而計價器計價準確與否,直接關(guān)系到經(jīng)營者和消 費者的經(jīng)濟利益,是乘客與司機雙方的交易準則,它是出租車行業(yè)發(fā)展的重要標 志,是出租車中最重要的工具。它關(guān)系著交易雙方的利益。國有飯店的發(fā)展也會 在這種激烈的競爭中找到新的突破口。本文就出租車計費系統(tǒng)的現(xiàn)狀與發(fā)

8、展趨勢 展開論述同時也對出租車計價器的未來發(fā)展給予展望。1計價器硬件設(shè)計本系統(tǒng)的硬件設(shè)計主要包括PIC16F877單片機、數(shù)據(jù)顯示部件、A44E霍爾傳 感器電路、AT24C02掉電存儲單元的設(shè)計、里程計算及計價單元的設(shè)計。在硬 件設(shè)計過程中,充分利用各部件的功能,實現(xiàn)出租車計費系統(tǒng)的設(shè)計。1.1系統(tǒng)的硬件構(gòu)成及功能此出租車計費系統(tǒng)以單片機為系統(tǒng)核心,如圖1-1所示,它由以下幾個部件 組成:電源、PIC16F877單片機、按鍵控制部件,AT24C02掉電存儲控制、里 程計算單元、定時器(中途等待計費)、時鐘電路、顯示驅(qū)動電路、數(shù)碼管顯示 模塊以及復(fù)位電路等。利用單片機豐富的IO端口,及其控制的靈

9、活性,實現(xiàn)基本的里程計價功能和價格調(diào)節(jié)、時鐘顯示功能。能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能。復(fù)位電路數(shù)碼管顯示 模塊驅(qū)動電路圖1-1系統(tǒng)功能框圖時鐘電路1.2設(shè)計要求1.2.1基本要求(1)不同情況具有不同的收費標準。白天晚上途中等待(10min開始收費)a能進行手動修改單價。b具有數(shù)據(jù)的復(fù)位功能。(2)IO 口分配的簡易要求。距離檢測使用霍爾開關(guān)A44E白天/晩上收費標準的轉(zhuǎn)換開關(guān)數(shù)據(jù)的清零開關(guān)單價的調(diào)整(最好使用+和一按鍵)(3)數(shù)據(jù)輸出(采用LCM103) o單價輸出 2位路程輸出 2位總金額輸出3位(4)按鍵。啟動計時開關(guān)數(shù)據(jù)復(fù)位(清零)白天/晚上轉(zhuǎn)換1.2.2發(fā)揮部分(1)

10、能夠在掉電的情況下存儲單價等數(shù)據(jù)。(2)能夠顯示當(dāng)前的系統(tǒng)時間。(3)語音播報數(shù)據(jù)信息。1.2.3系統(tǒng)主要功能本課程設(shè)計所設(shè)計的出租車計價器的主要功能有:數(shù)據(jù)的復(fù)位、白天/晚上 轉(zhuǎn)換、數(shù)據(jù)輸出、計時計價、單價輸出及調(diào)整、路程輸出、語音播報數(shù)據(jù)信息、 實現(xiàn)在系統(tǒng)掉電的時候保存單價和系統(tǒng)時間等信息等功能。輸出采用8段數(shù)碼顯 示管。本電路設(shè)計的計價器不但能實現(xiàn)基本的計價,而且還能根據(jù)白天、黑夜、 中途等待來調(diào)節(jié)單價,同時在不計價的時候還能作為時鐘為司機同志提供方便。1.3 PIC16F877原理簡介1.3.1PIC16F877 特性PIC16F877是由Microchip公司所生產(chǎn)開發(fā)的新產(chǎn)品,屬于

11、PICmicro系列單7片微機,具有Flash program程序內(nèi)存功能,可以重復(fù)燒錄程序。圖1-2引腳PIC16F877接腳說明PIC16F877屬于閃控式(Flash)單片機,可以重復(fù)燒錄,其ROM的容量總共 是8K words,以2K為一個page,區(qū)分為4個pages;內(nèi)部RAM總共有512個字節(jié) (OOflFFh),以128個字節(jié)為一個Bank,共區(qū)分為4個Bank,如表1.3所示,每個 Bank的前半段都有其特殊用途,分別連接到其特殊功能模塊,例如I/O、CCP、 Timer、US ART、MSSP 等。1.3.2特殊內(nèi)嵌功能PIC16F877屬于內(nèi)嵌功能較多的單片機,除了 CP

12、U、ROM、RAM. I/O等基 本構(gòu)造外,還包括以下各種功能,簡介如下:A/D converter:模擬數(shù)字轉(zhuǎn)換器,最多可以讀取8組模擬輸入訊號。CCP: Capture. Compare. PWM,用于控制直流馬達。Timer,內(nèi)部定時器,有 TimerO、Timer 1、Timer2等。US ART: Universal Synchronous Asynchronous Receiver Transmitter,同步/異步串 行傳輸,如RS232、RS485等。MSSP; Master Synchronous Serial Port,兩線式(I2C)與三線式(SPI)標準同步 串行傳輸協(xié)

13、定,常用于EEPROM內(nèi)存資料的燒錄與讀取,或是與其它集成電路 溝通與聯(lián)系,形成多芯片網(wǎng)絡(luò)。1.3.3 PIC16F877 基本電路(1) PIC振蕩頻率電路單片機振蕩電路與整體系統(tǒng)工作速度有直接的關(guān)系,例如同步/異步串行傳 輸、定時器等,都與振蕩頻率有關(guān),不同系列單片機有不同振蕩頻率,根據(jù)產(chǎn)品 資料手冊,PIC16F877振蕩頻率最高可到20MHz;在圖1-4中,振蕩電路接于Pinl3(OSCl/CLKIN)與PinI4(OSC2/CLKOUT),而振蕩電路有以下四種形式表 1.3 PIC16F877的 RAM 配置XFile AddressFile AddressFiie AddressF

14、ile Adcressindirect addr <')OOhindirect8OhIndirect addr.C)!00hIndirect addr <">TMROomOPTION REG81hTMROlOlhO尸TION REGI8!hPCL02hPCL82hPCL102hPCL182hSTATUS03hSTATUS83hSTATUS103hSTATUS183hFSR04HFSR84 hFSRi04nFSR184hPORTA05hTRISA!05h185hPORT806hTRISB86hPORTS1O5hTRI9B166hPORTC07hRISC87hn

15、ozn187bPORTD<1»08hTRISD*BQh108h1«8hPORTE 09hTRISW 89h109hI89h尸 CLATHOAhPCLATH8 AhPCLATH10AhPCLATH18 AhINTCONOBhINTCONINTCON1OBhINTCON18BhPIR1OChPIE18ChEEDATA1OChEECON118ChPIR2ODhPIE2sonEBADR!0DnEECON2ifiDhTMR1LOEhPCON8 EhEEDATH10Eh雖 servW!8EhTMR1HOFh8FhEEADRH10FhReserved111!8FhT1CONion9

16、Oh11 onl90hTMR211 hSSPCON 29 in111h191hT2CON12hPR292h112H192hSSPBUFI3hSSPADD93hH3n193hSSPCON14hSSPSTAT94hH4n154hCCPR1LI5h95h115bI95hCCPR1H16h96hlienGeneral Purpose Register196bCCP1CON17h97hGeneral Purpose Register 16 Bytes11?h!97hRC8TA18hTK8TA98n51 Sb198hTXREG19hSPBRG99h119h16 Bytes199hRCREG1Ah9An1l

17、Ah19 AhCCPR2LI8h9BhHBh19BhCCPR2HiCh9cnlienl9ChCCP2CON!Dhsen11Dh19DhADRESHlEhADRESLOEh51£h19EhADCONOiFhADCON19Fn11Fh19Fh20hAO憐I2on1AOhGeneralGonorlGonoralPurpose ReaisterPurpose RegisterPurpose RegisterPurpose Reoister90 ByiesSO BytesEFh80 Bytes16FhSO Bytes1EFhaccessesFOhaccesses170haccs&ses

18、1F0h7Fh70h-7FhFFh70h-7Fh17Fh7on 7Fh1FFhBank 0Bank 1Bank 2Bank 311 Un mplemented data memory locations, read aso-* Not a physical registerNot9 1: These registers are not inpiemerited on th© PIC16F8762: These registers areeservGd. maintain these registers clearFIGURE 2-3:PIC16F877/876 REGISTER FI

19、LE MAPLP:使用低功率振蕩晶體(Low Power Crystal)XT:使用振蕩器/諧振器(Crystal/Resonator)HS:使用高速振蕩器(High Speed Crystal/Resonator)RC:使用電阻 / 電容(Resister/Capacitor)(2) 外加電源與重置電路PIC16F877的工作電壓為5V,連接PinII與Pin32, Pinl2與Pin31為地線接腳; 重置電路連接PinH按下Reset后,內(nèi)部指令重頭開始執(zhí)行,系統(tǒng)重新運作。圖14電源與重置電路(3) 輸入輸出接口PIC16F877除了上述基本電路所占用的7支接腳外,其余的33支接腳都可 當(dāng)

20、成輸出、輸入接腳,輸入輸出端口是單片機基本界面,可以與周邊電路進行電 路控制和信號傳輸與檢測。PIC是8位的單片機,以接腳特性分組,每組盡量湊 滿 8 支接腳,并將 I/O 命名為 PORTA(RAORA5)、PORTB(RBORB7)、 PORTC(RCORC7)、PORTD(RDORD7)和 PORTE(REORE2)等,各分組接口特 性說明如下:PORTAPIC16F877的PORTA總共有6個位(RA0RA5), PORTA的接腳可作為數(shù)字 輸出輸入端口,而系統(tǒng)重置后,PORTA自動成為模擬輸入狀態(tài),可讀取模擬輸 入訊號。PORTBPORTB總共有8個位(RB0RB7),可以撰寫程序規(guī)

21、劃輸入輸出方向、狀態(tài), 其中,要進行燒錄時,使用到三支接腳,分別是Pin36(RB3/PGM)、Pin39(RB6/PGC) 與 Pin40(RB7/PGD)oPORTCPORTC總共有8個位(RC0RC7),除了可作為數(shù)位I/O外,還和一些特殊功 能的周邊電路共享接腳,例如CCP (直流馬達控制)、I2C、SPI (同步串行通訊 電路)、UART (異步串行傳輸電路)等等。PORTDPORTD 總共有 8 個位(RD0RD7),可作一般數(shù)字 I/O,并與 PSP(Parallel Slave Port)并列傳輸接口共享。當(dāng)整體系統(tǒng)需要多單片機時,彼此可以經(jīng)由并列傳輸接 口來快速傳輸資料。PO

22、RTEPORTE總共有3個位(RE0RE2), PORTE的Pin8、9, 10有三種功能,除 了基本I/O功能,也有模擬輸入功能,而上述PORTD的并列傳輸接口設(shè)定所需 的控制接腳,如/RD、/WR、/CS等,也是屬于PORTE接腳。14 AT24C02引腳圖及其引腳功能AT24C02芯片引腳配置如圖1-5所示。圖1-5 AT24C02引腳配置圖AT24C02芯片DIP封裝,共有8個引腳,其中:A2A0地址引腳;SDA、SCL I2C 總線接口;WP寫保護引腳,WP接VSS時,禁止寫入高位地址,WP接VDD時,允 許寫入任何地址;VCC電源端GND接地端1.5 AT24C02掉電存儲單元的設(shè)

23、計掉電存儲單元的作用是在電源斷開的時候,存儲當(dāng)前設(shè)定的單價信息。AT24C02是ATMEL公司的2KB字節(jié)的電可擦除存儲芯片,采用兩線串行的總 線和單片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10Ua(5.5V), 芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝, 使用方便。其電路如圖1-6所示。圖16掉電存儲電路原理圖圖中R8、R10是上拉電阻,其作用是減少AT24C02的靜態(tài)功耗,由于AT24C02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移 位脈沖)和SDA (數(shù)據(jù)/地址)與單片機傳送數(shù)據(jù)。每當(dāng)設(shè)定一次單價,系統(tǒng)就

24、自動調(diào)用存儲程序,將單價信息保存在芯片內(nèi); 當(dāng)系統(tǒng)重新上電的時候,自動調(diào)用讀存儲器程序,將存儲器內(nèi)的單價等信息,讀 到緩存單元中,供主程序使用。1.6里程計算、計價單元的設(shè)計里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片 機,經(jīng)處理計算,送給顯示單元的。其原理如圖1-7所示。PIC單片機圖17傳感器測距示意圖由于A44E屬于開關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.5-18V),其輸 出的信號符合TTL電平標準,可以直接接到單片機的IO端口上,而且其最高檢 測頻率可達到1MH乙A44E集成霍耳開關(guān)由穩(wěn)壓器A、霍耳電勢發(fā)生器(即硅霍耳片)B、差分放大 器C、施密特觸發(fā)器D

25、和OC門輸出E五個基本部分組成。在輸入端輸入電壓CCV ,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢發(fā)生器的兩端,根 據(jù)霍耳效應(yīng)原理,當(dāng)霍耳片處在磁場中時,在垂直于磁場的方向通以電流,則與 這二者相垂直的方向上將會產(chǎn)生霍耳電勢差輸出,該信號經(jīng)放大器放 大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門輸出。當(dāng)施加的磁場達 到工作點(即0P3)時,觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通, 此時OC門輸出端輸出低電壓,通常稱這種狀態(tài)為“開口。當(dāng)施加的磁場達到口 釋放點口(即MB)時,觸發(fā)器輸出低電壓,三極管截止,使OC門輸出高電壓, 這種狀態(tài)為'關(guān)口。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動作

26、。我們選擇了 RBO 口作為信號的輸入端,內(nèi)部采用外部中斷(這樣可以減少 程序設(shè)計的麻煩),車輪每轉(zhuǎn)一圈(我們設(shè)車輪的周長是1米),霍爾開關(guān)就檢 測并輸出信號,引起單片機的中斷,對脈計數(shù),當(dāng)計數(shù)達到1000次時,也就是1 公里,單片機就控制將金額自動的加增加,其計算公式:當(dāng)前單價X公里數(shù)二金 額。17數(shù)據(jù)顯示單元設(shè)計由于設(shè)計要求有單價(2位)、路程(2位)、總金額(3位)顯示輸出, 加上我們另外擴展了時鐘顯示(包含時分秒的顯示),采用LCD液晶段碼顯示, 在距離屏幕1米之外就無法看清數(shù)據(jù),不能滿足要求,而且在白天其對比度也不 能夠滿足要求,因此我們采用6位LED數(shù)碼管的分屏顯示。數(shù)據(jù)的分屏的顯

27、示是通過按鍵S1來實現(xiàn)切換的,如圖7所示。在出租車不走的時候,按下S1,可以實現(xiàn)數(shù)據(jù)的分屏顯示;車在行走的時候只 有總金額和單價顯示屏在顯示,當(dāng)?shù)竭_目的地的時候,客戶要求查看總的里程的 時候,就可以按下S1切換到里程和單價顯示屏,供客戶查詢。2系統(tǒng)的軟件設(shè)計本系統(tǒng)的軟件設(shè)計主要可分為主程序模塊、定時計數(shù)中斷程序、里程計數(shù)中 斷服務(wù)程序、中途等待中斷服務(wù)程序、顯示子程序服務(wù)程序、鍵盤服務(wù)程序六大 模塊。下面對各部分模塊作介紹。2.1系統(tǒng)主程序設(shè)計在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價和單價的初 始化、中斷向量的設(shè)計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還 需要設(shè)置啟動

28、/清除標志寄存器、里程寄存器和價格寄存器,并對它們進行初始 化。然后,主程序?qū)⒏鶕?jù)各標志寄存器的內(nèi)容,分別完成啟動、清除、計程和計 價等不同的操作。主程序流程圖如圖2所示。當(dāng)按下S1時,就啟動計價,將根 據(jù)里程寄存器中的內(nèi)容計算和判斷出行駛里程是否已超過起價公里數(shù)。若已超過,則根據(jù)里程值、每公里的單價數(shù)和起價數(shù)來計算出當(dāng)前的累計價 格,并將結(jié)果存于價格寄存器中,然后將時間和當(dāng)前累計價格送顯示電路顯示出 來。當(dāng)?shù)竭_目的地的時候,由于霍爾開關(guān)沒有送來脈沖信號,就停止計價,顯示 當(dāng)前所應(yīng)該付的金額和對應(yīng)的單價,到下次啟動計價時,系統(tǒng)自動對顯示清零, 并重新進行初始化過程。2.2定時中斷服務(wù)程序在定時

29、中斷服務(wù)程序中,每100ms產(chǎn)生一次中斷,當(dāng)產(chǎn)生10次中斷的時候, 也就到了一秒,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r顯示。其 程序流程如圖2-2所示。23里程計數(shù)中斷服務(wù)程序每當(dāng)霍爾傳感器輸出一個低電平信號就使單片機中斷一次,當(dāng)里程計數(shù)器對 里程脈沖計滿1000次時,使微機進入里程計數(shù)中斷服務(wù)程序中。在該程序中, 需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器 中。2.4中途等待中斷服務(wù)程序當(dāng)在計數(shù)狀態(tài)下霍爾開關(guān)沒有輸出信號,片內(nèi)的T1定時器便被啟動,每當(dāng) 計時到達10分鐘,就對當(dāng)前金額加上中途等待的單價,以后每十分鐘都自動加上 中途等待的單價。當(dāng)中途等待結(jié)

30、束的時候,也就自動切換到正常的計價。2.5顯示子程序服務(wù)程序由于是分屏顯示數(shù)據(jù),所以就要用到4個顯示子程序,分別是:時分秒顯示 子程序(HMS_DIS)、金額單價顯示子程序(CP_DIS)、路程單價顯示子程序 (DP_DIS)、單價調(diào)節(jié)子程序(PA_DIS)O2.6鍵盤服務(wù)程序(1) S1按鍵的功能在出租車不走的時候,按下S1,可以實現(xiàn)數(shù)據(jù)的分屏顯示;車在行走的時 候只有總金額和單價顯示屏在顯示,當(dāng)?shù)竭_目的地的時候,客戶要求查看總的里 9程的時候,就可以按下si切換到里程和單價顯示屏,供客戶查詢。(2)S2按鍵的功能在按下S1按鍵之后,若接著按下S2鍵則進行單價調(diào)整(默認為調(diào)整白天 單價),當(dāng)

31、接著按下S1時,則進行晚上單價調(diào),再次按下S1可進行中途等待 單價調(diào)整。當(dāng)單價調(diào)整結(jié)束后,可以通過過按下S2按鍵進行時間調(diào)整,默認為 調(diào)整時,接著按下S1可進行調(diào)整分,分調(diào)整后再接下S1可進行秒調(diào)整。當(dāng)時 調(diào)整完成后,若接著按下S2則又可進行單價調(diào)整。(3)S3按鍵的功能在顯示金額及單價時,若按下S3鍵則顯示路程和單價,再次按下S3,可返 回顯示金額及單價。(4)S4按鍵的功能在按下S1按鍵之后,若接著按下S4按鍵,則進行設(shè)定默認晚上單價,并 啟動計價器,若沒有按下S4則可設(shè)定默認單價(白天),并啟動計價器。當(dāng)設(shè)定默認晚上單價結(jié)束后,再次接下S4按鍵,則返回系統(tǒng)時間的顯示。當(dāng)出租車中途停車等待

32、時,單片機接收不到霍爾傳感器傳出的信號,啟動定 時器,設(shè)置中途等待價格,當(dāng)大于lOmin時開始收費,啟動計價器開始計費。鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時候,單片機循環(huán) 主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。3結(jié)論近些年來,隨著單片機的發(fā)展,產(chǎn)品相當(dāng)?shù)姆倍?,單片微型機又 稱嵌入式控制器,是20世紀70年代中期發(fā)展起來的一種大規(guī)模的集 成電路器件。當(dāng)單片機的應(yīng)用不斷地深入,新技術(shù)的發(fā)展也是層出不窮的。這 是一項新型的工程技術(shù),其內(nèi)涵也是隨著單片機的發(fā)展而發(fā)展。單片機是屬于結(jié)構(gòu)相當(dāng)簡單,但也是單片機中的典型,應(yīng)用也相 當(dāng)?shù)撵`活。單片機產(chǎn)品發(fā)展迅速,在國內(nèi)

33、外占有重要的地位。出租車計價器從最初的只能進行簡單的價格計算,發(fā)展到價格、 距離獨立計量并顯示,可根據(jù)特殊情況設(shè)定相應(yīng)的收費標準,能打印 營運發(fā)票,可使用IC卡結(jié)算等的功能。目前市場上的計價器越來越趨向于集成有多種功能。根據(jù)客戶要 求,可增加射頻卡讀寫、電子貨幣使用管理、GPS定位車載通訊接口 等。相信將來出租車計價器的功能將會更全面。功能更全面,使用起 來更加方便。I開始圖2-1主程序流程圖圖22定時中斷服務(wù)程序參考文獻1PIC單片機基礎(chǔ)教程一丁躍軍等編著北航大學(xué)出版社1丁躍軍等.PIC 單片機基礎(chǔ)教程.北京大學(xué)出版社.2張俊謨,何立民.單片機中級教程M.北京.北京航天航空大學(xué)出版 社,20

34、00.6:24-263PIC單片機原理-李學(xué)海編著北航大學(xué)出版社4周航慈.單片應(yīng)用程序設(shè)計技術(shù).北京航空航天大學(xué)出版社,1990.5李學(xué)海.PIC單片機原理.北京大學(xué)出版社6張毅坤、陳善久、邱雪紅等.單片機微型計算機原理及應(yīng)用.2012年12月.7基于PROTEUS的電路及單片機系統(tǒng)設(shè)計與仿真一周潤景、張麗娜編 著北航大學(xué)出版社8周航慈、朱兆優(yōu)、李約忠等.智能儀器原理與設(shè)計.北京航空航天大學(xué)出版 社.2005年3月9凌陽大學(xué)計劃一出租車計費系統(tǒng)一電子文檔資料10PIC單片機C語言基礎(chǔ)教程致謝首先,在這里我要感謝我的指導(dǎo)師馬老師,非常感謝馬老師對本次 論文給出的寶貴意見,他給了我很多的幫助,沒有

35、他的指導(dǎo),我的畢業(yè) 設(shè)計不會這么順利完成。我還要感謝畢業(yè)設(shè)計一起做設(shè)計同學(xué)。沒有馬老師和同學(xué)的協(xié)助, 我這次設(shè)計也不會這樣順利。謝謝!附錄附錄I電路設(shè)計原理圖附錄II全部源程序該出租車計價器的系統(tǒng)軟件設(shè)計源程序如下:DAY_PRICEEQU 6FH;賦值NIGHT_PRICEEQU 6EHMIDWAY_PRICEEQU 6DHSTART_PRICEEQU 6CHCOUNTLEQU6BHCOUNTHEQU6AHMl00 EQU 69H ;外部中斷次數(shù)DISTANCE EQU 68H ;行車距離MS 100 EQU 67HSEC EQU 66HMIN EQU 65HHOUR EQU 64HLEDS

36、LEQU 63H ;時分鈔顯示緩沖區(qū)LEDSH EQU 62HLEDMLEQU61HLEDMH EQU 60HLEDHL EQU 5FHLEDHH EQU 5EHLEDDANJIAL EQU 5DH ;總額,單價顯示緩沖區(qū)LEDDANJIAH EQU 5CHLINE. EQU 5BHLEDCOUNT1 EQU5AHLEDCOUNT2 EQU 59HLEDCOUNT3 EQU 58HLEDDANJIA2L EQU 57H ;路程,單價顯示緩沖區(qū)LEDDANJIA2H EQU 56HLINE_ EQU 55HLINE EQU 54HLEDDISTANCEL EQU 53HLEDDISTANCEH

37、EQU 52HLEDDAY_PLEQU51H;中途,晚上,白天顯示緩沖區(qū)LEDDAY_PH EQU 50HLEDNIG.PL EQU 4FHLEDNIG_PH EQU 4EHLEDW_PL EQU 4DHLEDW_PH EQU 4CH51 BIT RC452 BIT RC553 BIT RC654 BIT RC7Sil EQU 4BHS22 EQU 4AHS33 EQU 49HS44 EQU 48HM1 EQU 47HH1 EQU 46HM2 EQU 45HH2 EQU 44HPRICE EQU 43HORG 0000HAJMPMAINORG 0003HAJMPTOORG OOOBHAJMPT

38、OTIMEORG 001BHAJMPTOSTARTORG 0030HMAIN: MOV SP,#70HMOV TMOD,#11HMOV THO, #3CHMOV TLO, #OBOHMOV TH1, #3CHMOV TL1,#OBOHMOV 22H, #OAHSETB EASETB TROSETB EXOSETB ITOSETB ETOSETB ET1MOV R7,#34MOV R0,#69HLOOPL:MOV RO,#ODEC RODJNZR7,LOOPLMOV COUNTL, #OOH ;起步價MOV COUNTH, #05HMOV DAY_PRICE,#25H ;白天價格初始化MOV N

39、IGHT_PRICE,#30H ;晩上價格初始化MOV MIDWAY.PRICE,# 10H ;中途等待初始化MOV START_PRICE, #50H ;起步價初始化MOVS11,#0MOV S22, #0MOV S33, #0MOV S44, #0MOV DISTANCE, #02HMOV HOUR,#12HKEY_MAIN: SETB TROACALL HMS_DISACALLT100MSDACALL T100MSDACALL T100MSDJBS1, KEY_MAINACALL T10MSDJBS1, KEY_MAINJNBS1,$SJMP WAI1WAkJBSLKlACALLT10M

40、SDJBS1,K1WAITkJNBSLWAITlMOV RO, #LEDDANJIALMOV R2, #6CLR AMOV COUNTL,AMOV COUNTH,AMOV Ml00, AMOV DISTANCEDBK1: MOV R0, ADEC RODJNZ R2, BK1MOV PRICE,DAY_PRICE;起動初始化MOV COUNTL, #00H;起步價MOV COUNTH, #05HLCALLCP_DIS;總金額和單價顯示KI: JB S2, K2ACALLT10MSDJB S2, K2WAIT2: JNB S2, WAIT2INC S22MOV A, S22CJNE A,#1,N

41、EXT1LCALL PA_DISUMP KEY_DJNEXT1:CJNE A, #2, NEXT2CLR TROLCALL HMS_DISUMP KEY_SJNEXT2:CJNE A, #3, K2MOV S22, #0K2: JB S3, K3ACALLT10MSDJB S3, K3WAIT3:JNB S3, WAIT3INC S33MOV A, S33CJNE A,#1,NXT1LCALL DP_DISNXT1:CJNE A, #2, NXT2CLRCMOV A, M2SUBB A, MlMOV Ml, AMOV A, H2SUBB A, HlMOV Hl, ANXT2: CJNE A,

42、#3, K3MOV S33, #0LCALL CP_DISK3: JB S4, BK_KEY_MAINACALLT10MSDJB S4. BK_KEY_MAINWAIT4:JNB S4, WAIT4INC S44MOV A, S44CJNE A,#1,NT1MOV PRICE,DAY_PRICELCALL CP_DISNT1:CJNE A, #2, NT2MOV PRICE,NIGHT_PRICELCALL CP_DISNT2:CJNE A, #3, NT3MOV PRICE,MIDWAY_PRICESETB TR1LCALL CP_DISNT3:CJNE A, #4. BK_KEY_MAIN

43、MOV S44, #0UMP KEY_MAINBK_KEY_MAIN: UMP WAIKEY_DJ:JBS1,KY1ACALLT10MSDJBS1,KY1WAIT5:JNBS1,WAIT5INC SilMOV A,S11CJNE A,#1,NEXT11UMP DAY_PNEXT11:CJNE A, #2,NEXT 12LCALL NIG_PNEXT12:CJNE A, #3, KYILCALL MID_PMOVS11,#0UMP KEY_MAINKY1:JB S2, KY2ACALLT10MSDJB S2, KY2WAIT6:JNB S2, WAIT6INC S22MOV A, S22CJNE

44、 A,#1,NEXT13LCALL PA_DISUMP KEY_DJNEXT13:CJNE A, #2, NEXT 14CLR TROLCALL HMS_DISLCALL KEY_SJNEXT14:CJNE A, #3, KY2MOV S22, #0UMP KEY_MAINKY2:AJMP KEY_DJKEY_SJ:JBS1,KEY1 ACALLT10MSD JBS1,KEY1WAIT7:JNBSLWAIT7INC SilMOV A, SilCJNE A,#1,NEXT21 LCALL HOU_TNEXT21:CJNE A, #2,NEXT22LCALL MIN_TNEXT22: CJNE A

45、, #3,KEY1MOVS11,#0LIMP KEY_MAINKEY1: JB S2, KEY2 ACALLT10MSD JB S2, KEY2WAIT8:JNB S2, WAIT8INC S22MOV A, S22CJNE A,#1,NEXT23 LCALL PA_DISUMP KEY_DJNEXT23:CJNE A, #2, NEXT24CLR TROLCALL HMS_DISNEXT24:CJNE A, #3, KEY2 MOV S22,#0LCALL KEY_SJUMP KEY_MAINKEY2:AJMP KEY_SJDAY_P:SETB FOLCALL T100MSDLCALL T1

46、00MSD#MOV LEDDAY_PL, #OAH MOV LEDDAY_PH, #OAH LCALL PA_DIS 1 LCALLT100MSDLCALL T100MSDLCALL PA_DISLP1: JB S3, KEY 11MOV A, #1ADD A, DAY_PRICEDA AMOV DAY_PRICE,AMOV A, DAY_PRICECJNE A, #99H, KEY 11MOV DAY_PRICE, #0KEY11: JB S4, KEY 12LCALL T10MSDJB S4, KEY 12MOV A,DAY_PRICEADD A, #99HDA AMOV DAY_PRIC

47、E,A CJNE A,#00H, KEY 12 MOV A, #99HKEY 12: JB Si. KEY13ACALLT10MSDJBS1,KEY13WAITH: JNB SI, WAITHINC SilMOV A, SilCJNE A,#l,NEXT31LCALL DAY_PNEXT31:CJNE A, #2,NEXT32LCALL NIG_PNEXT32:CJNE A, #3,NEXT33LCALL MID_PNEXT33:CJNE A, #4, KEY 13MOV Sil,#0KEY13:JB S2, KEY 14LCALL T10MSDJB S2, KEY 14WAIT12:JNB

48、S2, WAIT12UMP KEY_MAINKEY14:AJMP DAY_PNIG_P:SETB FO ;調(diào)用定時延時標志位LCALL T100MSDLCALL T100MSDMOV LEDNIG.PL, #0AHMOV LEDNIG.PH, #0AHLCALL PA_DIS 1LCALL T100MSDLCALL T100MSDLCALL PA_DISJB S3, KEY21LCALL T10MSDJB S3, KEY21MOV A, #1ADD A, NIGHT_PRICEDA AMOV NIGHT_PRICE,ACJNE A, #99H,KEY21MOV NIGHT_PRICE,#OKE

49、Y21:JB S4, KEY22LCALL T10MSDJB S4, KEY22MOV A, NIGHT_PRICEADD A, #99HDA AMOV NIGHT_PRICE,ACJNE A, #00H, KEY22 MOV NIGHT_PRICE,#99H KEY22:JBS1,KEY23ACALLT10MSD JBS1,KEY23WAIT15:JNBS1,WAIT15INC SilMOV A, SilCJNE A,#l,NEXT41LCALL DAY_PNEXT41:CJNE A, #2,NEXT42LCALL NIG_PNEXT42:CJNE A, #3,NEXT43LCALL MID

50、_PNEXT43:CJNE A, #4, KEY23MOVS11,#0UMP KEY_DJKEY23:JB S2, KEY24LCALL T10MSDJB S2, KEY24WAIT30:JNB S2, WAIT30UMP KEY_MAINKEY24: AJMP NIG_PMID_P: SETB FO ;調(diào)用定時延時標志位LCALL T100MSDMOV LEDW_PL, #OAHMOV LEDW_PH, #OAHLCALL PA_DIS 1LCALL T100MSDLCALL PA_DISJB S3, KEY31LCALL T10MSDJB S3, KEY31MOV A, MIDWAY_PR

51、ICEADD A,#lDA AMOV MIDWAY_PRICE,ACJNE A, #99H, KEY31MOV MIDWAY_PRICE, #00H CJNE A, #100, KEY31MOV MIDWAY.PRICE, #0KEY31: JB S4, KEY32LCALLT10MSDJB S4, KEY32MOV A, MIDWAY.PRICEADD A, #99HDA AMOV MIDWAY_PRICE,A CJNE A, #00H, KEY32MOV NIGHT_PRICE,#99HKEY32: JBSLKEY33ACALLT10MSDJBS1,KEY33WAIT18: JNBS1,

52、WAIT18INC SI 1MOV A,S11CJNE A,#l,NEXT51LCALL DAY_PNEXT51: CJNE A, #2,NEXT52LCALL NIG_PNEXT52: CJNE A, #3,NEXT53LCALL MID_PNEXT53: CJNE A, #4, KEY33MOVS11,#0UMP KEY_DJ2KEY33: JB S2, KEY34LCALLT10MSDJB S2, KEY34WAIT31:JNB S2, WAIT31UMP KEY_MAINKEY34: AJMP MID_PHOU_T: SETB FO ;調(diào)用定時延時標志位LCALLT1OOMSDLCALLT1OOMSDMOV LEDHL, #OAHMOV LEDHH, #OAHLCALL HMS_DIS 1渲接調(diào)用顯示,不經(jīng)過拆分程序LCALLT1OOMSDLCALLT1OOMSDMOV SEC, #0LCALL

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論