数字式智能语音温度计设计

合集下载

具有语音播报功能的数字温度计设计

具有语音播报功能的数字温度计设计

具有语音播报功能的数字温度计设计摘要:本课题针对普通温度计无法播报、灵敏度低、读数不易识别等特点,提出了具有语音播报功能的数字式温度计的设计方案。

选用AT89C51为主控芯片进行温度信号采集、数据处理和语音播放等控制,选用DS18B20对环境温度进行采集,ISD1760进行语音存储与播放,通过ZLG7290实现按键控制,使用128*64液晶来显示温度,时钟芯片PCF8563实现定时功能,以上构建了硬件电路。

该语音温度计测量范围为-25~60℃,误差为±0.5℃,该语音温度计测温速度快,读数方便,语音清晰,语音可定时播报,可广泛用于家庭生活,工厂,实验室等场合。

关键词:AT89C51;语音播报;数字式温度计The design of digital thermometer with speech functionAbstract:The topic for the ordinary thermometer can’t broadcast, low sensitivity, reading is not easy to identify the characteristics, puts forward a design scheme of the digital thermometer with voice broadcast function. Using AT89C51 as the main control chip for temperature signal collecting, data processing and voice playback control, use DS18B20 to collect the environmental temperature, ISD1760 for voice storage and display, through the ZLG7290 to realization control of buttons, the use of 128*64 LCD to display the temperature, the clock chip PCF8563 to realize the timing function, all those set up the construction of the circuit system. The voice thermometer measuring range is -25 ~ 60 ℃, error is ±0.5 ℃. This kind of voice thermometer measurement temperature is fast, else broadcast is convenient, clear voice, and the broadcast can be timing, so this kind of thermometer can be widely used in families, factories, laboratories and other occasions.Key words: AT89C51; voice broadcast; digital thermometer目录第1章绪论 (1)1.1选题目的和意义: (1)1.2本课题在国内外的研究状况及发展趋势: (1)1.3 本课题主要讨论问题 (1)第2章方案选择与论证 (3)2.1系统的总体设计思路 (3)2.2核心控制CPU模块 (3)2.3温度采集模块 (4)2.4显示模块和键盘控制 (4)2.5语音播报模块 (5)2.6时钟芯片模块 (6)第3章系统硬件电路设计 (8)3.1核心控制CPU的介绍 (8)3.1.1 AT89C51的功能描述 (8)3.1.2 AT89C51管脚功能 (8)3.1.3 AT89C51系统资源的分配 (10)3.2温度传感器模块 (10)3.2.1 DS18B20的功能描述 (10)3.2.2 DS18B20的特点 (10)3.2.3 DS18B20的测温原理 (11)3.2.4 DS18B20与A T89C51的接口电路设计 (13)3.3语音播报模块 (13)3.3.1 ISD1760语音模块功能描述 (13)3.3.2 ISD1760各引脚功能描述 (14)3.3.3 ISD1760语音芯片录放音电路设计 (16)3.4显示电路 (18)3.4.1 LCD12864液晶模块的功能描述 (18)3.4.2 LCD12864液晶显示模块与A T89C51接口电路设计 (18)3.5键盘以及定时电路 (19)3.5.1 ZLG7290的功能描述 (19)3.5.2 ZLG7290的原理及硬件接口电路设计 (20)第4章系统的软件设计 (21)4.1系统的主程序设计 (21)4.2测量温度子程序 (22)4.3 ISD1760语音播报子程序 (23)结束语 (24)致谢 (25)参考文献 (26)附录1 总电路图 (27)附录2 系统主程序 (28)附录3 测量温度子程序 (29)附录4 ISD1760语音播报子程序 (30)附录5 英文文献原文及翻译 (31)第1章绪论1.1选题目的和意义:温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究合适的测温方法和测温装置具有重要的意义。

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计随着科技的不断发展,我们的生活变得越来越便利。

而在日常生活中,我们经常会需要测量温度,尤其是在烹饪、医疗、室内温度控制等方面。

为了更加方便快捷地测量温度,我们可以利用单片机和语音识别技术来制作一个简易的语音温度计。

