WTH040语音芯片使用资料V1.9 _.doc_第1页
WTH040语音芯片使用资料V1.9 _.doc_第2页
WTH040语音芯片使用资料V1.9 _.doc_第3页
WTH040语音芯片使用资料V1.9 _.doc_第4页
WTH040语音芯片使用资料V1.9 _.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

WTH040语音芯片使用资料 V1.9目 录1、产品特点32、芯片选型33、应用范围34、管脚图44.1、WTH040-8S/WTH040-8P44.2、WTH040-16S45、电气参数56、控制模式56.1、按键控制56.2、一线串口控制76.3、两线串口控制86.3.1、发送地址命令86.3.2、读取芯片工作状态96.3.3、控制命令106.3.4、语音地址107、复位及输出状态107.1、硬件复位107.2、输出状态118、应用电路118.1、按键控制模式应用电路118.1.1、WTH040-8S/WTH040-8P按键控制(DC3V供电,PWM输出)118.1.2、WTH040-8S/WTH040-8P按键模式(DC3V供电,DAC输出外接三极管)118.1.3、WTH040-8S/WTH040-8P按键模式(DC3V供电,DAC输出外接功放)128.1.4、WTH040-8S/WTH040-8P按键模式(DC5V供电,PWM输出)128.1.5、WTH040-8S/WTH040-8P按键模式(DC5V供电,DAC输出外接三极管)128.1.6、WTH040-8S/WTH040-8P按键模式(DC5V供电,DAC输出外接功放)128.1.7、WTH040-16S按键模式(DC3V供电,PWM输出)138.1.8、WTH040-16S按键模式(DC3V供电,DAC输出外接三极管)138.1.9、WTH040-16S按键模式(DC3V供电,DAC输出外接功放)138.1.10、WTH040-16S按键模式(DC5V供电,PWM输出)138.1.11、WTH040-16S按键模式(DC5V供电,DAC输出外接三极管)148.1.12、WTH040-16S按键模式(DC5V供电,DAC输出外接功放)148.2、一线串口控制模式应用电路158.2.1、WTH040-8S/WTH040-8P一线串口模式(MCU为DC3V供电,PWM输出)158.2.2、WTH040-8S/WTH040-8P一线串口模式(MCU为DC3V供电,DAC输出外接三极管)158.2.3、WTH040-8S/WTH040-8P一线串口模式(MCU为DC3V供电,DAC输出外接功放)168.2.4、WTH040-8S/WTH040-8P一线串口模式(MCU为DC5V供电,PWM输出)168.2.5、WTH040-8S/WTH040-8P一线串口模式(MCU为DC5V供电,DAC输出外接三极管)178.2.6、WTH040-8S/WTH040-8P一线串口模式(MCU为DC5V供电,DAC输出外接功放)178.2.7、WTH040-16S一线串口模式(MCU为DC3V供电,PWM输出)188.2.8、WTH040-16S一线串口模式(MCU为DC3V供电,DAC输出外接三极管)188.2.9、WTH040-16S一线串口模式(MCU为DC3V供电,DAC输出外接功放)198.2.10、WTH040-16S一线串口模式(MCU为DC5V供电,PWM输出)198.2.11、WTH040-16S一线串口模式(MCU为DC5V供电,DAC输出外接三极管)208.2.12、WTH040-16S一线串口模式(MCU为DC5V供电,DAC输出外接功放)218.3、两线串口控制模式应用电路218.3.1、WTH040-8S/WTH040-8P两线串口模式(MCU为DC3V供电,PWM输出)218.3.2、WTH040-8S/WTH040-8P两线串口模式(MCU为DC3V供电,DAC输出外接三极管)228.3.3、WTH040-8S/WTH040-8P两线串口模式(MCU为DC3V供电,DAC输出外接功放)228.3.4、WTH040-8S/WTH040-8P两线串口模式(MCU为DC5V供电,PWM输出)228.3.5、WTH040-8S/WTH040-8P两线串口模式(MCU为DC5V供电,DAC输出外接三极管)238.3.6、WTH040-8S/WTH040-8P两线串口模式(MCU为DC5V供电,DAC输出外接功放)238.3.7、WTH040-16S两线串口模式(MCU为DC3V供电,PWM输出)238.3.8、WTH040-16S两线串口模式(MCU为DC3V供电,DAC输出外接三极管)238.3.9、WTH040-16S两线串口模式(MCU为DC3V供电,DAC输出外接功放)248.3.10、WTH040-16S两线串口模式(MCU为DC5V供电,PWM输出)248.3.11、WTH040-16S两线串口模式(MCU为DC5V供电,DAC输出外接三极管)248.3.12、WTH040-16S两线串口模式(MCU为DC5V供电,DAC输出外接功放)248.4、WTH系列语音芯片供电电压DC3V,MCU供电电压DC5V供电时通讯线的接法错误!未定义书签。9、程序范例259.1、一线串口控制程序范例(适应于PWM输出方式)259.2、一线串口控制程序范例(适应于DAC输出方式)279.3、两线串口控制程序范例2910、封装尺寸图3510.1、WTH040-8S封装尺寸图3510.2、WTH040-8P封装尺寸图3610.3、WTH040-16S封装尺寸图3711、历史版本记录381、产品特点 可编程一次性烧录(OTP)语音芯片; 语音长度可达40秒(6KHz采样率); PWM和DAC两种音频输出方式; 内部集成时钟振荡器; 最大可存放700个语音文件; 一线最多可加载63段地址的语音,二线最多可以加载255段语音; 具有按键控制模式、一线串口控制模式以及两线串口控制模式等; 触发防抖时间:50us(串口)和10ms(按键); 7种按键触发方式; 支持播放不同采样率的语音文件; 支持BUSY状态输出功能; 工作电压:DC2.45.0V。(需根据供电电压设定芯片为3V或5V,后续有详解)2、芯片选型芯片型号封装形式语音长度BUSY输出控制端口输出端口WTH040-8SSOP840S支持30WTH040-8PDIP840S支持30WTH040-16SSOP1640S支持44选型注意:1. 芯片的供电电压、控制方式和输出方式在烧写程序时已经设定好,不可以再次更改,订做芯片时需要和业务员说明应用要求。2. 使用一线串口控制方式时,小于等于32段语音和大于32段语音的芯片IO接口不一样,详细请查看相应的应用电路。3. WTH040芯片与WTH080芯片的管脚不兼容。芯片电压的设定决定了内部LDO的打开和关闭。注意芯片电压设定需和供电电压及电路接线必须匹配,否则会导致芯片损坏或不工作。下文有相应的参考电路。芯片设定电压供电电压范围3V2.4V3.6V5V3.6V5.0V芯片控制方式有:按键控制、一线串口、两线串口。芯片输出方式有:PWM输出(直接推动喇叭)、DAC输出(外接功放使用)。下文有相应的参考电路。3、应用范围 汽车(防盗报警器、倒车雷达、GPS导航仪、电子狗、中控锁); 智能家居系统; 家庭防盗报警器; 医疗器械人声提示; 家电(电磁炉、电饭煲、微波炉); 娱乐设备(游戏机、游乐机); 学习模型(早教机、儿童有声读物); 智能交通设备(收费站、停车场); 通信设备(电话交换机、电话机); 工业控制领域(电梯、工业设备); 高级玩具。4、管脚图4.1、WTH040-8S/WTH040-8P封装引脚引脚标号简述功能描述1TG2/RSTKEY2/RST/SCK按键2/复位按键/两线串口时钟输入2TG1KEY1/DI/DATA按键1/两线串口DATA IN/一线串口DATA3TG3KEY3/DO按键3/两线串口DATA OUT/BUSY4VDDLVDDL电源输入端,供电电压2.43.6V,需要接104电容到地线5PWM-PWM-PWM-音频输出6VDDVDD电源输入端,供电电压2.45V,需要接104电容到地线7PWM+/DACPWM+/DACPWM+音频输出/DAC音频输出8GNDGND地线4.2、WTH040-16S封装引脚引脚标号简述功能描述1GNDGND地线2NCNC空3TG2/RSTKEY2/RST/SCK按键2/复位按键/两线串口时钟输入4TG1KEY1/DI/DATA按键1/两线串口DATA IN/一线串口DATA5TG3KEY3/DO按键3/两线串口DATA OUT6TG4KEY4按键47TG5KEY5/OUT1按键5/输出BUSY信号或者闪光信号8TG6KEY6/OUT2按键6/输出BUSY信号或者闪光信号9TG7KEY7/OUT3按键7/输出BUSY信号或者闪光信号10TG8KEY8/OUT4按键8/输出BUSY信号或者闪光信号11VDDLVDDL电源输入端,供电电压2.43.6V12PWM-PWM-PWM-音频输出13VDDVDD电源输入端,供电电压2.45V,需要接104电容到地线14PWM+/DACPWM+/DACPWM+音频输出/DAC音频输出15NCNC空16NCNC空5、电气参数环境温度25,工作电压DC3V参数标记环境条件最小值典型值最大值单位工作电压VDD无2.435.0V待机电流(LDO ON)ISBVDD=3V,没负载345uA待机电流(LDO OFF)ISBVDD=3V,没负载11.53uA工作电流IOPVDD=3V,没负载600uA输出驱动电流IODVDD=3V,VOUT=0.6V10mA输出灌电流IOSVDD=3V,VOUT=2.4V30mAPWM驱动电流IODVDD=3V,VOUT=1.5V200mAPWM灌电流IOSVDD=3V,VOUT=1.5V200mA6、控制模式6.1、按键控制在按键控制模式下,任意控制端均可设置为脉冲可重复、脉冲不可重复、脉冲保持、脉冲不保持、电平保持可循环、电平保持不可循环、下一曲可循环等7种触发方式。脉冲可重复收到正脉冲信号后开始播放语音,在语音结束前如果还收到第二次正脉冲信号,则重新开始播放语音,在语音播放的过程中无收到正脉冲信号则播放完整段语音。脉冲不可重复收到正脉冲信号后开始播放语音,在语音结束前如果再次收到正脉冲信号,则没有动作产生,在语音播放结束后再次收到正脉冲信号才会重新播放语音。脉冲保持收到正脉冲信号后开始播放语音,正脉冲信号停止时,语音也停止播放。如果正脉冲信号一直保持,并且持续的时间超出语音播放的长度,则播放完语音即停止,不再继续播放语音。脉冲不保持收到正脉冲信号后开始播放语音,正脉冲信号停止后语音继续播放完毕,如果正脉冲信号一直保持,并且持续的时间超出语音播放的长度,则播放完语音即停止,不再继续播放语音。电平保持可循环收到高电平后播放语音,高电平信号停止时,语音也停止播放,。如果一直保持高电平信号,则会一直循环播放当前段语音语音。电平保持不可循环收到高电平后播放语音,高电平信号停止时,语音也停止播放,。即时一直保持高电平信号,在语音播放完毕后也不再有任何动作。下一曲可循环此触发方式仅限于在P00控制端口。收到正脉冲信号后开始播放第一段地址语音,再次收到正脉冲信号则播放第二段地址语音,当触发到最后一段后,再次触发则重新开始播放第一段语音,如此循环。6.2、一线串口控制一线串口控制模式是通过在DATA线上发送不同的脉冲数量以达到控制语音地址的目的,该控制模式具有控制端口少,可控制语音地址数量多等优点。常用于MCU控制端口紧缺的场合。但一线串口控制模式也容易受到外界脉冲信号的干扰,故需要谨慎使用。一线串口控制模式带有复位控制,复位方式有软件复位和硬件复位两种方式。默认是采用软件复位方式,需要硬件复位方式在预订芯片时需说明。软件复位方式,速度快,无需要等待。硬件复位方式可靠稳定,但需要几十毫秒复位时间。软件复位方式控制时序:一线串口控制时序中,先发送200us的RESET信号(注:软件复位方式高电平有效),等待5ms后发送DATA,DATA中的第一个脉冲需要保持100us的高电平,等待50ms (DAC输出方式则等待50ms,PWM输出方式则等待100us) 后继续发送第二个脉冲,自第二个脉冲起,每个脉冲的高电平保持时间为100us,且两个脉冲之间的间隔时间需要100us。发送脉冲后等待200us,开始播放地址语音,再过200us后BUSY信号发生变化。注意不同输出方式,其第一个脉冲的低电平宽度有所不同(时序图中红色部分)。其时序如下图所示。软件复位方式(高电平有效),DAC输出方式时的一线串口控制时序:软件复位方式(高电平有效),PWM输出方式时的一线串口控制时序:硬件复位方式控制时序:一线串口控制时序中,先发送200us的RESET信号(注:硬件复位方式低电平有效),等待50ms后发送DATA,DATA中的第一个脉冲需要保持100us的高电平,等待50ms (DAC输出方式则等待50ms,PWM输出方式则等待100us) 后继续发送第二个脉冲,自第二个脉冲起,每个脉冲的高电平保持时间为100us,且两个脉冲之间的间隔时间需要100us。发送脉冲后等待200us,开始播放地址语音,再过200us后BUSY信号发生变化。注意不同输出方式,其第一个脉冲的低电平宽度有所不同(时序图中红色部分)。其时序如下图所示。硬件复位方式(低电平有效),DAC输出方式时的一线串口控制时序:硬件复位方式(低电平有效),PWM输出方式时的一线串口控制时序:脉冲数量以及所触发语音地址的对应关系如下表所示序号脉冲数语音地址111222333616161626262注意:为了防止误触发,在一线串口控制模式中,第一个地址的语音必须为静音。6.3、两线串口控制6.3.1、发送地址命令两线串口控制模式由DI及CLK发送数据信号控制语音地址,同时由DO返回相关操作数据。在发送DI前先将CLK拉高100us以唤醒芯片工作,继而发送周期为200us的CLK信号跟DI,在接收到DI数据100us后DO返回DI所发送的数据。整个数据需要发送24bit,数据发送完成后200us,开始播放地址语音。时钟周期的工作范围为50us4000us。*注意:在上电时,若CLK管脚有高脉冲或者高电平,则进入烧写模式,芯片无法正常工作,须重新上电复位。使用51系列MCU的客户需注意!此类MCU复位后IO默认输出高电平,所以会导致WTH芯片进入 烧写模式。可通过控制WTH芯片的供电电源使芯片重新上电复位,这样可以避免芯片进入烧写模式。并且在干扰较大的场合可以通过电源的控制让芯片重新上电复位,可增加稳定性。6.3.2、读取芯片工作状态发送16bit的数据02200,可以通过读取DO返回的数据,知道芯片的当前状态。由DO返回的D7数据,0代表语音停止,1代表芯片正在播放语音。200usCLKDIDOD15D14D13D12D11D6D5D4D3D2100us100usGroupND1VOICED7D0D15D14D13D12D11D6D5D4D3D2D1D7D06.3.3、控制命令命令管脚数据时钟位说明初始化DI00A014024每次上电后需要发送此命令,以唤醒芯片。DO播放DI018+语音地址24播放地址语音DO暂停DI00A014824可以暂停正在播放的语音DO从暂停处播放DI00A014024从暂停处恢复播放语音DO读取芯片状态DI0220016检验芯片是否处于停止状态,0为停止,1为播放。DO检验D7休眠指令DI0x0A010024直接进入休眠,可以打断正在播放的语音DO注意:两线串口模式下不会自动进入休眠状态,需要低功耗可通过休眠指令让芯片进入休眠状态。6.3.4、语音地址WTH040在两线串口模式下最多可加载256段语音,其控制命令及语音地址对应关系如下。序号命令语音地址101800C80201800E81301801082401801283501801484601801685252018202825125301820482522540182068253255018208825425601820A82557、复位及输出状态7.1、硬件复位可通过PC软件设置TG2为硬件复位控制端口,负脉冲触发,保持5ms以上有效,此时复位为硬件复位,TG2为低电平时,芯片停止工作;也可以通过PC软件设置TG2为软件复位控制端口,正脉冲触发,保持100us以上有效。,此时复位为软件复位,仅清除寄存器的值,TG2保持为高,芯片也正常工作。7.2、输出状态TG5、TG6、TG7、TG8均可以设置为输出端口,其中可设置的状态如下 待机状态高电平/低电平 播放语音时输出低电平 播放语音时输出高电平 LED闪光频率6Hz LED闪光频率3Hz LED闪光频率1.5Hz LED闪光频率0.75Hz8、应用电路8.1、按键控制模式应用电路8.1.1、WTH040-8S/WTH040-8P按键控制(DC3V供电,PWM输出)8.1.2、WTH040-8S/WTH040-8P按键模式(DC3V供电,DAC输出外接三极管)8.1.3、WTH040-8S/WTH040-8P按键模式(DC3V供电,DAC输出外接功放)8.1.4、WTH040-8S/WTH040-8P按键模式(DC5V供电,PWM输出)8.1.5、WTH040-8S/WTH040-8P按键模式(DC5V供电,DAC输出外接三极管)8.1.6、WTH040-8S/WTH040-8P按键模式(DC5V供电,DAC输出外接功放)8.1.7、WTH040-16S按键模式(DC3V供电,PWM输出)8.1.8、WTH040-16S按键模式(DC3V供电,DAC输出外接三极管)8.1.9、WTH040-16S按键模式(DC3V供电,DAC输出外接功放)8.1.10、WTH040-16S按键模式(DC5V供电,PWM输出)8.1.11、WTH040-16S按键模式(DC5V供电,DAC输出外接三极管)8.1.12、WTH040-16S按键模式(DC5V供电,DAC输出外接功放)8.2、一线串口控制模式应用电路8.2.1、WTH040-8S/WTH040-8P一线串口模式(MCU为DC3V供电,PWM输出) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.2、WTH040-8S/WTH040-8P一线串口模式(MCU为DC3V供电,DAC输出外接三极管) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.3、WTH040-8S/WTH040-8P一线串口模式(MCU为DC3V供电,DAC输出外接功放) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.4、WTH040-8S/WTH040-8P一线串口模式(MCU为DC5V供电,PWM输出) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.5、WTH040-8S/WTH040-8P一线串口模式(MCU为DC5V供电,DAC输出外接三极管) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.6、WTH040-8S/WTH040-8P一线串口模式(MCU为DC5V供电,DAC输出外接功放) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.7、WTH040-16S一线串口模式(MCU为DC3V供电,PWM输出) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.8、WTH040-16S一线串口模式(MCU为DC3V供电,DAC输出外接三极管) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.9、WTH040-16S一线串口模式(MCU为DC3V供电,DAC输出外接功放) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.10、WTH040-16S一线串口模式(MCU为DC5V供电,PWM输出) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.11、WTH040-16S一线串口模式(MCU为DC5V供电,DAC输出外接三极管) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.2.12、WTH040-16S一线串口模式(MCU为DC5V供电,DAC输出外接功放) 语音地址少于32段(包括32段)时的应用电路 语音地址大于32段,少于62段(包括62段)时的应用电路8.3、两线串口控制模式应用电路8.3.1、WTH040-8S/WTH040-8P两线串口模式(MCU为DC3V供电,PWM输出)8.3.2、WTH040-8S/WTH040-8P两线串口模式(MCU为DC3V供电,DAC输出外接三极管)8.3.3、WTH040-8S/WTH040-8P两线串口模式(MCU为DC3V供电,DAC输出外接功放)8.3.4、WTH040-8S/WTH040-8P两线串口模式(MCU为DC5V供电,PWM输出)8.3.5、WTH040-8S/WTH040-8P两线串口模式(MCU为DC5V供电,DAC输出外接三极管)8.3.6、WTH040-8S/WTH040-8P两线串口模式(MCU为DC5V供电,DAC输出外接功放)8.3.7、WTH040-16S两线串口模式(MCU为DC3V供电,PWM输出)8.3.8、WTH040-16S两线串口模式(MCU为DC3V供电,DAC输出外接三极管)8.3.9、WTH040-16S两线串口模式(MCU为DC3V供电,DAC输出外接功放)8.3.10、WTH040-16S两线串口模式(MCU为DC5V供电,PWM输出)8.3.11、WTH040-16S两线串口模式(MCU为DC5V供电,DAC输出外接三极管)8.3.12、WTH040-16S两线串口模式(MCU为DC5V供电,DAC输出外接功放)9、程序范例9.1、一线串口控制程序范例(适应于PWM输出方式)/MCU:STC10F04/晶振:11.0592MHz#include reg51.h /* reg51 头文件 */sbit WTH_REST = P21;sbit WTH_PLUSE = P20;sbit KEY1 = P37;/*- ;模块名称:Delay_10us;功 能:延时函数,STC10F04 10us 11.0592MHz;入 参:unsigned int n 延时次数;出 参:无;-*/void Delay_10us(unsigned int n) unsigned char i; for(;n0;n-) for(i=8;i0;i-) _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_(); /*- ;模块名称:Delay_10ms ;功 能:延时函数,STC10F04 10ms 11.0592MHz;入 参:unsigned int z 延时次数;出 参:无;-*/void Delay_10ms(unsigned int z)unsigned int i,j;for(i=z;i0;i-)for(j=8450;j0;j-);/*- ;模块名称:WTH_1LinePWM ;功 能:WTH系列芯片一线串口控制,PWM输出方式适用;入 参:unsigned char cnt 脉冲数,必须大于0;出 参:0 出错; 1 成功。;-*/unsigned char WTH_1LinePWM(unsigned char cnt)if(cnt=0)return 0; WTH_REST = 1; Delay_10us(20); /复位高电平时间200us WTH_REST = 0;Delay_1ms(5);/5ms while(cnt-) WTH_PLUSE = 1; Delay_10us(10);/100us高电平 WTH_PLUSE = 0; Delay_10us(10);/100us低电平 WTH_PLUSE = 0;return 1;/*- ;模块名称:Main;功 能:Main函数;入 参:void;出 参:void;-*/void Main(void) WTH_REST = 0; WTH_PLUSE = 0;while(1) if(KEY1 = 0) WTH_1LinePWM(0x02); Delay_10ms(30);9.2、一线串口控制程序范例(适应于DAC输出方式)/MCU:STC10F04/晶振:11.0592MHz#include reg51.h /* reg51 头文件 */sbit WTH_REST = P21;sbit WTH_PLUSE = P20;sbit KEY1 = P37;/*- ;模块名称:Delay_10us;功 能:延时函数,STC10F04 10us 11.0592MHz;入 参:unsigned int n 延时次数;出 参:无;-*/void Delay_10us(unsigned int n) unsigned char i; for(;n0;n-) for(i=8;i0;i-) _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_(); /*- ;模块名称:Delay_10ms ;功 能:延时函数,STC10F04 10ms 11.0592MHz;入 参:unsigned int z 延时次数;出 参:无;-*/void Delay_10ms(unsigned int z)unsigned int i,j;for(i=z;i0;i-)for(j=8450;j0;j-);/*- ;模块名称:WTH_1LineDAC ;功 能:WTH系列芯片一线串口控制,DAC输出方式适用;入 参:unsigned char cnt 脉冲数,必须大于0;出 参:0 出错; 1 成功。;-*/unsigned char WTH_1LineDAC(unsigned char cnt)if(cnt=0)return 0; WTH_REST = 1; Delay_10us(20); /复位高电平时间200us WTH_REST = 0;Delay_1ms(5);/5ms /* 第一个脉冲 */ WTH_PLUSE = 1; Delay_10us(10);/100us高电平 WTH_PLUSE = 0; Delay_10ms(8);/80ms低电平/*/*其他脉冲*/ while(-cnt) WTH_PLUSE = 1; Delay_10us(10);/100us高电平 WTH_PLUSE = 0; Delay_10us(10);/100us低电平 WTH_PLUSE = 0;return 1;/*- ;模块名称:Main;功 能:Main函数;入 参:void;出 参:void;-*/void Main(void) WTH_REST = 0; WTH_PLUSE = 0;while(1) if(KEY1 = 0) WTH_1LineDAC(0x02); Delay_10ms(30); 9.3、两线串口控制程序范例/MCU: STC10F04/晶振: 22.1184MHz#include STC8051.h/* STC8051 definitions */#include sbit WT_CLK = P2 0;sbit WT_DI = P2 2;sbit WT_DO = P2 3;sbit LED_OUT = P4 6; /指示灯sbit KEY1 = P3 7;sbit KEY2 = P3 6;sbit KEY3 = P3 5;sbit KEY4 = P3 4;unsigned char VoiceAddr = 0; /存储语音地址/*- ;模块名称:Delay_10us;功 能:延时函数,STC10F04 10us 22.1184MHz;入 参:unsigned int n 延时次数;出 参:无;-*/void Delay_10us(unsigned int n) unsigned char i; for (; n 0; n-) for (i = 40; i 0; i-) _nop_(); /*- ;模块名称:Delay_1ms ;功 能:延时函数,STC10F04 1ms 22.1184MHz;入 参:unsigned int z 延时次数;出 参:无;-*/void Delay_1ms(unsigned int z) unsigned int i, j; for (i = z; i 0; i-) for (j = 1700; j 0; j-) ; /*- ;模块名称:WTH_2L;功 能:WTH二线串口通信函数,高位在前,发送24位数据;入 参:发送的24位数据;出 参:芯片返回的数据;-*/unsigned long int WTH_2L(unsigned long int dat) unsigned char i; unsigned long int return_dat; WT_CLK = 1; Delay_100us(2); for (i = 0; i 24; i+) WT_CLK = 1; if (dat & 0x800000) WT_DI = 1; else WT_DI = 0; dat = 1; Delay_10us(5); /50us if (WT_DO) return_dat |= 0x01; else return_dat &= (0x01); return_dat = 1; Delay_10us(5); /50us WT_CLK = 0; Delay_10us(10); /100us Delay_10us(5); /50us if (WT_DO) return_dat |= 0x01; else return_dat &= (0x01); return_dat &= 0x7ffffe; /屏蔽前后无用的数据 return return_dat;/*- ;模块名称: Play_voice;功 能:WTH二线串口通信,WTH芯片播放语音;入 参:播放的地址0255;出 参:0:播放失败;1:播放成功;-*/unsigned char Play_voice(unsigned char addr) unsigned long int dat; dat = 0x1800c8 + (addr 5); if (WTH_2L(dat) = dat) return 1; /播放成功 return 0; /播放失败/*- ;模块名称:WTH_Check_sate;功 能:WTH二线串口通信,查询WTH芯片状态,高位在前发送16位数据;入 参:无;出 参:0:芯片未处于播放状态;1:芯片正在播放状态;-*/unsigned char WTH_Check_sate(void) unsigned char i; unsigned long int dat = 0x2200; unsigned long int return_dat; WT_CLK = 1; Delay_100us(2); for (i = 0; i 16; i+) WT_CLK = 1; if (dat & 0x8000) WT_DI = 1; else WT_DI = 0; dat = 1; Delay_10us(5); /等待50us后才读取DO数据 if

温馨提示

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

评论

0/150

提交评论