基于单片机的语音提示测温播报系统的设计和实现 电子信息工程专业_第1页
基于单片机的语音提示测温播报系统的设计和实现 电子信息工程专业_第2页
基于单片机的语音提示测温播报系统的设计和实现 电子信息工程专业_第3页
基于单片机的语音提示测温播报系统的设计和实现 电子信息工程专业_第4页
基于单片机的语音提示测温播报系统的设计和实现 电子信息工程专业_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的语音提示测温播报系统的设计0摘要:此文章对再单片机基础上开发的语音提示测温系统进行了详细的描述,系统的环境条件采集部件是DS18B20的温度传感器,其探头还采用了防水的设计,让传感器可以在多种类型的液体介质当中还能够对对象的温度进行测量。系统的显示部件是使用的LCD1602液晶,播报部分是使用的TTS中文文字转语音模块对温度进行播报。而且,报警的范围用户是可以自行进行调整的,方便对于现场的温度条件开展即时的观察和控制,如果环境中温度数值大于设定的阈值,那么蜂鸣器由于受到驱动而进行报警。而系统的处理器采用的来自STC公司研发的经典51单片机STC89C52RC型号来当开展,和温度传感

2、器部件的连接方式是使用的单总线方式,能够及时地获取温度信息。而且显示部分还用了LCD1602的液晶显示,还提供了设置温度范围报警的方式,轻碰按键电路能够引发温度数值的广播和温度数值区间的设置。同时,TTSTS中文文字转语音电路部分能够广播语音。蜂鸣器部分可以进行高温报警,而且,随后还进行了实验验证,结果发现,在单片机基础上开发的语音提示测温系统可以精准的对气体或者液体的温度信息进行测量,而且整个使用过程简单便捷。系统可以测量温度的区间是-55摄氏度到125摄氏度之间,其准确度控制在0.5范围。而且,成本相对较低,误差较小、效率较高而且功耗较低等优点,可以在很多要进行测温的场景中进行运用。关键词

3、:温度测量;STC89C52单片机;DS18B20温度传感器;TTS中文文字转语音IDESIGN OF VOICE PROMPT TEMPERATURE MEASUREMENT SYSTEM BASED ON SINGLE CHIP MICROCOMPUTERAbstract:This article introduces a voice prompt temperature measurement system based on single chip microcomputer. It uses DS18B20 temperature sensor to collect ambient t

4、emperature. The sensor probe is in a waterproof package and can be directly placed in various liquids to measure the target temperature. The design is displayed through the LCD1602 liquid crystal, and can also drive the TTS Chinese text-to-speech module to broadcast the measured temperature. The use

5、r can set the alarm threshold through the button module for real-time monitoring of the on-site temperature, and drive the buzzer to ring the alarm when the temperature is higher than the threshold. The design uses STC89C52RC, a classic 51 single chip microcomputer of STC, as the main processor of t

6、he system. It uses a single bus to connect the temperature sensor to obtain the on-site temperature value. At the same time, it builds an LCD1602 liquid crystal to display real-time temperature and threshold temperature. It is used to trigger the temperature broadcast and set the temperature thresho

7、ld, the buzzer circuit is used for high temperature alarm, and the TTS Chinese text-to-speech circuit is used for voice broadcast.Experiments show that the voice prompt temperature measurement system based on single chip microcomputer designed in this paper can accurately measure the temperature of

8、gas or liquid. The whole system is easy to use and the user interface is friendly. The temperature measurement range is -55 + 125 , and the temperature measurement accuracy is 0.5 . The overall cost is low, and it has the characteristics of low power consumption, low error, high acquisition speed, e

9、tc., and can be applied to various occasions where temperature measurement is required.Keywords:Temperature measurement; STC89C52 microcontroller; DS18B20 temperature sensor; TTS Chinese text to speech 目 录1 绪论11.1 课题的研究背景和意义11.2 温度测量系统研究现状11.3 本论文的目的21.4 本文要研究的内容32 系统总体方案设计42.1 系统总体方案设计思路42.2 系统总体方案

10、比较论证52.2.1 处理器的选择52.2.2 温度传感器的选择62.2.3 按键模块的选择62.3 最终方案选择73 系统硬件设计83.1 STC89C52RC单片机最小系统电路83.1.1 STC89C52RC单片机时钟电路93.1.2 STC89C52RC单片机复位电路103.2 DS18B20温度传感器电路113.3 TTS中文文字转语音电路113.4 LCD1602液晶显示电路123.5 蜂鸣器报警电路133.6 轻触按键电路144 系统软件设计164.1 系统软件总体设计164.2 温度采集子程序设计184.3 温度播报子程序设计194.4 按键处理子程序设计215 系统调试与测试

11、235.1 系统调试235.1.1 硬件调试235.1.2 软件调试245.2 系统测试255.3 实验数据及误差分析26结论28参考文献29致谢30V1 绪论1.1 选题的背景与意义1.1.1 单片机测温系统的研究背景日新月异,时代在发展,科技也在进步,单片机技术从诞生到现在广泛运用到多个领域中经历了一段时间的考验1,单片机在研发出来后,就开始被运用到各种场景当中,比如温度测量,而且也获得了很大程度的进展。同时,单片机的技术也在持续的发展成熟和扩大,也能够实现对场景中温度的多个参数进行测量。我们知晓,温度在很多场景、很多领域都会有所涉及,如果能够对温度进行精准的测量,那将会起着重要的作用2。