一、设计思路在设计这个语音温度计的过程中,我们需要使用单片机来采集温度数据,并利用语音识别模块来实现语音交互功能。

我们需要选用一款适合的单片机模块,例如Arduino或者Raspberry Pi,这些单片机模块具有强大的功能和良好的扩展性,非常适合用来制作语音温度计。

我们需要选择一款合适的温度传感器,常用的有DS18B20数字温度传感器或者DHT11数字温湿度传感器,这些传感器可以通过数字信号输出当前的温度值。

我们还需要选用一款语音识别模块,例如语音识别模块V3,它可以实现语音的采集和识别功能。

设计思路可以简单总结为:单片机采集温度数据,语音识别模块实现语音交互功能,用户可以通过语音指令查询当前温度值。

二、硬件连接在实际操作中,我们首先需要将温度传感器连接到单片机模块上,然后再将语音识别模块连接到单片机模块上。

接下来,我们需要编写相应的硬件连接代码,使得单片机能够读取到温度数据,并实现与语音识别模块的通讯功能。

接下来是单片机的部分代码设计:```#include <OneWire.h>#include <DallasTemperature.h>#define ONE_WIRE_BUS 2OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire);void setup(void){Serial.begin(9600);sensors.begin();}void loop(void){sensors.requestTemperatures();float temperatureC = sensors.getTempCByIndex(0);Serial.print("Temperature: ");Serial.print(temperatureC);Serial.println(" °C");delay(1000);}```这部分代码实现了单片机模块与温度传感器的连接,并可以实时读取温度数据并通过串口输出。

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计
单片机语音温度计是一种利用单片机和语音模块设计的温度测量仪器。

它可以实时测量环境温度,并通过语音播报将温度数据告知用户。

该设计所需要的材料和器件有:一个单片机模块、一个温度传感器、一个语音模块、一个音频放大器以及一些电阻和连接线。

将温度传感器连接到单片机模块的ADC引脚上。

ADC引脚用于将模拟信号转换为数字信号,以便单片机能够读取温度传感器的数据。

接下来,将语音模块连接到单片机模块的IO口上。

通过IO口,单片机可以控制语音模块的播放和停止等功能。

然后,编写单片机的程序。

程序的主要功能是实时读取温度传感器的数据,并将数据转换为语音播放的格式。

可以根据需求,设计不同的语音播报内容,如“当前温度为XX摄氏度”。

在程序编写完成后,将程序下载到单片机模块上,并将整个电路连接好。

当电路连接完成后,该语音温度计就可以工作了。

用户只需要监测温度传感器所处的环境温度,温度数据会通过语音播报的方式告知用户。

单片机语音温度计是一种简单实用的温度测量仪器,具有方便、快捷的优点。

它可以广泛应用于家庭、办公室、工厂等场所,帮助用户及时获取环境温度信息。

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计在我们现代生活中,温度计是一个非常常见的生活工具。

我们经常使用温度计来测量室内外的温度,以便我们可以根据温度变化来调节室内的温度、选择合适的衣物或者提前预防疾病。

而随着科技的发展,一些新的温度计开始出现,比如语音温度计。

本文将介绍如何基于单片机制作一个简易的语音温度计。

一、设计方案语音温度计的设计方案基于单片机,通过单片机来测量温度,并且通过语音合成模块将温度信息转化为语音输出。

具体来说,设计方案如下:1.温度传感器:使用一款数字温度传感器来测量环境的温度。

传感器有许多种选择,比如DS18B20、DHT11等都可以。

2.单片机:选择一款带有模拟输入输出端口和串口的单片机,比如Arduino、STM32等。

3.语音合成模块:语音合成芯片可以将数字信息转化为语音输出。

这里我们选择一个简易的语音合成模块,比如ISD1820。

4.输出设备:为了让用户可以听到语音输出,我们需要连接一个扬声器。

通过以上四个部分的组合,我们可以实现一个简易的语音温度计。

下面我们将详细介绍每个部分的具体实现和连接方法。

