久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告(★)

時(shí)間:2019-05-14 03:33:17下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告》。

第一篇:基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告

河南理工大學(xué)

《單片機(jī)應(yīng)用與仿真訓(xùn)練》設(shè)計(jì)報(bào)告 出租車計(jì)價(jià)器設(shè)計(jì)

姓名學(xué)號(hào): 專業(yè)班級(jí): 指導(dǎo)老師: 所在學(xué)院: 2012年6月25日 摘要

本設(shè)計(jì)用直流電機(jī)轉(zhuǎn)動(dòng)模擬出租車車輪轉(zhuǎn)動(dòng),實(shí)現(xiàn)出租車多功能的計(jì)價(jià)功能。設(shè)計(jì)采用AT89S52單片機(jī)為主控芯片,用光電對(duì)管檢測(cè)電機(jī)轉(zhuǎn)盤轉(zhuǎn)速,采用24C02芯片為系統(tǒng)在掉電時(shí)路程、錢數(shù)等重要信息提供存儲(chǔ)保護(hù),采用兩個(gè)四位8段共陰數(shù)碼管顯示里程、總價(jià)格和等待時(shí)間等信息。本設(shè)計(jì)可以實(shí)現(xiàn)單雙程設(shè)置、系統(tǒng)暫停、空車指示、信息顯示、掉電保護(hù)等功能。

出租車計(jì)價(jià)是根據(jù)車所行駛的路程以及乘客乘車的方式綜合決定的。出租車行駛總路程可以通過車輪的周長(zhǎng)乘車輪旋轉(zhuǎn)圈數(shù)得到。即可計(jì)算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。使用光電對(duì)管能方便地計(jì)量車輪旋轉(zhuǎn)的圈數(shù),輸出的脈沖信號(hào)被接入到AT89S52單片機(jī)系統(tǒng)中,通過計(jì)算接收到的脈沖個(gè)數(shù),計(jì)算出當(dāng)前所行駛的路程,并且可以計(jì)算實(shí)時(shí)的速度。與此同時(shí),根據(jù)不同的收費(fèi)標(biāo)準(zhǔn)計(jì)算收費(fèi)。通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動(dòng)、暫停、停止計(jì)價(jià)器、設(shè)置單返程等。

關(guān)鍵字:出租車計(jì)價(jià)器,AT89S52,24C02,光電對(duì)管 Abstract This design with DC motor to rotate the analog taxi wheels turning, multi-purpose taxi pricing function.Design using AT89S52 MCU for master chip with a photoelectric tube test motor turntable speed, AT24C02 chip to make the system power-down distance, money and other important information on the storage protection, the use of two four-segment common cathode digital display tube mileage, the total price and waiting time information.This design enables single and double-way set, system halted, empty instructions, information display, power-down protection and other functions.The taxi meter according to the distance traveled by the vehicle and passengers ride the decision.Taxi driving the total distance by the circumference of the wheel drive wheel rotation laps.Can be calculated by the wheel rotation a few weeks a taxi to travel one kilometer away.The use of opto-the number of turns of the tube can be easily measured wheel rotation, the output pulse signal is connected to the microcontroller AT89S52 system, calculated by computing the number of pulses received, the current driving distance, and can calculate the real-time speed.At the same time, the charge will be calculated according to the different charges.Able to achieve a round trip via the keyboard settings, start, pause, stop the meter, set the single return.Key words: Meter,AT89S52,AT24C02,Photoelectric tube 目錄 1 概述 1 2 系統(tǒng)總體方案及硬件設(shè)計(jì) 2 2.1系統(tǒng)總體方案 2 2.2 硬件電路設(shè)計(jì)單元 2.2.1 電源電路單元 2 2.2.2 系統(tǒng)控制單元 3 2.2.3 驅(qū)動(dòng)電路單元 6 2.2.4 信號(hào)檢測(cè)單元 7 2.2.5 顯示單元 8 2.2.6 數(shù)據(jù)存儲(chǔ)單元 9 3 軟件設(shè)計(jì) 10 3.1 軟件設(shè)計(jì)流程圖 10 3.2 計(jì)算模塊 11 3.3 鍵盤掃描 11 3.4 顯示程序 11 3.5 PWM波的生成 11 3.6 速度檢測(cè) 12 3.7 程序源代碼 12 4 Proteus軟件仿真 13 5 課程設(shè)計(jì)體會(huì) 14 6 主要參考文獻(xiàn) 16 致謝 17 附1 程序源代碼 18 附2 系統(tǒng)原理圖 33 1 概述

出租車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志。它關(guān)系著交易雙方的利益,具有良好性能的計(jì)價(jià)器無論是對(duì)廣大出租車司機(jī)朋友還是乘客來說都是很必要的。因此,汽車計(jì)價(jià)器的研究也是十分有應(yīng)用價(jià)值和現(xiàn)實(shí)意義的。

出租車計(jì)價(jià)是根據(jù)車所行駛的路程以及乘客乘車的方式綜合決定的。出租車行駛總路程可以通過車輪的周長(zhǎng)乘車輪旋轉(zhuǎn)圈數(shù)得到。即可計(jì)算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。使用霍爾傳感器方便地計(jì)量車輪旋轉(zhuǎn)的圈數(shù)。輸出的脈沖信號(hào)被接入到AT89S52單片機(jī)系統(tǒng)中,通過計(jì)算接收到的脈沖個(gè)數(shù),計(jì)算出當(dāng)前所行駛的路程,并且可以計(jì)算實(shí)時(shí)的速度,在速度低于5公里每小時(shí)是進(jìn)入等待計(jì)費(fèi)。于此同時(shí),根據(jù)不同的收費(fèi)標(biāo)準(zhǔn),通過選擇相應(yīng)的起步價(jià)、單價(jià)等收費(fèi)標(biāo)準(zhǔn)進(jìn)行計(jì)算。通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動(dòng)、暫停、停止計(jì)價(jià)器以及切換顯示當(dāng)前的行駛里程和需支付的車費(fèi)。

本設(shè)計(jì)硬件電路分為六個(gè)單元:電源電路單元,系統(tǒng)控制單元,驅(qū)動(dòng)電路單元,信號(hào)檢測(cè)單元,顯示單元和數(shù)據(jù)存儲(chǔ)單元。軟件系統(tǒng)分為五個(gè)大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與定時(shí)模塊,數(shù)據(jù)計(jì)算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號(hào)接收與等待記時(shí)采用中斷方式。這些軟硬件系統(tǒng)構(gòu)成了最終的設(shè)計(jì)。系統(tǒng)總體方案及硬件設(shè)計(jì) 2.1系統(tǒng)總體方案 本設(shè)計(jì)以AT89S52單片機(jī)為中央控制芯片,通過按鍵控制實(shí)現(xiàn)計(jì)價(jià)器的啟動(dòng)、停止、暫停、等待時(shí)間顯示、單返程等功能;因?yàn)閱纹瑱C(jī)的I/O無法直接驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),所以通過L298N為驅(qū)動(dòng)芯片驅(qū)動(dòng)電路來驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng);通過光電對(duì)管檢測(cè)直流電機(jī)的轉(zhuǎn)速,并利用電壓比較器將整理后的信號(hào)送給給單片機(jī);通過數(shù)碼管來顯示里程、總價(jià)格、等待時(shí)間等信息;通過AT24C02來存儲(chǔ)信息,防止系統(tǒng)掉電信息丟失。系統(tǒng)設(shè)計(jì)總框圖,如圖2.1所示。

圖2.1系統(tǒng)設(shè)計(jì)總框圖 2.2 硬件電路設(shè)計(jì)單元

本設(shè)計(jì)硬件電路分為六個(gè)單元:電源電路單元,系統(tǒng)控制單元,驅(qū)動(dòng)電路單元,信號(hào)檢測(cè)單元,顯示單元和數(shù)據(jù)存儲(chǔ)單元。

2.2.1 電源電路單元

電源是由7805芯片,變壓器和整流橋組成的一個(gè)5V穩(wěn)壓電源。變壓器將220V交流電轉(zhuǎn)變?yōu)?2V交流電,經(jīng)過整流橋和濾波電容后變?yōu)橹绷?經(jīng)過7805芯片后輸出5V穩(wěn)壓電源。電源電路原理圖,如圖2.2所示。

圖2.2電源電路原理圖 2.2.2 系統(tǒng)控制單元

系統(tǒng)控制單元主要有單片機(jī)最小系統(tǒng)和獨(dú)立按鍵組成。2.2.2.1 單片機(jī)最小系統(tǒng)

單片機(jī)采用了Atmel 公司生產(chǎn)的 AT89S52單片機(jī),它含有256 字節(jié)數(shù)據(jù)存儲(chǔ)器,內(nèi)置8K 的電可擦除FLASH ROM,可重復(fù)編程,大小滿足主控機(jī)軟件系統(tǒng)設(shè)計(jì)。

AT89S52芯片的主要引腳功能分別為: VCC 電源電壓。GND 接地。

RST 復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),將使單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISKRTO位缺省為RESET輸出高電平打開狀態(tài)。

ALE/PROG: 當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。

XTAL1 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2 來自反向振蕩放大器的輸出。

P0口:一組8位漏極開路型雙向I/O口。也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。

P1口:一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。

P2口:一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口線上的內(nèi)容在整個(gè)訪問期間不改變。Flash編程和程序校驗(yàn)期間,P2亦接收低8位地址。

P3口:一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。P3的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫“1”時(shí),它們被內(nèi)部的上拉電阻把拉到高電并可作輸入端口。作輸入端口使用時(shí),被外部拉低的P3口將用上拉電阻輸出電流。P3口除了作為一般的I/O口線外,還作特殊功能口。P3口的第二功能引腳分配如下:

P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計(jì)時(shí)計(jì)數(shù)器0輸入。P3.5:T1,計(jì)時(shí)計(jì)數(shù)器1輸入。P3.6:WR:外部數(shù)據(jù)存儲(chǔ)器的寫入信號(hào)。P3.7:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。單片機(jī)最小系統(tǒng)原理圖,如圖2.3所示。圖2.3 單片機(jī)最小系統(tǒng)原理圖 2.2.2.2 獨(dú)立按鍵

本設(shè)計(jì)按照功能要求設(shè)置了六個(gè)按鍵。按鍵接線圖,如圖2.4所示。按鍵功能分別為:

key0:系統(tǒng)啟動(dòng),用來啟動(dòng)計(jì)價(jià)器,使計(jì)價(jià)器開始工作; key1:系統(tǒng)停止/復(fù)位,用來關(guān)閉計(jì)價(jià)器,是計(jì)價(jià)器停止工作并復(fù)位;

key2:?jiǎn)纬屉p程,用來設(shè)置是單程計(jì)費(fèi)還是往返計(jì)費(fèi);

key3:系統(tǒng)暫停,用來將整個(gè)計(jì)費(fèi)系統(tǒng)暫停; key4:等待時(shí)間顯示,當(dāng)按下不放時(shí) 圖2.4按鍵接線圖

數(shù)碼管為顯示等待的時(shí)間。

Key5:調(diào)速按鈕,用來調(diào)整電機(jī)的轉(zhuǎn)速,使測(cè)試時(shí)可控制電機(jī)轉(zhuǎn)速。2.2.3 驅(qū)動(dòng)電路單元

LM298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)的專用驅(qū)動(dòng)器,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A一下的電機(jī)。LM298N的管腳圖,如圖2.5所示。通過單片機(jī)的I/O輸入改變芯片控制端的電平,即可以對(duì)電機(jī)進(jìn)行正反轉(zhuǎn),停止的操作,LM298N的邏輯功能表,如圖2.6所示。

圖2.5 LM298N的管腳圖 圖2.6 LM298N的邏輯功能表

LM298N有兩路電源分別為邏輯電源和動(dòng)力電源,圖中6V為邏輯電源,12V為動(dòng)力電源。J4接入邏輯電源,J6接入動(dòng)力電源,J1與J2分別為單片機(jī)控制兩個(gè)電機(jī)的輸入端,J3與J5分別與兩個(gè)電極的正負(fù)極相連。ENA與ENB直接接入AVR單片機(jī)的PWM輸出口;控制電機(jī)的正反轉(zhuǎn)通過J1與J2兩個(gè)接口,控制電機(jī)的轉(zhuǎn)速的通過ENA和ENB的口輸入的PWM波的占空比。由于我們使用的電機(jī)是線圈式的,在從運(yùn)行狀態(tài)突然轉(zhuǎn)換到停止?fàn)顟B(tài)和從順時(shí)針狀態(tài)突然轉(zhuǎn)換到逆時(shí)針狀態(tài)時(shí)會(huì)形成很大的反向電流,在電路中加入二極管的作用就是在產(chǎn)生反向電流的時(shí)候進(jìn)行泄流,保護(hù)芯片的安全。LM298N電機(jī)驅(qū)動(dòng)原理圖,如圖2.7所示。

圖2.7 LM298N電機(jī)驅(qū)動(dòng)原理圖 2.2.4 信號(hào)檢測(cè)單元

電機(jī)轉(zhuǎn)速的檢測(cè)模塊是由對(duì)射式光電傳感器及其配套電路組成的,對(duì)射式光電傳感器原理圖,如圖2.8所示。

對(duì)射式光電傳感器由紅外發(fā)光二極管與光敏三極管組成,主要檢測(cè)發(fā)射管與接收管之間有無物體存在。如上圖所示,當(dāng)發(fā)射管與接收管之間沒有物體存在時(shí),光敏三極管接收到紅外光后導(dǎo)通,out輸出低電平;當(dāng)發(fā)射管與接收管之間有物體存在時(shí),光敏三極管無法接收到足夠的強(qiáng)的紅外光所以截止,out輸出高電平。

但是上述電路存在缺陷,當(dāng)直流電機(jī)高速旋轉(zhuǎn)時(shí),out輸出的信號(hào)就容易失真,很難被單片機(jī)檢測(cè)識(shí)別。為了能夠讓單片機(jī)準(zhǔn)確識(shí)別光電傳感器輸出地信號(hào),需在傳感器的輸出端連接一個(gè)比較器。

電壓比較器可以看作是放大倍數(shù)接近“無窮大”的運(yùn)算放大器。電壓比較器的功能:比較兩個(gè)電壓的大小 用輸出電壓的高或低電平,表示兩個(gè)輸入電壓的大小關(guān)系 :當(dāng)”+”輸入端電壓高于”-”輸入端時(shí),電壓比較器輸出為高電平;當(dāng)”+”輸入端電壓低于”-”輸入端時(shí),電壓比較器輸出為低電平。LM393是雙電壓比較器集成電路

圖2.8對(duì)射式光電傳感器原理圖 圖2.9 LM393引腳圖

速度檢測(cè)電路原理圖,如圖2.10所示。由原理圖可知, 當(dāng)發(fā)射管與接收管之間沒有物體存在時(shí),光敏三極管接收到紅外光后導(dǎo)通,out輸出高電平;當(dāng)發(fā)射管與接收管之間有物體存在時(shí),光敏三極管無法接收到足夠的強(qiáng)的紅外光所以截止,out輸出低電平。經(jīng)過整理后的電路能輸出比較標(biāo)準(zhǔn)的高低電平信號(hào),很容易被單片機(jī)識(shí)別。圖2.10 速度檢測(cè)電路原理圖 2.2.5 顯示單元 2.2.5.1 數(shù)碼管顯示

顯示單元采用兩個(gè)四位8段數(shù)碼管顯示信息,一組顯示金額,另一組顯示路程配合按鍵來切換顯示。用鎖存器來驅(qū)動(dòng)數(shù)碼管顯示,數(shù)據(jù)位連接單片機(jī)P0口,片選端和段選端分別用單片機(jī)的P2.6和P2.7端口。如圖2.11所示為數(shù)碼管顯示接線圖。

圖2.11 數(shù)碼管顯示接線圖 2.2.5.1 LED指示燈

本設(shè)計(jì)按照功能要求設(shè)置了五個(gè)LED燈。接線圖如圖2.12所示。各個(gè)LED燈的功能分別為:

