基于单片机的语音提示测温播报系统的设计

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式

文章目录

    • 概要
  • 一、总体结构设计
    • 2.1 系统总体方案设计思路
  • 二、系统总体设计
    • 2.1系统总框图
    • 2.2 系统功能设计
  • 三、 系统软件设计
    • 3.1 系统软件总体设计
  • 四、系统软件设计
  • 五、结论
  • 六、 文章目录

概要

  此文章对再单片机基础上开发的语音提示测温系统进行了详细的描述,系统的环境条件采集部件是DS18B20的温度传感器,其探头还采用了防水的设计,让传感器可以在多种类型的液体介质当中还能够对对象的温度进行测量。系统的显示部件是使用的LCD1602液晶,播报部分是使用的TTS中文文字转语音模块对温度进行播报。而且,报警的范围用户是可以自行进行调整的,方便对于现场的温度条件开展即时的观察和控制,如果环境中温度数值大于设定的阈值,那么蜂鸣器由于受到驱动而进行报警。而系统的处理器采用的来自STC公司研发的经典51单片机STC89C52RC型号来当开展,和温度传感器部件的连接方式是使用的单总线方式,能够及时地获取温度信息。而且显示部分还用了LCD1602的液晶显示,还提供了设置温度范围报警的方式,轻碰按键电路能够引发温度数值的广播和温度数值区间的设置。同时,TTSTS中文文字转语音电路部分能够广播语音。蜂鸣器部分可以进行高温报警,而且,随后还进行了实验验证,结果发现,在单片机基础上开发的语音提示测温系统可以精准的对气体或者液体的温度信息进行测量,而且整个使用过程简单便捷。系统可以测量温度的区间是-55摄氏度到125摄氏度之间,其准确度控制在0.5范围。而且,成本相对较低,误差较小、效率较高而且功耗较低等优点,可以在很多要进行测温的场景中进行运用。
关键词:温度测量;STC89C52单片机;DS18B20温度传感器;TTS中文文字转语音

一、总体结构设计

2.1 系统总体方案设计思路

  如果要设计一个电子系统,需要先假设真实情况下的需求和要实现的功能模块进行设计,然后再开展硬件和软件部分的设计。为了能够给对系统的组成进行更加直观的展示,这里使用系统框图来描述,它能使得体系内各个模块的连接展现的更加直观和清楚。而且,也可以更加直观的呈现该体系的主要设计理念[13],结合框图,我们能够了解到体系的硬件组成部分有哪些,以及如何通过模块化的连接让各个功能之间实现组合。针对该系统的系统框图如下图展示,图2.1 。
基于单片机的语音提示测温播报系统的设计_第1张图片

图2.1 系统方框图
  从框图中可以看到,处理器是整个系统的核心,[14],可以按照实际的需求来进行编程实现的硬件部分,不过只有处理器是没有办法实现全部功能的[15],处理器仍然要依靠和外部的一些特定的硬件来辅助,这样形成一个完整的体系架构才能够实现我们需要的功能。那些外围部分的硬件自然而然也就是处理器的最小系统外围硬件组成部分,但是还是需要通过和处理器的专门的IO进行连接了方能发挥作用。其中,显示电路部分负责对温度进行即时的显示,并且展示报警数据区间的硬件,工作过程中由处理器变成来控制实现。如果要对某个具体的传感参数进行测量,那么就需要参数对应的传感器硬件来做到。在本文的实验当中,我们可以看到目的是要检测环境中的温度变量,所以,只有把温度传感器硬件和处理器硬件进行连接才能发挥功能。同时,还要做到对使用者的控制请求进行识别,还要由输入硬件,传递输入信号到处理器,然后对使用者的请求进行处理[16],而涉及到此次试验,需要进行识别的请求是:对温度广播的控制和温度区间的触发信号的设计。是借助按键电路来对传入的信号进行识别和分析。系统还涉及到了报警电路,这个电路在系统当中十分常见,也经常运用在进行人机互动的流程中进行具体的操作预警。该系统的报警电路模块做到了用警铃来对用户进行提醒,如果系统检测到了温度超过了设定的区间数值,就会直接进行报警和提醒。系统当中的语音部分也是需要通过处理器进行编程来实现的,要实现数字信号转为模拟信号的过程,也就是实现通过语音来播报系统当前观测到的温度参数数值。

二、系统总体设计

