基于51单片机的出租车计价器含proteus仿真及电路图

本设计是针对城市出租车运营的一个计价器。设计基于AT89C52单片机为主控制芯片,通过霍尔传感器来给单片机产生脉冲,从而累计车轮旋转的圈数,利用算法来计算出行驶的路程,并根据相应的收费标准计算出应当收取的费用,通过LCD1602液晶显示屏来显示路程,单价,消费金额,路程中等待的时间等信息。本设计还可以根据自身的需要对收费的标准进行调整。系统硬件包括CPU控制模块、按键模块、显示模块、电源模块等四部分。软件设计包括系统总流程图与每个模块的流程图,最后将软件与硬件联调,达到所需功能要求。
设计要求:
(1)不同情况具有不同的收费标准。 
白天,晚上,途中等待(>=10min 开始收费) 
(2)能进行手动修改单价 
(3)具有数据的复位功能 
(4)具有启动计时开关、白天/晚上收费标准的转换开关、数据的清零开关、单价的调整(最好使用+和-按键) 
(5) 数据输出:单价输出 2 位(要能输入小数),路程输出 2 位,总金额输出 3 位(有 1 位小数)。
1.1设计背景
在国民经济的快速发展下,城市的交通治安逐渐变得整齐有序,出租车计价器在城市的交通中扮演了重要的角色。虽然私家车拥有的数量在随着经济的发展在慢慢的增长,但是出租车依然是城市交通运输乘客的不可或缺的东西。出租车计价器是出租车上用来记录行驶里程数及时间和通过收费标准计算消费金额的仪表仪器,是出租车上很重要的一部分,它是负责计算出租车运营收费的一种仪器。不论是乘客还是司机都会要求计价器在性能方面能够稳定、计价准确而且在它的功能方面也要求越来越高。
1.2设计目的和意义
大力提高城市安全文明的建设是当前城市建设的主要内容之一,随着人们生活水平的不断提高,人们对生活中周边的各种常见的工具的功能要求也越来越高。就出租车收费器而言,人们对它的功能要求也是逐渐的增加,虽然它的功能在趋于完善,但任然有很多可以改进的地方。本次的设计选用的主要元件是单片机,不仅是为了完成设计的要求和各功能的实现,更是为了检验我们对所学知识的应用能力以及我们解决问题的能力。
1.3设计要求
(1)不同情况具有不同的收费标准。 
白天,晚上,途中等待(>10min 开始收费) 
(2)能进行手动修改单价 
(3)具有数据的复位功能 
(4)具有启动计时开关、白天/晚上收费标准的转换开关、数据的清零开关、单价的调整(最好使用+和-按键) 
(5) 数据输出:单价输出 2 位(要能输入小数),路程输出 2 位,总金额输出 3 位(有 1 位小数)。
1.4课程设计方案
通过单片机作为主控器,利用1602字符液晶作为显示电路,采用内部时钟脉冲,通过按键可以方便调节,而且控制简单,成本低廉,设计电路简单,易操作,以下是系统流程图。如图1.1所示。

图1.1   总体设计方案流程图
1.5课程设计主要内容:
当我们乘坐出租车时,出租车司机通过电源启动计价器后,只要汽车一启动,随着行驶里程的增加,当小于某一个值的时候<如3km>时,就会看到出租车里面的计价器里程数字显示的读数为起步价,而当行驶到某一值<如3km)计费数字显示开始从起步价<如7.7元)增加。当出租车到达某地需要在那里等候时,司机只要按一下“等待”键,每等候一定的时间<如10分钟),计费显示就增加一个该收的等候费用<如每10 分钟收取3.3元)。出租车继续行驶时,停止计算等候费用,继续增加里程计费。到达目的地,便可按显示的数字收费。然后关闭计费器,对计数器清零,等待下次计费开始。
由stc15f2k60s2作为主控制芯片,并连接按键系统和lcd1602显示系统,用电机来模拟车轮的转动,通过霍尔传感器对单片机输入一个脉冲,一个脉冲待变车轮转动一周,假设转动一周的距离为0.01km,由此来判断出租车行驶的距离,从而计算出乘客应付的价钱。
在司机等待时按下等待按键,则计时器开始工作,等待10分钟则开始加价,停止等待时,页面会自动返回到初始计价页面,等待价钱和时间不清零,结束计价时则把等待价钱和显示价钱一起算。
本次课程设计利用单片机技术来实现一台出租车计价器,具有性能可靠、电路简单、成本低等特点。本次课程设计所设计的出租车计价器的主要功能有:数据的复位、白天/晚上转换、数据输出、计时计价、单价输出及调整、路程输出、等功能。输出采用LCD1602液晶。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,
第二章 硬件电路设计
2.1按键电路
采用独立式键盘,每个按键占用一个I/O口,每个按键相对独立,I/O口通过按键与地相连,无键按下时,引脚端为高电平,有键按下时,引脚端为低电平。所以可以通过判断每个引脚端是否为低电平,就可以知道是否有键按下。图2.1为按键电路。
 ac4ecb36b06a4558b9e2a5176544ed05.png

 

