加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)

09/04 09:11
1278
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
    • 引言
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

引言

在科學(xué)技術(shù)和經(jīng)濟(jì)水平快速發(fā)展的21世紀(jì),乘坐出租車和網(wǎng)約車出行已經(jīng)成為一種非常重要的交通出行方式。行業(yè)的轉(zhuǎn)型發(fā)展讓出租車行業(yè)迎來了一場新紀(jì)元。但是在出租車行業(yè)迅速發(fā)展的同時(shí),也出現(xiàn)了很多問題。經(jīng)營管理不善,司機(jī)服務(wù)不規(guī)范,隨意定價(jià)收款的現(xiàn)象也是層出不窮。為了根治這種現(xiàn)象,出租車計(jì)價(jià)器孕育而生。出租車計(jì)價(jià)器的問世不僅減少了行業(yè)的亂象,而且讓管理者和經(jīng)營者更加誠信的服務(wù)乘客,在很大程度上改善了行業(yè)風(fēng)氣。

但是目前國內(nèi)廣泛使用的出租車計(jì)價(jià)器功能單一,不能滿足人們的需求,人們更致力于一種功能齊全,生產(chǎn)成本低的出租車計(jì)價(jià)器。伴隨著科技水平的提高,出租車計(jì)價(jià)器也迎來了新的變革,這時(shí)第二代出租車計(jì)價(jià)器問世了。

設(shè)計(jì)選用宏晶公司生產(chǎn)的STC89C52單片機(jī),加上外圍芯片,設(shè)計(jì)出一個(gè)性能穩(wěn)定,實(shí)用性強(qiáng)的出租車計(jì)價(jià)器。電路主要由測速模塊、時(shí)鐘模塊、測溫模塊組成。設(shè)計(jì)出功能齊全、實(shí)用性強(qiáng)的出租車計(jì)價(jià)器。此設(shè)計(jì)能夠?qū)崿F(xiàn)計(jì)價(jià)器的各項(xiàng)功能要求,使用適當(dāng)?shù)慕涌谧鳛檩斎溯敵鐾ǖ?實(shí)現(xiàn)對電機(jī)驅(qū)動(dòng)模塊的運(yùn)行控制,以達(dá)到對出租車各項(xiàng)性能指標(biāo)的測量,具有很大的市場前景以及開發(fā)空間。

  1. 系統(tǒng)概述
    1. 設(shè)計(jì)要求

運(yùn)用所學(xué)的知識(shí)和專業(yè)技能,以STC89C52系列單片機(jī)為核心設(shè)計(jì)一個(gè)簡易的出租車計(jì)價(jià)器系統(tǒng),實(shí)現(xiàn)出租車計(jì)價(jià)器的穩(wěn)定運(yùn)行。用霍爾傳感器測速測量出租車的實(shí)時(shí)速度,用延時(shí)實(shí)現(xiàn)調(diào)速功能。設(shè)計(jì)的出租車計(jì)價(jià)器還需具有顯示時(shí)鐘和測量溫度的功能,并且能夠自動(dòng)計(jì)算費(fèi)用、設(shè)置起步價(jià)、設(shè)置每公里價(jià)格。設(shè)計(jì)選用STC89C52單片機(jī)作為控制器,自帶AD轉(zhuǎn)換,當(dāng)一邊有按鍵按下時(shí),另一邊以數(shù)字的形式在LCD12864顯示屏上顯示出相應(yīng)的車速、溫度、時(shí)間以及總價(jià)。

(1)能夠設(shè)置起步價(jià),每公里價(jià)格;

(2)能夠測量出出租車的速度并顯示;

(3)自動(dòng)計(jì)算總費(fèi)用;

(4)具有時(shí)鐘和溫度測量功能。

    1. 總體設(shè)計(jì)

總體設(shè)計(jì)框圖如圖1-1所示,設(shè)計(jì)主要由單片機(jī)模塊,按鍵控制模塊和LCD12864顯示模塊組成,它們的作用分別為:

單片機(jī)模塊:數(shù)據(jù)輸入輸出的處理。

按鍵模塊:通過按鍵處理,將相關(guān)操作指令傳送至單片機(jī)處理。

顯示模塊:用LCD12864顯示屏顯示出租車計(jì)價(jià)器的各項(xiàng)性能指標(biāo),顯示當(dāng)前車速、溫度、總費(fèi)用、起步價(jià)、每公里價(jià)格等功能。起步價(jià)和每公里價(jià)格也能通過按鍵進(jìn)行設(shè)置并且顯示過程。