二、硬件设计1.连接温度传感器:将温度传感器的数据线连接到单片机的模拟输入端口,同时连接到单片机的VCC和GND端口。

在Arduino上连接DS18B20传感器需要使用OneWire库和DallasTemperature库,并通过编程获取温度值。

2.连接语音合成模块:将语音合成模块的数据线连接到单片机的串口,同时连接到单片机的VCC和GND端口。

在Arduino上控制ISD1820语音合成模块,我们需要使用对应的库来实现串口通信。

3.连接输出设备:将扬声器连接到语音合成模块的输出端口。

通过以上硬件设计,我们完成了整个语音温度计的硬件部分的搭建。

接下来我们需要着手进行软件的编程设计。

1.获取温度值:通过编程读取温度传感器的数值,并将其转化为摄氏度的数值。

2.语音合成输出:将得到的温度数值转化为对应的语音输出,并通过单片机控制语音合成模块进行语音播放。

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计全文共四篇示例,供读者参考第一篇示例:在日常生活中,温度计是一种常用的测量温度的工具。

而随着科技的发展,基于单片机的温度计设计也成为了一种新的趋势。

今天,我们就来介绍一种简易设计基于单片机的语音温度计。

一、设计思路我们的语音温度计设计思路是利用单片机来读取温度传感器所采集到的温度值,并通过语音模块来将温度值转换成语音输出。

用户可以直接通过语音来获取当前温度,从而实现便捷的测温功能。

二、硬件设计在硬件设计方面,我们使用温度传感器来采集环境温度,并将采集到的数据传输给单片机进行处理。

我们还需要加入语音模块,将处理后的温度数据转换成语音输出。

整个设计中,单片机起着核心的作用,负责数据的处理和控制。

三、软件设计在软件设计方面,我们需要编写单片机的程序来实现温度数据的读取和处理,以及语音输出的控制。

具体来说,我们需要编写温度传感器的驱动程序和数据处理程序,以及语音模块的控制程序。

还需要考虑用户的交互设计,使得用户可以通过简单的语音指令来获取所需的温度信息。

四、功能实现通过以上的硬件和软件设计,我们实现了一款简易的基于单片机的语音温度计。

用户只需要触发语音模块,就可以通过语音输出得知当前的温度。

这种设计不仅减轻了用户的操作负担,还提升了测温的便捷性。

五、应用价值这种基于单片机的语音温度计具有广泛的应用价值。

在家庭生活中,用户可以轻松地获取室内外的温度信息,为生活提供便利。

在工业领域,可以用于监控生产环境的温度变化,保障生产的质量和安全。

这种设计还可以用于医疗领域,帮助医生和护士及时监测病人的体温。

基于单片机的语音温度计在实现简单的功能的也带来了便捷和实用的用户体验。

未来,随着科技的不断发展,更多基于单片机的智能温度计设计将不断涌现,为人们的生活和工作带来更多的便利和安全。

第二篇示例:简易设计基于单片机的语音温度计随着科技的不断发展,智能设备在人们生活中扮演着越来越重要的角色。

智能家居设备、智能手机等产品在人们的日常生活中起到了极大的便利作用。

语音播报温度计设计说明

