电子信息工程自动化 基于单片机的出租车计价器设计

摘 要

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

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

硬件设计

本章节介绍了本设计的出租车计价器硬件设计内容,包含几大模块的主要器件介绍以及电路设计原理。相比普通模拟电路控制,采用单片机设计出租车计价器的功能更强大,而且用较少的硬件和适当的软件的配合就可容易实现[3]。
1单片机最小系统设计
1.1单片机简介
本设计采用的51单片机STC89C52芯片,如图1所示,是STC89C51的升级版本,STC89C52是8位微处理器,有8K的ROM。

在这里插入图片描述

图1 STC89C52芯片示意图

里程测量电路设计

1里程测量电路如图所示,传感器输出的脉冲信号先输入74CH14芯片再由芯片输出经过处理的电平。74CH14是一款可以对波形整形的芯片,可以让缓慢输入的信号变得干脆清晰。上电后OUT1输出高电平,只有磁铁靠近霍尔传感器OUT1才输出低电平。OUT1接单片机P3.2引脚,磁铁每次经过霍尔传感器都会产生高低电平变化,而单片机可以对此脉冲进行计数。根据这个原理,如果将磁铁安在车轮上就可以实现对车轮转动圈数计数,而轮胎尺寸是固定的,就可以算出行驶里程。

在这里插入图片描述

图 霍尔传感器接线图
2霍尔传感器的安装
霍尔传感器模块设计完成后需要安装在合适的位置,目的是为了测量车辆的行驶里程,则我选择在汽车轮毂上安装磁铁,然后将传感器安装在合适的位置。安装方法如图所示,磁铁装在轮毂上要能够激发传感器,传感器信号输出端与单片机相连。

在这里插入图片描述

图2 霍尔传感器安装示意图

数据存储模块

1AT24C02简介
为了方便使用,本设计采用AT24C02作为外部存储,用于存储设定好的单价,使其重新上电后不用重新设置价格。AT24C02是来自美国Atmel公司的一款COMS低功耗EEPROM,其内存有2K,基本特征主要表现在体积小、数据难丢失、抗干扰能力强、10ms以内的写入速度、10000次以上的擦写次数、2.5~5.5V的宽工作电压等方面[8]。芯片封装及引脚如图所示。该芯片传输信息可以采用IIC总线的方式,就是它只要一根信号线和一根数据线就可以和与它相连接的芯片进行数据交换,这种方式既简单方便又减少I/O口的占用。IIC总线是由Philips公司开发的一种简单、双向二线制同步串行总线。

在这里插入图片描述

图1 AT24C02引脚示意图

显示模块

1LCD1602简介
本设计的显示模块选择了一块功能强大的液晶显示屏LCD1602,这是一块比较常见的显示屏。该显示器操作方便,耗电量低,显示质量高,是目前工控系统中最为广泛使用的一种液晶屏[12]。LCD1602有带背光和不带背光两种,这里考虑到车内一般不开灯所以选用的是带背光的。LCD1602液晶显示屏一共可以显示两行字符,每一行是可以显示16个字符一起是32个字符,如图1所示。它可以采用+5V供电,并且对比度还可以调,直接接地对比度最高。

在这里插入图片描述

图1 LCD1602结构图

软件设计

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

在这里插入图片描述

图1 主程序流程图

结论

本设计严格按照任务书的内容进行,本次设计中我们利用STC89C52单片机完成了简单的出租车计价器设计,能够显示实时时钟、行驶里程、等待时间、单价、总价等信息,能按键控制等功能。在完成本设计的期间,我查阅了很多资料,几乎把所学过的所有知识都过了一遍。本设计内包含的一些模块比如LCD1602和DS1302这些芯片之前就几乎没接触过,然后我就先去购买过来然后联系商家请求帮助,商家一般都会提供很多资料,然后我就结合资料和网上的一些应用实例自己学习,最后也是可以熟练的使用这些新的器件了。当然,在完成设计期间也出现一些问题,比如焊接断路和虚焊;又比如程序出现各种BUG等等。当然,这些问题我都通过查资料、向同学请教等途径一一解决了。完成本次的毕业设计后我觉得自己学到了很多东西,不仅仅是对课堂所学知识进行了拓展,也学到了很多新的东西。在学习与实践的过程中,取长补短,不断学习新的东西,不断汲取别人的经验丰富自己的阅历。回顾整个毕业设计过程,期间有一开始的紧张与期待、有中期的激动与失望、也有后期完成时的放松与成就感。经过这次的毕业设计我提升了自己自学能力和动手能力,经验和心性也有很大提升,之后我也会不断学习,不断尝试改进本设计。