2.1系统总框图

  本文的核心器件包含有单片机、MQ-7一氧化碳检测器,ADC0809模数转换器、按键电路、声光报警电路、液晶显示电路和排气扇电路组成。在实际工作的时候,烟雾浓度传感器先检测一氧化碳的浓度,并把浓度信息转换为电信号。ADC0809将模拟量的电信号转变成数字信号,且传播给单片机。单片机通过内部环节的计算,将数字信号转变成浓度信号,并把浓度值显示在LCD1602液晶屏幕上。用户可以通过按键来设定浓度的标准值,当浓度超过用户设定的浓度值以后,就会控制声光报警模块进行报警,并且开启排气扇,减低一氧化碳的浓度。因此,经过这么一系列的控制,把原本零散的功能,经过单片机的智能控制,就形成了一个新的控制系统。
本设计的总体框图如图2.1所示。
基于单片机的语音提示测温播报系统的设计_第2张图片

图2.1 系统框图

2.2 系统功能设计

  单片机型号STC89C52作为此次实验的处理器,进行温度测量的温度传感器是DS18B20。用来识别使用者输入型号的是轻触按键。之后还要结合报警模块的蜂鸣器以及设计的TTS中文文字转语音电路以及显示部分LCD1602液晶电路来对阈值之外的温度进行报警、温度的广播还有信息的呈现等功能模块部分。

三、 系统软件设计

3.1 系统软件总体设计

  系统实现功能还离不开软件的设计,该系统的软件是通过在STC89C52RC单片机上面运行的C51软件来实现的。软件是通过在keilc51软件环境下编写的,通过生成对应的16进行的可执行文件,在将其放置到单片机上,借助STC-ISP来运行。但是需要注意,在进行软件设计之前,还需要展开一项工作就是通过分析功能需求来敲定该系统的对应软件体系架构,把软件分成一些可以实现对应功能的最小模块和子系统,然后确定这些子系统的相互作用关系和模块,用流程图来进行连接表示。所以,在软件设计环节,使用软件流程图也是对软件设计进行清晰直观的一种表示方式。
基于单片机的语音提示测温播报系统的设计_第3张图片

图4.1 主程序流程图
  如上图的图4.1所示,是该系统的软件对应的设计流程图。首先是要进行系统的初始化行为,该步骤要放在关键功能模块的第一部分,确保系统在开始运行的时候,其对应的基本参数和数值都是初始的状态。
  该系统的基于单片机的软件系统初始化主要包括以下几部分的初始化:LCD1602液晶显示模块、定时器0和系统串口这几部分。在该实验当中,单片机和TTS中文文本语音模块是使用的串行进行通信的,所以,需要将系统串口初始化软件里,把单片机的波特率数值初始化为9600bps,然后经过双方的校对,方可做到数据的精准通信和传递。同时,考虑到尽量减小对系统资源的消耗,不会真的每时每刻都对温度进行测控,而是采用了一定的时间间隔,时长是1s。所以,还需要对微控制器的定时器0进行定时的操作,要进行以50ms的定时器中止行为。对变量计数的操作进行中止。同时,在主要循环里,对变量也会存在一个进行判断的值,其会在时间1s之后变成20,然后使用温度传感器DS18B20来进行一次温度的测控。同时,显示部分LCD1602液晶首先也需要进行代码的初始化,来让液晶的默认工作状态和主要的参数来进行初始化,之后再进行图像的显示。在其参数的选择中,涵盖了以下几个方面,比如:液晶通信指令集、光标移动方位、默认显示的初始位置、光标是否显示、显示光标的模式和控制方式等很多参数的设定。与此同时,还要把显示的默认字符状态在初始化中进行显现。在完成以上这些步骤的初始化之后,然后开始通过执行对应的读写代码把信息传递到液晶来显示信息,
  系统在完成上面的初始化步骤之后,就会开始执行主要的循环程序内容。首先是要获取温度,即使用温度传感器来采集温度数据。单片机使得DS18B20温度传感器勘测周围环境温度数据情况,然后把获取到的温度信息展示在LCD1602液晶上,同时还要予以保存,方便后面的程序运行调用。在拿到温度数据之后,系统还会通过判断是否超过了使用者设置的区间来进行判断是否要报警。如果现在的温度小于设置的区间,那么就会直接对按钮活动进行识别;若发现现在的温度超过了设置的值,那么就会向蜂鸣器发起命令开始报警,一直到现在的温度降到了警报值之下。如果温度报警已经结束了,那么就会开始对按钮的活动进行检测,软件会对和三个触摸按以及和单片机STC89C52RC有所连结的对应的IO电平活动进行监测,当按键是出于高电平状态的时候,就代表还未按下;如果当读取IO电平发现是低电平的时候,那么此时使用这就是已经按下了按钮。如果在这一步没有发生任何事情,即用户没有操作按钮,那么程序就会继续执行下去,回到主循环的温度获取模块,继续执行软件程序。如果使用者对按钮进行了操作,并且系统识别到了,那么就会通过判断是哪个按钮,来执行对应的程序。如果使用者操作的是进行播报的按钮,那么就会把现在系统里面获取到的温度数值进行播报,并且通过TTS中文文本语音模块进行广播;如果按下的是进行报警温度值的设置,那么就之后可以通过操作增加或者减少一度的步长来改变当前报警值,之后的结果会通过显示器进行投放。
  以上,就是该系统实现一次完全循环的流程,从系统收到测温指令之后,一直到单片机软件系统回到最初的状态进行下一次的测温环节流程。