其中單片機(jī)模塊包括測速模塊、RESET模塊、ds1302S時(shí)鐘模塊、測溫模塊。通過單片機(jī)內(nèi)部轉(zhuǎn)換后在LCD12864顯示屏上顯示出相關(guān)信息。再按下按鍵使電機(jī)開始轉(zhuǎn)動(dòng),通過延時(shí)進(jìn)行調(diào)速,再通過霍爾傳感器模塊進(jìn)行測速并通過顯示模塊在LCD12864上顯示出當(dāng)前的車速。設(shè)置了復(fù)位按鍵,按下復(fù)位按鍵時(shí)出租車計(jì)價(jià)器系統(tǒng)重置至初始狀態(tài)。設(shè)有時(shí)鐘模塊將時(shí)間通過LCD12864顯示屏顯示出來。

2?系統(tǒng)設(shè)計(jì)的整體方案

2.1主控芯片的方案論證

方案一:51系列單片機(jī)

采用STC89C52作為主控芯片,管腳圖如圖2-1所示。51單片機(jī)的系統(tǒng)指令,內(nèi)部結(jié)構(gòu)相對簡單。同時(shí)51單片機(jī)的I/O腳的設(shè)計(jì)和使用非常簡單,指令系統(tǒng)規(guī)范。

方案二:PIC系列單片機(jī)

采用PIC系列為核心控制器。PIC單片機(jī)將各種輸入輸出的接口都集成在一塊芯片上,它較適合應(yīng)用在功能單一的設(shè)計(jì)中。

綜上所述,根據(jù)在校所學(xué)以及掌握的理論知識(shí),對51系列單片機(jī)的掌握更為熟練,同時(shí)價(jià)格也更為便宜的。51系列的單片機(jī)適用于相對簡單較為容易實(shí)現(xiàn)的電路。51系列單片機(jī)比PIC系列單片機(jī)更容易實(shí)現(xiàn)設(shè)計(jì)要求,因此選擇使用方案一設(shè)計(jì)。

圖2-1 STC89C52管腳圖

2.2?顯示模塊的方案論證

方案一:LED數(shù)碼管

采用LED數(shù)碼管為顯示模塊。數(shù)碼管能夠顯示的內(nèi)容單一,受到一些產(chǎn)品品質(zhì)要求和影響,不能做很小和顯示內(nèi)容很多的產(chǎn)品。數(shù)碼管厚大笨重,占用產(chǎn)品結(jié)構(gòu)尺寸較大,同時(shí)數(shù)碼管的消耗電力大,數(shù)碼管不同于液晶產(chǎn)品,受到視角限制,數(shù)碼管屬于全視角的產(chǎn)品。

方案二:LCD12864顯示屏

采用LCD12864為顯示模塊。LCD12864顯示屏具有功耗低的特點(diǎn),液晶分子由電壓驅(qū)動(dòng),液晶屏基本不用耗電。但由于液晶分子的扭曲特性,導(dǎo)致液晶屏視角上有偏差,只能有一個(gè)方向的視角是非常清楚的。LCD液晶顯示屏在玻璃中間刻畫線路和灌注液晶,可以做到高精度的操作,顯示內(nèi)容多樣化,顯示顏色也多姿多彩。LCD12864管腳圖如圖2-2所示。

綜上所述,再結(jié)合出租車計(jì)價(jià)器的設(shè)計(jì)要求,選擇LCD顯示屏作為設(shè)計(jì)的顯示模塊。因?yàn)樵O(shè)計(jì)需要實(shí)現(xiàn)的功能較多,LED數(shù)碼管能夠顯示的的內(nèi)容單一,選用LED數(shù)碼管,無法滿足設(shè)計(jì)的顯示需要。相反LCD12864顯示屏具有顯示多樣化,可承載的內(nèi)容多,可以做到高精度的操作。綜上所述,顯示模塊采用方案二設(shè)計(jì)。

圖2-2 LCD12864管腳圖

2.3電動(dòng)機(jī)的方案論證

方案一:直流電機(jī)

采用直流電機(jī)為動(dòng)力元件。安裝較為簡單,價(jià)格較為便宜。在給定的負(fù)載條件下,可以根據(jù)設(shè)計(jì)需要人為改變電機(jī)轉(zhuǎn)速,更加有利于出租車計(jì)價(jià)器調(diào)速測速功能的實(shí)現(xiàn)。

方案二:步進(jìn)電機(jī)

