【TB作品】51单片机,语音出租车计价器

西交大题目
1.语音出租车计价器
一、功能要求:
1.具有可模拟出租车车轮转速传感器的硬件设计,可计量出租车所走的公
里数。
2.显示和语音播报里程、价格和等待红灯或堵车的计时价格:
3.具有等待计时功能
4.具有实时年月日显示和切换功能。
5.操作简单、界面友好。
二、设计建议:
1.单片机自选(C51、STM32或其他单片机)。
2.时钟日历芯片选用DS1302(多功能模块)。
3.模拟出租车车轮转速可使用555振荡器。(自行设计)
4.显示可选液晶或者数码管。
5.语音可选"语音模块"或其他音频控制电路。
6.按键输入信息(多功能模块)。
三、加分设计项
1.定位功能。
2.网络约车功能。
3.行驶路线功能等。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源代码打开下载:

http://dt3.8tupian.net/2/28880a59b30000.pg3

这个程序是为基于8051微控制器的出租车计价器系统编写的。程序包含了实时时钟(RTC)、温度监测、按键输入处理、距离和时间计算以及使用ISD1760语音记录模块进行语音播放等功能。

让我们详细解释程序的主要组成部分和功能:

包含的头文件

  • reg52.h:用于8051微控制器的头文件。
  • 其他标准C库:stdio.hstdlib.hintrins.hstring.h
  • 自定义头文件:delay.hds1302.hkey.hDS18B20.hlcd.hisd1760.h

宏定义

  • uintunsigned int的别名。
  • ucharunsigned char的别名。

引脚配置

程序定义了各种组件的引脚配置,包括LCD、DS18B20温度传感器、DS1302 RTC、按键和ISD1760语音记录器。

函数原型

  • void play(int number):根据给定的编号播放特定的音频录音。
  • void play_number(unsigned int n):播放数字的语音表示。
  • void play_naduanhua(unsigned int licheng, unsigned int time, unsigned int price):根据距离、时间和价格播放特定的语音消息。
  • unsigned int calc_price(char hour, unsigned int licheng, unsigned int time):根据一天中的时间、行驶距离和时间计算出租车费用的函数。

全局变量

  • struct RTCTIME rtctime:存储实时时钟信息的结构体。
  • char set:标志,指示系统是否在设置界面中。
  • int wendu:温度变量。
  • unsigned char num2:计数变量。
  • 与出租车计价器系统相关的各种变量(dache_statusdache_lichengdache_timedache_pricedache_miaoamaichong_cnt)。

LCD显示函数

  • void user_lcd_display(void):在LCD上显示信息的函数,包括日期、时间、温度和出租车相关信息。

按键处理函数

  • void user_pro_key(int key):处理按键输入并控制出租车计价器的状态。

主函数

  • 硬件组件和外设的初始化。
  • 处理键盘输入、更新实时时钟、处理出租车的距离和时间计算以及刷新LCD显示的主循环。

定时器中断

  • 定时器1中断,定期更新显示。

ISD1760语音模块函数

  • ISD_Init():初始化ISD1760语音模块。
  • 语音播放函数(playplay_numberplay_naduanhua)。

温度传感器和RTC初始化

  • 初始化DS18B20温度传感器和DS1302 RTC。

出租车费用计算

  • 函数calc_price根据行驶距离、时间和一天中的时间计算出租车费用。

外部中断

  • 外部中断被注释掉(/* ... */)并未在程序中使用。

总体流程

主函数不断更新实时时钟、处理按键输入、计算出租车相关信息,并相应地刷新LCD显示。根据特定事件(如启动、停止或复位出租车计价器),会播放语音消息。

该程序整合了各种硬件组件和传感器,创建了一个具有语音反馈的出租车计价器系统。它展示了嵌入式系统如何编程以处理多个任务并与不同的外围设备交互。

是这个板子的东西,认识这个板子再看。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置