12、运用到的场景如下,比如:工业领域当中的冶炼金属、家用当中的空调和种植业当中的温室大棚生产等,都需要我们对温度进行较为精准的测量。1.1.2 单片机测温系统的研究意义社会发展日新月异,即使是农业技术也都在不断进步,同时其中会运用到的测温技术也在不断今年不。如果可以过呢国家精准的、更好的使用测温系统,从而来实现对温度开展一定程度的控制,会有利于让工农业更加安全、更好的发展。温度如我们所熟知,在物理层面上,是指的物体本身冷热程度的一个表达量。但是在工业农业这些行业来说,温度不仅仅是一个表达量,还代表着生产效率、能源问题和产品质量,放大来看对我们国家的经济发展都有着关键的影响3。基于单片机来开展这一技

13、术的关键之处在于测温环节工业测量目标当中的关键组成就包括了温度测量4。所以,可以得知,基于单片机来进行测温也就是对温度开展有效精准的测量5,同时,这项技术也已经广泛运用到了现实的工业生产,特别是关键的工业行业当中,比如电气自动化等。不仅是在工业等行业当中,在我们的实际生活里,温度的测量也有着很广泛的用途,例如在家庭环境中,有各种可以进行室内温度测量的场景,比如暖手宝、电热毯、热水器、空调、地暖等6。但是,温度本身作为一个模拟的参数,将模拟出来的温度参数化为数值是不太复杂的,只要有对应的原件和技术支撑,但是其电路的设计较繁杂,成本也不低,该研究的目的是在设计出能够进行实时语音播放和蜂鸣器报警功能

14、的同时降低成本消耗。1.2 文章的内容及方法此文的分为了几部分来叙述,首先是基于单片机来进行测温的研究背景和意义所在;其次阐述了开展该研究需要所做的各种准备事项;之后细致介绍了该研究的设计思想,介绍了硬件软件的结构和流程设计,硬件部分还讲解了硬件的组成、结构还有每个部分之间的连接情况还有进行工作的原理等内容同时,该文章还运用了很多方法来进行研究,其中包括文献阅读法、描述性研究方法、系统科学方法、文本细读方法、信息研究、经验总结以及综合分析的方法等,综合来设计实验。1.3 文章组织结构此文分为了6部分来进行介绍,如下:一、绪论部分:引入该课题研究的背景、现状和研究意义,同时还细致的讲解了目前整个

15、测量温度体系的技术现状,并且总结了此文的整体架构。二、体系整体的设计计划:这部分运用到了系统的方框图来进行直观的展示,介绍了整个体系的原理设计和各组件之间的构成,而且通过方框图结合实际的功能需求来提出实际可行的设计方案,再通过不断的对比结果从而来确定更加符合需求的设计。三、硬件部分介绍:这部分介绍讲解了系统的硬件构成和对应的原理。把整个体系进行合理科学的划分,分成若干个功能模块来进行剖析。四、软件部分介绍:此环节是该文章的重心环节,讲述了系统的软件设计环节,用图表来辅助说明其中的各个模块的作用和流程设计。五、进行系统的调试和测试环节:这部分对前面设计的软件硬件部分进行整体的测试,而且对整个调试

16、和测试环节进行了细致的描述。六、总结:这部分对前面的内容进行概述,而且也挑明了设计系统的优缺点以及适用的场景,同时也展望了未来研究可以深入之处。2 系统总体方案设计2.1 系统总体方案设计思路如果要设计一个电子系统,需要先假设真实情况下的需求和要实现的功能模块进行设计,然后再开展硬件和软件部分的设计。为了能够给对系统的组成进行更加直观的展示,这里使用系统框图来描述,它能使得体系内各个模块的连接展现的更加直观和清楚。而且,也可以更加直观的呈现该体系的主要设计理念13,结合框图,我们能够了解到体系的硬件组成部分有哪些,以及如何通过模块化的连接让各个功能之间实现组合。针对该系统的系统框图如下图展示,

17、图2.1 。图2.1 系统方框图从框图中可以看到,处理器是整个系统的核心,14,可以按照实际的需求来进行编程实现的硬件部分,不过只有处理器是没有办法实现全部功能的15,处理器仍然要依靠和外部的一些特定的硬件来辅助,这样形成一个完整的体系架构才能够实现我们需要的功能。那些外围部分的硬件自然而然也就是处理器的最小系统外围硬件组成部分,但是还是需要通过和处理器的专门的IO进行连接了方能发挥作用。其中,显示电路部分负责对温度进行即时的显示,并且展示报警数据区间的硬件,工作过程中由处理器变成来控制实现。如果要对某个具体的传感参数进行测量,那么就需要参数对应的传感器硬件来做到。在本文的实验当中,我们可以看

