52单片机小车UNV6288语音播放“上窄桥”的程序
时间: 2023-11-23 21:06:09 浏览: 58
基于51单片机的小车程序
以下是使用UNV6288语音模块播放“上窄桥”提示音的52单片机小车程序:
```c
#include <reg52.h>
sbit SDA=P2^0;
sbit SCL=P2^1;
void Delay10ms() // 延时函数,用于I2C通信
{
unsigned char a,b;
for(b=1;b>0;b--)
for(a=2;a>0;a--);
}
void I2cStart() // I2C起始信号
{
SDA=1;
SCL=1;
Delay10ms();
SDA=0;
Delay10ms();
SCL=0;
}
void I2cStop() // I2C停止信号
{
SDA=0;
SCL=1;
Delay10ms();
SDA=1;
Delay10ms();
SCL=0;
}
void I2cSendByte(unsigned char dat) // I2C发送一个字节
{
unsigned char a=0;
for(a=0;a<8;a++)
{
if(dat&0x80)
SDA=1;
else
SDA=0;
SCL=1;
Delay10ms();
SCL=0;
dat<<=1;
}
SDA=1;
SCL=1;
Delay10ms();
SCL=0;
}
void UNV6288Play(unsigned char dat) // UNV6288播放函数
{
I2cStart();
I2cSendByte(0xa0);
I2cStop();
Delay10ms();
I2cStart();
I2cSendByte(0xa0);
I2cStop();
Delay10ms();
I2cStart();
I2cSendByte(0xa0);
I2cStop();
Delay10ms();
I2cStart();
I2cSendByte(0xa0);
I2cStop();
Delay10ms();
I2cStart();
I2cSendByte(0xa2);
I2cSendByte(dat);
I2cStop();
Delay10ms();
}
void main()
{
UNV6288Play(0x01); // 播放“上窄桥”提示音
while(1);
}
```
注意:此程序仅适用于使用UNV6288语音模块的小车,如果使用其他语音模块则需要修改程序中的I2C通信部分。
阅读全文