GPIO 发表于 2022-2-26 10:47:53

C51/STC单片机 使用4个I/O口实现驱动两片级联74HC595 串转并移位芯片 并将数组发送出


/*
单片机型号:STC任意 74HC595 级联方法:
U1的Q7`接U2的DS,SHCP、STCP、OE全部接在一起,MR接VCC,以此类推。
74HC系列IC所有输入引脚严禁悬空,否则会受到干扰而出错。
*/
#include "STC15.h"
#define u8 unsigned char
#define u16 unsigned int
#define u32 unsigned long
sbit hc595_shcp = P3 ^ 2;         //上升沿移位锁存一位数据到595内部
sbit hc595_ds = P3 ^ 3;         //595数据输入
sbit hc595_stcp = P3 ^ 4;         //上升沿输出595内部锁存的数据
sbit hc595_oe = P3 ^ 5;                //高电平595输出高阻 (低电平打开输出,防止上电瞬间乱码)
#define hc595_num 2                        //595级联数量
u8 hc595_data;                //595数据容器

void hc595(bit open) {                //请将数据写入 hc595_data 数组 然后发送 参数:1打开输出 0高阻输出
      u8 j, k = hc595_num - 1;
      do {
                j = 7;
                do {
                        hc595_ds = hc595_data & (1 << j) ? 1 : 0;
                        hc595_shcp = 0;
                        hc595_shcp = 1;
                } while (j--);
      } while (k--);
      hc595_stcp = 0;
      hc595_stcp = 1;
      hc595_oe = !open;
}

void main() {
      hc595_data = 0xF0;                //U1
      hc595_data = 0x0F;                //U2
      hc595(1);
      while (1);
}
页: [1]
查看完整版本: C51/STC单片机 使用4个I/O口实现驱动两片级联74HC595 串转并移位芯片 并将数组发送出