采用步進(jìn)電機(jī)為動(dòng)力元件。步進(jìn)電機(jī)不會(huì)以連續(xù)的方式旋轉(zhuǎn),而是以離散的步長或增量移動(dòng),不適合模擬出租車的運(yùn)行速度。步進(jìn)電機(jī)適用于對精度要求大的設(shè)計(jì)。

綜上所述,由于本設(shè)計(jì)需要穩(wěn)定的改變速度,同時(shí)速度變化較大。另一方面直流電機(jī)較為便宜,因此設(shè)計(jì)選擇方案一,用直流電機(jī)作為電動(dòng)機(jī)。

2.4??電機(jī)驅(qū)動(dòng)模塊的方案論證

方案一:L298N驅(qū)動(dòng)

采用L298N電機(jī)驅(qū)動(dòng)為控制器。如果改變輸入,能夠?qū)崿F(xiàn)電機(jī)的轉(zhuǎn)向。更適用于模擬小車行駛。它擁有雙通道輸出,A輸出和B輸出,可以實(shí)現(xiàn)兩路電機(jī)進(jìn)行不同的控制與操作。

方案二:ULN2003驅(qū)動(dòng)

采用ULN2003芯片作為控制器。ULN2003能夠承受高壓,內(nèi)部是非門,輸入與輸出是相反的。它的電壓增益高,溫度范圍寬。在工作時(shí)電壓高。

綜上所述,電機(jī)選用5V直流電機(jī),設(shè)計(jì)只需要用電機(jī)模擬車輪轉(zhuǎn)動(dòng),對電機(jī)的控制與操作要求低。用ULN2003驅(qū)動(dòng)較為簡單,更容易實(shí)現(xiàn)要求,因此選用ULN2003驅(qū)動(dòng)作為本次設(shè)計(jì)的電機(jī)驅(qū)動(dòng)模塊。

3??測速模塊的方案論證

方案一:霍爾傳感器測速

采用霍爾傳感器測速?;魻杺鞲衅骶哂蝎@取信息準(zhǔn)確、體積小、測量范圍廣、精度高等優(yōu)點(diǎn)。霍爾傳感器對環(huán)境的要求低,同時(shí)結(jié)構(gòu)簡單。但是該方案利用線圈切割磁感線產(chǎn)生感應(yīng)電動(dòng)勢,易受到電磁波干擾。

方案二:采用光電式轉(zhuǎn)速傳感器,

采用光電式測速。主要原理是將光信號(hào)轉(zhuǎn)化為電信號(hào)。它獲取信息準(zhǔn)確,但對環(huán)境的要求較高,容易受到環(huán)境中的光干擾。

綜上所述,由于光電轉(zhuǎn)速傳感器對環(huán)境的要求較大同時(shí)需要光源才能進(jìn)行測速,相反霍爾傳感器測速對環(huán)境要求較低,結(jié)構(gòu)簡單,再加上學(xué)習(xí)過霍爾傳感器的相關(guān)理論知識(shí),對霍爾傳感器掌握程度遠(yuǎn)高于光電式轉(zhuǎn)速傳感器。因此選用霍爾傳感器作為設(shè)計(jì)的測速模塊。

  1. 系統(tǒng)硬件電路設(shè)計(jì)
    1. 單片機(jī)最小系統(tǒng)的電路設(shè)計(jì)
      1. STC89C52芯片模塊電路設(shè)計(jì)

依據(jù)所選的方案,選用STC89C52作為出租車計(jì)價(jià)器的主控芯片,利用STC89C52的各個(gè)端口,實(shí)現(xiàn)設(shè)計(jì)所需要的各個(gè)功能。單片機(jī)端口可以控制顯示模塊、驅(qū)動(dòng)電機(jī)模塊、溫度傳感器模塊、霍爾傳感器模塊以及DS1302時(shí)鐘模塊,還能控制各個(gè)按鍵的功能。設(shè)計(jì)使用單片機(jī)的P10,P11接口和直流電機(jī)驅(qū)動(dòng)模塊相連。使用P37接口與溫度傳感器模塊相連。使用P12,P13,P14接口連接K1,K2,K3按鍵。用P32接口連接霍爾傳感器模塊。用P20,P21,P22接口連接DS1302時(shí)鐘芯片。P9接口連接復(fù)位電路。P18,P19接口連接晶振電路。電路設(shè)計(jì)簡單,STC89C52芯片模塊電路設(shè)計(jì)如圖3-1所示。

圖3-1 STC89C52電路設(shè)計(jì)圖

3.1.2?系統(tǒng)晶振電路設(shè)計(jì)