语音播报温度计设计说明
顺德职业技术学院毕业设计题目语音播报温度计院别电子与信息工程学院年级专业12级电子信息工程技术家电学生姓名尤荣彬指导教师冷碧晶答辩日期2015年6月7日顺德职业技术学院毕业设计论文任务书一毕业设计课题语音播报温度计二毕业设计内容和目标利用语音芯片和ds18b20温度传感器设计一款能自动测量温度并用语音播报出来同时用lcd显示实时温度的语音播报温度计用扬声器播放声音
指导教师:冷碧晶 教研室主任:昂勤树
目录(黑体四号加粗)
摘要
本设计是以STC89C52为核心,以数字温度传感器DS18B20来采集温度。同时,为了达到视觉与听觉的效果,分别采用LCD1602液晶显示器和ISD1420语音芯片,实现温度的显示和播报的功能。
因此,本设计主要有以下三模块,DS18B20作为温度数据收集模块,将实时温度这一模拟量直接转换成数字信号,送入单片机STC89C52进行分析处理,液晶显示器接收到单片机信号实现温度显示,而语音芯片则将数据转化为声音信号,通过扬声器进行播报温度。
硬件制作、焊接、测试。
9~12周
软件的调试
完成系统功能,调试系统运行的状况。
13~16周
软硬件的完善
对不完善的地方进行适当答辩。
六、备注:
1、本任务书一式三份,系、指导教师和学生各执一份;
2、学生须将此任务书按装订要求进行装订。
电子与信息工程学院 电子信息工程技术专业 12智能家电2班 同学:尤荣彬
STC89C52芯片为控制核心,STC89C52部具有8KB ROM 存储空间和512字节的数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,并且STC89C52可以通过串行口进行数据下载。
以数字温度传感器DS18B20来采集温度,测量温度围为:-20~110℃,它的供电方式简单,可用数据线供电,组成电路需要的外围器件较少,甚至不需要外围器件。

数字式智能语音温度计设计

数字式智能语音温度计设计

数字式智能语音温度计设计数字式智能语音温度计设计是一种结合了现代传感器技术、微处理器编程和语音识别技术的创新产品。

这种设计可以实时感知环境温度,并通过语音输出使人们更方便地获取温度信息。

以下是关于数字式智能语音温度计设计的关键步骤和详细解释。

一、硬件需求1.温度传感器:用于感知环境温度,如DS18B20或NTC热敏电阻等。

2.微控制器:用于处理传感器数据和控制语音输出,如Arduino、RaspberryPi等。

3.语音识别模块:用于接收用户输入的语音指令,如Google Speech-to-TextAPI、Dragon NaturallySpeaking等。

4.语音输出模块:用于将处理后的语音信息播放出来,如扬声器或耳机。

二、设计步骤1.温度感知:温度传感器应被选择并连接到微控制器的一个输入端口。

微控制器通过读取该端口的电压变化来感知环境温度。

具体的读取方法将依赖于所选的传感器型号和微控制器的编程接口。

2.数据处理:微控制器将对从温度传感器读取的数据进行处理,将其转换为实际的温度读数。

这一步需要用到一些基本的Arduino或Raspberry Pi编程技巧,以及一些数学运算(例如,使用DS18B20传感器的非线性温度转换算法)。

3.语音识别:将语音识别模块与微控制器相连,使得微控制器能够“听懂”用户的语音指令。

这些指令可能包括“读取温度”、“调整音量”等等。

这一步可能需要向语音识别模块发送和接收一些文本数据,这同样需要相应的编程接口和技巧。

4.语音输出:当微控制器接收到一个有效的语音指令后,它将调用一个预设的函数来通过语音输出模块播放相应的信息。

例如,如果用户说“读取温度”,微控制器就会播放环境当前的温度读数。

5.集成和测试:最后,所有的硬件和软件组件需要集成在一起进行测试。

测试过程中需要确保所有组件都能正常工作,并相互配合以实现预期的功能。

三、编程与优化在实现基本功能后,可以对微控制器进行更深入的编程和优化,以使其性能达到最佳,例如:1.用户界面优化:可以根据用户的反馈来改进产品的用户界面。

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计

简易设计基于单片机的语音温度计
语音技术在智能家居中的应用日益增多,本设计基于单片机和语音技术控制温度计,
实现了人性化的交互方式和智能化的控制功能。

1.概述
本设计的核心是基于STM32单片机控制的温度计,能够实现温度的检测和调节控制,
并利用语音技术进行交互。

用户可以通过语音指令或按钮控制设备的工作模式、设定温度
以及获取实时温度信息。

2.硬件设计
本设计需要的硬件有STM32单片机、温度传感器、DC电机、OLED屏幕、麦克风、喇叭、按钮等模块。

其中,温度传感器为LM35型号,OLED屏幕为0.96寸,DC电机可用于控制空调等设备。

本设计的软件部分包括主程序和语音识别程序两部分,主程序实现温度检测、温度调
节控制和屏幕显示等功能,语音识别程序实现语音交互。

