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

概要

  出租车作为一种城市中非常重要的公共交通工具,他与人们的生活息息相关。所以我也设计了一款出租车计价器,它采用模块化设计,包含里程测量模块、数据存储模块、按键模块、时钟模块、显示模块、语音播报模块六大主要模块。本设计的出租车计价器是以STC89C52单片机为核心,利用霍尔传感器在磁场变化时产生脉冲的原理实现里程测量,并将单价储存在片外储存芯片中,以防止断电后数据丢失。系统控制是用了六个独立的按键,它们分别负责调整时间、时间加、时间减、切屏、白天夜晚切换、开始暂停等功能,司机通过它们完成对计价器的使用与调整。还用了DS1302芯片做了一个实时时钟,它有双电源可以实现断电也不用调时的功能。显示用的是LCD1602液晶屏,可以显示里程和单价等内容。最后用了WT588D语音芯片实现语音播报,要先将语音录制好并存入芯片,使用时按照语音地址进行调用,将一个个地址组合起来就可以实现播报一句话。最终,该计价器可以实现计程计价、计时计价、白天/夜晚不同价格计价的功能,并在行程结束可以语音播报价格和行驶里程,空车时还可以用来显示年月日、时间及星期等信息。

关键词:出租车计价器;单片机;霍尔传感器;模块化

一、总体方案设计

2.1系统总体方案设计

  本设计是以单片机为核心,由单片机收集和控制各个模块的信息和功能。首先里程测量模块会在计价器开启后实时检测车辆的行驶里程,并将信号送到单片机中由单片机对信号加以处理从而获得车辆的行驶里程信息。数据存储模块用于单价的储存,每次调整单价时单价信息都会实时存入数据存储模块中,用于重新上电的数据恢复。按键模块是用来控制计价器的,通过它司机才能对单片机进行人为控制,比如启动计价器和调整时间等等。时钟模块用于闲时的实时时钟显示和等待计价的计时。显示模块就是用来显示时间、行驶里程、单价、总价等等一些总要的信息,司机和乘客都可以通过它了解计价器的工作状态。语音播报模块就是为了方便司机和乘客的一个人性化设计,当乘客到达目的地时语音播报会报出该行程中出租车测总行驶里程和总的价格,方便司机计算也方便乘客知晓行程信息。本设计的出租车计价器系统框图如图2.1所示。
在这里插入图片描述

图2.1 出租车计价器系统框图

2.2主要器件选型

2.2.1单片机选型

  本设计采用单片机作为核心控制器件,因为单片机可以通过编程完成对各种传感器、芯片等器件的控制以及算术运算,编程自由灵活,功能强大并且稳定可靠。考虑在51系列的STC89C52单片机和STM32单片机选择其一。
备选一:STM32单片机,由名字可知其为32位的单片机,查阅资料可知其引脚数远多于51系列单片机,RAM容量也远大于51单片机。它的功能非常强大但是价格偏高,编程也较为复杂。
备选二:STC89C52单片机,为8位单片机,价格便宜、编程简单,共有32个引脚,8KRAM。
综合考虑,本设计并不是特别复杂,51单片机已经可以完全胜任,而且上课我们学习的也是51单片机,对该单片机的编程和使用都比较熟悉。并且其I/O口足够使用,所以选择51单片机作为本设计的核心控制器。

二、软件设计

  出租车计价器的软件设计包括5个主要部分,分别是主程序、DS1302子程序、LCD1602子程序、WT588D子程序、里程测量子程序。

2.1主程序程序流程图

  整个系统的主程序流程图如图4.1所示。开机通电后,首先单片机会去片外存储器内读取上次设置的单价,然后完成实时时钟的初始化和时间读取,语音模块初始化和霍尔传感器模块初始化之后,在LCD1602上显示现在的实时时间信息,接下来单片机就不断的扫描整个程序,只有当有按键按下才会进入按键设置的程序内,判断出是哪个按键按下后执行对应的功能,完成后跳出按键程序继续扫描。

在这里插入图片描述

图4.1 主程序流程图

主程序部分程序如下:

voidmain()
{
READS();//读初值intt();init();//初始化xsj(0x8e,0x00);xsj(0xca,0);xsj(0x8e,0x80);while(1)
{
if(biao==0)//正常走时进入
{
du();//从1302读出数据xs();//时间刷新
}
anj();//时钟调整anj2();//计费与时钟切换if(ding==1)chushihua();//计费初始化while(ding)
{
aq();//数据处理key();//白天/夜晚切换,等待/正常切换anj2();//计费与时钟切换
}
}
}

四、系统实现

5.1软件仿真

  本设计利用Proteus软件仿真,用Kell4进行程序的编写与编译。本设计中设计了实时时钟、霍尔传感器和掉电储存,这些是不能进行仿真的,可以仿真的只有单片机最小系统以及显示部分。先在Proteus中搭建好如图5.1所示的单片机最小系统,虽然仿真时不连接最小系统也可以仿真,但是本着严谨的态度还是需要连接好,然后连接好LCD1602液晶显示器,图5.2所示,再连接实时时钟芯片DS1302和存储芯片AT24C02,虽然都连上了但是掉电不用调时以及掉电储存不方便仿真,仿真时只是连接上而已。

在这里插入图片描述

图5.1单片机最小系统仿真连接图

在这里插入图片描述

图5.2 LCD1602仿真连接图
  开始仿真后,屏幕默认显示时间如图5.3所示,按下切屏后切换至计价器模式如图5.4所示。
在这里插入图片描述

图5.3 开机默认界面图

在这里插入图片描述

图5.4 切换至计价器模式界面图
  仿真部分仅仅完成对LCD1602的显示的学习与应用过程,本设计的其他内容都在实物的制作与调试中完成。

5.2硬件制作

  仿真完成后就可以开始真正的实物制作了,将各个模块与单片机的最小系统焊接在一起(如图5.5所示),焊接完成后用万用表检查虚焊与短路,排除所有有错的的地方后才可以上电测试。

在这里插入图片描述

图5.5 实物焊接图
  整个系统的布局如图5.6所示,单片机及其最小系统处于中间部位,上方是用于显示的LCD1602液晶显示器,右上角被LCD1602盖住的是DS1302实时时钟模块,它的备用电源是一块纽扣电池。单片机的左边是AT24C02数据储存模块就是利用它实现了掉电储存功能,它的下方是WT588D语音模块,它和旁边的喇叭一起实现语音播报的功能。单片机正下方是一个电机以及霍尔传感器,电机和带磁铁的塑料盘用来模拟车辆的车轮转动,霍尔传感器安装在电机旁边检测电机转动的圈数。最下方是电源开关以及六个操控按键。

在这里插入图片描述

图5.6 系统布局图

五、 文章目录

目录

摘要 I
Abstract II
1.绪论 1
1.1课题研究背景 1
1.2课题主要内容 1
1.3预期目标 1
2.总体方案设计 3
2.1系统总体方案设计 3
2.2主要器件选型 3
2.2.1单片机选型 3
2.2.2里程测量传感器选型 4
2.2.3数据存储芯片选型 4
2.2.4按键选型 4
2.2.5时钟芯片选型 5
2.2.6显示模块选型 5
2.2.7语音播报芯片选型 5
3.硬件设计 6
3.1单片机最小系统设计 6
3.1.1单片机简介 6
3.1.2最小系统 7
3.2里程测量模块 8
3.2.1霍尔传感器工作原理 8
3.2.2里程测量电路设计 9
3.2.3霍尔传感器的安装 10
3.3数据存储模块 11
3.3.1AT24C02简介 11
3.3.2数据储存电路设计 11
3.4时钟模块 12
3.4.1DS1302芯片 12
3.4.2实时时钟电路设计 13
3.5显示模块 13
3.5.1LCD1602简介 13
3.5.2显示模块电路设计 14
3.6语音播报模块 14
3.6.1WT588D简介 14
3.6.2语音播报模块电路设计 16
3.7按键模块 16
4.软件设计 17
4.1主程序程序流程图 17
4.2DS1302程序流程图 18
4.3LCD1602程序流程图 19
4.4WT588D程序流程图 21
4.5里程测量程序流程图 23
5.制作和调试 25
5.1软件仿真 25
5.2硬件制作 26
结论 28
参考文献 29

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值