晶振電路能夠產(chǎn)生和時(shí)鐘一樣準(zhǔn)確的振蕩電路,產(chǎn)生時(shí)鐘脈沖信號(hào),用于控制單片機(jī)程序執(zhí)行的節(jié)拍和時(shí)序。Y1兩端接入單片機(jī)的XTAL1和XTAL2,接入兩個(gè)大小為30PF的電容。晶振電路設(shè)計(jì)如圖3-2所示。

圖3-2 晶振電路設(shè)計(jì)圖

3.1.3?復(fù)位電路設(shè)計(jì)

使用單片機(jī)的RST接口連接復(fù)位電路,設(shè)計(jì)的復(fù)位電路由10uF的電容和10k的電阻接入RESET按鍵組成復(fù)位電路,設(shè)計(jì)如圖3-3所示。

圖3-3 復(fù)位電路設(shè)計(jì)圖

???????3.1.4?電源電路設(shè)計(jì)

本設(shè)計(jì)采用經(jīng)典的5V電源供電,為單片機(jī)提供電源,保障單片機(jī)工作電壓的溫度。電源電路設(shè)計(jì)如圖3-4所示。

???????3.2?按鍵控制電路設(shè)計(jì)

根據(jù)設(shè)計(jì)功能要求,設(shè)置三個(gè)控制按鍵,分別命名K1、K2、K3。利用單片機(jī)的P12,P13,P14接口實(shí)現(xiàn)對出租車計(jì)價(jià)器設(shè)計(jì)的各個(gè)功能要求。通過編寫軟件代碼,當(dāng)通電時(shí),初始狀態(tài)為空車,初始狀態(tài)會(huì)顯示時(shí)鐘和溫度。按下K2按鍵可以驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),通過延時(shí)實(shí)現(xiàn)調(diào)速,再長按K2實(shí)現(xiàn)加速,長按K3實(shí)現(xiàn)減速。在電機(jī)轉(zhuǎn)動(dòng)的同時(shí)可以利用霍爾傳感器測速,并且將速度顯示在LCD12864顯示屏上,這就實(shí)現(xiàn)了出租車計(jì)價(jià)器的測速并且顯示的功能。按下K1按鍵進(jìn)入乘客已上車界面,在電機(jī)轉(zhuǎn)動(dòng)的同時(shí)進(jìn)行測速,自動(dòng)計(jì)算總費(fèi)用并且將費(fèi)用顯示在LCD12864顯示屏上。再次按下K1按鍵進(jìn)入乘客已下車界面并且顯示總費(fèi)用。再按下K1將進(jìn)入設(shè)置起步價(jià)的界面按下K2起步價(jià)加1,按下K3起步價(jià)減1,設(shè)置完起步價(jià)后按下K1保存退出,這樣就實(shí)現(xiàn)了設(shè)置起步價(jià)的功能。繼續(xù)按下K1進(jìn)入設(shè)置每公里價(jià)格界面,按K2加一,按K3減一。設(shè)置完成后按下K1保存退出。按鍵控制電路設(shè)計(jì)如圖3-5所示。

圖3-5 按鍵控制電路設(shè)計(jì)

3.3 顯示電路設(shè)計(jì)

根據(jù)設(shè)計(jì)的性能要求,設(shè)計(jì)了顯示燈電路設(shè)計(jì),顯示燈電路由1K電阻R4和LED燈組成,當(dāng)出租車超速時(shí),紅燈亮起提示超速。顯示電路設(shè)計(jì)如圖3-6所示。

系統(tǒng)設(shè)計(jì)采用ULN2003模塊作為電機(jī)的驅(qū)動(dòng)模塊。ULN2003由七個(gè)NPN組成,如果直接用芯片的管腳驅(qū)動(dòng)直流電機(jī)的話會(huì)使直流電機(jī)燒壞或者無法驅(qū)動(dòng)。IN1-IN7是輸入接口,OUT1-OUT7是輸出接口。其內(nèi)部是一個(gè)非門,輸入與輸出相反,ULN2003芯片不能直接輸出高電平,需在外部接入上拉電阻,但是設(shè)計(jì)沒有采用接入上拉電阻的方案。因此設(shè)計(jì)的電機(jī)電路在COM公共端接高電平,IN1輸入通道連接單片機(jī)的P10接口接入高電平信號(hào),IN2輸入通道連接單片機(jī)P11接口,OUT1輸出通道輸出低電平,這樣就能完成對電機(jī)的驅(qū)動(dòng),設(shè)計(jì)的電路圖如圖3-7所示。

圖3-7 直流電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)圖

4 系統(tǒng)軟件設(shè)計(jì)

