74HC595实现位选信号的发送

引脚功能:

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脚):数据串入引脚。

电路连接:


74HC595实现位选信号的发送_第1张图片


程序代码:

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;

}

}

你可能感兴趣的:(74HC595实现位选信号的发送)