74HC595
输入:串行输入
输出:并行/串行输出
用74HC595做一个流水灯
电路图
程序
/*====================== 测试74HC595 =======================*/ #include <REGX51.H> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit st_cp = P3^2; sbit sh_cp = P2^7; sbit ds = P3^0; uchar led = 0xfe; void message_get(uchar led); void message_send(); void delay(uchar time_delay); void main() { while(1) { message_get(led); message_send(); delay(5000); led = _crol_(led, 1); } } //将数据放到移位寄存器中 void message_get(uchar led) { uchar i = 0; for(; i < 8; i ++) { sh_cp = 0; ds = led & 0x80; led <<= 1; delay(5); sh_cp = 1;//上升沿 } } //将数据从移位寄存器中放到存储寄存器中 void message_send() { st_cp = 0; delay(5); st_cp = 1;//数据从移位寄存器放到数据寄存器中 } void delay(uchar time_delay) { uchar x,y; for(x = time_delay; x > 0; x--) for(y = time_delay; y > 0; y--) {} }