2片74HC595级联,连续送2个8位或一次送16位数据。
- /**************** 向HC595发送一个字节函数 ******************/
- void Send_595(unsigned char dat)
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- dat <<= 1;
- P_HC595_SER = CY; //溢出位赋值数据输出端
- P_HC595_SRCLK = 1; //移位时钟
- P_HC595_SRCLK = 0;
- }
- // P_HC595_RCLK = 1;//锁存输出数据
- // P_HC595_RCLK = 0;
- }
- /**************** 向HC595连续发送2-N个字节 ******************/
- void DisplayScan(unsigned char x,y)
- {
- Send_595(x);
- Send_595(y);
- // Send_595(z);
- P_HC595_RCLK = 1;//锁存输出数据
- P_HC595_RCLK = 0;
- }
- /**************** 向HC595一次发送16位数据 ******************/
- void Send_595(unsigned int dat)
- {
- unsigned char i;
- for(i=0;i<16;i++)
- {
- dat <<= 1;
- P_HC595_SER = CY; //溢出位赋值数据输出端
- P_HC595_SRCLK = 1; //移位时钟
- P_HC595_SRCLK = 0;
- }
- P_HC595_RCLK = 1;//锁存输出数据
- P_HC595_RCLK = 0;
- }
复制代码 |