18、到目的是要检测环境中的温度变量,所以,只有把温度传感器硬件和处理器硬件进行连接才能发挥功能。同时,还要做到对使用者的控制请求进行识别,还要由输入硬件,传递输入信号到处理器,然后对使用者的请求进行处理16,而涉及到此次试验,需要进行识别的请求是:对温度广播的控制和温度区间的触发信号的设计。是借助按键电路来对传入的信号进行识别和分析。系统还涉及到了报警电路,这个电路在系统当中十分常见,也经常运用在进行人机互动的流程中进行具体的操作预警。该系统的报警电路模块做到了用警铃来对用户进行提醒,如果系统检测到了温度超过了设定的区间数值,就会直接进行报警和提醒。系统当中的语音部分也是需要通过处理器进行编程来实

19、现的,要实现数字信号转为模拟信号的过程,也就是实现通过语音来播报系统当前观测到的温度参数数值。2.2系统总体方案比较论证2.2.1 处理器的选择通过翻阅文献可以知道,在常见的电子控制的系统当中,arm芯片和单片机还是主要充当着主控芯片的角色。(1)arm处理器首先介绍arm处理器,通常出现在中高端产品线的电子产品中,由64位和32位的处理器分类17,借助处理器可以做到对数据进行快速的运算和处理,还可以开展一定程度的繁杂运算和操作,甚至能够对其它高性能的优秀显示硬件进行无卡顿的控制。在操作系统角度而言,arm可以适配各种软件操作系统,在工作时,借助多进程的原理来对每个进程进行合理科学的安排,做到

20、高效化。(2)8位单片机这部分介绍8位单片机。和arm处理器对应,8位单片机主要是出现在较为低端的电子产品当中,其成本也相对较低,使用起来更加简单快捷,若要求不高,那它可以在较为简单的电子硬件体系当中稳定持续地运转。通常,是用单片机来作为主要控制器的硬件系统来说,因为成本的限制,性能方面也会发挥的不高。所以,使用单片机的软件上是无法携带操作系统的。8位单片机在单片机中是很常见的,如果是单片的成本甚至能够降低到1元之下。而且在日常的生活当中用途很广,比如洗衣机、电磁炉和电饭锅等非智能的生活电器。通过前面的介绍我们可以知道,虽然arm的处理器在性能方面比单片机要发挥的更好,但是考虑到我们本次实验是

21、要实现。通过语音来提醒用户的温度测量控制体系。主要在功能上是要实现对温度的监控测量、显示还有播报。在算法方面的要求不是很高。所以这里并没有采用arm的处理器,而是决定使用单片机芯片就可以满足此次实验的要求。而且考虑到成本方面,为了降低硬件方面的消耗。此次实验主要使用8位单片机来作为处理器,型号是STC89C52RC。2.2.2 温度传感器的选择(1)模拟传感器pt100通过前面的分析可知,如果要对温度进行测量监控,那么在系统的电路设计方案当中需要使用到传感器,而传感器在涉及到信号方面也分为两种,一种是模拟传感器,另外一种是数字传感器。通过名字我们可以简单的看到前者模拟传感器,它能够进行分析识别

22、的信号是模拟信号。但是需要借助其他模数转换电路来将模拟信号转变成数字信号才能够交给处理器来进行操作和识别。举例来说明,通常可以见到的一种温度传感器是pt100的模拟信号传感器,其优点有准确度良好而且温度测控范围也大。使得其在各种工业领域当中都经常见到。pt100别称铂电阻,如其名,根本上组成是电阻。而这款模拟温度传感器它的电阻大小与温度的高低有关。所以若是能够得出传感器的电阻值大小,那么就能够测量出当时情境下的温度数值的大小。(2)数字传感器数字传感器和模拟传感器不同。通过模拟传感器来传达信号的话,同时还需要使用模数转换外电路、信号处理才能够实现需求18,但是如果使用数字传感器,因为它本身已经

23、拥有了对应的电路设计,这只需要让数字传感器和处理器连接。然后通过是使用特定的协议编程方式来读取到传感器当时的数据,从而会减少电路设计的复杂程度。但是考虑到实验的成本,此类传感器的精确度一般没有模拟传感器高,所以对于要求高精确度的场合就不适用。数字传感器的常用是DS18B20,此型号的传感器里面存在对温度进行测量的设计电路,不需要信号转换就能够通过对应的接口来得到对应的环境数值。同时,对电源的要求不是很严格,只要在3.3-5V的宽电压电源即可,使用中可以直接使用单片机的5V电源,无需为传感器设计另外的电源。通过前面的比较,可以看到,若使用模拟传感器,它的精度测量很好,但是本次实验的设计使用场景通

24、常是处于气液两相的状态当中。对于温度的监控要求不是非常的复杂,对于温度测量的准确度也不需要非常准确,所以此次试验计划最终采用数字传感器DS18B20来进行温度数值的测量。2.2.3 按键模块的选择这一部分是按键模块硬件的选择,按键模块是用来获取到使用者的输入信号的。然后根据使用者输入的信号情况来让整个系统设置报警的区间或者是进行当前温度的广播。在常用的电子系统当中。使用到的按键模块分为两种,分别是轻触按键和摇杆传感器按键。(1)摇杆传感器按键首先来看摇杆传感器,它能够进行全方位的操作。通常是借助横轴和纵轴双轴来对模拟量进行输出。当使用者往某个方向操作操纵杆的时候,双轴输出对应的模拟量大小。根据

