void Write_Byte(u8 x) { u8 i; for(i = 0; i < 8; i++) { SH_CP = 0; if(x&0x80)DS = 1; else DS = 0; x<<= 1; SH_CP = 1; __nop(); } SH_CP = 0; } //输出 void Output(void) { ST_CP = 0; ST_CP = 1; ST_CP = 0; }程序解释
时间: 2024-01-18 17:02:05 浏览: 192
这是一个用于控制74HC595移位寄存器输出的函数。
Write_Byte函数用于向移位寄存器中写入一个字节数据x。具体实现是通过for循环逐位写入,先将SH_CP引脚拉低,然后根据x的最高位是0还是1,将DS引脚拉低或拉高,然后将x左移一位,再将SH_CP引脚拉高,完成一位的写入。最后再将SH_CP引脚拉低,进行下一位的写入。这个函数在移位寄存器中写入8位数据后,数据就会被存储到寄存器中。
Output函数用于将存储在移位寄存器中的数据输出到对应的IO口,具体实现是通过将ST_CP引脚拉低,然后再拉高,再拉低的方式,触发移位寄存器输出数据到对应的IO口。
阅读全文