参考文献

[1]周永超,李志广,张辉,张志东.液晶显示出租车计价器设计[J].现代显示,2012(11):29-33.
[2]雍才富,史宏俊,莫岳平.智能出租车计价器设计[J].科技创新与应用,2016(8):23-24.
[3]张东晖.浅谈出租汽车计价器的原理及误差来源[J].计量与测试技术,2018,45(4):91-92.
[4]毛小辉,张建新.基于AT89C51单片机的出租车计费器设计[J].嘉兴学院学报,2013,25(3):110-113.
[5]曹洪奎,刘鹏,岳城,彭冲.出租车合乘计价器的设计[J].电子世界,2019,37(08):175-176.
[6]叶磊,黄莹,齐轩晨,刘艳.基于430单片机的出租车计价器设计与实现[J].微型机与应用,2015,34(2):92-95.
[7]沈中伟,刘国政,黄筱潇.基于STC单片机的非预约式合乘出租车计费系统设计[J].价值工程,2019(2):278-279
[8]凌璟.基于VHDL的出租车计价器设计[J].自动化应用,2010(2):15-16-18. [9]袁中行.基于单片机的出租车计价器设计[J].科技创新与应用,2017(9):60-61.[10]高锋.出租车计价器作弊检测系统的设计与研制[D].东南大学,2015. [11]李学君,李波.基于PIC单片机的多功能出租车计价器设计[J].仪表技术,2010(9):33-35.
[12]朱万友,张金花.基于STC89C52单片机的出租车计价器设计[J].农业装备与车辆工程,2018,56(5):92-94.
[13]刘炳岳,王忠华,周香林.基于STC89C52的出租车计价器设计[J].科技广场,2016(6):183-185.
[14]路国庆,赵晓博,胡立强等.脉冲检测方法的霍尔传感器在里程表的应用[J].机械设计与制造,2009(1):87-88.
[15]彭泉,翟娟,王世豪等,基于单片机的出租车计价器[J].新型工业化,2020,10(8):26-30.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/930489.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

day1:ansible

ansible-doc <module_name>&#xff08;如果没有网&#xff0c;那这个超级有用&#xff09; 这个很有用&#xff0c;用来查单个模块的文档。 ansible-doc -l 列出所有模块 ansible-doc -s <module_name> 查看更详细的模块文档。 ansible-doc --help 使用 --help …

yolov,coco标记的无增强版的水稻病害数据集 共 1448 张图片

之前用过增强图片之后标记的效果不是特别理想&#xff0c;因此这里给大家分享一下使用无增强的版本&#xff1a; yolov,coco标记的无增强版的水稻病害数据集 共 1448 张图片 稻瘟病 细菌性枯萎病 褐斑病 数据集下载&#xff1a; yolov8&#xff1a;https://download.csdn.net…

uniapp微信小程序开发地图多边形渲染,圆形渲染,省市区区域渲染解决方案-(已实测通过)

一、多边形渲染(只需给map组件绑定对应的polygons即可) <mapid="map"class="map":latitude="latitude":longitude="longitude":markers="covers":polyline="polyline":scale="18"@markertap="…

IntelliJ+SpringBoot项目实战(28)--整合Beetl模板框架

在前面的文章里介绍过freemarker&#xff0c;thymeleaf模板引擎&#xff0c;本文介绍另一个性能超高的模板引擎---Beetl&#xff0c;据说此模板引擎的性能远超Freemarker。官网的说法是&#xff0c;Beetl 远超过主流java模板引擎性能(引擎性能5-6倍于FreeMarker&#xff0c;2倍…

jeecg-uniapp 跨域问题解决方法记录

今天折腾这个很恶心的问题,工作需要经验才行,根本没有什么技术难点,都是经验而已 问题在此 发现没有替换掉前缀 :8085/#/pages/login/login:1 Access to XMLHttpRequest at http://192.168.152.32:8194/h5api/api/user/login from origin http://localhost:8085 has been bloc…

AD20 原理图库更新到原理图

一 点击工具&#xff0c;从库更新。快捷键TL 二 点击完成 三 执行变更&#xff0c;最后点击关闭

linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程

系统服务 书接上文: linux自启任务详解 演示系统:ubuntu 20.04 开发部署项目的时候常常有这样的场景: 业务功能以后台服务的形式提供,部署完成后可以随着系统的重启而自动启动;服务异常挂掉后可以再次拉起 这个功能在ubuntu系统中通常由systemd提供 如果仅仅需要达成上述的场…

Unity 设计模式-策略模式(Strategy Pattern)详解

策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;定义了一系列算法&#xff0c;并将每种算法封装到独立的类中&#xff0c;使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化&#xff0c;客户端通过与这些策略对象进…