图2.1  按键电路
S1:接P1.0口,开始计费和结束计费按键,按单次为开始计费,按双次为结束计费。
S2:接P1.1口,是暂停按键,按下后,开启定时器0,LCD1602会开始显示等待时间并且在等待开始十分钟后开始增加等待价钱,在按下结束键之前,等待时间和金钱不会清零。
S3:接P1.2口,是设置按键,在结束计价的时候,按一次,对起步价可以进行调整;按两次,对等待10分钟的等待价钱可以进行调整;按三次,对晚上可以单价进行调整;按四次,可以对白天单价进行调整;按第五次时,回到初始界面,然后循环。
S4:接P1.3口,是用来调整单价增加的键。
S5:接P1.4口,是用来调整单价减少的键。
S6:接P1.5口,复位键,按下之后所有的数据恢复到刚开始的状态。
2.2直流电机电路
该直流电机主要是通过驱动芯片L298来驱动,这款芯片可以同时驱动2个直流电机,可以用直流电或PWM脉冲波驱动第5,7脚为控制电机的正反转,一个接负电压,一个接正电压,第6脚ENA控制电机的转速,通过PWM可以控制转速,.这里我们给它-一个高电平就可以了。直流电机电路如图2.2所示。
be5aa5a8f7844be99457c4437c507504.png
图2.2 直流电机电路
2.3显示电路
2.3.1 LCD1602的基本参数及引脚功能
引脚功能说明: 
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示。
表1  LCD1602引脚接口说明表
编号    符号    引脚说明    编号    符号    引脚说明
1    VSS    电源地    9    D2    数据
2    VDD    电源正极    10    D3    数据
3    VL    液晶显示偏压    11    D4    数据
4    RS    数据/命令选择    12    D5    数据
5    R/W    读/写选择    13    D6    数据
6    E    使能信号    14    D7    数据
7    D0    数据    15    BLA    背光源正极
8    D1    数据    16    BLK    背光源负极
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,
对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号, 当RS为高电平R/W为低电平时可以写入数据。
    第6脚:E端为使能端,当B端由高电平跳变成低电平时,液晶模块执行命令。
第7-14脚:D0-D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
2.3.2显示电路连接
如图2.3所示为显示电路连接。813d372a3d274f088a2e03a1b887df1a.png

 

 

图2.3 显示电路
2.4脉冲输入电路
利用霍尔传感器来对单片机输入一个脉冲,从而计算出租车行驶的路程,将霍尔传感器接到单片机外部中断0上,触发中断,计算公里数。
由于A44E属于开关型的霍尔器件,其工作电压范围比较宽<4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I0端口上,而且其最高检测频率可达到1MHz。
A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片>B、差分放大器C、施密特触发器D和0CI门输出E五个基本部分组成。
如图2.4所示为霍尔传感器连接电路。
cd801990841248d697be38180b52b840.pngg)
043870d420144d2aafa13616c4a8897f.png
                             图 2.1 出租车计价器的proteus图
程序
#include<reg51.h>
#include<LCD1602.h>

 

 

#define uchar unsigned char
#define uint  unsigned int

sbit key_start =P1^0;         //开始/结束计价
sbit key_wait  =P1^1;         //等待
sbit key_set   =P1^2;         //设置
sbit key_jia   =P1^3;         //加值
sbit key_jian  =P1^4;         //减值
sbit key_dn    =P1^5;   //控制白天晚上
sbit key_fuwei =P1^6;  //复位
sbit mod=P1^7;          //电机控制

/************************——变量定义***********************/
uint start_price=77;                //起步价
uint white_price=66;         //白天的单价   超过3公里每公里6元
uint black_price=88;        //夜晚的单价   超过3公里每公里8元
uint Wait_price=100;                //等待价钱
bit dnc=0;                   //白天晚上的转换标志
bit qiting;                 //起 停标志位   
uint price1,price2;                           //总价钱、等待价钱
uint   mil;                //里程数

uint mil2;               

uchar shi,fen,miao;
uchar  moshi,moshi2,ms,set_f;                                //模式mos=0初始界面,=1改价页面,=2等待页面           
                                //set_f设置标志=1设置初始价格,=2设置等待价格,=3设置晚上单价,=4设置白天单价

void delay(uchar ms)        //延时函数
{
   uchar j;
         while(ms–)
         {
          for(j=0;j<130;j++);
         }
}

6代码,仿真获取

```c
https://pan.baidu.com/s/1zLDrxP023t2DKVzqcflkCw 
1234
```
私信q

8e24b16b3334472d8172292156a214b6.jpg

 

 

物联沃分享整理
物联沃-IOTWORD物联网 » 基于51单片机的出租车计价器含proteus仿真及电路图

发表评论