DS0:等待指示燈,車速小于5Km/h時(shí)指示燈亮; DS1:暫停指示燈,當(dāng)暫停鍵按下,計(jì)價(jià)器暫停計(jì)價(jià)時(shí)亮; DS2:空車指示,當(dāng)計(jì)價(jià)器停止工作也就是空車時(shí),此指示燈亮; DS3:?jiǎn)?dòng)指示燈,當(dāng)按下啟動(dòng)鍵,計(jì)價(jià)器開始計(jì)價(jià)時(shí)亮; DS4:?jiǎn)坞p程指示燈,默認(rèn)為單程,當(dāng)選 圖2.12 LED指示燈接線圖

擇雙程時(shí)亮。2.2.6 數(shù)據(jù)存儲(chǔ)單元

本設(shè)計(jì)使用了24C02作為外部存儲(chǔ)芯片。24C02是串行2K的EEPROM,是基于I2C-BUS 的存儲(chǔ)器件,遵循二線制協(xié)議,具有接口方便,體積小,數(shù)據(jù)掉電不丟失等特點(diǎn)。計(jì)價(jià)器能將里程和總價(jià)格實(shí)時(shí)的存儲(chǔ)到24C02中,當(dāng)計(jì)價(jià)器因掉電停止工作,24C02會(huì)存儲(chǔ)掉電前一刻的數(shù)據(jù),使系統(tǒng)從新上電時(shí)能夠恢復(fù)里程和總價(jià)格。當(dāng)計(jì)價(jià)器是被手動(dòng)正常停止時(shí),將會(huì)對(duì)24C02相應(yīng)的地址寫0,以使下次啟動(dòng)時(shí),計(jì)價(jià)器從初始化數(shù)據(jù)開始計(jì)價(jià)。24C02的接線圖,如圖2.13所示。

圖2.13 24C02的接線圖 3 軟件設(shè)計(jì) 3.1 軟件設(shè)計(jì)流程圖

軟件系統(tǒng)可以大致分為幾個(gè)大的模塊為:初始化模塊,按鍵掃描模塊,中斷與定時(shí)模塊,數(shù)據(jù)計(jì)算模塊,數(shù)碼管顯示模塊,IIC總線通信模塊等。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號(hào)接收采用中斷方式。軟件設(shè)計(jì)流程圖,如圖3.1所示。

圖3.1 軟件設(shè)計(jì)流程圖 3.2 計(jì)算模塊

計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:總金額 起步價(jià)+(里程-3)*單價(jià)+等待時(shí)間*等待單價(jià);否則,執(zhí)行公式:總金額 起步價(jià)+等待時(shí)間*等待單價(jià)。

對(duì)于速度的判斷及等待時(shí)間的記錄采用定時(shí)器零中斷,設(shè)定10ms一個(gè)中斷,然后判斷車速,小于5公里/小時(shí)時(shí),則開始記錄等待時(shí)間。

3.3 鍵盤掃描

鍵盤掃描才用查詢方式,當(dāng)有按鍵按下時(shí)就對(duì)相應(yīng)的標(biāo)志進(jìn)行取反,或調(diào)用其他子函數(shù),在消抖過程中,這里將數(shù)碼管顯示程序潛入以保證顯示的穩(wěn)定。

3.4 顯示程序

顯示程序利用主函數(shù)內(nèi)的循環(huán),實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,同時(shí)根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,即可實(shí)現(xiàn)顯示

3.5 PWM波的生成

在AT89系列單片機(jī)中,由于沒有PWM控制器,要輸出PWM信號(hào)就需通過軟件的方式在I/O口上模擬PWM的輸出。PWM軟件設(shè)計(jì)一般可以利用軟件延時(shí)的方式或利用單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器作為時(shí)鐘信號(hào)。

本設(shè)計(jì)是利用軟件延時(shí)獲得PWM信號(hào)的,在軟件中設(shè)計(jì)一個(gè)基準(zhǔn)的軟件延時(shí)程序,通過反復(fù)調(diào)用這個(gè)延時(shí)程序,從而獲得不同的時(shí)間長(zhǎng)度,為了電機(jī)速度穩(wěn)定,我們選擇使用同周期,不同占空比的PWM進(jìn)行調(diào)速。

若頻率為1kHZ,則每個(gè)方波的周期為1ms,占空比從0變化到100%,最小的變化量為10%,即高電平維持時(shí)間的最小值是100us,所以只要設(shè)計(jì)出100us的延時(shí)程序作為基準(zhǔn)即可。具體程序如下: #define uchar unsigned char sbit PWM P3^4;//定義PWM輸出口為P3.4 void PWMout uchar q //生成同周期的PWM波

PWM 1;delay q;PWM 0;delay 10-q;

void delay uchar a //100us延時(shí)函數(shù)

uchar b;for;a 0;a--

for b 29;b 0;b--

_nop_;

_nop_;

3.6 速度檢測(cè)

經(jīng)檢測(cè)模塊得到的信號(hào)輸入到單片機(jī)內(nèi),因?yàn)檩斎氲氖堑碗娖叫盘?hào),所以我把信號(hào)輸入到了中斷0端口,每接收一個(gè)低電平信號(hào)程序就會(huì)進(jìn)入中斷函數(shù)里面,中斷0函數(shù)如下: void int0 interrupt 0

sudu++;

這樣就完成了速度測(cè)量。3.7 程序源代碼 程序源代碼見附錄2。4 Proteus軟件仿真

將整個(gè)系統(tǒng)原理圖在Proteus連接好后,下載如編寫好的程序仿真如下:如圖4.1顯示的狀態(tài)設(shè)置為:單程,車速大于5km/h,當(dāng)路程等于40.4km時(shí)的顯示情況。

圖4.1 Proteus軟件仿真圖 5 課程設(shè)計(jì)體會(huì)

本次單片機(jī)課程設(shè)計(jì),我們選的題目是出租車計(jì)價(jià)器的設(shè)計(jì)。通過仿真、焊接、調(diào)試等不斷的努力,我們的出租車計(jì)價(jià)器實(shí)現(xiàn)了基本要求的全部功能和發(fā)揮部分的部分功能。比如能顯示里程、金額數(shù)、總等待時(shí)間,可設(shè)定單程價(jià)格和雙程價(jià)格,按暫停鍵,計(jì)價(jià)器可暫停計(jì)價(jià),按查詢鍵,可顯示總等待時(shí)間,空車指示、信息存儲(chǔ)等。

經(jīng)過這些天有關(guān)于出租車計(jì)價(jià)器的課程設(shè)計(jì),使我們對(duì)MCS-51系列單片機(jī)的應(yīng)用有了更深的了解。從前的學(xué)習(xí)過程過于浮淺,只是流于表面的理解,而現(xiàn)在要做課程設(shè)計(jì),就不得不要求我們對(duì)所用到的知識(shí)有更深層次的理解。因?yàn)檎n程設(shè)計(jì)的內(nèi)容比及書本中的理論知識(shí)而言,更接近于現(xiàn)實(shí)生活,而理論到實(shí)踐的轉(zhuǎn)化往往是一個(gè)艱難的過程,它猶如一只攔路虎,橫更在我們的面前。但是我們毫不畏懼,因?yàn)槲覀兿嘈盼覀兡苄小?/p>

事情并不總是一帆風(fēng)順的,我們總會(huì)遇到困難和險(xiǎn)阻。在此次課程設(shè)計(jì)的過程中,我們碰到了許多的問題。比如,對(duì)于數(shù)碼管動(dòng)態(tài)掃描顯示和鍵盤的延時(shí)防抖的綜合編程不能較好地解決;對(duì)于代碼的前后順序及調(diào)用掌握得還不夠好;對(duì)于一些相關(guān)的應(yīng)用軟件 KEIL、PROTEUS、Altium esigner 沒能熟練掌握。當(dāng)然,問題并不可怕,只要我們懷著一顆不服輸?shù)男模峦鼻埃敲磩倮麑⒉粫?huì)離我們太遠(yuǎn)。通過上網(wǎng)查找資料、與同學(xué)老師交流、小組成員間的討論、不斷實(shí)踐與探索,我們總能找到解決問題的方法,最后得到良好的效果。

通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。

總之,本次課程設(shè)計(jì)讓我們更加深刻的掌握了MCS-51系列單片機(jī)的工作原理和編程語(yǔ)言,更加熟練的掌握了KEIL、PROTEUS、Altium designer等專業(yè)軟件的使用,熟悉了產(chǎn)品開發(fā)的大致流程,深刻的體會(huì)到了團(tuán)隊(duì)協(xié)作精神的重要性,培養(yǎng)了我們發(fā)現(xiàn)問題、獨(dú)立思考問題、多種途徑解決問題的能力,鍛煉并提高了了我們的動(dòng)手實(shí)踐能力和理論與實(shí)踐相結(jié)合的能力。

我以后做一個(gè)動(dòng)手能力強(qiáng)的大學(xué)生。http://www.tmdps.cn.致謝

在課程設(shè)計(jì)即將完成之際,我想向給予我?guī)椭椭С值娜吮硎局孕牡母兄x!感謝高老師和王老師給我們提供這次難得的課程設(shè)計(jì)機(jī)會(huì),讓我們有機(jī)會(huì)把理論

得以應(yīng)用到實(shí)踐上。

感謝我們的指導(dǎo)老師王莉,課程設(shè)計(jì)是在老師的親切關(guān)懷和悉心指導(dǎo)下完成的。嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想、上給我以無微不至的關(guān)懷,在此謹(jǐn)向老師致以誠(chéng)摯的謝意和崇高的敬意。我還要感謝在一起愉快的度過的同學(xué)們,正是由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直至本文的順利完成。最后,再次對(duì)關(guān)心、幫助我的老師和同學(xué)表示衷心地感謝!#include

//頭文件

#include

#include

//IIC總線通信 #include

//數(shù)碼管顯示 #define uint unsigned int

#define uchar unsigned char sbit key0 P1^0;//啟動(dòng) sbit key1 P1^1;//停止 sbit key2 P1^2;//單返程 sbit key3 P1^3;//暫停 sbit key4 P1^4;//顯示等待時(shí)間 sbit key5 P1^5;//調(diào)速 sbit led0 P2^2;//暫停指示燈 sbit led1 P2^3;//空車指示燈 sbit led2 P2^4;//啟動(dòng)指示燈 sbit led3 P2^5;//雙程指示燈 sbit led4 P2^1;//等待指示燈 sbit PWM P3^4;//PWM輸出口

uchar sudu,sudu0,shi,fen,miao,shi0 12,fen0 30,miao0;uchar danfanflag 0,flag 0,speedflag 1,stopflag 0;uint licheng 0,maichong,r 0,money 0;uint t,t1,t2;uchar num1,num2,num3,num4,lichenga,lichengb,moneya,moneyb;long licheng0;void init0;//系統(tǒng)初始化函數(shù) void delay uint a;//延時(shí)函數(shù) void PWMout uchar q;//PWM產(chǎn)生函數(shù) void anjian;//按鍵掃描函數(shù) void jisuan;//路程、價(jià)錢計(jì)算函數(shù) void chuli;void main

num1 read_add 25;num2 read_add 26;delay 5;licheng num1*100+num2;licheng0 150*licheng-300*fen;init0;while 1

anjian;chuli;lichenga licheng/100;lichengb licheng%100;

write_add 25,lichenga;delay 5;write_add 26,lichengb;

void init0

TH0 0x3c;TL0 0xb0;EA 1;

//初始化

TMOD 0x01;EX0 0;IT0 1;ET0 1;TR0 1;P0 0xff;P1 0xff;P2 0xff;P3 0xfe;

void chuli

if speedflag 1 PWMout 12;else if speedflag 2 PWMout 20;else PWMout 6;if flag 1 led2 0;

led3 1;jisuan;

if key4 0

display0 shi,fen,miao;

else

display licheng,money;

if flag 2

led2 0;led3 1;display 1,2;

if flag 0

display0 shi0,fen0,miao0;led3 0;led2 1;

if danfanflag 1 led1 0;if danfanflag 0 led1 1;if stopflag 1

led0 0;

else led0 1;

void jisuan

r maichong;licheng0+ r;licheng licheng0/150+ fen/5 *10;sudu0+ r;maichong 0;if t2 10

t2 0;

sudu sudu0;

sudu0 0;

if licheng 30

money 50;else

if danfanflag 1

money 50+1.5* licheng-30;

else

money 50+2* licheng-30;

void anjian

if key0 0

EX0 1;

flag 1;

stopflag 0;

if key1 0 EX0 0;maichong 0;

licheng0 0;licheng 0;flag 0;

shi 0;

fen 0;

miao 0;write_add 25,0;delay 5;write_add 26,0;

if key2 0

delay 5;

if key2 0

if flag 1

danfanflag++;

if danfanflag 2

danfanflag 0;

while!key2;delay 5;while!key2;

if key3 0

if flag 1

EX0 0;

stopflag 1;

if key5 0

delay 5;

if key5 0

speedflag++;

if speedflag 3

speedflag 0;

while!key5;delay 5;while!key5;

void int0 interrupt 0 數(shù)

maichong++;

void timer0 interrupt 1

TH0 0x3c;TL0 0xb0;t++;t1++;t2++;if t1 20

t1 0;

miao0++;

//檢測(cè)與計(jì)定時(shí)器50ms

//

if miao0 60

miao0 0;

fen0++;

if fen0 60

fen0 0;

shi0++;

if shi0 24

shi0 0;

if sudu 50&&flag 1&&stopflag 0 led4 0;if t 20

t 0;

miao++;

if miao 60

miao 0;

fen++;

if fen 60

fen 0;

shi++;

if shi 24

shi 0;

else led4 1;

void PWMout uchar q

PWM 1;delay q;

//生成PWM波

PWM 0;delay 20-q;

IIC.h IIC通信

#define uint unsigned int

#define uchar unsigned char sbit sda P1^6;sbit scl P1^7;void delay0;;void start

sda 1;delay0;scl 1;delay0;sda 0;delay0;

void stop

sda 0;delay0;scl 1;delay0;sda 1;delay0;

void respons

uchar i;scl 1;delay0;while sda 1 && i 250 i++;scl 0;delay0;

void init

sda 1;scl 1;

void write_byte uchar date uchar i,temp;temp date;scl 0;delay0;for i 0;i 8;i++

temp temp 1;

sda CY;

delay0;

scl 1;

delay0;

scl 0;

delay0;

sda 1;

delay0;

uchar read_byte

uchar i,j,k;scl 0;delay0;sda 1;delay0;for i 0;i 8;i++

scl 1;

delay0;

j sda;

k k 1 |j;

scl 0;

delay0;

return k;

void write_add uchar address,uchar date

start;write_byte 0xa0;//器件地址;

respons;write_byte address;//存儲(chǔ)器地址;

respons;write_byte date;//寫數(shù)據(jù)

respons;stop;

uchar read_add uchar address

uchar date;start;write_byte 0xa0;respons;write_byte address;respons;start;write_byte 0xa1;respons;date read_byte;stop;return date;

display.h 數(shù)碼管顯示#define uint unsigned int

#define uchar unsigned char sbit dula P2^7;//端口

定義段選

sbit wela P2^6;//定義位選端口

uchar code table[]

//數(shù)碼管編碼 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;void delay uint c

//延時(shí)100us

uint a,b;for a c;a 0;a--for b 40;b 0;b--;

void display uint shu,uint shu1 //顯示函數(shù)