25、这两个模拟量的大小和比值可以大概计算操作的方向,还有幅度信息,所以如果要使用此类传感器,它可以达到多方位的控制,但是涉及的成本也比较高。对应的编程也比另外一种更加复杂。同时需要使用AD电路来把遥感传感器按钮的模拟输出的信号转化成对应的数字信号,然后通过数字信号来计算操作者的方向和幅度大小。(2)轻触按键这一部分来介绍另外一种控制方式是轻触按键的方式。它也在电子设备当中非常常见,涉及到结构也比前者更加简单。两个按钮触点状态的变化是通过内部金属弹簧片来实现的。所以轻触按键对应的信号输出是逻辑数字信号,只能对应两种状态。然后在进行软件编程的过程当中,就意味着只需要一个普通的数字IO接口就能够使做到对

26、操作的检测。只要识别到对应数字IO接口的电平变化,就能够来识别使用者是否触碰了这个按钮。通过前面的比较我们可以得知,根据我们此次实验的系统,我们只需要涉及到三个需要识别的输入信号,不需要用到摇杆传感器按钮来增加硬件方面的难度和成本,直接在系统当中增添三个轻触按钮,就能够做到对用户使用者输入信号的识别,同时还能够减少一定的编程难度。所以此次实验选择了触摸按钮来对按键模块进行构建。2.3 最终方案选择通过前面的分析,我们可以总结出来最后选择的硬件适配方案是嗯,单片机型号STC89C52作为此次实验的处理器,进行温度测量的温度传感器是DS18B20。用来识别使用者输入型号的是轻触按键。之后还要结合报

27、警模块的蜂鸣器以及设计的TTS中文文字转语音电路以及显示部分LCD1602液晶电路来对阈值之外的温度进行报警、温度的广播还有信息的呈现等功能模块部分。3 系统硬件设计3.1 STC89C52RC单片机最小系统电路从前面的内容可以得知,单片机是一种能够进行软件操作的芯片。但是在涉及到编程的时候,让单片机通电就能够开始进行工作。但是这些功能没有办法通过单个的芯片来进行实现。所以若要实现整个系统的功能和编程,那么就要涉及到使用若干个单片机来构建一个最小的系统方案。若要实现处理器芯片支持软件操作的功能,那么硬件方面方案设计的第一步就是要构成通过使用最少外围组件的处理器最小系统电路。而且这一步也是整个系

28、统实现功能的第一步,如果这一步出现了问题,那么找最后整个设计出来的系统将不能正常的实现对应的功能。所以涉及到处理器的最小系统电路设计是这一部分的基础,也是关键。此次实验选择的是STC89C52RC,STC公司生产的处理器19,它的最小系统电路中有两个关键的部分分别是时钟电路和复位电路,它的最小系统电路如下所示,图3.1:图3.1 STC89C52单片机最小系统电路示意图3.1.1 STC89C52RC单片机时钟电路这一部分介绍该型号的时钟电路。时钟电路的作用是为整个系统的处理器提供持续工作的振荡源。若是没有为系统提供震荡信号,那么整个系统就不能正常的工作。此次实验设计的处理器最小系统电路如下图

29、3.2,这个电路包括了2个无极性电容器和振荡源无源晶体振荡器。无源晶体振荡器是时钟电路控制振荡信号的关键组成。震荡信号是一种周期性的规律方波信号,其周期的长短也就是处理器的时钟周期大小。同时,该处理器的时钟周期也是执行一句代码所耗的最短时间。振荡器的频率越大越高,那么对应的输入信号的周期就越小,执行命令所耗的时间成本就越小。但是,在用处理器的系统当中,虽然其处理四度快慢和时钟电路当中振荡器的振荡周期有关,但是并非对应的频率越高越好。若振荡的频率持续升高,这系统的对抗干扰的能力就会降低。所以在进行处理器时钟电路设计的时候,不可以直接选择高频的时钟源。图3.2 STC89C52RC型号的单片机时钟

30、电路示意图3.1.2 STC89C52RC单片机复位电路这部分介绍复位电路,这是一个功能型电路。它的功能是如果复位电路开始运转,那么整个体系都能在软件当中回复到最初的状态,所以,复位电路在整个系统当中是必须存在的。在涉及到单片机的最小系统电路中,经常看到的是上电复位电路和按钮复位电路。前者能够为最小系统电路在电源输入的时候把程序进行初始化,这时,能够支持软件操作的处理器就能够在系统刚刚开始运转的时候就进行程序的初始化操作。而后者按钮复位电路是通过控制对应的按钮来操控复位的操作。涉及到的背后原理是电子系统在通电之后并且开始工作了的时刻,再进行的复位操作。比如台式计算机的按钮重置就是类似的复位操作

