引脚功能:
QA--QH: 八位并行输出端,可以直接控制数码管的8个段。
QH': 级联输出端。我将它接下一个595的SI端。
SI: 串行数据输入端。 74595的控制端说明:
/SCLR(10脚): 复位引脚,低电平时将移位寄存器的数据清零。一般情况下接Vcc。
SCK(11脚):时钟引脚,上升沿时数据寄存器的数据移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。
RCK(12脚):锁存引脚,上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常将RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了),更新显示数据。
/G(13脚): 使能引脚。高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力,通常可以直接接地GND。
A(14脚):数据串入引脚。
电路连接:
程序代码:
CLOCK_L //存储寄存器的脉冲输入口(低电平)
CLOCK_H (高电平)
DATA_L //串行数据输入端(低电平)
DATA_H (高电平)
CLK_L //位移寄存器的脉冲输入口(低电平)
CLK_H //(高电平)
/*595串入并处*/
void Write_595(uchar data) //data为需要串入的数据,为1个8位的二进制数
{
uchar j, filter;
filter = 0x01;//验证位
for(j=0; j<8; ++j)
{
if((data&filter)==0) //对每一位进行验证
DATA_L; //数据输入口拉低
else
DATA_H; //数据输入口拉高
CLOCK_H; //存储寄存器拉高
CLOCK_L;// 存储寄存器拉低,脉冲改变,数据存入寄存器
filter <<= 1;
}
}