谁能帮我解释一下这段程序,是WT588D语音芯片的三线发码子程序

谁能帮我解释一下这段程序,是WT588D语音芯片的三线发码子程序,第1张

你结合时序图看会比较清楚,发码之前先给出复位信号,复位脚拉低5ms后在拉高延时20ms芯片复位,然后拉低片选端延时5ms激活芯片,再然后发送8位数据低位在先高位在后(在时钟的下降沿设置数据上升沿锁存数据)。8位数据发送完后需要把片选、数据端、时钟端置高。完成后需要延时20MS在判断忙信号,芯片放音时忙信号脚输出低电平,空闲时输出高电平。在忙信号端输出低电平时表示语音没有播放完成需要等待,置高后在发送下一个地址数据放音,不太清楚你If(dat==1)的意义。

/**************************************************************************/

/**************************        串口通信         ***********************/

/**************************  波特率发生器:定时器1  ************************/

/**************************       波特率9600       ************************/

/**************************      串口中断接收      ************************/

/**************************************************************************/

#include <reg52.h>

typedef   unsigned char  uint8

typedef   unsigned int   uint16

uint8 num = 0

/*

 *  波特率9600  

*/

void UART_init(void)

{

SCON = 0x50

TMOD = 0x20

TH1  = 0xFD

TL1  = 0xFD

TR1  = 1

ES   = 1

EA   = 1

}

main()

{

UART_init()

while(1)//(自己填写)扫描按键并将键位值给num,调用SBUF=num指令

}

/*

 *  串口中断

*/

void interrupt_uart() interrupt 4

{

if(TI)

{

TI = 0    //发送完成后清空

REN = 1    //打开等待接收

}

if(RI)    //如果接收到消息

{

RI = 0    //收到后清零

num = SBUF    //读取消息

REN  = 0    //关闭等待接收

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11347443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存