工业用智能语音报警控制器的设计.docx
《工业用智能语音报警控制器的设计.docx》由会员分享,可在线阅读,更多相关《工业用智能语音报警控制器的设计.docx(32页珍藏版)》请在冰豆网上搜索。
工业用智能语音报警控制器的设计
工业用智能语音报警控制器的设计
摘要:
本文概述了工业用智能语音报警控制器的设计原理,利用STC单片机和LCD液晶显示器,组成最小单片机显示系统,实现工业现场控制与显示。
概述了WT588D语音芯片的功能和使用方法,以及以LM1875T为核心的功放电路的原理。
也阐述了STC单片机的功能和特点以及与LCD显示电路原理。
通过KEIL软件进行编程设计,经过制作电路板,完成系统测试,最后给出了软件编程程序。
关键字:
WT588D语音芯片;STC单片机;LM1875T;LCD显示
Industrialuseintelligentvoicealarmcontrollerdesign
WangPengfeiTeacher:
ShenHongjun
Abstract:
Thispapersummarizestheindustrialuseintelligencevoicealarmcontrollerdesignprinciple,theuseofSTCsingle-chipmicrocomputerandLCDmonitor,minimumofsinglechipmicrocomputerdisplaysystem,realizetheindustrialfieldcontrolanddisplay.SummarizestheWT588Dvoicechipofthefunctionandthemethodofuse,andtoLM1875Tasthecoreofthepoweramplifiercircuitprinciple.AlsoexpoundstheSTCfunctionandcharacteristicofthesinglechipmicrocomputerandLCDdisplaycircuitprinciple.ThroughtheKEILsoftwareprogrammingdesign,aftermakingcircuitboards,completesystemtest,andfinallypresentssoftwareprogrammingprocedures.
Keyword:
WT588Dvoicechip;STCsingle-chipmicrocomputer;LM1875T;LCDdisplay
前言
随着时代的变迁,科技的发展,工业生产大幅度的提高了社会生产力。
关注工业现场的每个细微的环节比如对油压、气压及温度并进行检测,能够及时便捷地将异常情况告知工作人员,最大可能地降低安全隐患十分必要。
因此,一种能自动检测温度、压力等系统参量,异常情况时发出语音警报的工业用智能语音报警控制器的设计具有重要意义。
1概述
工业用智能语音报警控制器主要实现工业现场中温度、湿度、液压等模拟量经传感器转换为数字量后,经单片机系统控制部分处理以后,实现LCD显示现场状况和播报现场状况。
让现场工作人员实时了解现场状况,及时排除危险。
1.1方案论证与比较
本题目是要设计工业智能语音报警器,用在工业现场中,实现工业现场中温度、湿度、液压等模拟量实时语音播报和显示。
让现场工作人员实时了解现场状况,及时排除危险。
系统结构图如图1-1所示。
图1-1系统结构图
1.2控制器的选择
方案一:
采用STC89C52单片机。
内部资源比较少,程序下载需要编程器硬件搭建比较复杂,软件实现比较麻烦。
另外需要用仿真器来实现软硬件调试。
方案二:
采用ATmega16单片机。
此单片机具有一整套的编程与系统开发工具,支持片内调试与编程。
该单片机为单调指令,执行速度快,而且IO口驱动能力强,应用灵活,价格低廉。
由于本次设计采用资源较少,STC89C52基本可完成设计需要,所以选择方案一。
1.4播放器的选择
方案一:
采用WT588D语音模块。
此模块WT588D语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。
WT588D让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。
方案二:
采用单片机控制扬声器,作为语音模块.。
此方法需要事先在单片机内存入大量代码,而且操作很困难,软件实现较麻烦。
基于上述考虑以及题目要求,故选择方案一。
1.5显示模块的选择
方案一:
采用LCD液晶来充当显示模块。
该液晶显示器以其微功耗、显示内容丰富、体积小、超薄轻巧等诸多优点在电子设计中被广泛应用。
方案二:
采用8段数码管显示。
虽然数码管的价格较液晶低廉。
但其耗电量大,显示不美观大方。
而且动态显示易乱码。
基于上述考虑,故选择方案一。
2各部分介绍
2.1STC89C52介绍
STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容[1]。
2.1.1时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图2—1(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图2—1(b)所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
(a)内部方式时钟电路(b)外部方式时钟电路
图2-1时钟电路
2.1.2复位及复位电路
(1)复位操作
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表一所示。
表2-1一些寄存器的复位状态
寄存器
复位状态
寄存器
复位状态
PC
0000H
TCON
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0-P3
FFH
SCON
00H
IP
XX000000B
SBUF
不定
IE
0X000000B
PCON
0XXX0000B
TMOD
00H
(2)复位信号及其产生
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
产生复位信号的电路逻辑如图2—2所示:
图2-2复位信号的电路逻辑图
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图2—3(a)所示。
这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图2—3(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图2—3(c)所示:
(a)上电复位(b)按键电平复位(c)按键脉冲复位
图2-3复位电路
2.21602液晶显示器介绍
工业字符型液晶,能够同时显示16x02即32个字符。
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
1602液晶微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
图2-41602液晶的正面(绿色背光,黑色字体)
图2-41602液晶背面(绿色背光,黑色字体)
1602液晶引脚功能图如表2-2所示。
表2-21602液晶引脚功能图
1602标准16脚接口
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光电源正极
第16脚:
背光电源负极
2.3LM1875介绍
LM1875是美国国家半导体器件公司生产的音频功放电路,采用V型5脚单列直插式塑料封装结构。
如图1所示,LM1875在±25V电源电压RL=4Ω时可获得20W的输出功率,在±30V电源8Ω负载获得30W的功率,内置有多种保护电路。
广泛应用于汽车立体声收录音机、中功率音响设备,具有体积小、输出功率大、失真小等特点[2]。
LM1875引脚图及封装图如图2-6所示:
2-6LM1875引脚图
LM1875T极限参数如表2-3所示:
表2-3LM1875T极限参数如表
参数名称
极限值
单位
电源电压(Vs)
60
V
输入电压(Vin)
-VEE-Vcc
V
工作结温(Tj)
150
℃
存储结温(Tstg)
-215
℃
输出功率(RL=4Ω)
Po=20
W
2.4WT588D语音芯片介绍
WT588d语音芯片是早期可外挂FLASH的一款语音芯片,WT588D音质较好,控制灵活的特点,更增加了可播放MIDI和弦功能,性能更好。
WT588D是一款具有单片机内核的语音芯片,因此,可以冠名为WT588D系列语音单片机。
WT588D系列语音单片机是广州唯创电子有限公司联合台湾华邦共同研发出来的集单片机和语音电路于一体的可编辑语音芯片。
功能多音质好应用范围广性能稳定是WT588D系列语音单片机的特长,弥补了以往各类语音芯片应用领域狭小的缺陷,MP3控制模式、按键控制模式、按键组合控制模式、并口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制控制端口扩展输出模式,让应用人员能将产品投放在几乎可以想象得到的场所。
作为一款以语音为基础的芯片,对音质的追求当然也是精益求精的,完全支持6K~22KHz采样率的音频加载,芯片的独到之处便是将加载的音频音质几乎完整无损的展现出来。
WT588D系列语音单片机能通过配套软件WT588DvoiceChip轻而易举的做到语音组合播放、插入完美的陶冶静音。
静音的时长控制得绝无丝毫误差!
可控制的语音地址位能达到220个!
每个地址位里能加载可组合语音为128段语音!
WT588D系列语音单片机模块内置SPI-FLASH存储器,WT588D系列语音单片机芯片可根据实际用法外置SPI-FLASH存储器,众多的控制模式、语音组合只需更换SPI-FLASH的内容,即可完全实现操作方式的切换。
WT588D系列语音单片机支内容在线下载,这是一个应用人员不可或缺的优势持SPI-FLASH!
WT588D语音单片机的推出,非常的具有语音市场的前瞻性和革命性,势必会在语音芯片的应用方面卷起一股旋风[3]。
·模块封装(带SPI-Flash及外围电路)有DIP16、DIP28,芯片封装有DIP18、SSOP20和LQFP32形式;
·根据外挂或者内置SPI-Flash的不同,播放时长也不同,支持2M~32Mbit的SPI-Flash存储器;
·内嵌DSP高速音频处理器,处理速度快;
·内置13Bit/DA转换器,以及12Bit/PWM输出,音质好;
·PWM输出可直接推动0.5W/8Ω扬声器,推挽电流充沛;
·支持DAC/PWM两种输出方式;
·支持加载WAV音频格式;
·支持加载6K~22KHz采样率音频;
·支持对已加载语音播放试听;
·可通过专业上位机操作软件,随意组合语音,可插入静音,插入的静音不占用内存的容量,一个已加载语音可重复调用到多个地址;
·220段可控制地址位,单个地址位最多可加载128段语音,地址位内的语音组合播放;
·最多可加载500段用于编辑的语音;
·USB下载方式,支持在线下载/脱机下载;即便是在WT588D语音芯片通电的情况下,也一样可以正常下载数据到SPI-Flash;
·芯片复位时间5ms;
·支持MP3控制模式、按键控制模式、3×8按键组合控制模式、并口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制控制端口扩展输出模式;
·三线串口控制模式切换到三线串口控制控制端口扩展输出模式只需发送数据就可以进行切换。
切换后仍可把切换前的最后一工作状态带进切换后的模式工作;
·任意设定显示语音播放状态信号的BUSY输出方式;
·抗干扰性强,可应用在工业领域;
·220段可控制地址位,单个地址位最多可加载128段语音,地址位内的语音组合播放;
·语音播放停止马上进入休眠模式,芯片转为完全停止状态;
·15种按键控制模式,任意一个按键可设定任意一种控制模式;
·配套WT588DVoiceChip上位机软件,接口简单,使用方便。
能极大限度的发挥出WT588D语音单片机的各项功能;
·简单的单片机编写方式,摆脱以往复杂繁琐的汇编思维;
·单个芯片支持外挂多个存储器;
·插入的静音时间范围10ms~25min;
·工作电压DC2.8V~5.5V;
·静态休眠电流小于10uA;
·支持8和弦MIDI播放(此功能有待开放)。
2.5光电隔离器介绍
光耦合器(opticalcoupler,英文缩写为OC)亦称光电隔离器或光电耦合器,简称光耦。
它是以光为媒介来传输电信号的器件,通常把发光器(红外线发光二极管LED)与受光器(光敏半导体管)封装在同一管壳内。
当输入端加电信号时发光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电—光—电”转换。
普通光耦合器只能传输数字(开关)信号,不适合传输模拟信号。
近年来问世的线性光耦合器能够传输连续变化的模拟电压或模拟电流信号,使其应用领域大为拓宽[4]。
光耦合器有双列直插式、管式、光导纤维式等多种封装形式,其种类达数十种。
光耦合器的分类及内部电路如图1所示。
图中是8种典型产品的型号:
(a)通用型(无基极引线);(b)通用型(有基极引线);(c)达林顿型;(d)高速型;(e)光集成电路;(f)光纤型;(g)光敏晶闸管型;(h)光敏场效应管型。
光耦合器的主要优点是单向传输信号,输入端与输出端完全实现了电气隔离,抗干扰能力强,使用寿命长,传输效率高。
它广泛用于电平转换、信号隔离、级间隔离、开关电路、远距离信号传输、脉冲放大、固态继电器(SSR)、仪器仪表、通信设备及微机接口中。
在单片开关电源中,利用线性光耦合器可构成光耦反馈电路,通过调节控制端电流来改变占空比,达到精密稳压目的。
3硬件设计
3.1系统概述
经过方案论证,工业用智能语音报警控制器设计的系统结构图如图3-1所示,主要由工业现场输入电路、WT5880d语音、单片机控制电路、LCD显示电路和LM1875T功放电路构成。
图3-1工业用智能语音报警控制器设计的系统结构图
3.2主电路图
本设计主要利用模块思想,将工业现场模块、显示模块与语音和功放模块经主电路模块有机结合,实现现场信号输入,与相应语音播报功能。
主电路如图3-2所示,主要采用STC单片机为最小系统[5],具有LCD显示功能。
图3-2主电路图
3.3WT588D语音芯片电路与功放电路
WT588D语音模块采用按键模式,当接收到单片机按键信号,就调出相应信号录音[6]。
WT588D语音芯片电路如图3-3所示。
图3-3WT588D电路
功放电路采用LM1875T芯片为功放核心,具有20W的设计功率[7]。
满足了工业现场的应用需求。
功放电路如图3-4所示。
图3-4功放电路
3.4工业现场输入电路
单片机接收来自工业现场设备传来的状态信号,单片机对这些信号处理后,输出各种控制信号去执行相应的操作。
在现场环境较恶劣时,会存在较大的杂讯干扰,若这些干扰随输入信号一起进入单片机系统,会使控制准确性降低,产生误动作。
因而,可在单片机的输入端,用光耦作介面,对信号及杂讯进行隔离。
典型的光电耦合电路如图2-3所示。
该电路主要应用在“A/D转换器”的数位信号输出,及由CPU发出的对前向通道的控制信号与类比电路的介面处,从而实现在不同系统间信号通路相联的同时,在电气通路上相互隔离,并在此基础上实现将类比电路和数位电路相互隔离,起到抑制交叉串扰的作用[8]。
图3-5工业现场光电耦合器接线原理
3.5LCD显示电路
LCD显示电路接线图如电路图2-4所示,选用P0口,1k的上拉电阻[9]。
再系统中主要用来显示现场状况。
图3-6LCD显示电路
4软件设计
4.1软件设计思路
按照上述的分析和硬件原理图,软件设计的主要任务是根据温度或压力传感器的数值和用户的设定值比较判断,控制语音芯片进行报警。
软件流程如图4-1所示。
单片机周期性地读取系统参量数值。
STC89C52将各测量值与监控系统的设定值进行比较。
当温度或压力、车速超过安全阈值时,STC89C52播放控制引脚自动输出允许播放信号,同时,STC89C52也依据危险的种类查表语音提示录音在WT588D中的地址并将其输出到地址线上,这两个信号将会触发语音芯片播放指定段的内容,实现语音报警功能。
同时,STC89C52也会唤醒显示单元,将报警原因的详细信息显示出来[10]。
图4-1软件流程如图
4.2软件程序设计
由于程序多,写在一个主函数下,会造成读不懂,容易混乱等。
而我们知道C语言编程可以调用库函数,使得编程思路清晰,便于读改。
因此在编程时灵活应用了KeilC这款编程软件在其编程中可以套用子函数的特点。
结合设计特点,我们将程序分为主程序和子程序。
子程序主要包括,LCD显示程序,WT588D启动程序[11]。
4.3主函数
4.3.1主函数流程图
主函数流程图如下:
图4-2主函数流程如图
4.3.2主函数程序
主函数程序如下:
voidmain()
{init();//初始化LCD
Set_RTC(l_tmpdate1);//启动WT588D
open();//上电显示函数
delay1ms(2000);
write_com(0x01);//清屏
while
(1)
{KeyScan();//键盘扫描
if(flag==0)//正常显示模式下
{
usual();//处理0
}
if(flag==1)//正常显示模式下
{
usual();//处理1
}
if(flag==2)//正常显示模式下
{
usual();//处理2
}
if(flag==3)//正常显示模式下
{
usual();//处理3
}
if(flag==4)//正常显示模式下
{
usual();//处理4
}
if(flag==5)//正常显示模式下
{
usual();//处理5
}
if(flag==6)//正常显示模式下
{
usual();//处理6
}
if(flag==7)//正常显示模式下
{
usual();//处理7
}
}
}
}
/***********************主函数结束********************************/
4.4上电显示函数
ucharcodeopens[]="gongyezhinengyuyinkongzhiqi";//定义上电显示字符数组
//ucharcodeopens1[]="gongyezhinengyuyinkongzhiqi";
voidopen()
{ucharnum;
write_com(0x80+0x00);
for(num=0;num<16;num++)//把数组中的内容写完
{
write_date(opens[num]);
delay(20);
}
write_com(0x80+0x40);//写入第二行数据
for(num=16;opens[num]!
='\0';num++)
{
write_date(opens[num]);
delay(20);
}
}
/**************************END******************************/
4.5LCD显示程序
sbitrs=P2^5;//LCD数据/命令选择端
sbitrw=P2^6;//LCD读写选择端
sbite=P2^7;//LCD使能信号
voiddelay(ucharz);//延时函数
voidinit();//LCD初始化函数
voidwrite_com(ucharcom);//LCD写命令
voidwrite_date(uchardate);//