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]