31、。对于一个电子系统而言,按钮复位电路必须存在,功能模块可通过上电复位电路来做到,若是处理器的最小系统没有对上电复位进行设计,那么还可以通过在电子系统断电重新连接之后,借助按钮复位来进行实现。图3.3 STC89C52RC单片机复位电路的示意图如上图所示,是STC89C52RC单片机复位电路的示意图,其中我们可以看到,电路是由一个10K色环电阻以及一个10uF电解电容构成的。当开始通电,因为电容器充电,微控制器9号引脚的RST拉下。所以,整个系统会在通电的时刻借助复位电路向处理器传递复位信号,如果充电结束了,处理器的9号引脚RST引脚变为电平变高了。这时候,处理器就停止了复位信号传递,也就是代表

32、着复位结束。上电复位电路是通过电阻和电容组成的。3.2 DS18B20温度传感器电路此次实验中的温度传感器是DS18B20,它是数字传感器,其本身就做到了实现繁杂的驱动电路设计,其中包含了模数转换电路的设计。在使用过程中,只要单片机可以通过传感器的通用协议作查询的命令,那么就能够获得传感器传递到的关于温度的信息。如图3.4,我们可以看到在单片机基础上的语音测温系统的DS18B20示意图。电源是使用的单片机的5V电源。单片机的P1.1引脚和传感器的数据收发相互连接,电阻通过把数据引脚DQ拉到电源VCC,能够保障数据的稳定传递。图3.4 DS18B20温度传感器电路示意图3.3 TTS中文文字转语

33、音电路播放语音部分是使用的TTS中文文本语音部分,其详细的模块模型是CN-TTS。因为未获取到制造商的内部电路图,所以暂时不能够对内部结构进行剖析。如下图3.5,是此次实验中TTS中文文本到语音电路的设计方案。该模块和处理器借助TTL的串口进行交叉联接,从而达到了串行数据进行通信的功能。所以,为了做到对数据的异步传输,需要STC89C52RC单片机和单片机把两个通信引脚进行反向的连接。同时,因为TTS中文文本到语音部分使用的和STC89C52RC单片机所用电源都是5伏特的直流电,那么只用把单片机的引脚GND和VCC和模块电路的对应的引脚连接上就可以能够对TTS中文文本到语音电路进行通电。而且,

34、工作所需要的电源就是5伏特的直流电,所以在单片机系统中的电源就能够直接用,不用单独对电源电路进行设计。TTS中文文本到语音电路的在通电了以后,初始化就会自行结束。接下来,只要根据单片机规定的通信协议传递对应的数据信息,那么就能够完成输出模拟信号。之后会传递到扬声器,从而会转化成人耳听到的语音,以上就是机器语音即时进行温度信息播报的功能。图3.5 TTS中文文字转语音电路示意图3.4 LCD1602液晶显示电路此次实验使用的显示部件是LCD1602。该部件在电子系统当中非常常见,成本低,是单色液晶显示。其供电电源要求不高,是3.3V-5V,可以会使用并联控制的方式来进行奥做,若是处于并行状况,显

35、示器和外部的处理器硬件会由若干个通信的接口,同时还需要用到十余个引脚来驱动。数据的传输是通过8条数据线来进行同步传递的,从而可以更快地看到显示的数据,也更加方便处理处理器工作频率低和即将呈现内容多的情况。但是也有一定的缺陷:就是其所需要的处理器IO引脚数量较多,在布线方面提高了电路设计的难度。图3.6 液晶显示电路示意图如上图所示,是液晶显示电路的示意图。图中LCD1602显示器的D0-D7并行数据接口会分半连接到STC89C52RC单片机P2.0-P2.7一组的IO引脚。同时,单片机的P3.7、P3.6和P3.5引脚也会分别连接通信控制引脚RS、RW和E。3.5 蜂鸣器报警电路报警装置是使用

36、的电子系统中常见的蜂鸣器。蜂鸣器的构造相对简单,有两类,分别是无源蜂鸣器和有源蜂鸣器。有源的蜂鸣器是装备了振荡源的蜂鸣器。蜂鸣器可以用直流电源来进行通电工作,只要在其两端施加一定幅度的电压,就可以进行报警。蜂鸣器的内部振荡源是即时振动的,会有对应的响声。而无源蜂鸣器不同,蜂鸣器由于缺少内部振荡源,在使用中需要方波信号驱动。图3.7 蜂鸣器报警电路示意图本文所用蜂鸣器为有源蜂鸣器,蜂鸣器报警模块电路如图3.7所示,所用蜂鸣器驱动引脚为普通 IO口,但单片机 IO引脚的驱动电流不够大,还需要先通过三极管8550将其放大,然后将输出信号引入蜂鸣器的驱动端,所用的STC89C52RC单片机的驱动 IO

37、引脚为 P1.0引脚3.6 轻触按键电路语音信号测温系统以单片机为核心,通过按键获取用户的控制要求。在语音广播中,由于需要控制实时温度和设定报警温度的阈值大小,因此用户的控制信号需要共触三次。触摸式按键是按键设备系列中最常用的一种。其物理结构比较简单。通过按钮内的金属弹簧片,断开接触。按压按钮时,按钮内的金属弹簧片不能继续与触点接触;按压按钮时,内的金属弹簧片受压,从而发生弹性变形,使两者同时接触。按键接触。因为金属弹簧的导电性,当按下按钮时,两个按钮触点都在导电。所以,在使用触摸按钮时,只需将其中一个按钮触点与处理器的 IO连接,并将另一个按钮触点与电源或 GND连接,就可以通过编程来识别处