uchar qian,bai,shi,ge,qian1,bai1,shi1,ge1;qian shu/1000;bai shu/100%10;shi shu%100/10;ge shu%10;qian1 shu1/1000;bai1 shu1/100%10;shi1 shu1%100/10;ge1 shu1%10;dula 1;P0 table[qian];dula 0;wela 1;P0 0xfe;wela 0;delay 2;dula 1;P0 table[bai];dula 0;wela 1;P0 0xfd;wela 0;delay 2;dula 1;P0 table[shi]|0x80;dula 0;wela 1;P0 0xfb;wela 0;delay 2;dula 1;P0 table[ge];dula 0;wela 1;P0 0xf7;wela 0;delay 2;dula 1;P0 table[qian1];dula 0;wela 1;P0 0xef;wela 0;delay 2;dula 1;P0 table[bai1];dula 0;wela 1;P0 0xdf;wela 0;delay 2;dula 1;P0 table[shi1]|0x80;dula 0;wela 1;P0 0xbf;wela 0;delay 2;dula 1;P0 table[ge1];dula 0;wela 1;P0 0x7f;wela 0;delay 2;

void display0 uchar shi,uchar fen,uchar miao 示時(shí)間函數(shù)

uchar aa,bb,cc,dd,ee,ff;aa shi/10;bb shi%10;cc fen/10;

顯 // dd fen%10;ee miao/10;ff miao%10;dula 1;P0 table[aa];dula 0;wela 1;P0 0xfe;wela 0;delay 4;dula 1;P0 table[bb]|0x80;dula 0;wela 1;P0 0xfd;wela 0;delay 4;dula 1;P0 table[cc];dula 0;wela 1;P0 0xfb;wela 0;delay 3;dula 1;P0 table[dd]|0x80;dula 0;wela 1;P0 0xf7;wela 0;delay 4;dula 1;P0 table[ee];dula 0;wela 1;P0 0xef;wela 0;delay 4;dula 1;P0 table[ff];dula 0;wela 1;P0 0xdf;wela 0;delay 4;

附2 系統(tǒng)原理圖

河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告按 鍵

AT89S52單片機(jī) L298N驅(qū)動(dòng) 數(shù)碼管顯示 信號(hào)檢測(cè) 24C02 指示燈 直 流 電 機(jī) 開始 初始化 按鍵掃描 是否啟動(dòng) 結(jié)束 是否暫停

速度是否小于5Km/h 是 否

1.5元/公里 2元/公里 數(shù)碼管顯示 是否雙程 暫停計(jì)價(jià) 是 是 否

每5分鐘加1公里 是 否 查詢 處理計(jì)算

第二篇:?jiǎn)纹瑱C(jī)出租車計(jì)價(jià)器源程序

出租車計(jì)價(jià)器設(shè)計(jì)與制作

設(shè)計(jì)并制作一臺(tái)出租車計(jì)價(jià)器。調(diào)試時(shí)采用10Hz方波信號(hào)模擬,每個(gè)方波代表10m。基本要求:

(1)不同情況具有不同的收費(fèi)標(biāo)準(zhǔn)

白天 1元/公里 晚上 2元/ 公里 途中等待(30s)1元/30s

(2)數(shù)據(jù)輸出(6位LED數(shù)碼管顯示)

單價(jià)輸出2位 路途輸出2位 總金額輸出2位

(3)按鍵(3個(gè))

啟動(dòng)計(jì)價(jià)開關(guān) 數(shù)據(jù)復(fù)位(清零)白天/晚上轉(zhuǎn)換

3.4.1模塊1:系統(tǒng)設(shè)計(jì)

(1)分析任務(wù)要求,寫出系統(tǒng)整體設(shè)計(jì)思路

通過分析,需要實(shí)現(xiàn)四個(gè)主要的功能模塊,分別為脈沖計(jì)數(shù)模塊、定時(shí)器計(jì)時(shí)模塊、按鍵的處理以及

數(shù)碼管動(dòng)態(tài)掃描等功能。

定時(shí)器計(jì)時(shí)模塊主要完成途中等待(即沒有脈沖來時(shí))30秒的計(jì)時(shí)。在啟動(dòng)鍵按下后,定時(shí)器就不停的計(jì)時(shí),只要有脈沖來就將計(jì)時(shí)的值清除為零。如果沒有脈沖來,當(dāng)計(jì)時(shí)超過30秒時(shí),相應(yīng)的總金額要

按照收費(fèi)標(biāo)準(zhǔn)計(jì)價(jià)。

中斷的管理:盡管中斷有嵌套以及優(yōu)先級(jí)的功能,但是由于定時(shí)器已經(jīng)使用一個(gè)了中斷資源,脈沖檢測(cè)不宜再采用中斷方式,而是采用查詢方式。由于需要不停的要清除30秒的計(jì)時(shí),因此,脈沖的計(jì)數(shù)不

采用定時(shí)器的計(jì)數(shù)方式。

啟動(dòng)鍵觸發(fā)定時(shí)器開始工作,而定時(shí)器的運(yùn)行可以作為脈沖計(jì)數(shù)的標(biāo)志,只要定時(shí)器計(jì)時(shí)在運(yùn)行,每來一個(gè)中斷都應(yīng)該計(jì)數(shù)。

主程序完成鍵盤的掃描和按鍵的處理,查詢脈沖產(chǎn)生的中斷,并完成脈沖的計(jì)數(shù)。每個(gè)脈沖代表10米,則當(dāng)計(jì)數(shù)到100時(shí)表示1千米的距離,相應(yīng)的總金額要按照收費(fèi)標(biāo)準(zhǔn)計(jì)價(jià)

(2)選擇單片機(jī)型號(hào)和所需外圍器件型號(hào),設(shè)計(jì)單片機(jī)硬件電路原理圖

采用MCS51系列單片機(jī)At89S51作為主控制器,外圍電路器件包括數(shù)碼管驅(qū)動(dòng)、獨(dú)立式鍵盤、復(fù)位電

路等。硬件電路原理圖如圖3-9所示。

圖3-11 出租車計(jì)價(jià)器的硬件電路原理圖

數(shù)碼管驅(qū)動(dòng)采用2個(gè)四聯(lián)共陰極數(shù)碼管顯示,由于單片機(jī)驅(qū)動(dòng)能力有限,采用74HC244作為數(shù)碼管的驅(qū)動(dòng)。在74HC244的7段碼輸出線上串聯(lián)100歐姆電阻起限流作用。

獨(dú)立式按鍵使用上提拉電路連接,在沒有鍵按下時(shí),輸出高電平。P0口用于輸出7段LED共陰極顯示代碼,P2口用于輸出低電平有效的位選碼。0~9的7段LED共陰極顯示代碼:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。

(3)分析軟件任務(wù)要求,寫出程序設(shè)計(jì)思路,分配單片機(jī)內(nèi)部資源,畫出程序流程圖

軟件的任務(wù)要求包括定時(shí)器的設(shè)置、按鍵的掃描、按鍵的功能處理、脈沖的計(jì)數(shù)、路途等待超30秒的計(jì)

時(shí)以及總金額的計(jì)算等。

程序設(shè)計(jì)的思路:使用中斷方式對(duì)定時(shí)器的溢出進(jìn)行計(jì)數(shù)實(shí)現(xiàn)30秒的計(jì)時(shí)。主程序采用查詢外部中斷標(biāo)志實(shí)現(xiàn)脈沖的計(jì)數(shù),由于每個(gè)脈沖代表10m,因此,當(dāng)脈沖計(jì)數(shù)超過100時(shí),計(jì)價(jià)器按照收費(fèi)標(biāo)準(zhǔn)計(jì)價(jià)。主程序在初始化變量和定時(shí)器參數(shù)設(shè)置之后,進(jìn)入一個(gè)循環(huán)結(jié)構(gòu),循環(huán)掃描鍵盤、查詢脈沖的中斷、數(shù)碼管的動(dòng)態(tài)掃描等功能,當(dāng)脈沖的中斷標(biāo)志被查詢到,若路途等待時(shí)間未超30秒時(shí),要及時(shí)將路途等待時(shí)間的值清除為零。主程序的流程圖如圖3-12所示。

圖3-12 出租車計(jì)價(jià)器的主程序流程圖

中斷服務(wù)程序主要實(shí)現(xiàn)計(jì)時(shí)功能,當(dāng)啟動(dòng)鍵按下之后,定時(shí)器開始工作,用一個(gè)變量對(duì)定時(shí)器溢出中斷的次數(shù)進(jìn)行計(jì)數(shù),達(dá)到計(jì)時(shí)功能,該變量在每次脈沖到來時(shí)被清零(在主程序中清零),當(dāng)脈沖長(zhǎng)時(shí)間沒有來,則當(dāng)該變量計(jì)數(shù)超過30秒時(shí),總金額按照途中等待計(jì)費(fèi)標(biāo)準(zhǔn)進(jìn)行計(jì)價(jià)。中斷程序的流程圖如圖

3-13所示。

圖3-13 出租車計(jì)價(jià)器的中斷服務(wù)程序流程圖

(4)設(shè)計(jì)系統(tǒng)軟件調(diào)試方案、硬件調(diào)試方案及軟硬件聯(lián)合調(diào)試方案

軟件調(diào)試方案:偉福軟件中,在“文件新建文件”中,新建C語(yǔ)言源程序文件,編寫相應(yīng)的程序。在“文件新建項(xiàng)目”的菜單中,新建項(xiàng)目并將C語(yǔ)言源程序文件包括在項(xiàng)目文件中。

在 “項(xiàng)目編譯”菜單中將C源文件編譯,檢查語(yǔ)法錯(cuò)誤及邏輯錯(cuò)誤。在編譯成功后,產(chǎn)生以 “*.hex”和“*.bin” 后綴的目標(biāo)文件。

硬件調(diào)試方案:在設(shè)計(jì)平臺(tái)中,將單片機(jī)的P1.0-P1.2分別與3個(gè)獨(dú)立式鍵盤通過插線連接起來,將P3.2與脈沖信號(hào)源連接起來。

在偉福中將程序文件編譯成目標(biāo)文件后,將下載線安裝在實(shí)驗(yàn)平臺(tái)上,運(yùn)行“MCU下載程序”,選擇相應(yīng)的flash 數(shù)據(jù)文件,點(diǎn)擊“編程”按鈕,將程序文件下載到單片機(jī)的Flash中。

然后,上電重新啟動(dòng)單片機(jī),檢查所編寫的程序是否達(dá)到題目的要求,是否全面完整地完成試題的內(nèi)容。3.4.2 程序設(shè)計(jì)

/*晶振:11.0592M T1-250微秒溢出中斷一次;P3.2(int0)-中斷100次,查詢IE0置位,P1^0為啟動(dòng)鍵;P1^1為清除鍵;P1^2為白天/晚上的切換鍵 變量的定義: key_val: 返回按鍵的值 255-無鍵

T1_cnt: 定時(shí)器溢出數(shù)計(jì)數(shù)

cnt_30: 30秒鐘的計(jì)時(shí)

cnt_distance: 計(jì)算路程

cnt_cost: 總金額

state_val: 狀態(tài):0-白天 1 夜晚

cost_val[3]: 收費(fèi)標(biāo)準(zhǔn):白天單價(jià)cost_val[0]=1元/公里;晚上單價(jià)cost_val[1]=2元/公里; 等待單價(jià)cost_val[2]=1元/30s

led_seg_code:數(shù)碼管7段碼 */ //-------------------#include “reg51.h” unsigned char data cnt_30,cnt_distance,cnt_cost;unsigned int data T1_cnt,D_cnt;unsigned char data key_val,key_val_old;unsigned char data state_val;char code cost_val[3]={1,2,1};char code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//led_seg_code[0-9]代表0-9 //-------延時(shí)-----------------void delay(unsigned int i)//延時(shí) { while(--i);} //-------初始化變量------------------void init_variant()//初始化一些變量的內(nèi)容 {unsigned char i;cnt_30=0;//30秒的計(jì)時(shí) D_cnt=0;//脈沖的個(gè)數(shù) cnt_distance=0;//距離的計(jì)數(shù)

cnt_cost=0;//保存總價(jià)格 } //-------掃描鍵盤-----------------unsigned char scan_key(){ unsigned char i,k;i=P1;if(i==0xff){ k=255;} //無鍵按下

else //有鍵按下

{ delay(10);//延時(shí)去抖動(dòng)

if(i!=P1){k=255;} else { switch(i){ case 0xfe: k=0;break;//P1.0按下,啟動(dòng)鍵

case 0xfd: k=1;break;//P1.1按下,清除鍵

case 0xfb: k=2;break;//P1.2按下,切換鍵

} } } return k;} //-------數(shù)碼管動(dòng)態(tài)掃描-------------void led_show(){unsigned char i,k;

//-----顯示單價(jià)----k=cost_val[state_val];i=k%10;//暫存?zhèn)€位 P0=led_seg_code[i];P2=0xbf;delay(10);i=k%100/10;P0=led_seg_code[i];P2=0x7f;delay(10);//-----顯示距離------k=cnt_distance;i=k%10;//暫存?zhèn)€位 P0=led_seg_code[i];P2=0xf7;delay(10);i=k%100/10;P0=led_seg_code[i];P2=0xef;delay(10);//-----顯示總價(jià)格-----------k=cnt_cost;i=k%10;//暫存?zhèn)€位 P0=led_seg_code[i];P2=0xfe;delay(10);i=k%100/10;P0=led_seg_code[i];P2=0xfd;delay(10);} //-------計(jì)時(shí)----------------void timer1()interrupt 3 //T1中斷 { T1_cnt++;if(T1_cnt>3999)//如果計(jì)數(shù)>3999, 計(jì)時(shí)1s { T1_cnt=0;if(cnt_30<30)//沒有超過30秒,繼續(xù)計(jì)時(shí)

{cnt_30++;} else //超過30秒,途中等待計(jì)價(jià)

{cnt_30=0;cnt_cost=cnt_cost+cost_val[2];} } } //---------主程序----------------

main(){//初始化各變量 T1_cnt=0;state_val=0;key_val_old=255;init_variant();//初始化51的寄存器

TMOD=0x20;//用T1計(jì)時(shí) 8位自動(dòng)裝載定時(shí)模式,不用T0 TH1=0x19;//250微秒溢出一次;250=(256-x)*12/11.0592-> x= 230.4 TL1=0x19;EA=1;//開中斷 ET1=1;

TR1=0;//定時(shí)器T0 TCON=0x01;//Int0中斷取邊沿觸發(fā)模式 while(1){ key_val=scan_key();// 255;// if(key_val!=key_val_old){ key_val_old=key_val;if(key_val!=255){ switch(key_val){ case 0: //啟動(dòng)鍵

TR1=1;//啟動(dòng)計(jì)時(shí),TR1=1為啟動(dòng)了的標(biāo)志

break;case 1: //清除鍵

init_variant();//清除變量

TR1=0;//關(guān)閉定時(shí)器

break;case 2: //白天/黑夜的切換

if(state_val==0){state_val=1;} else {state_val=0;} break;} } } if(IE0==1&& TR1==1)//每來1個(gè)脈沖,中斷一次

{ IE0=0;cnt_30=0;//30秒的計(jì)時(shí)清零

if(D_cnt<100)

{D_cnt++;} else //計(jì)數(shù)100次,每次10米,表示一公里

{D_cnt=0;cnt_distance=cnt_distance+1;

cnt_cost=cnt_cost+cost_val[state_val];} } led_show();} } //-----出租車計(jì)價(jià)器程序結(jié)束------------

第三篇:《基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)》開題報(bào)告

《基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)》開題報(bào)告

關(guān)鍵詞:出租車計(jì)價(jià)器 浙江師范大學(xué)應(yīng)用電子技術(shù)專業(yè)開題報(bào)告范文 杭州論文 開題報(bào)告

一.選題背景和意義

隨著我國(guó)經(jīng)濟(jì)的迅速發(fā)展,人民生活水平的顯著提高,城市的交通日趨完善,出租車計(jì)價(jià)器的應(yīng)用也越來越廣泛。雖然私家車的擁有量在大幅度地提高,但是出租車還是在我國(guó)的交通運(yùn)輸中承擔(dān)著重要的角色,出租車計(jì)價(jià)器是出租車上必不可少的重要儀器,它是負(fù)責(zé)出租車營(yíng)運(yùn)收費(fèi)的專用智能化儀表。用戶不僅要求計(jì)價(jià)器性能穩(wěn)定、計(jì)價(jià)準(zhǔn)確而且對(duì)它的要求也越來越高。

