智能语音播报温度系统设计_第1页
智能语音播报温度系统设计_第2页
智能语音播报温度系统设计_第3页
智能语音播报温度系统设计_第4页
智能语音播报温度系统设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

智能语音播报温度系统设计第一章绪论1.1课题开发背景智能语音播放系统是目前新兴的科技产业中的一部分,在中国产业上拥有着很光明的前景。另一方面,我国市场的产品更倾向于使用国外最先进的基础硬件进行加工和生产。伴随着我国的国民经济持续且迅速的发展,语音播放已经成为人们日常生活所必不可缺少的一部分。例如,行政,交易,上班打卡以及通行证或入场费,一天的时间在各种公共场所手机天气,智能语音播放的系统或广播公告等。1.2设计的目的和意义我们的生活与周围环境的温度有着非常密切的关系。在工业生产的过程中我们需要实时的测量温度及其湿度,同时农业的生产中也是要测量温度和湿度的。因此,我们对温度测定方法以及设备的研究具有非常之重大的意义。由于自动话工业生产技术的持续不断提高,信息化逐渐取而代之。越来越多的人想要在自动化智能生产和生活中发挥非常最大的作用。而且在那里有某种程度的人工智能。伴随着巨大规模语音播报处理集成电路的发展与实现,语音广播系统的实用性进程正在不断增加。声音广播技术体现了人的智慧。不仅在信息被发送的声音环境中起到非常重要的信息传达,而且在每天的忙碌工作中,用温暖亲切的声音调整劳动人民的心情。因此声音传达技术的研究成为了当今社会的热点,该技术的应用现在已经扩展到生产和生活中几乎每个领域。

第二章设计方案概述2.1整体功能实现描述综合考虑基于种种方面,暂称基本设定范围该纸的温度和湿度变化可以作为5实际应用环境15°c