38、理器的 IO电平触摸屏按键是按下还是弹出。图3.8 轻触按键电路本设计的轻触按钮电路如图3.8所示。整个电路使用三个相同的轻触按钮。由于轻触按钮一般有四个触点,两个对角触点组成一组,因此连接时只需将每个按钮的一个对角触点连接到GND,另一个触点连接到STC89C52RC微控制器的一个普通数字接口。本设计采用的STC89C52RC单片机的三个数字接口分别为P3.2、P3.3和P3.5。由于轻触按键的其中一个触点均接到了低电平信号,因此与轻触按键另外三个触点连接的STC89C52RC数字接口需要通过软件检测其是否变为低电平方可判断相应的按键是否被用户按下。4 系统软件设计4.1 系统软件总体设计基

39、于单片机的语音提示测温系统的系统软件是由STC89C52RC单片机运行的C51软件。用keilc51软件编写,生成十六进制可执行文件,下载到单片机上,通过STC-ISP软件运行。在涉及编程的电子系统进入软件设计环节之前,往往需要根据功能需求确定整个软件体系结构,将整个软件系统划分为若干实现特定功能的软件子系统,然后根据各软件子系统之间的相互关系确定各自的顺序,最后利用软件流程图进行连接。因此,绘制软件流程图是描述软件设计的直观有效的方法。图4.1 主程序流程图图4.1是本文单片机软件中相应的软件流程图。整个软件过程的第一步是系统初始化操作,主要设置在软件主功能的第一部分。将整个系统正常运行前需

40、要设置的基本参数设置为初始状态值。本次设计的单片机软件系统初始化程序主要包括系统串口、定时器0和LCD1602液晶显示模块的初始化。在本设计中,TTS中文文本语音模块与单片机采用串行通信,因此需要在系统串口初始化软件中将单片机的波特率设置为9600bps,经双方同意,才能实现准确的数据通信。为了不占用系统资源,本设计采用定时采集的方法获取温度。计时间隔为1秒。因此,有必要初始化微控制器定时器0以配置定时器以产生50毫秒的定时器中断。中断使用变量进行计数。,在主循环中,判断变量的值在1秒间隔后达到20,马上驱动DS18B20温度传感器读取一次温度数值。LCD1602液晶在编程驱动使其显示图像前,

41、需要通过初始化代码设置液晶的默认工作模式以及关键初始参数,其中包括控制方式的选择,液晶通信指令集的选择,默认初始显示位置的设定,光标移动方向的选择,光标是否显示,光标显示模式的设定。LCD1602液晶的经过特定的初始化完成后,便可调用相应读写代码直接控制液晶进行显示操作,同时将需要显示的默认字符在初始化中进行显示。单片机执行系统初始化操作后,开始进入核心主循环程序。第一步是温度数据的采集和处理。单片机驱动DS18B20温度传感器采集现场环境温度数据,并将温度数据显示在LCD1602液晶上,保存下来供后续程序调用。获取温度数据后,根据用户设定的报警温度阈值进行判断。如果判断当前温度低于阈值,则直

42、接进入下一步按钮检测判断。如果判断当前温度高于阈值,则驱动蜂鸣器实时报警,直到实时温度降至阈值以下。温度超限检测报警完成后,进行按钮IO检测处理,即通过软件读取连接到三个触摸按钮和STC89C52RC单片机的相应IO的电平状态。由于触摸按钮IO的初始电平较高,当读取按钮IO电平较低时,意味着用户按下了连接的触摸按钮。如果在键IO检测步骤中确定用户没有按下任何触摸键,则程序返回到主循环的温度数据采集处理,以便执行下一个软件流。如果判断为当用户按下其中一个触摸按钮时,则根据相应的按钮IO号执行处理。当用户按下语音广播按钮时,当前过程中采集的温度数据通过TTS中文文本语音模块进行广播。当用户按下语音

43、广播按钮时,当前过程中采集的温度数据通过TTS中文文本语音模块进行广播。当您按下设置报警温度阈值时,将通过加减一来计算当前阈值,计算结果将显示在LCD1602上。最终,单片机软件完成一次完整循环,从收到指令到处理完成后单片机软件重新返回到主循环的开头进行下一次温度数据采集处理。4.2 温度采集子程序设计基于单片机的语音提示测温系统的温度采集子程序是整个系统软件的主程序。在STC89C52RC单片机上,主要通过单总线驱动DS18B20温度传感器读取表面探头温度。温度采集子程序的软件流程图如图4.2所示。图4.2 温度采集子程序流程图(1)温度采集子程序首先发送传感器特定的转换命令。发送转换命令的

44、第一步是初始化传感器并驱动DS18B20总线接口输入特定持续时间的脉冲信号。此时,单片机IO口以输出方式连接到传感器总线接口。脉冲发送后,IO端口处于高电平,然后设置为输入模式,等待传感器将IO端口电平拉低。如果DS18B20传感器接收到初始化信号并成功初始化,它将立即拉下总线接口。当微控制器确定IO端口电平变高时,它将发送转换指令的第二部分,并发送不操作传感器内部ROM的指令。最后,发送传感器的最终温度转换命令。(2)在发送转换指令后,需要将温度读数指令发送到传感器。同样,第一和第二步需要初始化传感器并发送不操作传感器内部ROM的指令。传输完成后,发送实际温度读取指令,通过软件读取DS18B

