单片机怎样把8位的数据写入74HC595寄存器里(c语言)

2025-01-03 22:18:38
推荐回答(5个)
回答1:

595的数据是串行写入的,也就是按位写
首先,要写入的数据dat,是8位二进制数,dat&0x80;是取dat的最高位,送到数据线ds上
然后,dat=dat<<1;dat左移一位,接着输出下一位

回答2:

0x80H=1000 0000 B
dat&0x80就相当于只判断dat当前的最高位是否为1,其他位全为0,然后放入DS 8位寄存器中
我查了一下reg51.h 头文件 没有发现DS寄存器的定义。
这个for循环8次后就相当于把dat的最低位赋值给了DS的最高位,其他位全为0.

回答3:

如果从高位数第二位有值(1)则保留,为零就舍弃,其它位全部置零
这只是从字面形式解释
这类的东西把十六进制数转换成二进制数串比较好理解

回答4:

ds应当是某个管脚的定义。595是移位寄存器,因此程序中按串行输出,从高到低依次输出dat中的各个位。

回答5:

金葵花