基于51单片机的出租车计价器的设计 您所在的位置:网站首页 出租车计价器设计方案模板图片 基于51单片机的出租车计价器的设计

基于51单片机的出租车计价器的设计

2024-07-09 00:14| 来源: 网络整理| 查看: 265

引言

在科学技术和经济水平快速发展的21世纪,乘坐出租车和网约车出行已经成为一种非常重要的交通出行方式。行业的转型发展让出租车行业迎来了一场新纪元。但是在出租车行业迅速发展的同时,也出现了很多问题。经营管理不善,司机服务不规范,随意定价收款的现象也是层出不穷。为了根治这种现象,出租车计价器孕育而生。出租车计价器的问世不仅减少了行业的乱象,而且让管理者和经营者更加诚信的服务乘客,在很大程度上改善了行业风气。

但是目前国内广泛使用的出租车计价器功能单一,不能满足人们的需求,人们更致力于一种功能齐全,生产成本低的出租车计价器。伴随着科技水平的提高,出租车计价器也迎来了新的变革,这时第二代出租车计价器问世了。

设计选用宏晶公司生产的STC89C52单片机,加上外围芯片,设计出一个性能稳定,实用性强的出租车计价器。电路主要由测速模块、时钟模块、测温模块组成。设计出功能齐全、实用性强的出租车计价器。此设计能够实现计价器的各项功能要求,使用适当的接口作为输人输出通道,实现对电机驱动模块的运行控制,以达到对出租车各项性能指标的测量,具有很大的市场前景以及开发空间。

系统概述

设计要求

运用所学的知识和专业技能,以STC89C52系列单片机为核心设计一个简易的出租车计价器系统,实现出租车计价器的稳定运行。用霍尔传感器测速测量出租车的实时速度,用延时实现调速功能。设计的出租车计价器还需具有显示时钟和测量温度的功能,并且能够自动计算费用、设置起步价、设置每公里价格。设计选用STC89C52单片机作为控制器,自带AD转换,当一边有按键按下时,另一边以数字的形式在LCD12864显示屏上显示出相应的车速、温度、时间以及总价。

(1)能够设置起步价,每公里价格;

(2)能够测量出出租车的速度并显示;

(3)自动计算总费用;

(4)具有时钟和温度测量功能。

总体设计

添加图片注释,不超过 140 字(可选)

总体设计框图如图1-1所示,设计主要由单片机模块,按键控制模块和LCD12864显示模块组成,它们的作用分别为:

单片机模块:数据输入输出的处理。

按键模块:通过按键处理,将相关操作指令传送至单片机处理。

显示模块:用LCD12864显示屏显示出租车计价器的各项性能指标,显示当前车速、温度、总费用、起步价、每公里价格等功能。起步价和每公里价格也能通过按键进行设置并且显示过程。

其中单片机模块包括测速模块、RESET模块、ds1302S时钟模块、测温模块。通过单片机内部转换后在LCD12864显示屏上显示出相关信息。再按下按键使电机开始转动,通过延时进行调速,再通过霍尔传感器模块进行测速并通过显示模块在LCD12864上显示出当前的车速。设置了复位按键,按下复位按键时出租车计价器系统重置至初始状态。设有时钟模块将时间通过LCD12864显示屏显示出来。

2 系统设计的整体方案

2.1主控芯片的方案论证

方案一:51系列单片机

采用STC89C52作为主控芯片,管脚图如图2-1所示。51单片机的系统指令,内部结构相对简单。同时51单片机的I/O脚的设计和使用非常简单,指令系统规范。

方案二:PIC系列单片机

采用PIC系列为核心控制器。PIC单片机将各种输入输出的接口都集成在一块芯片上,它较适合应用在功能单一的设计中。

综上所述,根据在校所学以及掌握的理论知识,对51系列单片机的掌握更为熟练,同时价格也更为便宜的。51系列的单片机适用于相对简单较为容易实现的电路。51系列单片机比PIC系列单片机更容易实现设计要求,因此选择使用方案一设计。

2.2 显示模块的方案论证

方案一:LED数码管

采用LED数码管为显示模块。数码管能够显示的内容单一,受到一些产品品质要求和影响,不能做很小和显示内容很多的产品。数码管厚大笨重,占用产品结构尺寸较大,同时数码管的消耗电力大,数码管不同于液晶产品,受到视角限制,数码管属于全视角的产品。

方案二:LCD12864显示屏

采用LCD12864为显示模块。LCD12864显示屏具有功耗低的特点,液晶分子由电压驱动,液晶屏基本不用耗电。但由于液晶分子的扭曲特性,导致液晶屏视角上有偏差,只能有一个方向的视角是非常清楚的。LCD液晶显示屏在玻璃中间刻画线路和灌注液晶,可以做到高精度的操作,显示内容多样化,显示颜色也多姿多彩。LCD12864管脚图如图2-2所示。

综上所述,再结合出租车计价器的设计要求,选择LCD显示屏作为设计的显示模块。因为设计需要实现的功能较多,LED数码管能够显示的的内容单一,选用LED数码管,无法满足设计的显示需要。相反LCD12864显示屏具有显示多样化,可承载的内容多,可以做到高精度的操作。综上所述,显示模块采用方案二设计。

2.3电动机的方案论证

方案一:直流电机

采用直流电机为动力元件。安装较为简单,价格较为便宜。在给定的负载条件下,可以根据设计需要人为改变电机转速,更加有利于出租车计价器调速测速功能的实现。

方案二:步进电机

采用步进电机为动力元件。步进电机不会以连续的方式旋转,而是以离散的步长或增量移动,不适合模拟出租车的运行速度。步进电机适用于对精度要求大的设计。

综上所述,由于本设计需要稳定的改变速度,同时速度变化较大。另一方面直流电机较为便宜,因此设计选择方案一,用直流电机作为电动机。

2.4 电机驱动模块的方案论证

方案一:L298N驱动

采用L298N电机驱动为控制器。如果改变输入,能够实现电机的转向。更适用于模拟小车行驶。它拥有双通道输出,A输出和B输出,可以实现两路电机进行不同的控制与操作。

方案二:ULN2003驱动

#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; //温度值 float PF=5.0; //起步价 u8 duty=0; //电机占空比 u8 time=0; //占空比对比数 float ppk=2.0; //每公里价格 float zprice=0; //总价 void show_base(); //显示基础信息函数 void flagzero(); //模式0函数 void flagone(); void flagtwo(); void flagthree(); void flagfour(); void jisuan(); void getandshow(); //获取温度和价格并显示 void main() { lcd12864_init(); //显示屏初始化 ds18b20_init(); //温度传感器初始化 PWM_Init(); //PWM输出初始化 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(); else if(flag==4) flagfour(); } } 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++; //模式切换 //通过K2,K3改变占空比达到调速 else if(flag0key==2&&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);

 文章借鉴于此纷传



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有