(1)主程序设计
主程序主要包括以下功能:
a.温度检测:利用LM35温度传感器实时检测环境温度,并将数据传输到单片机。

b.温度调节控制:利用DC电机控制温度调节,通过按钮或语音指令设定温度,根据实际温度情况自动调节空调或加热器等设备。

c.屏幕显示:将获取到的温度信息显示在OLED屏幕上,实时显示设备状态及温度信息。

4.系统实现
本设计中,麦克风和喇叭模块分别用于输入和输出语音信息,用户发出语音指令后,
麦克风通过语音识别程序识别指令,触发主程序进行相应的操作,系统通过OLED屏幕显示温度、设备状态等信息。

利用DC电机控制温度调节,达到设定温度后自动停止调节工作。

5.总结。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南大学物理与电子学院开放实验室单片机设计报告数字式智能语音温度计设计人:开放实验室入室人员- I -目录0 前言 (1)1系统组成与功能 (1)1.1 系统组成 (1)1.1.1 STC89C52单片机 (1)1.1.2 74LS138译码器芯片 (2)1.1.3 DS18B20测温传感器 (3)1.1.4 四位一体七段数码管 (3)1.1.5 WT588D语音芯片 (4)1.2 系统功能 (6)2系统原理 (5)2.1系统仿真图 (6)2.2 实物照片 (6)3程序流程图 (7)4具体程序代码 (8)5结论 (11)6 扩展部分设计心得 (12)参考文献 (13)- II -河南大学·物理与电子学院·开放实验室·单片机设计报告- 1 -数字式智能语音温度计0 前言LED 数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。

这些段分别由字母a,b,c,d,e,f,g,dp 来表示。

当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。

如:显示一个“2”字,那么应当是a 亮b 亮g 亮e 亮d 亮f 不亮c 不亮dp 不亮。

LED 数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。

小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V 左右,电流不超过30mA 。

发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。

常用LED 数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A 、B 、C 、D 、E 、F 。

在本学期的单片机在项目设计中,我们两人一组共同讨论并设计出了一种基于单片机控制的LED 数码智能语音温度计,并最终在老师指导下完成了实际的成品,调试后能实现了预期的功能。

同时我们在实现其基本功能的基础上进行了一定程度的功能扩展。

1系统组成与功能1.1 系统组成本系统主要有STC89C52单片机、按键、74LS138译码器芯片、DS18B20测温传感器、四位一体七段数码管、WT588D 语音芯片等元件组成。

1.1.1 STC89C52单片机STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash ,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能: 8k 字节Flash ,512字节RAM , 32 位I/O口线,看门狗定时器,内置4KB河南大学·物理与电子学院·开放实验室·单片机设计报告- 2 -EEPROM ,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。

另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35Mhz ,6T/12T 可选。

其引脚图如图1—1所示。

1.1.2 74LS138译码器芯片74LS138 为3 线-8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式。

其工作原理如下:1.当一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。

比如:A2A1A0=110时,则Y6输出端输出低电平信号。

2.利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。

3.若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。

(a) (b)图1—2 (a)74LS138引脚图 (b)74LS138实物图河南大学·物理与电子学院·开放实验室·单片机设计报告- 3 -1.1.3 DS18B20测温传感器DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。

主要根据应用场合的不同而改变其外观。

封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。

耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

DS18B20采用一线通信接口。

因为一线通信接口,必须在先完成ROM 设定,否则记忆和控制功能将无法使用。

若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。

一个控制功能指挥指示DS18B20的演出测温。

测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。

温度报警触发器TH 和TL 都有一字节EEPROM 的数据。

如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。

在片上还载有配置字节以理想的解决温度数字转换。

写TH,TL 指令以及配置字节利用一个记忆功能的指令完成。

通过缓存器读寄存器。

所有数据的读,写都是从最低位开始。

图1—3 DS18B20实物及简易使用接线图1.1.4 四位一体七段数码管本设计用到四位一体七段数码管1个,其原理与单个的数码管显示原理 相同。