近年來,我國(guó)出租汽車行業(yè)迅猛發(fā)展,出租汽車已經(jīng)成為我國(guó)城市公共交通的重要組成部分和現(xiàn)代化城市必備的基礎(chǔ)設(shè)施,成為人們工作、生活中不可缺少的交通工具。出租汽車服務(wù)行業(yè)和出租汽車計(jì)價(jià)器緊密相關(guān),因?yàn)槌鲎馄嚤仨毎惭b出租汽車計(jì)價(jià)器才能投入營(yíng)運(yùn)。出租汽車計(jì)價(jià)器是一種能根據(jù)乘客乘坐汽車行駛距離和等候時(shí)間的多少進(jìn)行計(jì)價(jià),并直接顯示車費(fèi)值的計(jì)量器具。計(jì)價(jià)器是出租汽車的經(jīng)營(yíng)者和乘坐出租汽車的消費(fèi)者之間用于公平貿(mào)易結(jié)算的工具,因而計(jì)價(jià)器計(jì)價(jià)準(zhǔn)確與否,直接關(guān)系到經(jīng)營(yíng)者和消費(fèi)者的經(jīng)濟(jì)利益。依據(jù)國(guó)家有關(guān)法律、法規(guī),出租汽車計(jì)價(jià)器是列入國(guó)家首批強(qiáng)制檢定的工作計(jì)量器具之一,也是近年來國(guó)家質(zhì)量技術(shù)監(jiān)督部門強(qiáng)化管理的六類重點(diǎn)計(jì)量器具之一。

出租車行業(yè)在我國(guó)是八十年代初興起的一項(xiàng)新興行業(yè),隨著我國(guó)國(guó)民經(jīng)濟(jì)的高速發(fā)展,出租汽車已成為城市公共交通的重要組成部分。多年來國(guó)內(nèi)普遍使用的計(jì)價(jià)器只具備單一的計(jì)量功能。目前全世界的計(jì)價(jià)器中有90%為臺(tái)灣所生產(chǎn)。現(xiàn)今我國(guó)生產(chǎn)計(jì)價(jià)器的企業(yè)有上百家,主要是集中在北京,上海,沈陽(yáng)和廣州等地。

在出租車是城市交通的重要組成部分,行業(yè)健康和發(fā)展也獲得越來越多的關(guān)注。汽車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志,是出租車中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無論是對(duì)廣大出租車司機(jī)朋友還是乘客來說都是很必要的。

二、國(guó)內(nèi)外研究現(xiàn)狀、發(fā)展動(dòng)態(tài)

出租車行業(yè)在我國(guó)是八十年代初興起的一項(xiàng)新興行業(yè),隨著我國(guó)國(guó)民經(jīng)濟(jì)的高速發(fā)展,出租汽車已成為城市公共交通的重要組成部分。多年來國(guó)內(nèi)普遍使用的計(jì)價(jià)器只具備單一的計(jì)量功能。目前全世界的計(jì)價(jià)器中有90%為臺(tái)灣所生產(chǎn)。現(xiàn)今我國(guó)生產(chǎn)計(jì)價(jià)器的企業(yè)有上百家,主要是集中在北京,上海,沈陽(yáng)和廣州等地。

我國(guó)的第一家生產(chǎn)計(jì)價(jià)器企業(yè)是重慶市起重機(jī)廠,最早的計(jì)價(jià)器全部采用機(jī)械齒輪結(jié)構(gòu),只能完成簡(jiǎn)單的計(jì)程功能,可以說早期的計(jì)價(jià)器就是一個(gè)里程表。

隨著科學(xué)技術(shù)的發(fā)展,產(chǎn)生了第二代計(jì)價(jià)器。它采用了手搖計(jì)算機(jī)與機(jī)械結(jié)構(gòu)相結(jié)合的方式,實(shí)現(xiàn)了半機(jī)械半電子化。此時(shí)它在計(jì)程的同時(shí)還可以完成計(jì)價(jià)的工作。

大規(guī)模集成電路的發(fā)展又產(chǎn)生了第三代計(jì)價(jià)器,也就是全電子化的計(jì)價(jià)器。它的功能也在不斷完善.當(dāng)單片機(jī)出現(xiàn)并應(yīng)用于計(jì)價(jià)器后,現(xiàn)代出租車計(jì)價(jià)器的模型也就基本具備了,它可以完成計(jì)程,計(jì)價(jià),顯示等基本工作。單片機(jī)以及外圍芯片的不斷發(fā)展促進(jìn)了計(jì)價(jià)器的發(fā)展。出租車計(jì)價(jià)器在最初使用時(shí)具備的主要功能是根據(jù)行駛里程計(jì)價(jià),要求精度高,可靠性好。

三、研究的內(nèi)容及可行性分析 1.研究的內(nèi)容:

計(jì)價(jià)器顯示的營(yíng)運(yùn)金額是營(yíng)運(yùn)里程與價(jià)格的函數(shù)(等候時(shí)間一般折算成一定比例的里程來計(jì)算)。出租車計(jì)價(jià)器通過傳感器與行駛車輛連接。出租汽車的實(shí)際里程通過傳感器的脈沖信號(hào)在計(jì)價(jià)器里折算成一定的計(jì)價(jià)營(yíng)運(yùn)里程。針對(duì)這一點(diǎn)我們來利用單片機(jī)作為控制核心,設(shè)計(jì)一款出租車計(jì)價(jià)器,具有計(jì)價(jià)顯示、等待時(shí)間計(jì)價(jià),公里數(shù)顯示,時(shí)間顯示等相關(guān)功能。設(shè)計(jì)要求:

(1)、計(jì)價(jià)要求:3公里以內(nèi)10元,夜晚三公里以外每公里2.2元,白天三公里以外每公里1.8元;

(2)、能夠?qū)崟r(shí)顯示公里數(shù)和等待時(shí)間;等待時(shí)間計(jì)價(jià)要求為:等待3分鐘以內(nèi)不計(jì)價(jià),3分鐘以外每分鐘0.5元;

(3)、具備起步和下車的語(yǔ)音提示;

2.可行性分析:

本設(shè)計(jì)采用AT89C51單片機(jī)為主控器,以A44E霍爾傳感器測(cè)距,實(shí)現(xiàn)對(duì)出租車的多功能的計(jì)價(jià)設(shè)計(jì),并采用掉電存儲(chǔ)單元AT24C02來實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存單價(jià)和系統(tǒng)時(shí)間等信息,輸出采用8段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天,黑夜,中途等待來調(diào)節(jié)單價(jià),但同時(shí)在不計(jì)價(jià)的時(shí)候還能作為時(shí)鐘為司機(jī)同志提供方便。

四、論文擬解決的關(guān)鍵問題及難點(diǎn)

1.關(guān)鍵問題:

1)解決里程檢測(cè)電路精度問題;

2)解決計(jì)價(jià)器的掉電存儲(chǔ)能力和顯示的驅(qū)動(dòng)能力; 3)解決多次計(jì)價(jià)的累加和顯示問題。2.難點(diǎn): 對(duì)數(shù)據(jù)的采集及顯示。

五、研究方法與技術(shù)路線

本設(shè)計(jì)由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分組成。系統(tǒng)的硬件主要由以下幾個(gè)部件組成:?jiǎn)纹瑱C(jī)AT89S51、AT24C02 掉電存儲(chǔ)控制、里程計(jì)算單元、總金額及單價(jià)顯示部件、串口顯示驅(qū)動(dòng)電路、鍵盤控制部件、語(yǔ)音播報(bào)電路等,其方框原理圖如圖1所示。

1.硬件設(shè)計(jì) 1.1 單片機(jī)模塊:

AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的89C51是一種高效微控制器。AT89C2051是它的一種精簡(jiǎn)版本,AT89C2051是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含2K字節(jié)的可反復(fù)擦寫的只讀程序存儲(chǔ)器和128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元。因?yàn)樵诘某绦蛑杏凶x取、計(jì)算、顯示等單元,2K字節(jié)的ROM可能不夠,因此我們采用AT89C51作為單片機(jī)模塊。

1.2 AT24C02 掉電存儲(chǔ)單元: 掉電

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

AT24C02的外圍電路中有R1、R2 兩個(gè)上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗,由于AT24C02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移位脈沖)和SDA(數(shù)據(jù)/地址)與單片機(jī)傳送數(shù)據(jù)。

每當(dāng)設(shè)定一次單價(jià),系統(tǒng)就自動(dòng)調(diào)用存儲(chǔ)程序,將單價(jià)信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時(shí)候,自動(dòng)調(diào)用讀存儲(chǔ)器程序,將存儲(chǔ)器內(nèi)的單價(jià)等信息,讀到緩存單元中,供主程序使用。

1.3 里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì):

里程計(jì)算是通過安裝在車輪旁的霍爾傳感器A44E檢測(cè)到的信號(hào),送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元的。其原理如圖2傳感器測(cè)距示意圖所示。

圖 2 傳感器測(cè)距示意圖

由于A44E 屬于開關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.5~18V),其輸出的信號(hào)符合TTL 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO 端口上,而且其最高檢測(cè)頻率可達(dá)到1MHZ。

A44E 集成霍耳開關(guān)由穩(wěn)壓器A、霍耳電勢(shì)發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D 和OC 門輸出E 五個(gè)基本部分組成。

在輸入端輸入電壓CC V,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢(shì)發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,當(dāng)霍耳片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍耳電勢(shì)差H V 輸出,該H V 信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC 門輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn)(即OP B)時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)OC 門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當(dāng)施加的磁場(chǎng)達(dá)到釋放點(diǎn)(即rP B)時(shí),觸發(fā)器輸出低電壓,三極管截止,使OC 門輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動(dòng)作。

我們選擇了P3.2 口作為信號(hào)的輸入端,內(nèi)部采用外部中斷0(這樣可以減少程序設(shè)計(jì)的麻煩),車輪每轉(zhuǎn)一圈(我們?cè)O(shè)車輪的周長(zhǎng)是1 米),霍爾開關(guān)就檢測(cè)并輸出信號(hào),引起單片機(jī)的中斷,對(duì)脈計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到1000 次時(shí),也就是1 公里,單片機(jī)就控制將金額自動(dòng)的加增加,其計(jì)算公式:當(dāng)前單價(jià)×公里數(shù)=金額。

1.4 數(shù)據(jù)顯示單元:

由于設(shè)計(jì)要求有單價(jià)(2 位)、路程(2 位)、總金額(3 位)顯示輸出,加上我們另外擴(kuò)展了時(shí)鐘顯示(包含時(shí)分秒的顯示),若采用LCD 液晶段碼顯示,在距離屏幕1 米之外就無法看清數(shù)據(jù),不能滿足要求,而且在白天其對(duì)比度也不能夠滿足要求,因此我們采用6 位LED數(shù)碼管的分屏顯示,如圖 4 采用6 位LED數(shù)碼管的分屏顯示所示:

時(shí)鐘顯示(圖中顯示為12 點(diǎn)0 分46 秒)

圖 4 采用6 位LED數(shù)碼管的分屏顯示

數(shù)據(jù)的分屏的顯示是通過按鍵S1 來實(shí)現(xiàn)切換的,如圖 5 S1切換顯示屏所示。

圖 5 S1切換顯示屏

在出租車不走的時(shí)候,按下S1,可以實(shí)現(xiàn)數(shù)據(jù)的分屏顯示;車在行走的時(shí)候只有總金額和單價(jià)顯示屏在顯示,當(dāng)?shù)竭_(dá)目的地的時(shí)候,客戶要求查看總的里程的時(shí)候,就可以按下S1 切換到里程和單價(jià)顯示屏,供客戶查詢。顯示電路的電路原理圖如圖 7 所示。

1.5 串口顯示驅(qū)動(dòng)電路

從單片機(jī)串口輸出的信號(hào)先送到右邊的移位寄存器(74HC164),由于移位脈沖的作用,使數(shù)據(jù)向右移,達(dá)到顯示的目的。移位寄存器74HC164還兼作數(shù)碼管的驅(qū)動(dòng),插頭1(header1)接數(shù)據(jù)和脈沖輸出端,插頭2(header2)接電源。電路中的三個(gè)整流管D1~D3 的作用是降低數(shù)碼管的工作電壓,增加其使用壽命。

1.6 鍵盤控制部件 1)S1按鍵的功能

在出租車不走的時(shí)候,按下S1,可以實(shí)現(xiàn)數(shù)據(jù)的分屏顯示;車在行走的時(shí)候只有總金額和單價(jià)顯示屏在顯示,當(dāng)?shù)竭_(dá)目的地的時(shí)候,客戶要求查看總的里程的時(shí)候,就可以按下S1切換到里程和單價(jià)顯示屏,供客戶查詢。

2)S2按鍵的功能

在按下S1按鍵之后,若接著按下S2鍵則進(jìn)行單價(jià)調(diào)整(默認(rèn)為調(diào)整白天單價(jià)),當(dāng)接著按下S1時(shí),則進(jìn)行晚上單價(jià)調(diào)整,再次按下S1可進(jìn)行中途等待單價(jià)調(diào)整。當(dāng)單價(jià)調(diào)整結(jié)束后,可以通過按下S2按鍵進(jìn)行時(shí)間調(diào)整,默認(rèn)為調(diào)整小時(shí),接著按下S1可進(jìn)行調(diào)整分鐘,分鐘調(diào)整后再接下S1可進(jìn)行秒調(diào)整。當(dāng)時(shí)間調(diào)整完成后,若接著按下S2則又可進(jìn)行單價(jià)調(diào)整。3)S3按鍵的功能

在顯示金額及單價(jià)時(shí),若按下S3鍵則顯示路程和單價(jià),再次按下S3,可返回顯示金額及單價(jià)。

4)S4按鍵的功能

在按下S1按鍵之后,若接著按下S4按鍵,則進(jìn)行設(shè)定默認(rèn)晚上單價(jià),并啟動(dòng)計(jì)價(jià)器,若沒有按下S4則可設(shè)定默認(rèn)單價(jià)(白天),并啟動(dòng)計(jì)價(jià)器。當(dāng)設(shè)定默認(rèn)晚上單價(jià)結(jié)束后,再次接下S4按鍵,則可設(shè)定默認(rèn)中途等待單價(jià),并啟動(dòng)計(jì)價(jià)器。當(dāng)設(shè)定默認(rèn)中途等待單價(jià)后,若還按一次S4,則返回系統(tǒng)時(shí)間的顯示。

1.7 語(yǔ)音播報(bào)電路

主要用于向乘客致歡迎詞,以提高服務(wù)質(zhì)量。語(yǔ)音芯片選用ISD4004,該系列工作電壓3V,單片錄放時(shí)間4~8min,音質(zhì)好。芯片采用CM0S技術(shù),內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動(dòng)靜噪及高密度多電平閃爍存貯陣列。當(dāng)乘客上車時(shí),播報(bào)內(nèi)容為:乘客您好,歡迎您乘坐本公司出租車。當(dāng)?shù)竭_(dá)目的地時(shí),播報(bào)內(nèi)容為:車已到達(dá)目的地,請(qǐng)按計(jì)價(jià)器上顯示的金額付款,謝謝!

2.軟件設(shè)計(jì)

2.1系統(tǒng)整體程序流程

在主程序模塊中,需要完成對(duì)各接口芯片的初始化、出租車起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。當(dāng)按下S1時(shí),就啟動(dòng)計(jì)價(jià),將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程是否已超過起價(jià)公里數(shù)。若已超過,則根據(jù)里程值、每 本論文由無憂論文網(wǎng)www.tmdps.cn整理提供

公里的單價(jià)數(shù)和起價(jià)數(shù)來計(jì)算出當(dāng)前的累計(jì)價(jià)格,并將結(jié)果存于價(jià)格寄存器中,然后將時(shí)間和當(dāng)前累計(jì)價(jià)格送顯示電路顯示出來。當(dāng)?shù)竭_(dá)目的地的時(shí)候,由于霍爾開關(guān)沒有送來脈沖信號(hào),就停止計(jì)價(jià),顯示當(dāng)前所應(yīng)該付的金額和對(duì)應(yīng)的單價(jià),到下次啟動(dòng)計(jì)價(jià)時(shí),系統(tǒng)自動(dòng)對(duì)顯示清零,并重新進(jìn)行初始化過程。主程序流程圖如圖8 所示。