4.1主函數(shù)軟件設(shè)計(jì)

系統(tǒng)需要使用到一下五種模式:無乘客、乘客以上車、乘客已下車、設(shè)置起步價(jià)、設(shè)置每公里價(jià)格。系統(tǒng)主函數(shù)程序設(shè)計(jì)流程如圖4-1所示。前三個(gè)模式下操作基本相同,模式一的基本參數(shù)比模式二和模式三少,因?yàn)楹竺鎯煞N模式涉及到計(jì)算公里數(shù)和總價(jià)等等參數(shù)?;緟?shù)包括溫度、時(shí)間、起步價(jià)、是否有乘客乘坐或乘客上下車狀態(tài)。以上所有模式按下K1都是切換到下一個(gè)模式,區(qū)別不同的是前三種模式下K2和K3是用于調(diào)速使用,后兩種模式是用于調(diào)節(jié)價(jià)格。初始化系統(tǒng)采集時(shí)鐘參數(shù)采集溫度參數(shù)顯示基本參數(shù),接到乘客開始計(jì)費(fèi),乘客下車設(shè)置下一次起步價(jià)和設(shè)置下一次每公里價(jià)格。

部分程序:

#include "lcd12864.h"

#include "pwm.h"

#include "ds1302.h"

#include "key.h"

#include "ds18b20.h"

sbit MOTER=P1^0;

sbit LED=P1^1;

u8 t=0;

u8 key_value=0;

u8 flag=0;

u8 Ttemp_value=0;

u8 PF=5;

u8 duty=0;

u8 time=0;

float zprice=0;

void show_base();

void flagzero();

void flagone();

void flagtwo();

void flagthree();

void getandshow();

void main()

{

lcd12864_init();

ds18b20_init();

PWM_Init();

Exter0_Init();

Timer1_Init();

//???? ds1302_init();

while(1)

{

if(flag==0)?? flagzero();

else if(flag==1)? flagone();

else if(flag==2)? flagtwo();

else if(flag==3)? flagthree();

}

}

void flagzero()

{

u8 flag0key=0;

zprice=0;

duty=0;

MOTER=0;

TR0=0;

show_base();

lcd12864_show_string(4,1,"乘客未上車!");

while(flag==0)

{

if(t==255)??? getandshow();

flag0key=key_scan(0);

if(flag0key==1)? flag++;

else if(flag0key==2&&duty<=90)

{

duty+=10;

}

else if(flag0key==3&&duty>=10)

{

duty-=10;

}

if(duty>=time)??? MOTER=1;

else MOTER=0;

if(duty>=80)

{

LED=1;

}

else

{

LED=0;

}

t++;

}

lcd12864_clear();

}

void flagone()

{

u8 flag1key=0;

MOTER=0;

duty=0;

TR0=0;

show_base();

lcd12864_show_string(4,1,"乘客已上車!");

while(flag==1)

{

if(t==255)??? getandshow();

flag1key=key_scan(0);

if(flag1key==1)? flag++;

else if(flag1key==2&&duty<=90)

{

duty+=10;

}

else if(flag1key==3&&duty>=10)

{

duty-=10;

}

if(duty>=time)??? MOTER=1;

else MOTER=0;

if(duty>=80)

{

LED=1;

}

else

{

LED=0;

}

t++;

}

lcd12864_clear();

}

void flagtwo()

{

u8 flag2key=0;

MOTER=0;

duty=0;

LED=0;

TR0=0;

show_base();

lcd12864_show_string(4,1,"乘客已到達(dá)!");

while(flag==2)

{

if(t==255)??? getandshow();

flag2key=key_scan(0);

if(flag2key==1)? flag++;

t++;

}

lcd12864_clear();

}

內(nèi)容包括:

需要完整的資料可在我的資源里下載,也可以加入我的紛傳圈子,里面有資源壓縮包的百度網(wǎng)盤下載地址及提取碼。

紛傳點(diǎn)擊用微信打開即可,過程有點(diǎn)繁瑣請見諒。

  • 有需要資料的可了解一下.docx

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
LAN8710AI-EZK-ABC 1 Microchip Technology Inc Ethernet Transceiver

ECAD模型

下載ECAD模型
$1.54 查看
DS2431P+ 1 Maxim Integrated Products EEPROM, 1KX1, Serial, CMOS, PDSO6, ROHS COMPLIANT, TSOC-6
$5.42 查看
HFBR-1528Z 1 Foxconn Transmitter, 635nm Min, 622nm Max, 10Mbps, Through Hole Mount, ROHS COMPLIANT PACKAGE
$19.34 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