四位一体的数码管共12个引脚。

A-dp八个引脚对应八根数据线,控河南大学·物理与电子学院·开放实验室·单片机设计报告制显示的字形。

DIG1-DIG2四个引脚为公共端,控制当前显示字形的位别,为扫描法显示提供了方便,有效减少了数码管占用的单片机引脚数。

上图为共阴四位数码管的内部结构图。

引脚排列依然是从左下角的第一只管脚开始,以逆时针方向依次为1-12脚,数码管内部结构及引脚参见图1—4。

1.1.5 WT588D语音芯片WT588D芯片封装有DIP18、SSOP20和LQFP32形式;根据外挂或者内置SPI-Flash 的不同,播放时长也不同,支持2M~32Mbit的SPI-Flash存储器;内嵌DSP高速音频处理器,处理速度快;〃内置13Bit/DA转换器,以及12Bit/PWM输出,音质好;〃 PWM输出可直接推劢0.5W/8Ω扬声器,推挽电流充沛;〃支持DAC/PWM两种输出方式;〃支持加载WAV音频格式;支持MP3控制模式、挄键控制模式、3×8挄键组合控制模式、开口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制I/O口扩展输出模式;三线串口控制模式切换到三线串口控制I/O口扩展输出模式只需发送数据就可以迚行切换。

切换后仍可把切换前的最后一工作状态带迚切换后的模式工作;仸意设定显示诧音播放状态信号的BUSY输出方式;- 4 -河南大学·物理与电子学院·开放实验室·单片机设计报告- 5 -〃 抗干扰性强,可应用在工业领域;〃 15种挄键控制模式,仸意一个挄键可设定仸意一种控制模式; 〃 配套WT588D VoiceChip 上位机软件,接口简单,使用方便。

能极大限度的发挥出WT588D 诧音单片机的各项功能;下图为WT588D —16PIN 引脚图及实物图:1.2 系统功能本设计的主要功能是用单片机来控制DS18B20测温及驱动LED 数码管显示温度,用户可以通过修改程序的延时函数来改变测温频率。

扩展后的系统增加了语音模块,通过事先编译的语音文件来实现智能的语音报告温度和高低温提醒功能。

同时,我们进一步优化了程序,将报温过程中的LED 数码管设置成跟随语音的同步闪烁,增加了这个产品的人性化。

2 系统原理本系统设计的主要原理是用DS18B20测温单元和用单片机控制WT588D 语音模块、数码管显示模块(由74LS138译码器驱动)来工作。

其中WT588D 语音模图1—5 WT588D(16PIN)引脚图及实物图河南大学·物理与电子学院·开放实验室·单片机设计报告- 6 -块集成了语音的存储、编译和输入、输出功能。

当18B20测出实时温度后,单片机将采集到的相应的数据转换并由38译码器驱动LED 数码管显示温度,接下来单片机通过I/O 把程序转换后的相应数据分别传送到对应模块,实现对各模块的控制功能。

2.1 系统仿真图基本的仿真图具体见图2—1所示。

图2—1 基本系统仿真图(WT588D 不能仿真)2.2 实物照片具体的实物照片如图2—3所示。