2.2 定時(shí)中斷服務(wù)程序

在定時(shí)中斷服務(wù)程序中,每100ms 產(chǎn)生一次中斷,當(dāng)產(chǎn)生10 次中斷的時(shí)候,也就到了一秒,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r(shí)顯示。其程序流程如圖9所示。

2.3 里程計(jì)數(shù)中斷服務(wù)程序

每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對(duì)里程脈沖計(jì)滿1000 次時(shí),使微機(jī)進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中。在該程序中,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器中。2.4 中途等待中斷服務(wù)程序

當(dāng)在計(jì)數(shù)狀態(tài)下霍爾開關(guān)沒有輸出信號(hào),片內(nèi)的T1 定時(shí)器便被啟動(dòng),每當(dāng)計(jì)時(shí)到達(dá)3分鐘,就對(duì)當(dāng)前金額加上中途等待的單價(jià),以后每3分鐘都自動(dòng)加上中途等待的單價(jià)。當(dāng)中途等待結(jié)束的時(shí)候,也就自動(dòng)切換到正常的計(jì)價(jià)。2.5 顯示子程序服務(wù)程序

由于是分屏顯示數(shù)據(jù),所以就要用到4 個(gè)顯示子程序,分別是:時(shí)分秒顯示子程序、金額單價(jià)顯示子程序、路程單價(jià)顯示子程序、單價(jià)調(diào)節(jié)子程序。2.6 鍵盤服務(wù)程序

鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。

六、論文的進(jìn)度安排 2010.07 下達(dá)任務(wù)書

2010.07——2010.09 完成選題和資料收集,準(zhǔn)備開題 2010.09.26 開題

2010.10——2011.02 完成硬件設(shè)計(jì)和軟件編程 2011.02——2011.03 進(jìn)行調(diào)試 2011.03——2011.04 撰寫論文準(zhǔn)備答辯

七、主要參考文獻(xiàn)

[1] 張友德,趙志英,涂時(shí)亮.http://www.tmdps.cn/ktbgfw/ 單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn).上海:復(fù)旦大學(xué)出版社 2005,12.[2] 徐光翔.單片機(jī)原理接口及應(yīng)用.南京大學(xué)出版社.[3] 張淑清等.單片微型計(jì)算機(jī)接口技術(shù)及其應(yīng)用.北京:國(guó)防工業(yè)出版社.[4] 王曉君等.MCS-51及兼容單片機(jī)原理與選型.北京:電子工業(yè)出版社.[5] 張?chǎng)?華臻,陳書謙.《單片機(jī)原理及應(yīng)用》[M].電子工業(yè)出版社, 2005.P110~136.[6] 丁元杰、吳大偉《單片微機(jī)實(shí)題集與實(shí)驗(yàn)指導(dǎo)書》.[M].機(jī)械工業(yè)出版社, 2004.P124~125.

第四篇:51單片機(jī) 出租車計(jì)價(jià)器課程設(shè)計(jì)

第一章 出租車計(jì)價(jià)系統(tǒng)的設(shè)計(jì)要求與設(shè)計(jì)方案

1.1 出租車計(jì)價(jià)器設(shè)計(jì)要求

設(shè)計(jì)一個(gè)出租車自動(dòng)計(jì)費(fèi)器,計(jì)費(fèi)包括起步價(jià)、行車?yán)锍逃?jì)費(fèi)、等待時(shí)間計(jì)費(fèi)三部分,用七段數(shù)碼管顯示總金額,單價(jià),運(yùn)行里程,起步價(jià)為6元,超過6元,每一公里增加1元或2元,等待時(shí)間單價(jià)為每30秒鐘1元,計(jì)費(fèi)功能:費(fèi)用的計(jì)算是按行駛里程收費(fèi)。設(shè)起步價(jià)為6元。

1、當(dāng)總金額<6元時(shí),按起價(jià)計(jì)算費(fèi)用

2、當(dāng)總金額>6元時(shí),每公里按1元或2元計(jì)費(fèi)

3、等待累計(jì)時(shí)間>30s時(shí),按1元/30s計(jì)費(fèi)

4、S1為啟動(dòng)按鈕、S2轉(zhuǎn)換單價(jià)按鈕、S3復(fù)位按鈕。顯示功能:

1、顯示行駛里程:用三位數(shù)字顯示,顯示方式為“XX.X”,單位為km。計(jì)程范圍0-99.9km,精確到0.1km。

2、顯示單價(jià):用兩位數(shù)字顯示,顯示方式為“X.X”,單位為元。

3、顯示總費(fèi)用:用三位數(shù)字顯示,顯示方式為“XX.X”,單位為元。計(jì)價(jià)范圍0-99.9元,精確到0.1元。

1.2 系統(tǒng)主要功能

本出租車自動(dòng)計(jì)費(fèi),上電后顯示最初的起步價(jià),里程計(jì)費(fèi)單價(jià)。同時(shí)具有運(yùn)行,復(fù)位,轉(zhuǎn)換等狀態(tài),可以切換白天與晚上不同計(jì)費(fèi)單價(jià),可以實(shí)現(xiàn)每等待30s收1元功能。出租車顯示行駛的總費(fèi)用,里程,單價(jià)。

1.3 方案論證與比較

方案一:采用數(shù)字電子技術(shù),利用555定時(shí)芯片構(gòu)成多諧振蕩器,或采用外圍的晶振電路作為時(shí)鐘脈沖信號(hào),采用計(jì)數(shù)芯片對(duì)脈沖盡心脈沖的計(jì)數(shù)和分頻,最后通過譯碼電路對(duì)數(shù)據(jù)進(jìn)行譯碼,將譯碼所得的數(shù)據(jù)送給數(shù)碼管顯示,一下是該方案的流程框圖,方案一如圖1-1所示:

圖1-1方案一

方案二:采用EDA技術(shù),根據(jù)層次化設(shè)計(jì)理論,該設(shè)計(jì)問題自頂向下可分為分頻模塊,控制模塊 計(jì)量模塊、譯碼和動(dòng)態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖1-2所示:

圖1-2方案二

方案三:采用MCU技術(shù),通過單片機(jī)作為主控器,采用外部晶振作為時(shí)鐘脈沖,通過按鍵可以方便調(diào)節(jié),以下是方案三的系統(tǒng)流程圖,本方案主要是必須對(duì)于數(shù)字電路比較熟悉,成本又不高。方案圖如圖1-3所示:

圖1-3方案三

方案總結(jié):通過各個(gè)方案的比較,本次采用方案三,不但控制簡(jiǎn)單,而且成本低廉,設(shè)計(jì)電路簡(jiǎn)單。

第二章 出租車計(jì)價(jià)系統(tǒng)的硬件設(shè)計(jì)

2.1 AT89C51單片機(jī)介紹

AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集合輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89S51是一種高效微控器,為很多嵌入式控制系統(tǒng)提供了一種靈活性且廉價(jià)的方案 單片機(jī)各引腳功能說明:

VCC:供電電壓。GND:接地。

P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行。校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。

P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。

P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。

P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89S52的一些特殊功能口,P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。

RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。

ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。

/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。

/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間選擇外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。

2.2 里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)

里程計(jì)算是通過安裝在車輪上的霍爾傳感器A44E檢測(cè)到的信號(hào),送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元的。其原理如圖2-1所示

圖2-1 由于A44E 屬于開關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.5~18V),其輸出的信號(hào)符合TTL 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的I/O 端口上,而且其最高檢測(cè)頻率可達(dá)到1MHZ。

如圖2-2,A44E 集成霍耳開關(guān)由穩(wěn)壓器A、霍耳電勢(shì)發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D 和OC 門輸出E 五個(gè)基本部分組成。

圖2-2 路程測(cè)量電路

在輸入端輸入電壓CC V,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢(shì)發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,當(dāng)霍耳片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍耳電勢(shì)差H V 輸出,該H V 信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC 門輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn)(即OP B)時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)OC 門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當(dāng)施加的磁場(chǎng)達(dá)到釋放點(diǎn)(即rP B)時(shí),觸發(fā)器輸出低電壓,三極管截止,使OC 門輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動(dòng)作。

我們選擇了P3.5 口作為信號(hào)的輸入端,內(nèi)部采用計(jì)數(shù)的方式,車輪每轉(zhuǎn)一圈(我們?cè)O(shè)車輪的周長(zhǎng)是10米),霍爾開關(guān)就檢測(cè)并輸出信號(hào),引起單片機(jī)對(duì)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到10次時(shí),也就是0.1 公里,單片機(jī)就控制將金額自動(dòng)的加增加,其計(jì)算公式:當(dāng)前單價(jià)× 公里數(shù)=金額。

2.3 數(shù)據(jù)顯示單元的設(shè)計(jì)

由于設(shè)計(jì)要求有單價(jià)(2 位)、路程(3位)、總金額(3位)顯示輸出,我們采用8個(gè)7段數(shù)碼管動(dòng)態(tài)顯示。如圖2-3:

圖2-3 數(shù)據(jù)顯示硬件電路圖

2.4 按鍵單元的設(shè)計(jì)

電路共采用了四個(gè)按鍵,S1、S2、S3、S4,其功能分別是:S1 啟動(dòng)計(jì)價(jià)開關(guān)、S2 白天/晚上轉(zhuǎn)換開關(guān)、S3 數(shù)據(jù)復(fù)位清零開關(guān)、S4閉合表示出租車正常運(yùn)行,計(jì)價(jià)器也正常計(jì)價(jià);若打開S4則表示出租車在暫停,轉(zhuǎn)入判斷是否收費(fèi)程序,閉合超過30秒,開始計(jì)價(jià)。如圖2-4:

圖2-4 按鍵單元電路圖 2.5 振蕩電路

單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取33pF)。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時(shí)鐘信號(hào),再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號(hào),此時(shí)得到的信號(hào)時(shí)機(jī)器周期信號(hào)。振蕩電路如圖2-5所示:

圖2-5 振蕩電路

2.6 復(fù)位電路

復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的RESET鍵,電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個(gè)復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實(shí)現(xiàn)單片機(jī)自動(dòng)復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。按鍵復(fù)位電路圖如圖2-6所示。

圖2-6 復(fù)位電路 總電路圖

第三章 出租車計(jì)價(jià)系統(tǒng)的軟件設(shè)計(jì)

3.1主程序流程圖記描述

由于用到了外部中斷0,所以,按中斷系統(tǒng)的編程結(jié)構(gòu)在0000H處放置一條長(zhǎng)跳轉(zhuǎn)指令LJMP START跳轉(zhuǎn)到主程序入口,在外部中斷0的中斷入口地址0003H處放置一條長(zhǎng)跳轉(zhuǎn)指令LJMP EXT0跳轉(zhuǎn)到外部中斷0服務(wù)程序處。主程序進(jìn)行程序中用到的一些存儲(chǔ)單元的初始化,T0,T1的初始化。首先,進(jìn)行存儲(chǔ)器單元初始化,將71H-79H單元賦值。然后進(jìn)行定時(shí)器的設(shè)置。設(shè)置T1的工作方式為模式2,計(jì)數(shù)狀態(tài),自啟動(dòng)。T0的工作方式,模式1,定時(shí)狀態(tài),自啟動(dòng),對(duì)輸入的脈沖進(jìn)行計(jì)數(shù),給T0、T1賦初值。之后調(diào)用計(jì)數(shù)脈沖子程序,及等待子程序,數(shù)碼管動(dòng)態(tài)顯示子程序,最后進(jìn)入鍵盤掃描子程序進(jìn)行掃描。主程序不斷進(jìn)行調(diào)用數(shù)碼管顯示子程序及鍵盤掃描子程序循環(huán)操作,等待中斷。如圖3-1:

圖3-1 主程序流程圖 3.2計(jì)費(fèi)子程序流程圖

72H存儲(chǔ)總金額小數(shù)位,73H存儲(chǔ)器總金額個(gè)位,78H存儲(chǔ)器總金額十位,77H存儲(chǔ)單價(jià)元。將72H中值放入A中,再將A與77H相加,即小數(shù)位與單價(jià)相加,結(jié)果存入A,再進(jìn)行十進(jìn)制調(diào)整,將結(jié)果存于R6,將高四位與低四位交換并屏蔽高四位,保留低四位與個(gè)位相加得到總金額個(gè)位。若總金額超過10則清零,并且總金額十位加1。將R6中數(shù)值取出,屏蔽高四位,輸出總金額小數(shù)位。如圖3-2:

圖3-2 計(jì)費(fèi)子程序流程圖 3.3 等待是否收費(fèi)子程序

在出租車的計(jì)價(jià)系統(tǒng)中,出租車在等待的時(shí)候也要計(jì)價(jià),本設(shè)計(jì)體現(xiàn)了這點(diǎn)。程序判斷了出租車是否停止,若停止30秒以上是,開始計(jì)價(jià)。55H中賦初值20,56H中賦初值10,總共30秒延時(shí)。超過30秒時(shí),調(diào)用計(jì)費(fèi)子程序。如圖3-3

圖3-3 等待是否收費(fèi)子程序流程圖

3.4 按鍵子程序流程圖

圖3-4 等待收費(fèi)子程序流程圖

3.5 外部中斷0流程圖

圖3-5 外部中斷0子程序流程圖 程序

ORG 0000H LJMP MAIN ORG 0003H;外部中斷入口地址 LJMP REST ORG 030H MAIN:

MOV 71H,#00H;脈沖計(jì)數(shù)每10個(gè)脈沖里程數(shù)加0.1顯示緩沖單元 MOV 72H,#00H;存儲(chǔ)總金額小數(shù)位 MOV 73H,#00H;存儲(chǔ)總金額個(gè)位 MOV 74H,#00H;存儲(chǔ)里程數(shù)小數(shù)位 MOV 75H,#00H;存儲(chǔ)里程數(shù)個(gè)位 MOV 76H,#00H;存儲(chǔ)單價(jià)角位 MOV 77H,#01H;存儲(chǔ)單價(jià)元位 MOV 78H,#00H;存儲(chǔ)總金額十位 MOV 79H,#00H;存儲(chǔ)里程數(shù)十位 MOV 55H,#20;給定等待初值20*50ms MOV 56H,#10;10秒等待時(shí)間初值 SETB EA;開總中斷 SETB EX0;開外部中斷0 MOV TCON,#04H;外部中斷0低電平

MOV TMOD,#61H;設(shè)置使用定時(shí)器1,模式2,計(jì)數(shù)狀態(tài),自啟動(dòng),定時(shí)器0,模式1,定時(shí)狀態(tài),自啟動(dòng)

MOV TL0,#0B0H;50ms初值設(shè)定C350H MOV TH0,#03CH MOV TL1,#0FFH;設(shè)置定時(shí)器低八位初值為FFH,即有一脈沖輸入就溢出

MOV TH1,#0FFH;設(shè)置定時(shí)器高八位初值為FFH,用于重裝低八位 START: LCALL PULSE;調(diào)用計(jì)數(shù)脈沖子程序 LCALL WAIT;調(diào)用等待子程序 LCALL DISPLAY;調(diào)用顯示程序進(jìn)行顯示 LCALL KEY;調(diào)用鍵盤掃描程序

