| 可不可以把程序给我看看 |
|
类似串口,你首先了解串口 ,只不过串口的1和0是1位宽的高和低,而这个的1用一位宽的3/4高和1/4的低组成,0用一位宽的1/4高和3/4的低组成 程序类似这样的 senddata(unsigned char dat) { for(i=0; i<8; i++) { if(data&0x80) {sendone();} else {sendzero();} dat<<=1; } } sendone() { tx=1; delay(3); tx=0;delay(1); } sendzero() { tx=1; delay(1); tx=0;delay(3); } tx是你的数据发送端,delay函数自己编写,大体如此 |
|
那想请问一下。data&0x80的意思是?且for(i=0; i<8; i++)是? data&0x080,其实就是判断,data的最高为是1还0,是循环8次,把一个字节的8位发完 我是举例从高位发起的, 如从低位发起 for(i=0; i<8; i++) { if(data&0x01) {sendone();} else {sendzero();} dat>>=1; } 注意 dat&0x80 dat<<=1 dat&0x01 dat>>=1 一个完整的单字节发送 就是在senddta()的开头 再加上2ms的低电平 如果我希望用单片机播放曲目00001的话。应该怎么去触发? 一旦你掌握了一个完整的单字节发送,后边无非就是一串有命令或者命令+数据,一串无非就是单字节发送的多次调用而已 |