【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显示。根据特定事件(如启动、停止或复位出租车计价器),会播放语音消息。

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

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/x1131230123/article/details/135047761