74hc595的驱动代码中, if(ucTempData>=0x80)是什么意思?已解答。
曹健-江苏:在74HC595的驱动程序中,有一段代码:
for(i=0;i<8;i++)
{
if(ucTempData>=0x80)hc595_ds_dr=1;
else hc595_ds_dr=0;
hc595_sh_dr=0; //SH引脚的上升沿把数据送入寄存器
delay_short(15);
hc595_sh_dr=1;
delay_short(15);
ucTempData=ucTempData<<1;
}
这个ucTempData>=0x80这句话什么意思?
鸿哥--深圳 :
这句话就说明了一个字节变量是8位,如果满足了那个条件,那么最高位一定是1,不可能是0。
比如:
0x80最高位是1吧?
0xA3最高位是1吧?
0xB3最高位是1吧?
0x93最高位是1吧?
因为它们都大于或者等于0x80。
曹健-江苏:
意思就是说,595芯片接收单片机传送的信号必须是一个字节的是吗
鸿哥--深圳:
是的。一个字节是最小单位。而一个字节是8位,74hc595是串行通讯的,要把这个字节发送出去,就必须一位一位来发送,一共要发送8次才能把一个字节发送输出。那个for循环里,是从最高位开始发送,发送完一位后,就马上左移,方便发送下一位,8次后一个字节就发送完毕。
曹健-江苏:
这个解释算是理解了。
页:
[1]