语音播报温湿度.docx
- 文档编号:12101982
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:51
- 大小:1.71MB
语音播报温湿度.docx
《语音播报温湿度.docx》由会员分享,可在线阅读,更多相关《语音播报温湿度.docx(51页珍藏版)》请在冰豆网上搜索。
语音播报温湿度
2016届毕业生
毕业论文
题目:
语音播报温湿度
院系名称:
专业班级:
学生姓名:
学号:
指导教师:
教师职称:
20年月日
目录
摘要1
一、设计的目的及意义2
1.1、设计的现状及背景2
1.2、设计的目的2
1.3、设计的意义3
二、主要器件介绍3
2.1、主控器件4
2.1.1、主要特性4
2.1.2、引脚功能5
2.1.3定时器/计数器7
2.1.4外部中断9
2.1.5、串口通信11
2.1.6、SPI通信14
2.2、LCD1602液晶16
2.2.1LCD1602的概述16
2.2.2LCD1602的操作时序16
2.2.3LCD1602的基本命令17
2.3、DHT11温度传感器18
2.3.1DHT11的概述18
2.3.2DHT11引脚介绍19
2.3.3DHT11的说明19
2.4、YF017语音芯片介绍22
三、电路的设计及原理26
3.1最小系统原理图26
3.2、语音播报电路设计28
3.3独立键盘的设计及原理28
3.5、蜂鸣器驱动原理图29
3.5、LCD1602原理图30
四、程序设计31
致谢32
参考文献33
附录一:
34
附录二:
源程序36
语音播报温湿度
摘要
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,但人们对它的要求越来越高,要为现代化社会提供更好更方便的设施服务就需要从单片机技术入手,一切向着数字化、智能化控制方向发展。
本设计制作的是一款基于单片机的温湿度控制系统。
传统的温度计测量精度差、显示不直观、不能精确设定测量范围。
与传统温度计相比,该湿度控制系统具有读数方便,测温范围广,测温准确,显示直观、功能多样、成本低廉且可以测量湿度等诸多优点,符合电子仪器仪表的发展趋势。
该设计控制器使用单片机STC89C51,温湿度传感器使用DHT11,1602液晶显示和YF017语音播报。
1、设计的目的及意义
1.1、设计的现状及背景
近年来,我国的设施农业得到了较大发展,温室大棚钟植技术已突破了传统的农作物种植受地域自然环境等诸多因素的限制,对农业生产有重大意义。
但目前我国温室大棚的温湿度测量和设备的操作大多还是由人工来完成,当温室较大时,操作人员的劳动强度很大本温湿度控制系统是以单片机控制为核心,以DHT11单片集成温湿度传感器作为温湿度检测元件。
从硬件和软件两个方面介绍了单片机温度控制系统的设计思路,对硬件原理图和程序流程图进行了系统的描述。
系统具有键盘调节上下限温湿度,LCD液晶显示温湿度的功能,实现了温湿度的自动测量和自动控制,可将大棚内的温度始终控制在适合蔬菜生长的温湿度范围内,初步实现了温室大棚的自动化管理,大大降低了工人的劳动强度。
1.2、设计的目的
电子技术的快速发展使得各种各样的电子产品都朝着便携式和小型轻量化的方向发展,也使得更多的无线通信系统得到了发展。
温度湿度的检测这些年来应用领域原来越多本设计制作的是一款基于单片机的温湿度控制系统。
传统的温度计测量精度差、显示不直观、不能精确设定测量范围。
与传统温度计相比,该湿度控制系统具有读数方便,测温范围广,测温准确,显示直观、功能多样、成本低廉且可以测量湿度等诸多优点,符合电子仪器仪表的发展趋势。
该设计控制器使用单片机STC89C51,温湿度传感器使用DHT11,1602液晶显示,使用语音播报更加的方面,不需要人去看显示屏,想知道现在的温湿度情况只需要控制语音播报就可以。
本设计制作的是一款基于单片机的温湿度控制系统。
传统的温度计测量精度差、显示不直观、不能精确设定测量范围。
与传统温度计相比,该湿度控制系统具有读数方便,测温范围广,测温准确,显示直观、功能多样、成本低廉且可以测量湿度等诸多优点,符合电子仪器仪表的发展趋势。
该设计控制器使用单片机STC89C51,温湿度传感器使用DHT11,1602液晶显示和YF017语音播报。
1.3、设计的意义
伴随着科学技术的迅速发展,我国农业也逐渐地从传统农业像高产、优质、高效为目的的现代化农业转变。
而作为家乡的蔬菜大棚,自然也离不开现代化的科学技术。
通过国内外大量的科学实验和生产的实践证明,环境的控制对蔬菜生产起到重要的作用。
只有在适宜的生长环境下蔬菜才能充分发挥其高产潜力。
对于蔬菜大棚内环境的控制主要是对环境温度,土壤湿度等进行测量和控制,为了更好地测量、控制湿度温度和土壤湿度等蔬菜生长的因素,本文设计了已STC89C51单片机为控制器的智能测控系统,通过该系统可以对环境温度、湿度等观测值进行自动控制和适时检测,并利用声音和灯光进行超限报警及相应的处理。
一般情况下,监控室多处于恶劣环境,这种地方噪音大,危险,人员不适合长期呆在监控室。
如果采用无线数据传输方式,监控端可以远离监控现场。
2、主要器件介绍
系统主要有STC89C52RC单片机最小系统和LCD1602液晶显示、,DHT11温湿度传感器检测数据,用过单工通信,模拟SPI通信协议,读取温度湿度值,独立按键设置温湿度上下限,警报电路及其按键控制YF017语音芯片实现语音播报。
系统框图如下图:
2.1、主控器件
单片机是STC公司最新推出的一种新型51内核的单片机。
片内含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。
封装图如下图:
2.1.1、主要特性
1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.
2. 工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3. 工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4. 用户应用程序空间为8K字节 5. 片上集成512字节RAM
6. 通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,
P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8. 具有EEPROM功能
9. 具有看门狗功能
10. 共3个16位定时器/计数器。
即定时器T0、T1、T2
11. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒
12. 通用异步串行口(UART),还可用定时器软件实现多个UART
13. 工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
2.1.2、引脚功能
VCC(40引脚):
电源电压
VSS(20引脚):
接地
P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流
P3口引脚复用功能 引脚号 复用功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 (外部中断0)
P3.3 (外部中断1)
P3.4 T0(定时器0的外部输入)
P3.5 T1(定时器1的外部输入)
P3.6 (外部数据存储器写选通)
P3.7 (外部数据存储器读选通)
RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚()也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。
注意加密方式1时,将内部锁定位RESET。
为了执行内部程序指令,应该接VCC。
在Flash编程期间,也接收12伏VPP电压。
XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2(18引脚):
振荡器反相放大器的输入端。
2.1.3定时器/计数器
89单片机至少有两个16位内部定时器/计数器(T/CTimer/Counter)。
分别是定时器/计数器0(T/C0)和定时器/计数器1(T/C1),另外一个是定时器/计数器2(T/C2)。
它们既可以编程为定时器使用,也可以编程为计数器使用。
T/C是加1计数的,不支持减1计数。
当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数频率=当前单片机工作频率/12。
当单片机工作在12MHz时,计数频率=1MHz,单片机每1us计数值加1。
当T/C工作在计数器时,计数脉冲来自外部脉冲输入引脚T0(P3.4)T1(P3.5)。
当T0或T1引脚上负跳变时计数值加1。
识别引脚上的负跳变需要2个机器周期,即24个振荡周期。
所以T0或者T1输入的可计数外部脉冲的最高频率为当前单片机工作频率/24。
当单片机工作在12MHz时,最高计数频率500KHz,高于该频率将计数出错。
TMOD在内存RAM中位于特殊功能寄存器区的89H处,其高4位用于设置定时器/计数器T1的工作方式,低4位用于设置定时器/计数器T0的工作方式。
由于T0和T1的用法很相似,所以,在此只结合TMOD的低4位讲解定时器/计数器T0的用法。
D7
D6
D5
D4
D3
D2
D1
D0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
T1控制字
T0控制字
当GATE=0时,定时器/计数器开始工作或停止工作不受GATE位的控制,而只受TCON寄存器中的TR0位控制,TR0=0时定时器/计数器T0停止工作,而当TR0=1时定时器/计数器T0开始工作。
当GATE=1时,定时器/计数器T0工作的起停除了受TCON寄存器中的TR0位控制外,还受单片机外部引脚P3.2的控制,只有该引脚为高电平且TR0=1这两个条件同时满足时,定时器/计数器才开始工作,一般这种用法通常用来测量P3.2引脚上正脉冲的宽度。
对于控制T1方式字段中的GATE位和T0中的用法完全一样,只是当GATE位为1时受单片机外部引脚P3.3和TCON中TR1的控制。
C/T位决定T0工作在定时方式还是计数方式。
当C/T=0时,T0工作在定时方式,此时由TH0和TL0组成的16位计数容器,这个容器会对晶振产生的脉冲再12分频后的脉冲进行计数,如果单片机外部接的是12M晶振,则TH0和TL0组成的16位计数容器中的数据就会每隔1微妙自动加1;
当C/T=1时,T0工作在计数方式,由TH0和TL0组成的16位计数容器会对从单片机外部引脚P3.4输入单片机的脉冲进行计数,每输入一个脉冲,则TH0和TL0组成的16位计数容器中的数据会自动加1。
如果TMOD高4位中的C/T=0,表示T1工作在定时方式,而当C/T=1表示T1工作在计数方式,计的是来自单片机外部引脚传入单片机的脉冲数。
M1和M0两位都可以设置成0或1,因此这两位有4种组合,这4种组合决定了T0的计数容器TH0和TL0共同构成的16位计数容器中所计的脉冲数的变化规律。
具体见下表:
M1
M0
工作模式
TH0和TL0构成的16位计数容器的计数方式的描述
0
0
模式0
此时TH0和TL0构成16位计数容器,最大计数范围0~65535共65536个数
0
1
模式1
此时TH0和TL0构成16位计数容器,最大计数范围0~65535共65536个数
1
0
模式2
TH0和TL0成为两个8位计数器,TH0中的数据固定为开始设定的值不变,TL0中数据按晶振12分频后速度自动加1至溢出,TH0中数据自动拷贝给TL0,在此基础上自加,TL0如此循环自加
1
1
模式3
只有T0可用于本模式,T1不可以,此时T0的TH0和TL0成为两个独立的8位计数器,且TH0只能用于定时方式;TL0可以工作与定时方式也可以工作与计数方式
定时器/计数器控制寄存器TCON如下表所示,其中高4位和定时器/计数器T0及T1有关。
TCON是一个八位寄存器,用于控制定时器的启动/停止及标志定时器溢出中断申请,既可以进行字节寻址也可以进行位寻址。
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
TF1—T1溢出标志为。
当定时器/计数器发生溢出时,该位由硬件置1,表示计数容器已经计满溢出,所谓溢出就是计数容器中的数从最大变成0的现象。
向CPU申请中断进入终端服务程序,TF1又由硬件清零0,也可以软件清零0。
TF0—T0溢出标志。
其功能操作与TF1相同。
TR1—T1运行控制位,可通过软件置1或0来启动关闭定时器1。
TR0—T0运行控制位,其功能操作与TR0相同1。
中断允许寄存器IE
D7
D6
D5
D4
D3
D2
D1
D0
EA
ET2
ES
ET1
EX1
ET0
EX0
当ET0=1(SETBET0)时,单片机的CPU能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET0=0(CLRET0)时,单片机的CPU不能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序。
当ET1=1(SETBET1)时,单片机的CPU能够在定时器/计数器T1的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET1=0(CLRET1)时,即使定时器/计数器T1的计数容器发生了溢出,单片机也不能中断主程序而去执行相应的中断服务子程序。
EA为总中断允许控制位,将EA位设置成0关中断。
2.1.4外部中断
单片机正在主程序里无穷无尽的循环的时候,突然发生了一个紧急事件,程序就“飞”到了另一处(发生突发事件的地方)执行,处理完突发事件后又自己“飞”回到主程序中继续执行。
表6-5中断允许寄存器IE
D7
D6
D5
D4
D3
D2
D1
D0
EA
ET2
ES
ET1
EX1
ET0
EX0
8051系列单片机有5个事件可以中断单片机正在执行的主程序,分别是定时器/计数器T0和T1计数容器溢出、外部引脚P3.2和P3.3上的信号以及串口通讯中断;8052系列单片机比8051单片机多一个引起中断的事件就是定时器T2,中断允许寄存器IE就是用于设置单片机,当相应的事情发生时是否通知单片机的CPU中断当前执行的任务并“飞”出去做相应的处理的。
下面分别介绍中断允许寄存器IE中各位的功能。
1、EX0
当EX0=1(SETBEX0),同时在单片机P3.2引脚上出现中断信号时,单片机会中断主程序的执行“飞”往中断服务子程序去执行,执行完中断程序后通过中断返回指令RETI自动返回主程序继续执行。
当EX0=0(CLREX0),即使单片机P3.2引脚上出现中断信号,程序也不会从主程序“飞”出去执行。
因为此时单片机的CPU相当于被“堵上了耳朵”,根本接收不到P3.2引脚上的中断信号。
2、ET0
当ET0=1(SETBET0)时,单片机的CPU能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET0=0(CLRET0)时,单片机的CPU不能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序。
3、EX1
当EX1=1(SETBEX1)时,并且外部P3.3引脚上出现中断信号时,单片机的CPU会中断主程序而去执行相应的中断服务子程序;当EX1=0(CLREX1)时,即使外部P3.3引脚上出现中断信号,单片机的CPU也不能中断主程序转而去执行中断服务子程序。
4、ET1
当ET1=1(SETBET1)时,单片机的CPU能够在定时器/计数器T1的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET1=0(CLRET1)时,即使定时器/计数器T1的计数容器发生了溢出,单片机也不能中断主程序而去执行相应的中断服务子程序。
5、ES
当ES=1(SETBES)时,单片机的CPU能够在串口发送完或接收完一个字节数据时中断主程序而去执行相应的中断服务子程序;当ES=0(CLRES)时,即使单片机的串口发送完或接收完一个字节数据也不会产生中断。
6、EA
EA为总中断允许控制位,将EA位设置成0关中断。
2.1.5、串口通信
一条信息的各位数据被逐位顺序传送的通信方式成为串行通信。
根据信息的传送方向,串行通信可以可以进一步划分为单工、半双工和全双工3种。
信息只能单方向传送为单工;信息能双向传送但不能同时双向传送为半双工;信息能够同时双向传送则成为全双工。
8051系列单片机有一个全双工串行口,全双工的串行通信只需要一根输出线和输入线。
串行通信又有异步通信和同步通信这两种方式。
异步通信用起始位“0”表示字符的开始,然后从低位到高位逐位传送数据,最后用停止位“1”表示字符结束。
一个字符又称作一帧信息,一帧信息包括1位起始位、8位数据位、1位停止位,若数据位增加到第9位,在8051系列单片机中,第九位数据可以用作奇偶校验位,也可以用作地址/数据帧标志。
8051系列单片机串行I/O接口的工作原理就是:
当要发送数据时,单片机自动将SBUF内的8位并行数据转换为一定格式的串行数据,从TXD引脚按规定的波特率来输出;当要接收数据时,要监视RXD引脚,一旦出现起始位“0”,按规定的波特率将外围设备送来的一定格式的串行数据转换成8位并行数据,等待用户读取SBUF寄存器,若不及时读取,SBUF中的数据有可能被刷新。
8051系列单片机上有通用异步接收/发送器用于串行通信,发送时数据由TXD引脚输出,接收时数据从RXD引脚输入。
有两个缓冲器(SerialBuffer),一个作发送缓冲器,另外一个作为接收缓冲器。
UART是可编程的全双工的串行口。
SBUF是可以直接寻址的专用寄存器。
物理上,它对应着两个寄存器,即一个发送寄存器一个接收寄存器,CPU写SBUF就是修改发送寄存器;读SBUF就是读接收寄存器。
接收器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时的响应接收器的中断,没有把上一帧的数据读走而产生两帧数据重叠的问题。
对于发送器,为了保持最大的传输速率,一般不需要双缓冲,因为发送时CPU是主动的,不会产生重叠问题。
SCON是一个逐位定义的8位寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态,SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。
它的各个位定义如下:
SM2在工作方式2和3中是多机通信的使能位。
在工作方式0中,SM2必须为0。
在工作方式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。
在工作方式2和3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志RB8不会被激活,若接收到的第9位数据(RB8)为1,则RI置位。
此功能可用于多处理机通信。
REN为允许串行接收位,由软件置位或清除。
置位时允许串行接收,清除时禁止串行接收。
TB8是工作方式2和3要发送的第9位数据。
在许多通信协议中该位是奇偶位,可以按需要由软件置位或清除。
在多处理机通信中,该位用于表示是地址帧还是数据帧。
RB8是工作方式2和3中接收到的第9位数据(例如是奇偶位或者地址/数据标识位),在工作方式1中若SM2=0,则RB8是已接收的停止位。
在工作方式0中RB8不使用。
TI为发送中断标志位,由硬件置位,软件清除。
工作方式0中在发送第8位末尾由硬件置位;在其他工作方式时,在发送停止位开始时由硬件置位。
TI=1时,申请中断。
CPU响应中断后,发送下一帧数据。
在任何工作方式中都必须由软件清除TI。
RI为接收中断标志位,由硬件置位,软件清除。
工作方式0中在接收第8位末尾由硬件置位;在其他工作方式时,在接收停止位的中间由硬件置位。
RI=1时,申请中断,要求CPU取走数据。
但在工作方式1中,SM2=1且未接收到有效的停止位时,不会对RI置位。
在任何工作方式中都必须由软件清除RI。
系统复位时,SCON的所有位都被清除。
(1)工作方式0
SM0=0且SM1=0时,串口选择工作方式0,实质这是一种同步移位寄存器模式。
其数据传输的波特率固定为Fosc/12,数据由RXD引脚输入或输出,同步时钟由TXD引脚输出。
接收/发送的是8位数据,传输是低位在前,帧格式如下:
……..D0D1D2D3D4D5D6D7…….
(2)工作方式1
当SM0=0且SM1=1时,串口选择工作方式1,其数据传输的波特率由定时/计数器T1、T2的溢出速率决定,可通过程序设定。
当T2CON寄存器中的RCLK和TCLK置位时,用T2作为发送和接收波特率发生器,而RCLK=TCLK=0时,用T1作为波特率发生器,两者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 播报 温湿度
![提示](https://static.bdocx.com/images/bang_tan.gif)