查看原文 文章目录 基于 CentOS7 系统部署 Jenkins 环境基于 Docker 安装部署 Jenkins环境配置 Jenkins 中文模式配置用户名密码形式的 Jenkins 凭据配置 ssh 私钥形式的 Jenkins 凭据配置 Jenkins 执行任务的节点 基于 CentOS7 系统部署 Jenkins 环境 (1&#xff…

解决:AttributeError: module ‘scipy.misc’ has no attribute ‘imsave’

解决:AttributeError: module ‘scipy.misc’ has no attribute ‘imsave’ 文章目录 解决:AttributeError: module scipy.misc has no attribute imsave背景报错问题报错翻译报错位置代码报错原因解决方法方法一 scipy版本回退(不推荐&#…

植物分类-PlantsClassification

一、模型配置 一、backbone resnet50 二、neck GlobalAveragePooling 三、head fc 四、loss type‘LabelSmoothLoss’, label_smooth_val0.1, num_classes30, reduction‘mean’, loss_weight1.0 五、optimizer lr0.1, momentum0.9, type‘SGD’, weight_decay0.0001 六、sche…

算法通关村第十二关—字符串冲刺题(黄金)

字符串冲刺题 一、最长公共前缀 LeetCode14 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串"" 示例1: 输入:strs["flower","fLow","flight"] 输出:&…

BM61 矩阵最长递增路径

题目 矩阵最长递增路径 给定一个 n 行 m 列矩阵 matrix ,矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件: 1. 对于每个单元格,你…

Kafka相关知识

一、kafka架构 Kafka基础知识 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基于zookeeper协 调的分布式日志系统(也可以当做MQ系统),常见可以用于webynginx日志、访问日志,消息服务等等&…

stm32F4——蜂鸣器与按键的实例使用

stm32F4——蜂鸣器与按键的实例使用 蜂鸣器和按键的实质都是GPIO的使用,所以基本原理就不介绍啦,基本寄存器其实都是GPIO的高低电平的赋值,可以参考stm32——LEDGPIO的详细介绍 使用的开发板是华清远见的stm32F407VET6,都是M4的内…

RabbitMq交换机详解

目录 1.交换机类型2.Fanout交换机2.1.声明队列和交换机2.2.消息发送2.3.消息接收2.4.总结 3.Direct交换机3.1.声明队列和交换机3.2.消息接收3.3.消息发送3.4.总结 4.Topic交换机4.1.说明4.2.消息发送4.3.消息接收4.4.总结 5.Headers交换机5.1.说明5.2.消息发送5.3.消息接收5.4.…

Mybatis 动态SQL插入操作②

结合上个博客一起看哦 上篇博客我们说.用户在表中插入数据的时候,有的数据可能不想插入,我们就需要设置,当用户插入这个字段的数据的时候就显示,不插入的话就为null,比如性别不想插入,那么 XML 代码如下 <?xml version"1.0" encoding"UTF-8"?> &…

MySQL性能测试(完整版)

MySQL性能测试之SysBench 一、SysBench安装 1、mac安装命令&#xff1a;&#xff08;其他系统安装对应的命令即可&#xff0c;不影响后面的使用&#xff09; brew install sysbench2、查看是否安装成功&#xff1b; sysbench --version附&#xff1a; &#xff08;1&#x…

鸿蒙4.0核心技术-WebGL开发

场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理&#xff0c;比如绘制彩色图形等。 接口说明 表1 WebGL主要接口列表 接口名描述canvas.getContext获取canvas对象上下文。webgl.createBuffer(): WebGLBuffernullwebgl.bindBuffer(target: GLenum, buffer: …

Apache Flume(5):多个agent模型

可以将多个Flume agent 程序连接在一起&#xff0c;其中一个agent的sink将数据发送到另一个agent的source。Avro文件格式是使用Flume通过网络发送数据的标准方法。 从多个Web服务器收集日志&#xff0c;发送到一个或多个集中处理的agent&#xff0c;之后再发往日志存储中心&…