45、20传感器采集的实时温度值。(3)下一步,可以执行实际温度读取步骤。由于DS18B20支持-55+110范围内的温度测量,精度达到0.5,因此需要读取的温度值由两个字节的数据组成。只能读取一个字节的温度数据。单片机在读取时需要连续读取两个字节的温度数据,先读取温度数据的低字节数据,再读取高字节数据。(4)温度数据高低字节读取完成后需要进行温度数据的转换处理,即将两个字节数据合成两位小数的温度数据,然后交由主程序进行处理。4.3 温度播报子程序设计系统的温度播报子功能是通过单片机串口向TTS中文文本转语音模块发送需要读取的文本数据,模块便可直接播放对应的语音,并不需要复杂的通信协议。温度播报子程

46、序软件流程图如图4.3所示。图4.3 温度播报子程序流程图(1)首先执行的是温度提示语播报,播报“当前温度是”的提示语,即通过单片机的发送字符串函数通过串口将该中文字符串发送到TTS中文文本转语音模块即可,播放完成后延时五百毫秒再进行实际的温度数据判断播报。(2)由于TTS中文文本转语音模块无法直接识别数据,即识别需要播报的数据是整数或小数,数据的大小,因此需要通过软件判断温度数据的大小,手动发送代表数字每一位的文本“百”、“十”等。由于DS18B20温度传感器采集的温度数据最大为百位,因此首先需要进行百位数判断播报,及判断温度的百位数是否为零,如果是则不播报百位数,如果百位数非零则播报该数字

47、后再播报“百”。(3)十位数判断播报与百位数判断播报类似,当判断到十位数为零时,直接播报“零”,当判断到十位数非零时,播报该数字后再播报“十”。(4)个位数判断播报时如果判断个位数为零时,则不播报个位数,如果非零时则直接播报该个位数据。(5)小数位的判断播报较简单,只需要判断小数点后两位数是否均为零,如果是则不播报小数点和小数位,如果其中一位数非零则播报“点”和小数点后的两位数字。4.4 按键处理子程序设计本文采用三个轻触按钮来识别用户的触发信号,从而控制系统播放温度或改变报警温度阈值。这部分功能由按钮处理子程序完成。按钮处理子程序位于单片机程序主循环的第一个位置。必须连续执行按钮检测处理,否

48、则将导致用户输入信号的检测延迟。关键处理子程序的软件流程图如图4.4所示。在执行子例程之后,判断连接到触摸按钮的IO端口的电平已经改变。未按下按钮时,三个IO端口均为高电平。当一个IO端口被拉低到低电平时,意味着用户按下了按钮,导致按钮的IO电平从高电平拉低。此时,需要确定哪个按钮IO被拉下。如果确定STC89C52RC微控制器的P3.2引脚过低,则表示用户已按下温度广播按钮。此时,调用温度广播子例程来广播当前的实时温度。价值观。如果判断单片机的P3.3或P3.4引脚低,说明用户按下了报警温度阈值设置按钮,则调用当前阈值进行加减,并调用显示程序驱动LCD1602液晶显示器显示调整后的报警温度阈

49、值在LCD上更新。图4.4 按键处理子程序流程图5 系统调试与测试本设计在进行了硬件和软件设计以后经过调试步骤才可以投入到实际应用中,系统调试为硬件的调试和软件调试,在整个系统应用之前,需要观察焊接是否有问题。比如说,焊接有没有明显的裂缝,电源的正极和负极是否接反,然后检测线路的连接、虚焊接等问题。然后再用万用表测试电源的正极和负极。看看是否存在电路短路或者其它的严重的电源问题,最终保证硬件设备没有任何问题。在检测设计的实物能否实现当初设计的功能要求。取决于单片机的语音提示测温系统采用的硬件电路的构建和硬件中单片机软件编程的制作,因此整个系统调试包括硬件调试、软件调试、系统测试和实验数据及误差

50、分析。5.1 系统调试5.1.1 硬件调试硬件电路常见问题有虚焊,搭桥,选择的元器件型号不合理或者出现焊接错误问题,电源电压过高等,焊接线路不合理等。在进行焊接时一定要注意避免这些情况出现。防止这些错误出现的办法就是设计制作之前就认真考虑好线路布局,调试时观察到位,及时发现并且处理问题。常见的硬件电路问题有:(1)逻辑错误:成品达不到本应实现的功能要求,出现错误焊接或是由于焊接时造成的短路、断路、虚焊、接触不良等故障。(2)元器件问题:选择的元器件型号不符合设计的要求或错误焊接造成实物不能正常工作。(3)电源问题:设计电源电压太高或正负极反接毁坏元器件,更甚者会损坏仿真器。这是无法挽回的故障,

