加入星計劃,您可以享受以下權(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ī)的出租車計價器的設(shè)計

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

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

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎ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ā)展的同時,也出現(xiàn)了很多問題。經(jīng)營管理不善,司機(jī)服務(wù)不規(guī)范,隨意定價收款的現(xiàn)象也是層出不窮。為了根治這種現(xiàn)象,出租車計價器孕育而生。出租車計價器的問世不僅減少了行業(yè)的亂象,而且讓管理者和經(jīng)營者更加誠信的服務(wù)乘客,在很大程度上改善了行業(yè)風(fēng)氣。

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

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

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

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

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

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

(3)自動計算總費用;

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

    1. 總體設(shè)計

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

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

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

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

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

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

2.1主控芯片的方案論證

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

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

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

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

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

圖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ù)碼管不同于液晶產(chǎn)品,受到視角限制,數(shù)碼管屬于全視角的產(chǎn)品。

方案二:LCD12864顯示屏

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

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

圖2-2 LCD12864管腳圖

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

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

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

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

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

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

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

方案一:L298N驅(qū)動

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

方案二:ULN2003驅(qū)動

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

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

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

方案一:霍爾傳感器測速

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.3 顯示電路設(shè)計

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

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

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

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

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

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

部分程序:

#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)盤下載地址及提取碼。

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

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
FOD4208V 1 Fairchild Semiconductor Corporation Triac Output Optocoupler, 1-Element, 5000V Isolation, LEAD FREE, DIP-6
$6.08 查看
AT25SF081B-SSHD-T 1 Adesto Technologies Corporation Flash Memory,

ECAD模型

下載ECAD模型
$0.31 查看
KSZ8873RLLI 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP64
$6.1 查看

相關(guān)推薦

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