一块89C51用模拟SPI通讯控制4块4094做输出控制,现在是可以输出了,但是四块输出是一样的,不能进行每一块每一位的控制,下面是我的源程序;
sbit cd4094_str=P0^6; //锁存端
sbit cd4094_dat=P0^7; //串行数据输入
sbit cd4094_clk=P2^0; //串行时钟
void HC4094_describe(uchar data1)//写入4094子函数
{
uchar i;
cd4094_str=0; //保持原来锁定状态
for(i=0;i<8;i++)
{
cd4094_clk=0;//
if(data1&0x01) //判断发送数据
{
cd4094_dat=1;
}
else
{
cd4094_dat=0;
}
// cd4094_clk=0;
cd4094_clk=1;
data1>>=1; //数据移位等待发送下一位数据
}
cd4094_str=1; //数据发送完成
}
有弄过的帮个忙因为我想让他输出的每一位都可以单独控制比如说流水灯样的, |