cs3310是16位串口控制双声道,那怎么用8位的单片机发送16位串行数据啊?求教各位~~~

如题所述

串口!!!你可知道什么是串口???串口一根线,TXD是单片机的串口输出线 分16次发送不就行啦 具体你看看cs3310的datasheet 看它怎么工作的追问

我分16次发!cs3310它难道能分16次收吗?pdf英文有点不懂

追答

the first 8 bits address the right channel and the remaining 8 bits address the left channel。前八位地址是右声道的,后八位地址是左声道的。。。我个人认为(新手,也不知道对不对)分16次发,前八位送给右声道,后八位送给左声道。左右声道不同的值对应不同的增益。。。然后再发第二个16位。。。注意时钟信号SCLK的变化,/CS在发完一次16位是应该置1,再发第二个16位时重新置0.。。。/CS、SCLK、SDATAI应该都接单片机的I/O,应该用不到RXD

追问

sdatao是多片并联用的,正如你所说,其关键在于sclk,只要接sdatai配合接sclk的电平发送16次数据就行了,因为同步控制左右声道,直接用8位的累加器循环两次正好是16位数据发送完毕,部分程序如下,不知道对不对,请指正!p1.3=sdatai,p1.4=sclk.
MOV R5,#16
M1: MOV C,ACC.7
MOV P1.3,C
NOP
SETB P1.4
NOP
CLR P1.4
RL A
DJNZ R5,M1

追答

根据程序累加器A的值分别送到左右声道,左右声道的值都一样,如果是想让左右声道值一样的话,程序是正确的

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-06
用单片机的串口输出。

Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答
大家正在搜