Android环境搭建

Android环境搭建 第一步&#xff1a;安装 Homebrew 执行以下命令来安装 Homebrew&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"检测是否安装成功&#xff1a; brew --version第二步&#xff1a;安装 No…

摄影后期学什么_好学吗?

当你按下相机快门&#xff0c;捕捉到那珍贵的瞬间&#xff0c;摄影可还没画上句号哦&#xff01;摄影后期就像是一场神奇的魔法秀&#xff0c;能让你的照片从平凡瞬间变身惊艳大片。那在这场魔法之旅中&#xff0c;咱们得学习哪些厉害的法术呢&#xff1f; 先来说说光影调整这…

短视频矩阵系统saas源码 ---技术源头搭建部署

短视频矩阵系统源码 短视频矩阵系统源码主要有三种框架&#xff1a;Spring、Struts和Hibernate。Spring框架是一个全栈式的Java应用程序开发框架&#xff0c;提供了IOC容器、AOP、事务管理等功能。Struts框架是一个MVC架构的Web应用程序框架&#xff0c;用于将数据模型、Web应用…

mock.js介绍

mock.js http://mockjs.com/ 1、mock的介绍 *** 生成随机数据&#xff0c;拦截 Ajax 请求。** 通过随机数据&#xff0c;模拟各种场景&#xff1b;不需要修改既有代码&#xff0c;就可以拦截 Ajax 请求&#xff0c;返回模拟的响应数据&#xff1b;支持生成随机的文本、数字…

Spring Authorization Server入门 (十二) 实现授权码模式使用前后端分离的登录页面

基于Spring Session的前后端分离文章已发布&#xff1a;《Spring Authorization Server基于Spring Session的前后端分离实现》 2023-12-01修改&#xff1a;在session-data-redis(Github)分支中添加了基于spring-session-data-redis的实现&#xff0c;无需借助nonceId来保持认证…

Codeforces Round 991 (Div. 3) F. Maximum modulo equality(区间gcd模板)

思路&#xff1a;我们由题意可以知道我们只需要维护区间gcd即可&#xff0c;因为差分一下后&#xff0c;维护的差分数组的区间gcd即为原数组所要求的值 #include<bits/stdc.h>using namespace std;typedef long long ll; typedef pair<ll, ll>PII; const int N 2…

智创 AI 新视界 -- 优化 AI 模型训练效率的策略与技巧(16 - 1)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

基于 NXP S32K312+FS23 的汽车通用评估板方案

S32K3 系列是 NXP 推出的面向汽车电子和工业应用的微控制器&#xff0c;基于 ARMCortex-M7 内核&#xff0c;支持单核、双核和锁步内核配置。S32K3 系列具有内核、内存和外设数量方面的可扩展性&#xff0c;符合 ISO26262 标准&#xff0c;能达到 ASIL B/D 安全等级&#xff0c…

Y20030002 微信+Java+Jsp+Servlet+MySQL的问卷调查小程序的设计与实现 源代码 配置文档 全套资料

问卷调查微信小程序 1.摘要2. 系统开的背景和意义3. 国内外研究现状4. 系统功能5.界面展示6.源码获取 1.摘要 摘 要&#xff1a;本文深入研究并实现了一个基于微信小程序的问卷调查系统。微信小程序问卷调查系统借助于微信小程序的便捷性和普及性&#xff0c;为用户提供了一个…

C语言程序设计P5-4【应用函数进行程序设计 | 第四节】——知识要点:数组作函数参数

知识要点&#xff1a;数组作函数参数 视频&#xff1a; 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 任务要求用选择法对数组中的 10 个整数按由小到大的顺序排序&#xff0c;前面在讲解数组时讲冒泡法排序曾提到选择法排序的思想。 所谓选择法就是…

C语言连接数据库

文章目录 一、初始化数据库二、创建数据库连接三、执行增删改查语句1、增删改2、查 四、执行增删改查语句 接下来我简单的介绍一下怎么用C语言连接数据库。 初始化数据库创建数据库连接执行增删改查语句关闭数据库连接 一、初始化数据库 // 数据库初始化 MYSQL mysql; MYSQL* r…

微信小程序里的小游戏研发需要什么技术栈

研发小程序里的小游戏通常需要以下技术栈&#xff1a; 前端技术 HTML5 / CSS3&#xff1a;用于构建游戏的界面布局和样式。JavaScript&#xff1a;作为核心编程语言&#xff0c;实现游戏的逻辑和交互。小程序开发框架&#xff1a;如微信小程序的开发框架&#xff0c;了解其 API…