一:
74HC595芯片的作用:把串行信号转为并行的信号,节约了单片机的I/O口资源
二:各引脚的作用: Q0~Q7:接需要控制的器件,如各盏流水灯 Q7':接下一个芯片的DS端口 DS(14引脚):串行数据输入端 SH_CP(11引脚): 数据输入时钟线——当该引脚上产生一个上升沿时,将DS上的数据移入到74HC595移位寄存器中,先送低位,后送高位(数据移位顺序:以第一个数据进入芯片为例:DS-Q0-Q1......-Q7-Q7') ST_CP(12引脚):输出存储器锁存时钟线——当该引脚上产生一个上升沿时,将已移入数据寄存器中的数据送入到锁存器 10引脚:MR,低电平时,清空移位寄存器中已有的bit数据,一般不用,接 高电平即可 13脚: OE , 输出使能控制脚,它是低电才使能输出,所以接GND 三:用74HC595点亮一闪一灭灯程序
#include<reg51.h>
#include<intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/**********函数声明********************/
void SendTo595(uchar byteData);/***********************************/
sbit SER = P3^4; //p3.4脚控制串行数据输入
sbit SCK = P3^6; //串行输入时钟
sbit RCK = P3^5; //存储寄存器时钟
void main()
{
SendTo595(85); //85的二进制:0101 0101
while(1);
}
//功能:发送一个字节的数据给595,再并行输出
void SendTo595(uchar byteData)
{
char i=0; for(;i<8;i++)
{
SER = byteData>>7; //大家自己考量这2句
byteData= byteData<<1;
SCK = 1; //上升沿,让串行输入时钟变为高电平,并延时2个时钟周期
_nop_();
_nop_();
SCK = 0; //变为低电平,为下次准备
}
/*位移寄存器数据准备完毕,转移到存储寄存器*/
RCK = 1; //上升沿,让存储寄存器时钟变为高电平,并延时2个时钟周期
_nop_();
_nop_();
RCK = 0;
}
|
74HC595的学习
猜你喜欢
转载自blog.csdn.net/qq_41379312/article/details/78872536
今日推荐
周排行