45°c的精度误差必须未满0.5°c(这种要求在现实基础上温度和湿度。数据信息由DHT11传感器收集,为了调整和处理被传送到微控制器AT89C52。当设置阈值高于设置阈值时,通过警告函数侧的设置,开始警告函数侧的设置以应对当前应用环境中发生的情况。在重要设置中,SW4控制语音广播芯片WT588D。按下它,就会实时显示当时的温度和湿度,操作起来非常简单。功能要求如下:监测温湿度范围精度误差小可任意设定温湿度阈值LED数码屏显示数值具体功能实现模块分布如下图2.1所示:图2.1硬件系统框图2.2AT89C52单片机功能T89C52是低压高性能CMOS

8位微处理器,配备4k字节闪存(仅FPEROM

-

FLASH可编程可编辑存储器)。这是可以通过2k字节的FLASH可编程程序只读取存储器的微型计算机。单片可擦读存储器可擦1000次。atmel高密度非易失性存储器制造技术,采用标准mcs

-

52指令集制作而成,输出与他的腿管兼容。多功能8位cpu和闪存在一块芯片上,它是针对atmel

at89c52的组合,是高效的单片机,at89c052是简化版。at89c52宏处理器为许多嵌入式控制系统提供了更灵活、更便宜的解决方案。图片显示的形状和针安排。VCC:电源。GND:接地。第三章硬件设计3.1单片机模块如果想要控制设计中提到的微控制器的润湿性。我们要按照随机核心部分给出的指令做相应的要求,根据操作,并且在当时,选择其atmel和便宜而通用,生成的at89s52芯片更强,容易获取。3.2温湿度传感器模块数字温度以及湿度传感器DHT11校正温度和湿度的复合传感器。因此,该产品具有质量高、速度快、防干扰能力强和高性价比等优势。典型的应用电路如图所示:pin名称注释1VDD供电3.5-5.5V2DATA串行数据,单总线3NC空脚,悬空4GND接地,电源负极表2-2性能说明参数条件MinTypMax单位分辨率8±Bit111%RH精度25℃±4%RH重复性±1%RH温度0-50℃±5%RH温度量程范围0℃3090%RH50℃2080%RH25℃2090%RH长期稳定性典型值±1%RH/yr迟滞±1℃互换性可完全互换分辨率888Bit111℃重复性±1℃响应时间1/e(63%)630S量程范围050℃精度±1±2℃表3.1DHT11引脚说Dht11将从主机接收开始信号并等待开始信号结束,随后其会发出80微秒的信号。低电平响应。想要读取dht11响应信号,我们就必须等待启动信号结束,然后在20到40微秒开始接前s。主机便会输出下一个启动信号,一个高电平信号被切换到输入模式,然后总线通过上拉电阻器上啦。传输启动:在开始运输的时候,首先发出的是运输开始的命令。这条命令可以在SCK达到最高时可从高数据变为低数据,在下一个SCK高时变为高数据。同时下一个命令序列包括3个地址(现在只支持“000”)和5个命令位。当的sck为电瓶较少时,DHT11正确地接收该命令。复位顺序:连接dht11传感器的通信可能会中断,该顺序下的信号串行口复位:换句话说,数据线一个高级sck触发器超过9次,(其中包括9次),另一个发送的start命令被发出。由于传感器会与其他的功能电路部件相组合,因此他比其他类型的湿度传感器性能更好。其一是,应为传感器信号强度的增加所以提高了传感器芯片的防干扰性能,并确保了传感器中的长期稳定性。A/d转换在降低传感器对噪声的灵敏度万成。其二是,传感器芯片保证校准数据的内部加载。这其中的湿度传感器也是同样的,是一定会改变的。3.3键盘控制键模块所使用的是多位的独立按键,该按键的一端链接到IO口上,另一个端点接地,并且由于单片机的IO口都具有从内部往上拉的特性,所以当这个按键并没有被按下时,

IO系统检测到的结果是高电平,当我们按下按键时,这就代表了IO口接地,因此在这时单片机中检测到的就是低电平,

最后我们会通过检测其分别不同时刻的IO口状态便可进行判断按下的是哪一个按键。电路图如图3.2所示。图3.2键盘控制电路原理图3.4液晶显示模块设计1602液晶的控制管脚都接到了单片机管脚上,,在功能设施指令系统中可以将液晶屏设为8位数据接口和4位数据接口,正常使用中,液晶电源一般正极输入5v电压,负极接地保证电路安全,背光正端端口同样接通5V电压。另外,偏压管脚可以接到电位器中间抽头端口,以保证电路正常的显示,而正常使用中,偏压中的通路电压最好调节到0.3-0.4v,这样整体显示的对比度更加良好,还可以将该管脚联通一个估值为1000欧姆的电阻并同时接地。显示模块电路原理图如下图3.3所示。图3.3显示模块电路原理图3.5蜂鸣器模块设计蜂鸣器在工作中它的电流通常非常的大,因此我们不能直接使用驱动芯片内的I/O端口,所以我们才需要使用晶体管来开关电路达到驱动的目的。我们之所以选择8550三极管,是因为它的基极给高电平的时候三极管就会关闭,当基极给低电平时三极管就会发出蜂鸣一般的声音。电路原理图如图3.4所示。图3.4蜂鸣器模块电路原理图3.6语音模块设计我们这个关于语音模块的设计采用的是WT588D语音芯片,它可以将单片机传输的音频信号放大并传给播放器,同时该语音芯片可以大程度的降低噪音,发出语音的质量也比较好。语音模块电路设计图如3.5所示。图3.5语音模块电路原理图3.7电源模块设计设计的电源用的是5V电源接口,如果不是电池电力功率转换器的输入方法,为了保证电力供应的稳定电压、电力、品质该系统采用dc的电力供应,不仅可以节约成本,而且提高安全性。系统电源原理图如图3.6所示。图3.6系统电源原理图

第四章软件设计4.1主程序设计然后我们在运行其主程序所需的程序(包括键盘程序、测量程序)时对其进行初始化。得到温度以及湿度之后,确定温度是否超过最大值或超过最小值。如果超过温度和湿度的上下限,就会调用报警子程序,并在LCD上显示重新显示电路。此系统软件设计的流程图如4.1。开机初始化开机初始化判断温湿度设定范围显示温湿度报警子程序显示时间子程序测量温湿度判断显示模式子程序显示温湿度上下限子程序键盘扫描5.2.1××××××……5.2.2××××××……子程序图4.1主程序流程图4.2显示模块程序首先我们要先调试液晶显示自定义当中的字库,调试完成好DDRAM的地址后我们在第一行将其显示出来,因为根据程序中当中提到的数据设置并显示数据的首地址将其设置循环量,随后在循环的过程中我们不断的提取其中字符代码直到它最终结束,其中第二行的显示过程中与同一行的显示过程是基本一样的,当两行均显示完毕之后子程序便会结束。图4.2显示模块框图

4.3报警子程序初期上限及下限报警值是另外的键盘闹钟值比较上下的使用温度上限的实时温度测量的咨询、范围的蜂鸣器警报打开晶体管成为诱因,这没有用,警报,警报,但是一旦实时的温度范围内的温度以上,闹钟将自动停止。开始开始不报警不报警小于0小于0大于0小于0大于0大于0读取温湿度值温湿度值减上限值温湿度值减值报警图4.3报警子程序流程图4.4实现时钟功能的程序设计该系统的时钟为实现时钟并保存硬件,由微机芯片的计时器进行编程。TMOD=0x01定时器超低温初始化模式1。定时=(65536-前值)*时钟周期*12在此设计中,时间周期为50ms,时钟周期为12m,

TH0=0x3c;图4.4示出了tmt

=

0,0

xxb0时钟的实现流程图。

开始开始定时器T0初始化(方式1)定时器T0初始化(方式1)判断mstcnt>=20判断Seconde>=60Seconde++Mstcnt++Hour++判断Hour>=24Hour=0图4.4时钟功能实现流程图4.5显示程序设计在本设计中LCD1602的基本工作时间与下表4.2相似。在完成基本的操作后,会有一个命令或数据输入LCD子功能的设计出现这个设计的出现就就标志着此程序圆满完成了。同时我们为了稳定子功能LCD,也可以使用最短的延迟。显示模式由当前的温度·湿度显示、时刻显示模式、温度·湿度的上下限制构成。在特定场所的函数型角色,根据温度和湿度,初始化后被调用。子程序流程图如图4.5所示。开始开始当前检测温湿度数据移入显示寄存器当前检测温湿度数据移入显示寄存器LCD初始化显示字符"temp:.oC"显示当前温湿度图4.5当前温度子程序流程图

第五章实物演示5.1实物操作演示过程在我们给实物接通电源后,温湿度传感器便会对周围环境的温度以及湿度进行采集,然后把数据实时显示在液晶屏上效果如图5.1所示。图5.1工作状态展示图当按第一次按下左侧第一按键后,会进入设置状态,默认先进行对湿度最高值进行设置;再次按下左侧第一个按键后,可对湿度最低值进行设置;紧接着在案左侧第一个按键,便可对温度最高值进行设置;同样再次按下左侧第一个按键后,可对温度最低值进行设置。在设置数值时,按下左侧第二个按键可以使数值加一,按下左侧第三个按键可以是数值减一,通过这样的操作,可以按照自己的需求进行设置数值。如设置结束后,接下来再次按下左侧第一个按键,便会返回到最初的运行状态。最后如果按下第四个按键,那么系统则会播报出现周围环境温度和湿度的具体数值。设置状态展示图如图5.2所示。图5.2设置状态效果展示图当温湿度传感器对现周围环境采集后,会与设置好的阀值进行比较,若是超出阀值,便会发出语音警报,LED灯也会闪烁。图5.3超出阀值时效果展示图

总结因此,一个家庭的温度和湿度的测量与设计过程中的52系列的单片机相实施。此系统呗划分为四个部分:温度和湿度的记录,数码管的显示,语音传输和键盘。

高效的单片机被用于芯片的制作,温湿度传感器DHT11作为主要的监测和测量系统。至于我们为何选择了A/d应答器,其原因主要是其精准搞、成本偏低、体积较小以及良好的抗干扰能力。我相信,当我们努力工作、实践和学习时,这样设计的灵感就会非常的多。同时正当我们询问并了解了它的设计理念及其原理是什么时,也就是我们从不理解它知道理解它,我们就会迅速成长,并且努力的适应这个社会,充分发挥出我们的优点扬长避短,在我们前进的方向上引导我们!

参考文献[1]余小平等.电子系统设计[M].北京航空航天大学出版社.2007133-135[2]何立民等.单片机中级教程原理与应用[M].北京航空航天大学出版社.1999:45-55[3]

《DS18B20使用说明书》。[4]李东生等.Protel99SE电路设计教程[M].电子工业出版社.2007;44-73[5]郭天祥.新概念51单片机C语音教程[M].电子工业出版社.2008;66-76[6]王细荣.文献信息检索与论文写作[M].上海交通大学出版社.2009;122-126[7]马令坤等.电子工艺实训教程[M].西安电子科技大学出版社.2005;55-76

致谢经过三四个月的努力,我的毕业设计已经圆满完成了,中途碰到了的许许多多问题,全靠导师的悉心教导以及同学们的帮助与支持。我非常的感谢我的老师。老师虽然平日里工作繁忙,但是他非常的有耐心,不管我遇到什么样问题,老师都会认真的为我们一一解答,并且教给我们方法。从最开始开展论文的时候,老师就不断的提醒我,要去知网上看一下别人的论文是如何写的,并使我们对于论文拥有一个差不多的概念,多查阅一些相关的知识,也可以让自己的论文看起来并非那么的空洞。在本文的最后再次感谢陪伴我大学三年的老师,室友,同学们。感谢他们对我的帮忙,感谢老师的教诲。没有你们的支持与帮助,就不会有我今日的成就。

附录A:总电路图附录B:主程序代码主程序代码:voidmain(void){init(); //初始化 while(1){scan_key();//键盘扫描子函数 delayMs(10); ReadTemperature();//读取温度子函数 if(temp>top_temp||temp<(char)bottom_temp)beep(); displayTemp();//显示温度子函数 if(DisplayTimeFlag)//判断显示模式 displayClock();// 显示时间子函数 else displayTempLim(); //显示温度上下限子函数 delayMs(10); }#ifndef __LCD12864_H__#define __LCD12864_H__#include<at89x51.h>#include<intrins.h>#defineBUSY0x80//lcd忙检测标志#defineDATAPORTP0sbitLCM_RS=P3^7; //数据/命令端sbitLCM_RW=P3^6; //读/写选择端sbitLCM_EN=P2^7;//LCD使能信号voiddelay_LCM(unsignedint);//LCD延时子程序延时msvoidinitLCM(void); //LCD初始化子程序voidlcd_wait(void); //LCD检测忙子程序voidWriteCommandLCM(unsignedcharWCLCM,unsignedcharBusyC);//写指令到ICM子函数voidWriteDataLCM(unsignedcharWDLCM);//写数据到LCM子函数voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);//显示指定坐标的一个字符子函数voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);//显示指定坐标的一串字符子函数voiddelay_LCM(unsignedintk)//延时K*1ms,12.000mhz{unsignedinti,j;for(i=0;i<k;i++){for(j=0;j<60;j++) {;}}}voidWriteCommandLCM(unsignedcharWCLCM,unsignedcharBusyC)//写指令到LCM子函数{if(BusyC)lcd_wait(); DATAPORT=WCLCM;LCM_RS=0;//选中指令寄存器LCM_RW=0; //写模式 LCM_EN=1; _nop_();_nop_(); _nop_();LCM_EN=0;}voidWriteDataLCM(unsignedcharWDLCM)//写数据到LCM子函数{lcd_wait();//检测忙信号 DATAPORT=WDLCM;LCM_RS=1;//选中数据寄存器LCM_RW=0; //写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}voidlcd_wait(void)//lcm内部等待函数{DATAPORT=0xff; LCM_EN=1;LCM_RS=0;LCM_RW=1;_nop_();_nop_();_nop_();while(DATAPORT&BUSY) {LCM_EN=0;_nop_();_nop_(); LCM_EN=1;_nop_();_nop_();} LCM_EN=0;}voidinitLCM()//LCM初始化子函数{DATAPORT=0; delay_LCM(15); WriteCommandLCM(0x38,0);//三次显示模式设置,不检测忙信号delay_LCM(5);WriteCommandLCM(0x38,0);delay_LCM(5);WriteCommandLCM(0x38,0);delay_LCM(5);WriteCommandLCM(0x38,1);//8bit数据传送,2行显示,5*7字型,检测忙信号WriteCommandLCM(0x08,1);//关闭显示,检测忙信号WriteCommandLCM(0x01,1);//清屏,检测忙信号WriteCommandLCM(0x06,1);//显示光标右移设置,检测忙信号WriteCommandLCM(0x0c,1);//显示屏打开,光标不显示,不闪烁,检测忙信号}voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData)//显示指定坐标的一个字符子函数{Y&=1;X&=15;if(Y)X|=0x40;//若y为1(显示第二行),地址码+0X40X|=0x80;//指令码为地址码+0X80WriteCommandLCM(X,0);WriteDataLCM(DData);}voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData)//显示指定坐标的一串字符子函数{unsignedcharListLength=0;Y&=0x01;X&=0x0f;while(X<16){DisplayOneChar(X,Y,DData[ListLength]);ListLength++;X++;}}#endif#include"temp.h"#include"clock.h"#include"speakTEMP.h"#defineENTER (!(P2_1)) //按键低电平有效#defineFUNCTION_KEY(!(P2_4))#defineUP_KEY(!(P2_3))#defineDOWN_KEY(!(P2_2))externunsignedcharDisplayTimeFlag;voidscan_key(void);unsignedcharDisplayTimeFlag=1;voiddelay_key(unsignedintms){unsignedcharj; while(ms--) {for(j=0;j<=125;j++);}voidscan_key(void)//键盘扫描{staticcharct=0; P1=ct; if(FUNCTION_KEY) {delay_key(10); if(FUNCTION_KEY) {ct++; if(ct>5)ct=0; if(ct==4||ct==5)DisplayTimeFlag=0;//温度范围设置模式 elseDisplayTimeFlag=1;//时间显示模式 delay_ke

温馨提示

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

评论

0/150

提交评论