河南大学·物理与电子学院·开放实验室·单片机设计报告图2—3 实物照片3 程序流程图开始初始化温度采集处理数码管闪烁播放系统音开始测温检测忙信号- 7 -河南大学·物理与电子学院·开放实验室·单片机设计报告- 8 -YNNYYYN4程序源代码(主要部分)/************************************************************ ; 闪烁函数************************************************************/ void reade(char j) { TemCode=dis_7[display[j]];if(j==1) {LEDdot=0;} TemScan=scan_con[j];delay(90);TemScan=0xff;}/************************************************************ ; 显示扫描函数************************************************************/ scan() { char k;如果十位=0 顺序播放:个位、点、小数、摄氏度 十位=1 播放个位 顺序播放:点、小数位、摄氏度 播放语音“十”个位=0 不播放个位 然后顺序播放 播放十位语音河南大学·物理与电子学院·开放实验室·单片机设计报告for(k=0;k<4;k++){TemCode=dis_7[display[k]];if(k==1) { LEDdot=1;}TemScan=scan_con[k];delay(90);TemScan=0xff;}}/************************************************************; 读出温度函数************************************************************/float read_temp(){ow_reset(); //18B20 总线复位write_byte(0xCC); //发skip ROM 命令write_byte(0xBE); //发读命令temp_data[0]=read_byte(); //温度低8位temp_data[1]=read_byte(); //温度高8位ow_reset();write_byte(0xCC); //发skip ROM命令write_byte(0x44); //发转换命令}/************************************************************; 语音报告函数************************************************************/ TemVoice(){for(h=0;h<200;h++)scan();TEST_Busy();Send_threelines(13);TEST_Busy(); //现在温度是for(h=0;h<50;h++) reade(3);- 9 -河南大学·物理与电子学院·开放实验室·单片机设计报告if(display[3]==0x0B) {Send_threelines(16);TEST_Busy();} //读负判断for(h=0;h<50;h++) reade(2); //程序太长不宜写在报告中,完整程序请 if(display[2]!=0x0A&&display[2]!=1) //联系QQ154401855(或154401856)下载Send_threelines(display[2]);TEST_Busy();Send_threelines(10);TEST_Busy();} //读第3位如果非零且非一读几十if(display[2]==1) {Send_threelines(10);TEST_Busy();} //第三位是一则读十for(h=0;h<50;h++) reade(1);if(display[2]!=0x0A&&display[1]!=0||display[2]==0x0A)Send_threelines(displa y[1]);TEST_Busy(); //读第2位for(h=0;h<50;h++){TemCode=dis_7[10];LEDdot=1;TemScan=scan_con[1];delay(90); TemScan=0xff;}Send_threelines(14);TEST_Busy(); //读小数点for(h=0;h<50;h++) reade(0);Send_threelines(display[0]);TEST_Busy(); //读第1位Send_threelines(11);TEST_Busy(); //摄氏度delay(300000); //适当延时以便于提醒if(display[3]==0x0B||display[2]==0x0A||(display[2]==1&&display[1]<=9&&displ ay[1]>=0)) {Send_threelines(17);TEST_Busy();} //低温提醒负或者 0~19度if(display[3]==0x0A&&(display[2]==2&&display[1]<=9&&display[1]>=0)) {Send_threelines(18);TEST_Busy();} //提醒20~29度if(display[3]==0x0A&&display[2]>=3&&display[2]<=9){Send_threelines(19);TEST_Busy();} //高温提醒大于30度}/************************************************************; 主函数************************************************************/main(){unit i=0;TemCode=0xFF; //初始化端口- 10 -河南大学·物理与电子学院·开放实验室·单片机设计报告TemScan=0xff;for(h=0;h<4;h++){display[h]=0x0B;} //开始显示"-.-.-.-."ow_reset(); //开机先转换一次write_byte(0xCC); //Skip ROMwrite_byte(0x44); //发转换命令for(h=0;h<500;h++){chark;for(k=0;k<4;k++){TemCode=dis_7[display[k]];LEDdot=1;TemScan=scan_con[k];delay (90);TemScan=0xff;}} //显示小数点for(t=0;t<4;t++){for(h=0;h<200;h++)reade(t);for(h=0;h<50;h++){TemCode=dis_7[10];LEDdot=1;TemScan=scan_con[t];delay (90);TemScan=0xff;}}Send_threelines(15);TEST_Busy();Send_threelines(12);TEST_Busy(); //系统读音while(1){read_temp();work_temp(); //读出DS18B20温度数据处理温度数据for(h=0;h<750;h++,i++) {scan();if(i==3750) {TemVoice();i=0;}} //温度3s 一扫描 15s 报告一次}}/************************************************************; 程序结束************************************************************/5 结论通过本学期单片机项目设计的学习与动手制作,本设计基本上实现的预定功能,但在此基础上还可以根据不同的需求做相应的扩展,比如可以设计实现与计算机的通信,无线遥控温度的报告及测温频率的大小等。

相关文档
最新文档