SJMP START;返回START處繼續(xù)循環(huán)執(zhí)行 REST: PUSH ACC MOV 71H,#00H;脈沖計(jì)數(shù)每10個(gè)脈沖里程數(shù)加1顯示緩存單元 MOV 72H,#00H;存儲(chǔ)總金額個(gè)位 MOV 73H,#00H;存儲(chǔ)總金額十位 MOV 74H,#00H;存儲(chǔ)里程數(shù)個(gè)位 MOV 75H,#00H;存儲(chǔ)里程數(shù)十位 MOV 78H,#00H;存儲(chǔ)總金額百位 MOV 79H,#00H;存儲(chǔ)里程數(shù)百位 MOV 55H,#20 MOV 56H,#10 POP ACC RETI PULSE: JBC TF1,PTO1;TF1為1則轉(zhuǎn)PT01 LJMP PSOUT PTO1: MOV 55H,#20 MOV 56H,#10 INC 71H MOV R1,71H CJNE R1,#0AH,PSOUT;脈沖調(diào)整,改變立即數(shù)即可;里程數(shù)個(gè)位74H,R1不等于0AH則轉(zhuǎn)PSOUT MOV 71H,#00H INC 74H LCALL MONEY MOV R1,74H CJNE R1,#0AH,PSOUT;里程數(shù)十位75H MOV 74H,#00H INC 75H MOV R1,75H CJNE R1,#0AH,PSOUT MOV 75H,#00H INC 79H MOV R1,79H CJNE R1,#0AH,PSOUT MOV 79H,#00H PSOUT:RET WAIT: JBC TF0,PTO2 LJMP CHU0 PTO2:MOV TL0,#0B0H MOV TH0,#03CH DJNZ 55H,CHU0;不為0則轉(zhuǎn) MOV 55H,#20 DJNZ 56H,CHU0 MOV 56H,#10;30秒等待計(jì)時(shí) INC 72H MOV A,72H LCALL MONEY1 CHU0:RET MONEY: MOV A,72H ADD A,77H MONEY1:DA A MOV R6,A SWAP A ANL A,#0FH ADD A,73H MOV 73H,A CJNE A,#0AH,MONEY2 MOV 73H,#00H INC 78H MOV A,78H CJNE A,#0AH,MONEY2 MOV 78H,#00H MONEY2:MOV A,R6 ANL A,#0FH MOV 72H,A RET DISPLAY:MOV A,78H CJNE A,#00H,L2 MOV A,73H CJNE A,#06H,L1 L1:JNC L2 MOV A,#82H ADD A,#80H MOV P0,A MOV P2,#02H LCALL DELAY MOV P2,#00H MOV A,#0C0H MOV P0,A MOV P2,#01H LCALL DELAY MOV P2,#00H MOV A,#0C0H MOV P0,A MOV P2,#40H LCALL DELAY MOV P2,#00H LJMP L3 L2:MOV A,73H MOV DPTR,#TAB MOVC A,@A+DPTR ADD A,#80H MOV P0,A MOV P2,#02H LCALL DELAY MOV P2,#00H MOV A,72H MOVC A,@A+DPTR MOV P0,A MOV P2,#01H LCALL DELAY MOV P2,#00H MOV A,78H MOVC A,@A+DPTR MOV P0,A MOV P2,#40H LCALL DELAY MOV P2,#00H L3:MOV A,75H MOV DPTR,#TAB MOVC A,@A+DPTR ADD A,#80H MOV P0,A MOV P2,#08H LCALL DELAY MOV P2,#00H MOV A,74H MOVC A,@A+DPTR MOV P0,A MOV P2,#04H LCALL DELAY MOV P2,#00H MOV A,77H MOVC A,@A+DPTR ADD A,#80H MOV P0,A MOV P2,#20H LCALL DELAY MOV P2,#00H MOV A,76H MOVC A,@A+DPTR MOV P0,A MOV P2,#10H LCALL DELAY MOV P2,#00H

MOV A,79H MOVC A,@A+DPTR MOV P0,A MOV P2,#80H LCALL DELAY MOV P2,#00H RET KEY: MOV A,#0FH MOV P3,A MOV A,P3 ORL A,#0F0H CJNE A,#0FFH,KEY1 LCALL DELAY SJMP EKEOUT KEY1: LCALL DELAY MOV A,P3 ORL A,#0F0H CJNE A,#0FFH,KEY2 SJMP EKEOUT KEY2: MOV R1,A KEY3: MOV A,P3 ORL A,#0FCH CJNE A,#0FFH,KEY3 MOV A,R1 JNB ACC.0,RUN JNB ACC.1,CHANGE SJMP EKEOUT RUN: SETB TR0 SETB TR1 SETB EA SJMP EKEOUT EKEOUT:RET CHANGE: PUSH ACC MOV A,77H CJNE A,#02H,NIGHT MOV 77H,#01H SJMP CHOUT NIGHT: MOV 77H,#02H CHOUT: POP ACC RET DELAY: MOV R7,#100 DJNZ R7,$ RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END

第五篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)出租車計(jì)價(jià)器1.

常州機(jī)電職業(yè)技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文

作者:叢佳偉學(xué)號(hào):40931111系部:電氣工程系 專業(yè):應(yīng)用電子技術(shù) 題目:出租車計(jì)價(jià)器系統(tǒng) 指導(dǎo)者:徐登黃勇 評(píng)閱者: 2012年05月 摘要

現(xiàn)在各個(gè)城市出租車行業(yè)都已普及,因此出租車計(jì)價(jià)器的技術(shù)已經(jīng)成熟,但是出租車計(jì)價(jià)器的市場(chǎng)還具有廣闊的前景。隨著城市建設(shè)的日益完善,關(guān)乎城市面貌的出租車行業(yè)也將迅速發(fā)展,出租車計(jì)價(jià)器的的大批量需求也是毫無疑問的,所以未來出租車計(jì)價(jià)器的市場(chǎng)還是有相當(dāng)大的潛力的。

本次出租車計(jì)價(jià)器設(shè)計(jì)以AT89S52單片機(jī)為中心,采用U18霍爾傳感器對(duì)輪胎轉(zhuǎn)數(shù)進(jìn)行計(jì)數(shù),實(shí)現(xiàn)對(duì)出租車?yán)锍痰臏y(cè)量,并最終計(jì)算出結(jié)果。其中采用寄存器芯片AT24C02使系統(tǒng)在掉電的時(shí)候?qū)蝺r(jià)、里程、車輪長(zhǎng)度等信息進(jìn)行存儲(chǔ),采用時(shí)鐘芯片DS1302來顯示時(shí)間和在系統(tǒng)需要時(shí)進(jìn)行計(jì)時(shí)。輸出采用兩個(gè)4段數(shù)碼顯示管,而且根據(jù)按鍵有空車指示燈、等待查詢指示燈、單程指示燈進(jìn)行指示。

汽車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志,是出租車中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無論是對(duì)廣大出租車司機(jī)朋友還是乘客來說都是很必要的。因此,汽車計(jì)價(jià)器的研究也是有一定的應(yīng)用價(jià)值的。

