各位师傅又要请教大家了。下面是使用74HC595时的一个子函数。DAT为串行数据入。。 DAT=a&0x80 想不明白,是a 和0x80&运算完后赋值给DAT. 还是单片机送来的DAT数据给a ,再和0x80&运算,,,,还有a是子函数的型参,在整个程序中也没有赋值。 void sendbyte(unsigned char a)//单位数据发送函数
{ unsigned char i; //定义一个无字符串变量
for(i=0;i<8;i++) //for 循环,循环8次,把一个数变成二进制发送出去
{
SCLK=0;// 把595 SCLK频率置低电平
DAT=a&0x80;//把数据与0X80后发送出去
a=a<<1; 把数据a左移一位
SCLK=1; 把595频率置高
}
|