四、系统软件设计

  当程序编译完成之后,生成的hex文件可以直接到STC89C52RC单片机里面去运行。如果当时硬件方面的设计还未结束,那么还可以借助仿真软件对单片机上系统的软件正确性进行确定,而且,再开发软件的前段,也能够通过仿真,更加迅速的对软件进行改良。此次实验用到的仿真软件是Proteus,用此软件把系统电路规划好之后,再把hex文件防止仿真电路图里面的单片机去测试。如下图5.2,是该系统的仿真电路设计图,但是因为该仿真软件缺少对TTS中文文本转语音模块对应的支持,所以在进行仿真测试的时候,无法对这部分的功能进行验证和测试。在仿真开始之后,可以观察到在LCD1602液晶呈现的和实物展示的是一样的。上面一行是进行温度设置的值,下面那行是DS18B20传感器获得的当时的温度数值。如果在方针的DS18B20图标上面对温度进行改变,那么液晶呈现的温度设置值也会变化,这表明温度获取的子程序是良好运行的。如果按下报警部分的温度值设置按键k2或k3,那么在显示界面上,第一行的职业会跟随改变,意味着按键处理的程序也是良好的。
基于单片机的语音提示测温播报系统的设计_第4张图片

图5.2 Proteus仿真电路图
通过上面的步骤,可以得知,此次实验设计编写的单片机软件除了温度语音广播部分的模块无法进行测试之外,其余部分都是良好运行的。

五、结论

  在硬件系统搭建完成之后需要进行软件设计,本设计软件采用C51语言编写软件到STC89C52RC单片机上。单片机软件开发之前,需要先构建一个开发环境,将 KeilC51软件安装在 windows操作系统上,然后将STC-ISP程序下载到系统中,最后将KeilC51成功编译的单片机软件的 HEX镜像文件通过STC-ISP软件下载到单片机中运行。
  整个系统的硬件和软件设计完成后,需要进行完整的调试步骤,以验证整个系统是否达到预期的功能要求,以及测试设计产品的核心性能参数是否能够保证系统稳定运行。并通过合理的测试环节,证明本文所设计的基于单片机的语音提示测温系统实现了各课题设计的目标功能,在-10~85℃的测温误差保持在0.5℃,且有温度语音播报和进行温度报警功能,整个系统能保证较长时间保持优良的运行状态。

六、 文章目录

目 录
1 绪论 1
1.1 课题的研究背景和意义 1
1.2 温度测量系统研究现状 1
1.3 本论文的目的 2
1.4 本文要研究的内容 3
2 系统总体方案设计 4
2.1 系统总体方案设计思路 4
2.2 系统总体方案比较论证 5
2.2.1 处理器的选择 5
2.2.2 温度传感器的选择 6
2.2.3 按键模块的选择 6
2.3 最终方案选择 7
3 系统硬件设计 8
3.1 STC89C52RC单片机最小系统电路 8
3.1.1 STC89C52RC单片机时钟电路 9
3.1.2 STC89C52RC单片机复位电路 10
3.2 DS18B20温度传感器电路 11
3.3 TTS中文文字转语音电路 11
3.4 LCD1602液晶显示电路 12
3.5 蜂鸣器报警电路 13
3.6 轻触按键电路 14
4 系统软件设计 16
4.1 系统软件总体设计 16
4.2 温度采集子程序设计 18
4.3 温度播报子程序设计 19
4.4 按键处理子程序设计 21
5 系统调试与测试 23
5.1 系统调试 23
5.1.1 硬件调试 23
5.1.2 软件调试 24
5.2 系统测试 25
5.3 实验数据及误差分析 26
结论 28
参考文献 29
致谢 30

你可能感兴趣的:(单片机,单片机,嵌入式硬件)