關(guān)鍵詞:計(jì)價(jià)器、霍爾傳感器、單片機(jī) 目錄 摘要(1 1 緒論(3 1.1 出租車計(jì)價(jià)器概述(3 1.2 單片機(jī)的概述(3 2 總體方案設(shè)計(jì)(4 2.1 設(shè)計(jì)任務(wù)要求(4 2.1.1 設(shè)計(jì)任務(wù)(4 2.1.2 設(shè)計(jì)要求(5 2.2 設(shè)計(jì)的主要功能(5 2.3 方案的選取(5 2.3.1 硬件設(shè)計(jì)方案(5 2.3.2 軟件設(shè)計(jì)方案(6 3 硬件設(shè)計(jì)(7 3.1 AT89S52單片機(jī)及最小系統(tǒng)(7 3.2 測(cè)距單元(10 3.3 按鍵單元(12 3.4 時(shí)鐘單元(12

3.5 顯示單元(13 3.6 儲(chǔ)存單元(15 4 軟件設(shè)計(jì)(16 4.1 系統(tǒng)主程序(16 4.2 數(shù)據(jù)處理子程序(17 4.3 等待時(shí)間計(jì)時(shí)子程序(18 4.4 鍵盤掃描子程序(19 5 Proteus軟件仿真(21 總結(jié).............................................錯(cuò)誤!未定義書簽。致謝.(23 參考文獻(xiàn)(23 附

1、系統(tǒng)原理圖(25 1 緒論

1.1 出租車計(jì)價(jià)器概述

我國(guó)在70年代開始出現(xiàn)出租車,但那時(shí)的計(jì)費(fèi)系統(tǒng)大都是國(guó)外進(jìn)口不但不夠準(zhǔn)確,價(jià)格還十分昂貴。隨著改革開放日益深入,出租車行業(yè)的發(fā)展勢(shì)頭已十分突出,國(guó)內(nèi)各機(jī)械廠家紛紛推出國(guó)產(chǎn)計(jì)價(jià)器。出租車計(jì)價(jià)器的功能從剛開始的只顯示路程(需要司機(jī)自己定價(jià),計(jì)算后四舍五入,到能夠自主計(jì)費(fèi),以及現(xiàn)在的能夠打一發(fā)票和語(yǔ)音提示、按時(shí)間自主變動(dòng)單價(jià)等功能。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口,象征著一個(gè)城市的文明程度。

本次設(shè)計(jì)的目的在于現(xiàn)在各大中城市出租車行業(yè)都已普及自動(dòng)計(jì)價(jià)器,所以計(jì)價(jià)器技術(shù)的發(fā)展已成定局。而部分小城市尚未普及,但隨著城市建設(shè)日益加快,象征

著城市面貌的出租車行業(yè)也將加速發(fā)展,計(jì)價(jià)器的普及也是毫無疑問的,所以未來汽車計(jì)價(jià)器的市場(chǎng)還是十分有潛力的。

1.2 單片機(jī)的概述

計(jì)算機(jī)系統(tǒng)已明顯地朝巨型化、單片化、網(wǎng)絡(luò)化三個(gè)方向發(fā)展。巨型化發(fā)展的目的在于不斷提高計(jì)算機(jī)的運(yùn)算速度和處理能力,以解決復(fù)雜系統(tǒng)計(jì)算和高速數(shù)據(jù)處理,比如系統(tǒng)仿真和模擬、實(shí)時(shí)運(yùn)算和處理。單片化是把計(jì)算機(jī)系統(tǒng)盡可能集成在一塊半導(dǎo)體芯片上,其目的在于計(jì)算機(jī)微型化和提高系統(tǒng)的可靠性,這種單片計(jì)算簡(jiǎn)稱單片機(jī)。單片機(jī)的內(nèi)部硬件結(jié)構(gòu)和指令系統(tǒng)主要是針對(duì)自動(dòng)控制應(yīng)用而設(shè)計(jì)的所以單片機(jī)又稱微控制器MCU(Micro Controller Unit。用它可以很容易地將計(jì)算機(jī)嵌入到各種儀器和現(xiàn)場(chǎng)控制設(shè)備中,因此單片機(jī)又叫做嵌入式微控制器(Embedded MCU。單片機(jī)自20世紀(jì)70年代問世以來,以其鮮明的特點(diǎn)得到迅猛發(fā)展,已廣泛應(yīng)用于家用電器、智能玩具、智能儀器儀表、工業(yè)控制、航空航天等領(lǐng)域,經(jīng)過30多年的發(fā)展,性能不斷提高,品種不斷豐富,已經(jīng)形成自動(dòng)控制的一支中堅(jiān)力量。據(jù)統(tǒng)計(jì),我國(guó)的單片機(jī)年容量已達(dá)1~3億片,且每年以大約16%的速度增長(zhǎng),但相對(duì)于國(guó)際市場(chǎng)我國(guó)的占有率還不到1%。這說明單片機(jī)應(yīng)用在我國(guó)有著廣闊的前景。對(duì)于從事自動(dòng)控制的技術(shù)人員來講,掌握單片機(jī)原理及其應(yīng)用已經(jīng)成為必不可少的學(xué)習(xí)任

務(wù)。

單片機(jī)的應(yīng)用十分廣泛,在工業(yè)控制領(lǐng)域、家電產(chǎn)品、智能化儀器儀表、計(jì)算機(jī)外部設(shè)備,特別是機(jī)電一體化產(chǎn)品中,都有重要的用途。其主要的用途可以分為以下方面。

●顯示:通過單片機(jī)控制發(fā)光二極管或是液晶,顯示特定的圖形和字符。●機(jī)電控制:用單片機(jī)控制機(jī)電產(chǎn)品做定時(shí)或定向的動(dòng)作。

●檢測(cè):通過單片機(jī)和傳感器的聯(lián)合使用,用來檢測(cè)產(chǎn)品或者工況的意 外發(fā)生。

●通信:通過RS-232串行通信或者是USB通信,傳輸數(shù)據(jù)和信號(hào)。●科學(xué)計(jì)算:用來實(shí)現(xiàn)簡(jiǎn)單的算法。

那么單片機(jī)是不是解決上述應(yīng)用的唯一選擇呢?當(dāng)然不是!單片機(jī)最明顯的優(yōu)點(diǎn)是價(jià)格便宜,從幾元人民幣到幾十元人民幣。這是因?yàn)檫@類芯片的生產(chǎn)量很大,技術(shù)也很成熟。

其次,單片機(jī)的體積也遠(yuǎn)小于其他兩種方案。單片機(jī)本身一般用40引腳封裝,當(dāng)然功能多一些的單片機(jī)也有引腳比較多的,如68引腳,功能少的只有10多個(gè)或20多個(gè)引腳,有的甚至只有8只引腳。

當(dāng)然,單片機(jī)無論在速度還是容量方面都小于其他兩種方案,但是在實(shí)際工作中并不是任何需要計(jì)算機(jī)的場(chǎng)合都要求計(jì)算機(jī)有很高的性能。例如,控制電冰箱的控制器就不需要使用嵌入式系統(tǒng),用一片51就可以輕松實(shí)現(xiàn)。所以應(yīng)用的關(guān)鍵是看能否夠用,是否有很好的性能價(jià)格比。51系列的單片機(jī)已經(jīng)面世十多年,依然沒有被淘汰,還在不斷發(fā)展中,這就說明是它有廣闊的應(yīng)用前景。總體方案設(shè)計(jì)

本次設(shè)計(jì)是使用單片機(jī)技術(shù)來實(shí)現(xiàn)一個(gè)出租車的數(shù)字計(jì)價(jià)器,利用單片機(jī)豐富的IO端口,及其控制的靈活性,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和單雙程價(jià)格調(diào)整、時(shí)鐘顯示功能等等。具有性能可靠,電路簡(jiǎn)單、成本低、擴(kuò)展空間大等特點(diǎn)。

2.1 設(shè)計(jì)任務(wù)要求 2.1.1 設(shè)計(jì)任務(wù)

設(shè)計(jì)一款基于AT89S52單片機(jī)的出租車數(shù)字計(jì)價(jià)器,通過對(duì)傳感器的檢測(cè),對(duì)數(shù)值進(jìn)行處理和顯示。

2.1.2 設(shè)計(jì)要求

一、基本要求

(1能顯示里程,單位為公里,最后一位為小數(shù)位。(2能顯示金額數(shù),單位為元,最后一位為小數(shù)位。

(3可設(shè)定單程價(jià)格和往返價(jià)格,單程價(jià)格為2元/公里,往返價(jià)格為1.5元/ 公里。

(4車速<5公里/小時(shí)的時(shí)間累積為總等待時(shí)間,每5分鐘等待時(shí)間相當(dāng)于 里程數(shù)增加1公里。

(5起步公里數(shù)為3公里,價(jià)格為5元,若實(shí)際距離大于3公里,按規(guī)則3計(jì) 算價(jià)格。

(6按暫停鍵,計(jì)價(jià)器可暫停計(jì)價(jià),按查詢鍵,可顯示總等待時(shí)間。

二、發(fā)揮部分

(1增加了空車指示功能,當(dāng)無客人時(shí),按下功能切換按鍵,空車指示燈亮。(2增加實(shí)時(shí)時(shí)間顯示,無論計(jì)價(jià)器工作或者空車,都能顯示實(shí)時(shí)時(shí)間,便于時(shí)間提醒。

(3增加信息儲(chǔ)存功能。可以儲(chǔ)存等待時(shí)間,里程和金額。2.2 設(shè)計(jì)的主要功能

本設(shè)計(jì)所設(shè)計(jì)的出租車數(shù)字計(jì)價(jià)器的主要功能有:金額輸出、路程輸出、數(shù)據(jù)復(fù)位、計(jì)時(shí)計(jì)價(jià)、空車顯示等。輸出采用2個(gè)4位8段共陽(yáng)數(shù)碼管,車輛行走時(shí)前4位顯示路程,后4位顯示金額。車輛候車時(shí),前4位顯示等待時(shí)間,后4位顯示等待金額。空車時(shí)顯示實(shí)時(shí)時(shí)間。儲(chǔ)存等待時(shí)間,里程和金額。

2.3 方案的選取

本設(shè)計(jì)是由軟件設(shè)計(jì)和硬件設(shè)計(jì)兩部分組成的。軟件設(shè)計(jì)要進(jìn)行程序的編寫和軟件仿真;硬件設(shè)計(jì)要設(shè)計(jì)電路、硬件仿真和制作電路板。

2.3.1 硬件設(shè)計(jì)方案

本系統(tǒng)的硬件設(shè)計(jì)主要包括單片機(jī)AT89S52、數(shù)據(jù)顯示部件、U18霍爾傳感 器電路、里程計(jì)算及計(jì)價(jià)單元的設(shè)計(jì)。在硬件設(shè)計(jì)過程中,充分利用各部件的功能,實(shí)現(xiàn)多功能的出租車計(jì)價(jià)器設(shè)計(jì)。

計(jì)價(jià)器的單片機(jī)系統(tǒng)框圖如圖2-1所示。它由以下幾個(gè)部件組成:霍爾傳感器單元、AT89S52單片機(jī)、金額顯示、里程顯示、電源。利用單片機(jī)豐富的IO 端口,及其控制的靈活性,實(shí)現(xiàn)基本的里程和價(jià)格的計(jì)算及顯示功能。

圖2-1計(jì)價(jià)器系統(tǒng)框圖 2.3.2 軟件設(shè)計(jì)方案

本設(shè)計(jì)程序的采取C 語(yǔ)言進(jìn)行編寫,使用Keil uVision3編譯和Proteus7.4a 仿真軟件進(jìn)行仿真調(diào)試。其中的里程計(jì)算和費(fèi)用計(jì)算方案如下。

1、里程計(jì)算

(1霍爾傳感器對(duì)車輪進(jìn)行信號(hào)檢測(cè),產(chǎn)生并輸出脈沖信號(hào)到單片機(jī);(2單片機(jī)對(duì)傳感器輸出的脈沖信號(hào)進(jìn)行計(jì)數(shù),并進(jìn)行km 計(jì)算:每一個(gè)信號(hào)代表輪胎旋轉(zhuǎn)一周,設(shè)輪胎的周長(zhǎng)為1.57m;每km 產(chǎn)生的信號(hào)數(shù)為N ,里程顯示為N × 1.57m = 1.57N(km

2、費(fèi)用計(jì)算

(1出租車的起步費(fèi)為5元,并且3km 內(nèi)不需額外計(jì)價(jià);(2出租車行駛3km 后,單程2元/km ,雙程1.5元/km。

單 片 機(jī) 霍爾

傳感器 數(shù)據(jù)顯示 狀態(tài)指示 時(shí)鐘顯示 按鍵 信息存儲(chǔ)

(3等待收費(fèi)的標(biāo)準(zhǔn)為5分鐘算一公里;(4暫停時(shí)計(jì)價(jià)器暫停計(jì)價(jià),不收費(fèi)用。3 硬件設(shè)計(jì)

本設(shè)計(jì)的硬件設(shè)計(jì)包括單片機(jī)AT89S52單元、測(cè)距單元、顯示單元(數(shù)碼管顯示金額、等待時(shí)間和里程,指示燈對(duì)單雙程切換指示、空車指示、等待計(jì)時(shí)指示、按鍵單元、時(shí)鐘單元和儲(chǔ)存單元。

3.1 AT 89S52單片機(jī)及最小系統(tǒng)

1、AT89S52單片機(jī)

AT89S52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器, 256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM,32個(gè)外部雙向輸入/輸出(I/O口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,全雙工串行口,看門狗(WDT電路,片內(nèi)時(shí)鐘振蕩器。

P0口有二個(gè)功能:

1、外部擴(kuò)展存儲(chǔ)器時(shí),當(dāng)做數(shù)據(jù)/地址總線。

2、不擴(kuò)展時(shí),可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時(shí)應(yīng)在外部接上拉電阻。

P1口只做I/O口使用:其內(nèi)部有上拉電阻。

P2口有兩個(gè)功能:

1、擴(kuò)展外部存儲(chǔ)器時(shí),當(dāng)作地址總線使用。

2、做一般I/O口使用,其內(nèi)部有上拉電阻。

P3口有兩個(gè)功能:除了作為I/O使用外(其內(nèi)部有上拉電阻,還有一些特殊功能,由特殊寄存器來設(shè)置。

圖3-1 AT89S52引腳圖

設(shè)計(jì)中用到的單片機(jī)各管腳(圖3-1功能以及與其他模塊連接介紹如下: VCC:接+5V電源。

VSS:接地。

時(shí)鐘引腳:XTAL1和XTAL2兩端接晶振和30PF的電容,構(gòu)成時(shí)鐘電路。

它可以使單片機(jī)穩(wěn)定可靠的運(yùn)行。

RST:復(fù)位信號(hào)輸入端,高電平有效。當(dāng)在此引腳加兩個(gè)機(jī)器周期的高電平時(shí),就可以完成復(fù)位操作。

P1.0:接功能按鍵。

P1.1:接切換鍵,表示單雙程切換。P1.2:接查詢(上次金額鍵。P1.3:接清零鍵。P1.4:接空車指示燈。P1.5:接查詢指示燈。P1.6:接開始計(jì)時(shí)指示燈。P1.7:接雙程指示燈。P3.0:接查詢/確認(rèn)鍵。

P0口接數(shù)碼管段選端,P2口接數(shù)碼管位選段。P3.2:接霍爾傳感器的輸出口。P3.3:接存儲(chǔ)器的SCL口。P3.4:接儲(chǔ)存器的SDA口。

P3.5:接時(shí)鐘電路DS1302的RST口。P3.6:接DS1302的SCLK口。P3.7:接DS1302的I/O口。

2、單片機(jī)最小系統(tǒng)

復(fù)位電路和晶振電路是AT89S52工作所需的最簡(jiǎn)外圍電路。單片機(jī)最小系統(tǒng)電路圖如圖3-2所示。

圖3-2單片機(jī)最小系統(tǒng)

AT89S52 的復(fù)位端是一個(gè)史密特觸發(fā)輸入,高電平有效。RST端若由低電平上升到高電平并持續(xù)2個(gè)周期,系統(tǒng)將實(shí)現(xiàn)一次復(fù)位操作。在復(fù)位電路中,按一下復(fù)位開關(guān)就使在RST端出現(xiàn)一段時(shí)間的高電平,外接11.0592M 晶振和兩個(gè)30pF 電容組成系統(tǒng)的內(nèi)部時(shí)鐘電路。

3.2 測(cè)距單元

本次設(shè)計(jì)我們選取了霍爾傳感器來進(jìn)行里程測(cè)量。

霍爾器件是一種磁傳感器。用它們可以檢測(cè)磁場(chǎng)及其變化,可在各種與磁場(chǎng)有關(guān)的場(chǎng)合中使用。霍爾器件以霍爾效應(yīng)為其工作基礎(chǔ)。

霍爾器件具有許多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固,體積小,重量輕,壽命長(zhǎng),安裝方便,功耗小,頻率高,耐震動(dòng),不怕灰塵、油污、水汽及鹽霧等的污染或腐蝕。

霍爾器件分為:霍爾元件和霍爾集成電路兩大類,前者是一個(gè)簡(jiǎn)單的霍爾片,使用時(shí)常常需要將獲得的霍爾電壓進(jìn)行放大。后者將霍爾片和它的信號(hào)處理電路集成在同一個(gè)芯片上。本次設(shè)計(jì)選取了霍爾集成電路來測(cè)量里程。

里程測(cè)量是通過將霍爾傳感器的集成電路安裝在車輪上方的鐵板上,將磁鐵安裝在車輪上,旋轉(zhuǎn)的車輪將磁鐵對(duì)準(zhǔn)集成電路時(shí),霍爾傳感器會(huì)輸出一個(gè)脈沖信號(hào),送到單片機(jī),經(jīng)過單片機(jī)的計(jì)算處理,將行駛的里程送到顯示單元并顯示出來。

其原理示意圖如下:

圖3-3 傳感器測(cè)距示意圖

U18是一種利用霍爾效應(yīng)做成的半導(dǎo)體集成電路器件,它被設(shè)計(jì)在交變磁場(chǎng)中運(yùn)行,特別是能在低電源電壓和長(zhǎng)時(shí)間運(yùn)行溫度范圍可達(dá)到125℃。這種霍爾IC可用作各種類型的傳感器(速度傳感器、位移傳感器、轉(zhuǎn)速傳感器等等,接觸開關(guān)以及

相類似的應(yīng)用場(chǎng)合。其工作電壓比較寬(2.5~20V,可運(yùn)行在較大的溫度范圍內(nèi)(-20℃~125℃, 其輸出的信號(hào)符合TTL電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO 端口上,而且其最高檢測(cè)頻率可達(dá)到1MHZ。

霍爾傳感器的特性如圖3-4所示,其中BOP為工作點(diǎn)“開”的磁感應(yīng)強(qiáng)度, BRP為釋放點(diǎn)“關(guān)”的磁感應(yīng)強(qiáng)度。當(dāng)外加的磁感應(yīng)強(qiáng)度超過動(dòng)作點(diǎn)BOP時(shí),傳

感器輸出低電平,當(dāng)磁感應(yīng)強(qiáng)度降到動(dòng)作點(diǎn)BOP以下時(shí),傳感器輸出電平不變,一直要降到釋放點(diǎn)BRP時(shí),傳感器才由低電平躍變?yōu)楦唠娖健OP與BRP之間的滯后使開關(guān)動(dòng)作更為可靠。

U18集成霍耳開關(guān)由穩(wěn)壓器A、霍耳電勢(shì)發(fā)生器(即硅霍耳片B、差分放大器C、施密特觸發(fā)器D和OC門輸出E五個(gè)基本部分組成。

在輸入端輸入電壓VCC,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢(shì)發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍爾電勢(shì)差VH輸出,該VH信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn)(即Bop時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位,使三極管導(dǎo)通,此時(shí)OC門輸出端輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍爾開關(guān)完成了一次開關(guān)動(dòng)作。

圖3-4 U18霍爾傳感器和其輸出特性

U18霍爾傳感器有3個(gè)外接口,2個(gè)是電源的正負(fù)極接口,最后一個(gè)是脈沖信號(hào)輸出口,只要將霍爾傳感器的信號(hào)輸出端接到單片機(jī)的端口上便可以實(shí)現(xiàn)距離檢測(cè)。

其中,單片機(jī)的P3.2(INT0引腳作為信號(hào)的輸入端,采用外部中斷0進(jìn)行計(jì)數(shù)。車輪每轉(zhuǎn)一圈,霍爾傳感器就產(chǎn)生一個(gè)脈沖信號(hào),根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場(chǎng)中時(shí),霍爾傳感器的輸出端輸出低電平。當(dāng)車輪轉(zhuǎn)動(dòng)一圈時(shí)小磁鐵提供一個(gè)磁場(chǎng),則霍爾傳感器輸出一次低電平完成一次數(shù)據(jù)采集,從而產(chǎn)生信號(hào)。霍爾傳感器檢測(cè)并輸出信號(hào)到單片機(jī)的INT0或INT1計(jì)算脈沖輸入端, 引起單片機(jī)的中斷,對(duì)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到特定的次數(shù)時(shí),里程就會(huì)增加,單片機(jī)對(duì)里程進(jìn)行計(jì)算后,通過接口電路將計(jì)算好的結(jié)果傳送到數(shù)碼管并顯示出來。

3.3 按鍵單元

本設(shè)計(jì)的按鍵單元電路(如圖3-5有5個(gè)按鍵,功能分別是:S1是空車時(shí)查詢上次金額和里程以及等待時(shí)間,結(jié)賬時(shí)查詢本次金額和里程以及等待時(shí)間;S2功能鍵,不按時(shí)空車指示燈亮而且數(shù)碼管顯示實(shí)時(shí)時(shí)間,按下時(shí)可設(shè)置單雙程,此時(shí)再按S3可進(jìn)行單程和雙程之間切換,再按S1可確認(rèn)單雙程,雙程時(shí)雙程指示燈亮并開始計(jì)價(jià);按下S4可對(duì)本次金額、里程以及等待時(shí)間進(jìn)行查詢;S5為清零鍵,按下時(shí)清零之前數(shù)據(jù)消除以及存儲(chǔ)本次信息。

圖3-5 按鍵單元電路 3.4 時(shí)鐘單元

本設(shè)計(jì)采用基于DS1302的時(shí)鐘電路(如圖3-6對(duì)時(shí)間進(jìn)行實(shí)時(shí)顯示,單片機(jī)掉電對(duì)其沒有影響。用數(shù)碼管表現(xiàn)出來,當(dāng)出租車空車時(shí)就顯示時(shí)間,給人時(shí)間提示。

圖3-6 時(shí)鐘電路單元 3.5 顯示單元

本設(shè)計(jì)顯示單元包括兩部分:數(shù)碼管顯示(圖3-7和二極管指示顯示(圖3-8。數(shù)碼管顯示部分使用兩個(gè)四位一體的LED數(shù)碼管,LED顯示器是由LED發(fā)光二極管發(fā)展過來的一種顯示器件,是發(fā)光二極管的改型。LED是發(fā)光二極管的簡(jiǎn)稱,是一種將電能轉(zhuǎn)換成光能的設(shè)備。本身也是一種光源。LED顯示器是由發(fā)光二極管排列組成的顯示器件。它采用低電壓掃描驅(qū)動(dòng),具有:耗電少、使用壽命長(zhǎng)、成本低、故障少、視角大、可視距離遠(yuǎn)等特點(diǎn)。此外,它的響應(yīng)時(shí)間短(一般不超過0.1us,亮度也比較高。它的缺點(diǎn)是工作電流比較大,每一段的工作電流在10mA左右。

其中每位數(shù)碼管是由8個(gè)發(fā)光二極管演變而來,其中7個(gè)發(fā)光二極管構(gòu)成7筆字形,另一個(gè)構(gòu)成小數(shù)點(diǎn),稱為8段LED。8段LED數(shù)碼管是利用7個(gè)LED(發(fā)光二極管外加一個(gè)小數(shù)點(diǎn)的LED組合而成的顯示設(shè)備,可以顯示0~9等10個(gè)數(shù)字和小數(shù)點(diǎn),使用非常廣泛,它的外觀如圖3-9所示:

圖3-9 8段數(shù)碼管

這類數(shù)碼管可以分為共陽(yáng)極(8個(gè)發(fā)光二極管的陽(yáng)極接在—起與共陰極(8 個(gè)發(fā)光二極管陰極連在一起兩種,共陽(yáng)極就是把所有LED的陽(yáng)極連接到共同接點(diǎn),而每個(gè)LED的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn);共陰極則是把所有LED的陰極連接到共同接點(diǎn),而每個(gè)LED的陽(yáng)極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn),如圖3-10所示。

圖3-10 共陽(yáng)和共陰數(shù)碼管結(jié)構(gòu)

通過控制這個(gè)公共端,可使該位亮或暗。如共陰極端接地或共陽(yáng)極接高電平,則該位顯示器有效,反之無效。本設(shè)計(jì)采用共陰LED數(shù)碼管。

數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種,這里采用動(dòng)態(tài)顯示。它具有低功耗、接口少等特點(diǎn)。如圖3-7兩個(gè)四位一體數(shù)碼管接P0口作為段選,接P2口作為位選。空車時(shí)顯示時(shí)間,開始計(jì)價(jià)時(shí)前四位顯示路程,后四位顯示價(jià)錢。當(dāng)查詢等待時(shí)間時(shí)顯示為等待時(shí)間。

圖3-7顯示單元(數(shù)碼管顯示部分

二極管指示部分包括空車指示燈、等待時(shí)間查詢指示、開始計(jì)時(shí)指示和雙程指示如圖3-8。這些指示燈能對(duì)出租車的每一種狀態(tài)進(jìn)行指示,空車時(shí)空車指示燈亮,查詢等待時(shí)間時(shí)等待時(shí)間查詢指示燈亮,當(dāng)汽車速度小于5km/h 時(shí)開始計(jì)時(shí),計(jì)時(shí)指示燈亮。計(jì)價(jià)前如果按下雙程鍵雙程指示燈亮,表示為雙程。

圖3-8 顯示單元(二極管指示部分 3.6 儲(chǔ)存單元

存儲(chǔ)單元的作用是儲(chǔ)存上一次的里程、金額和等待時(shí)間。AT24C02 是Atmel 公司的1KB的電可擦除存儲(chǔ)芯片,采用兩線串行的總線和單片機(jī)通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10uA(5.5V,芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8 腳的DIP 封裝,使用方便。

圖3-11儲(chǔ)存單元電路

圖中R3、R4 是上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗。由于AT24C02的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(時(shí)鐘脈沖和SDA(數(shù)據(jù)/地址與單片機(jī)P3.3和P3.4口連接,進(jìn)行傳送數(shù)據(jù)。軟件設(shè)計(jì)

本系統(tǒng)的軟件設(shè)計(jì)主要分為系統(tǒng)主程序、數(shù)據(jù)處理子程序、等待時(shí)間及時(shí)子程序和鍵盤掃描子程序五個(gè)模塊,下面對(duì)每一塊進(jìn)行介紹。

4.1 系統(tǒng)主程序

本設(shè)計(jì)中,軟件設(shè)計(jì)采用模塊化操作,利用各個(gè)模塊之間的相互聯(lián)系,在設(shè)計(jì)中采用主程序調(diào)用各個(gè)子程序的方法,使程序通俗易懂,我們?cè)O(shè)計(jì)了整體程序流程圖。

在main函數(shù)編寫開始,要進(jìn)行初始化,包括對(duì)系統(tǒng)初始化和對(duì)硬件設(shè)備進(jìn)行初始化,并使硬件處于就緒狀態(tài)。

在主程序模塊中,需要完成對(duì)各接口芯片的初始化、出租車起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。系統(tǒng)流程圖如下圖4-1。

開始 初始化 數(shù)據(jù)處理 鍵盤掃描 結(jié)束

圖4-1系統(tǒng)主程序流程圖 4.2 數(shù)據(jù)處理子程序

每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,在計(jì)數(shù)中斷服務(wù)程序,里程和金額都相應(yīng)變化,當(dāng)然等待時(shí)間也換算成里程(當(dāng)速度小于5km/h 時(shí)5分鐘想當(dāng)于1公里。計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:金額=(里程-3*單價(jià)+5;否則,執(zhí)行公式:總金額=起步價(jià)。程序流程圖如圖4-2所示。

計(jì)算里程 開始

里程<3公里否是

金額=5元金額=單價(jià)*(里程-3+5 顯示金額

結(jié)束

圖4-2 數(shù)據(jù)處理子程序流程圖 4.3 等待時(shí)間計(jì)時(shí)子程序

當(dāng)出租車的速度5km/h時(shí)等待時(shí)間開始計(jì)時(shí),并被換算里程,進(jìn)行計(jì)算顯示等待時(shí)間和金額。當(dāng)結(jié)算時(shí)停止計(jì)時(shí)和計(jì)費(fèi)并顯示金額,當(dāng)有查詢鍵按下時(shí)顯示等待時(shí)間,當(dāng)有清零鍵按下時(shí)存儲(chǔ)本次金額。如圖4-3: 開始

結(jié)算鍵按下?Speed<5公里/ 小時(shí)?開始計(jì)時(shí),并顯示Speed>5公里/ 小時(shí)?停止計(jì)時(shí),開始計(jì) 路程 否 是

停止計(jì)時(shí),計(jì)費(fèi),顯示金額 查詢鍵按下? 存儲(chǔ)本次金額 是清零鍵按下? 是 否

顯示等待時(shí)間

圖4-3等待時(shí)間計(jì)時(shí)子程序 4.4 鍵盤掃描子程序

鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦右按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。流程圖如圖4-4。

開始 功能鍵按下? 單雙程設(shè)置 切換鍵按下? 切換單雙程 確認(rèn)鍵按下? 空車指示滅,開始計(jì)價(jià)計(jì)時(shí),顯示里 程,價(jià)格 結(jié)算鍵按下? 結(jié)算金額顯示 是 是 是 是

否 顯示時(shí)間 否 否 否

查詢鍵按下? 顯示等待時(shí)間與里 程

清零鍵按下?存儲(chǔ)金額 是 否 是否 按下兩次? 是

查詢鍵按下? 顯示上次金額 是

圖4-4 鍵盤掃描子程序 5 Proteus軟件仿真

本設(shè)計(jì)需要用Keil uVision3對(duì)C51程序進(jìn)行編譯,生成“.hex”文件,如圖5-1 :

圖5-1 Keil uVision3編譯

在Proteus軟件中畫出仿真電路(如圖5-2,把Keil uVision3編譯后生成的“.hex”導(dǎo)入到單片機(jī)中,按“運(yùn)行仿真”鍵進(jìn)行仿真。

圖5-2Proteus仿真 總結(jié)

總結(jié)在本次設(shè)計(jì)中,我們采用AT89S52芯片為核心器件,設(shè)計(jì)出了簡(jiǎn)單的出租車計(jì)價(jià)器,能夠?qū)崿F(xiàn)顯示時(shí)間、等待時(shí)間、金額和里程,按鍵控制,空車指示。

選題后,我們便開始復(fù)習(xí)單片機(jī)方面的知識(shí),也查閱、搜索了很多相關(guān)資料,進(jìn)行總體設(shè)計(jì)與具體設(shè)計(jì),同時(shí)也學(xué)習(xí)仿真軟件Proteus和編程軟件Keil uVision3。由于以前都采用匯編語(yǔ)言實(shí)現(xiàn)編程,對(duì)用C語(yǔ)言來實(shí)現(xiàn)單片機(jī)的編程不太習(xí)慣,花費(fèi)了一些時(shí)間來熟悉C語(yǔ)言的編程。在設(shè)計(jì)開始,要形成流程圖,它可以使設(shè)計(jì)有一定的邏輯性與嚴(yán)密性,使得設(shè)計(jì)思路明確。采用模塊化的設(shè)計(jì)思想很重要,它方便編寫、修改與調(diào)試,另外加上必要的注釋,便于交流與理解。

這次課程設(shè)計(jì)設(shè)計(jì)完成后,體會(huì)頗多,在學(xué)與做的過程中,取長(zhǎng)補(bǔ)短,不斷學(xué)習(xí)新的知識(shí),吸取經(jīng)驗(yàn),達(dá)到進(jìn)步的目的。通過自身的努力以及相關(guān)圖書資料的幫助,逐漸熟

悉了Keil uVision3、PROTEUS和C語(yǔ)言等軟件的使用以及硬件焊接與檢測(cè)過程中的一些小技巧。本次設(shè)計(jì)我學(xué)習(xí)到不少單片機(jī)的知識(shí),但由于自己的理論知識(shí)水平有限,實(shí)踐知識(shí)和設(shè)計(jì)經(jīng)驗(yàn)不足,在設(shè)計(jì)過程中難免存在一些問題。所焊實(shí)物尚有許多不足,個(gè)別功能還不能很好的實(shí)現(xiàn),主要原因是考慮問題不周全,電路設(shè)計(jì)經(jīng)驗(yàn)少,實(shí)際動(dòng)手能力不足。懇請(qǐng)各位老師批評(píng)指正,以使我在以后的學(xué)習(xí)和實(shí)踐中加以改進(jìn)和提高。

致謝

畢業(yè)設(shè)計(jì)即將結(jié)束,在老師的指導(dǎo)和同學(xué)的幫助之下,學(xué)生對(duì)于出租車計(jì)價(jià)器設(shè)計(jì)有了更多新的認(rèn)知,對(duì)出租車計(jì)價(jià)器設(shè)計(jì)有了更深一步的認(rèn)識(shí),對(duì)出租車計(jì)價(jià)器綜合設(shè)計(jì)的整體脈絡(luò)了解得更加的清晰透徹。通過畢業(yè)設(shè)計(jì),學(xué)生對(duì)自己三年以來所學(xué)的知識(shí)有更多的認(rèn)識(shí)。

畢業(yè)設(shè)計(jì),幫助我們總結(jié)大學(xué)的收獲、認(rèn)清自我。同時(shí),還幫助我們改變一些處理事情時(shí)懶散的習(xí)慣。從最開始時(shí)的搜集資料,整理資料,到方案比選,確定方案,再到著手開始設(shè)計(jì),每一步都是環(huán)環(huán)相扣,銜接緊密,其中任何一個(gè)步驟產(chǎn)生遺漏或者疏忽,就會(huì)對(duì)以后的設(shè)計(jì)帶來很多的不便。

本次作者的畢業(yè)設(shè)計(jì)是由徐老師指導(dǎo)的,在他的悉心指導(dǎo)下,我開闊了眼界,明確了思路。在整個(gè)的設(shè)計(jì)過程中,徐老師提出了許多寶貴的建議和指導(dǎo),使我能夠順利的完成整個(gè)設(shè)計(jì),在此,謹(jǐn)向徐老師表示由衷的感謝。

在即將離開學(xué)校之際,我要感謝在大學(xué)生活中任課的眾多老師,正是在他們的諄諄教誨下使我順利完成了大學(xué)的基礎(chǔ)知識(shí)和專業(yè)知識(shí)的學(xué)習(xí)。在此,還要感謝陪伴我共同走過大學(xué)時(shí)代并給予我?guī)椭耐瑢W(xué)和朋友們,感謝你們,祝福你們?cè)谝院蟮娜兆永镩_開心心的度過每一天!參考文獻(xiàn)

1.戴佳, 陳斌, 苗龍.51單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例.中國(guó)電力出版社,2005

2.余發(fā)山,王福忠.單片機(jī)原理及應(yīng)用技術(shù).中國(guó)礦業(yè)大學(xué)出版社, 2008.6 3.侯玉寶, 陳忠平, 李成群.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真.電子工業(yè)出版社,2008 4.李玉梅.基于MCS-51系列單片機(jī)原理的應(yīng)用設(shè)計(jì).國(guó)防工業(yè)出版社,2006 5.邊春元, 李文濤, 江杰.C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用.機(jī)械工業(yè)出版社,2008 6.樓然苗,胡佳文,李光飛等.單片機(jī)實(shí)驗(yàn)與課程設(shè)計(jì).浙江大學(xué)出版社,2010.10 常州機(jī)電職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)報(bào)告 附

1、系統(tǒng)原理圖、25

下載基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告(★)word格式文檔
下載基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告(★).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    出租車計(jì)價(jià)器設(shè)計(jì)范文

    平頂山工業(yè)職業(yè)技術(shù)學(xué)院 目錄 目錄 .....................................................................................................................................

    出租車計(jì)價(jià)器(范文大全)

    基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì) 摘要 出租車計(jì)價(jià)器的數(shù)字系統(tǒng)的設(shè)計(jì)正是基于一些專用的芯片,才發(fā)揮其有效特性,從而實(shí)現(xiàn)出租車的計(jì)價(jià)功能。此數(shù)字系統(tǒng)主要分為三個(gè)單元,即里程計(jì)......

    出租車計(jì)價(jià)器調(diào)試報(bào)告

    出租車計(jì)價(jià)器調(diào)試報(bào)告 本設(shè)計(jì)可分為單片機(jī)主控模塊、鍵盤、顯示器、溫度檢測(cè)、狀態(tài)指示、時(shí)鐘日歷、語(yǔ)音收錄播報(bào)、分頻器電路、脈沖信號(hào)發(fā)生器等9部分。仔細(xì)分析系統(tǒng)的工作......

    出租車計(jì)價(jià)器 硬件課程設(shè)計(jì)

    硬件課程設(shè)計(jì)報(bào)告 題目:出租車計(jì)價(jià)器 目錄 1. 引言 ........................................................................................................................

    出租車計(jì)價(jià)器畢業(yè)論文附錄

    北京信息科技大學(xué) 畢業(yè)設(shè)計(jì)(論文)附錄 題 目:學(xué) 院: 專 業(yè):學(xué)生姓名: 班級(jí)/學(xué)號(hào) 指導(dǎo)老師/督導(dǎo)老師:起止時(shí)間:2012 年 月 日 至 2012 年 月 日 目錄 附件1 原理圖·······......

    出租車計(jì)價(jià)器信息(精選5篇)

    霍市質(zhì)監(jiān)局集中對(duì)全市出租車計(jì)價(jià)器進(jìn)行安裝檢定 切實(shí)規(guī)范運(yùn)營(yíng)行為近期,霍市質(zhì)監(jiān)局下屬檢測(cè)中心對(duì)全市范圍內(nèi)具有交通主管部門頒發(fā)經(jīng)營(yíng)許可證的500余輛出租車計(jì)價(jià)器進(jìn)行統(tǒng)一......

    出租車計(jì)價(jià)器課程設(shè)計(jì)2

    出租車計(jì)價(jià)器課程設(shè)計(jì) 目錄 前言 1、 系統(tǒng)工作原理 1.1 功能說明 1.2 基本原理 2、 硬件設(shè)計(jì) 2.1 單片機(jī)最小系統(tǒng)單元 2.2 A44E霍爾傳感器檢測(cè)單元 2.3 AT24C01存儲(chǔ)單元 2.......

    畢業(yè)設(shè)計(jì)開題報(bào)告(出租車計(jì)價(jià)器).(精選5篇)

    畢業(yè)設(shè)計(jì)開題報(bào)告 題 目 新型出租車計(jì)價(jià)器控制電路設(shè)計(jì) 姓 名 牛敏 學(xué) 號(hào) 120433322 專 業(yè) 班 級(jí) 電氣 123 指 導(dǎo) 老 師 黃俊梅 電子工程系電氣自動(dòng)化教研室 2014年 12月 2......

主站蜘蛛池模板: 国产亚洲人成网站在线观看| 国产亚洲精品福利在线无卡一| 推油少妇久久99久久99久久| 国产极品美女到高潮| 亚洲a∨国产av综合av| 成在人线av无码免费看网站直播| 国产小呦泬泬99精品| 2018国产精华国产精品| 亚洲精品一区二区三区精品| 精品国产sm捆绑最大网免费站| 亚洲精品无码av专区最新| 八个少妇沟厕小便漂亮各种大屁股| 日韩精品乱码av一区二区| 特级毛片爽www免费版| 国产精品亚洲综合色区韩国| 欧美熟妇另类久久久久久多毛| 亚洲自偷自拍另类12p| 动漫人妻无码精品专区综合网| 午夜精品一区二区三区免费视频| 无码人妻精品一二三区免费| 丰满的熟妇岳中文字幕| 波多野美乳人妻hd电影欧美| 无遮掩60分钟从头啪到尾| 人妻精品动漫h无码专区| 欧美成人影院亚洲综合图| 久久综合色鬼综合色| 真人做人试看60分钟免费视频| 中文字幕亚洲一区二区va在线| 亚洲日韩一中文字暮av| 国产成人高清精品免费| 亚洲 日韩 欧美 有码 在线| 无码人妻久久一区二区三区蜜桃| 狠狠色婷婷丁香综合久久韩国电影| 国精产品一二三区传媒公司| 久久久久爽爽爽爽一区老女人| 国内精品自线在拍2020不卡| 欧洲精品免费一区二区三区| 搡女人真爽免费视频大全| 一区二区精品视频日本| 少妇的渴望hd高清在线播放| 中文亚洲av片在线观看|