51、要特别注意不要出现。(4)稳定性差:由于电源质量差,供电不稳定,焊接线路布局不合理、焊接工艺不好等原因造成的。系统硬件与软件是否能够协调运行,主要看的就是系统创造之初是否能够达到理想的效果,如果与理想的效果一致,则可以继续进行。如果不一致,则需要重新修改系统,直到达到理想的效果。进行本次设计时,先将整体硬件电路划分成为各个部分子电路,各个部分子电路完成以后,再将其结合在一块。在调试的过程中,先看硬件是否符合要求,然后检查硬件焊接,看是否有虚焊,漏焊以及焊错的情况发生。本文采用的是分块调试,由部分到整体,由简单到复杂。5.1.2 软件调试基于单片机的语音提示测温系统软件即为单片机软件,单片机软件

52、通过Keil C51软件进行编译和调试,在Keil C51软件中对单片机软件进行编译后的结果如图5.1所示,当单片机无关键错误时,软件下方的信息输出栏提示编译成功生成hex镜像文件,并显示整个单片机软件编译识别出0个错误和0个警告。图5.1 单片机软件编译图单片机软件编译成功后生成程序hex镜像文件,该镜像文件可直接烧写到STC89C52RC单片机中运行,当硬件电路未搭建完成时,可通过仿真软件验证单片机软件的正确性,同时在软件开发前期通过仿真步骤也可快速进行软件修改。本文使用的仿真软件是Proteus,使用该软件绘制好硬件系统的电路后,将hex镜像文件加载到仿真电路图中的单片机中即可运行。本设

53、计的仿真电路如图5.2所示,由于Proteus软件中没有提供本文使用到的TTS中文文本转语音模块对应的软件器件,因此仿真时无法验证该部分功能。仿真电路运行后LCD1602液晶显示的内容与实物一样,第一行显示报警温度阈值,第二行显示DS18B20传感器采集到的实时温度值。当在仿真图的DS18B20器件上点击温度调整按钮,液晶上显示的实时温度值能够跟随改变,说明温度采集子程序正确。同时按下报警温度阈值设置按键k2或k3时也能改变液晶第一行显示的阈值,说明按键处理子程序正确。图5.2 Proteus仿真电路图Proteus仿真结果表明,本设计编写的单片机软件除了温度语音播报子程序无法验证外,其他程序

54、均运行正确。5.2 系统测试本设计的是基于单片机的语音提示测温系统,因此最能体现的系统性能的是温度测量的准确性,因此系统测试时需要验证其测温准确性。本文使用的测试方案是将基于单片机的语音提示测温系统的测温探头置于水中,通过PLC温控器改变水的温度,记录各个温度下本文设计测温系统液晶显示温度,同时使用一个工业测温仪同步测量进行数据对比,由于环境以及水温的限制只能测量0-100时的数据。分别在0、10、20、30、40、50、60、70、80、90、100的每个温度采集100对数据,然后取出每对数据的最大值,记录成表,如表5.1所示。表5.1 温度测试表设置温度/DS18B20测量温度/工业温控仪

55、测量温度/1010.1510.022019.720.053030.2329.934040.1840.065050.0849.926059.6559.957070.3570.098080.41809090.5690.0510099.43100.0400.20.09将表5.1温度测试数据导入到Origin绘图软件中进行数据处理,并生成对应的曲线图如图5.3所示。图5.3 Origin曲线图5.3 实验数据及误差分析由表5.1温度数据表和图5.3的Origin曲线图可知,当温度在0-80范围内时,本文测温的精度能控制在0.5以内,但同时也存在两个问题。(1)温度偏差值的波动范围不稳定,时大时小。分析

56、原因可知样本数据只是选用了一组数据中的最大值,因此测量的随机性较大。(2)当温度超过80达到90、100时,温度误差增大超过0.5。查询DS18B20温度传感器的数据手册可知,当测温温度处于-10至85时,精度才能保持在0.5内。解决措施:温度数据的波动可通过多组数据处理来提高测量精度降低波动,比如可连续采集多组温度值,去除最大值和最小值后取剩下数值的平均值的做法;而测温精度大于85时的测温精度问题由硬件造成,暂时无法解决,但由测试数据可知当温度大于85时精度仍保持在1内,因此可根据实际应用场合需求而选择是否使用本系统。结论该设计是基于传统测温系统而设计的一种具有语音提示功能的测温系统。在制作

57、的过程中,从设计方案,到硬件设计,接着便是软件设计,一步一步进行设计与制作。最后进行系统调试,符合理想预期下面就整个课题设计流程进行工作总结。首先,选题的考究经历了一定过程,在毕设工作开展前期,需要选定一个结合实际应用的课题作为自己的课题。通过回顾以往市面上的温度测量仪,发现其便利性有待提高,并且在人工智能技术不断发展的情况下,使用TTS技术的产生大大提高了人机交互机器的体验性和方面,因此本人最初决定将基于单片机的语音提示测温系统作为课题的主要研究方向,结合大学的专长模拟电路知识与C语音编程技术制定了适合自身的课题。其次是方案设计和硬件系统的搭建,一个合理的方案才能形成一个可行的作品,因此,本设计的方案确定经过了多个不同方框图的筛选、改进才能得出最终的实施方案。确定了整体系统方案和元器件选型后,使用万用板焊接主控芯片和外围硬件电路,搭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论