找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2885|回复: 4
收起左侧

请问下,语音IC只有一个脚连接MCU如何写软件驱动?

[复制链接]
ID:218360 发表于 2019-7-6 22:17 | 显示全部楼层 |阅读模式
       手头上有个DMEO板,语音IC通过一根线与MCU连接,看网上资料都是两根线,一个BSUY DATA两根线,这个单根线怎么让他发声了?请各位大神写段代码给小弟,附件图片为资料,音量最大为0X50H,第一首为0X01H,切换曲目为0X60H
QQ截图20190706221208.jpg
QQ截图20190706221151.jpg
QQ截图20190706192534.jpg
QQ截图20190706192451.jpg
回复

使用道具 举报

ID:207421 发表于 2019-7-6 23:33 | 显示全部楼层
这属于某商家或您自己定制的语音芯片,卖家都有代码提供的,也许宝贝页面就有代码。
再说你看时序,按时序写即可
回复

使用道具 举报

ID:401564 发表于 2019-7-8 08:52 | 显示全部楼层
低下不是已经有协议了吗?
这种通讯方式不就是和18B20一样的了
自己对着协议写就可以了
回复

使用道具 举报

ID:579838 发表于 2019-7-8 11:31 | 显示全部楼层
想一想遥控器是如何控制设备的,而红外接收器其实就只有一个信号脚。
回复

使用道具 举报

ID:524818 发表于 2019-7-8 14:19 | 显示全部楼层
单线式总线,类似于DS18B20
回复

使用道具 举报

ID:473159 发表于 2019-7-8 19:42
我们这么来说吧!上面有一句语“每发一个信号前必须有一个同步头”。
那么好,他的协议方式说明白了,同时也说明他是写操作,后面(5)又说先接收数据最高位,
那就是说写的时候数据要右移。因此,可以写2个函数

void init_music(void)
{
  写同歩头时序...................
}


void write  byte(u8 dat)
{
   u8  i,  temp;
        init_music();
                for(i=0; i <= 8; i++)
                {
                        temp =  dat & 0x01;
                        dat = dat>>1;
                        if(...........)
                        {
                                1的时序...........
                        }
                        else
                        {
                                0的时序...........
                        }
                }
               
}
后面你要写的代码放这里面调用就OK了.比如用写0x50,  write  byte(0x50),就能执行你相对应的命令了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表