????????????????????????????? 74hc595通常是用来解决单片机I/O口不够用的情况。
如果你对该芯片没有任何的了解,建议先观看以下两篇文章,它会对你接下来的使用很有帮助:
单片机芯片之——图解74HC595(第一部分)_Vuko_Coding Zone-CSDN博客_74hc595
简述74HC595功能_lgzisme的博客-CSDN博客
接线:
?P2^0;P2^1;P2^2是可以在程序中自定义的
Q0~Q7为输出部分;
Q7'为用来联接多个74HC595的,如果引脚已经够用的话就不用管它了,如果不够,请看第二遍文章。
?
以下为代码部分,可直接使用:
#include <REGX51.H>
#include <intrins.h>
sbit SRCLK1=P2^0; //595的SH_CP端口要接的单片机上的端口P2^0(P2^0可以更改为任意端口)
sbit RCLK1=P2^1; //595的ST_CP端口要接的单片机上的端口P2^1(P2^1可以更改为任意端口)
sbit SER1=P2^2; //595的DS端 连接,可以更改为任意端口
#define u8 unsigned char
void HC595(u8 dat1) //74HC595子程序
{
u8 a;
SRCLK1=0;
RCLK1=0;
for(a=0;a<8;a++) //串行输入过程
{
SER1=dat1>>7;
dat1<<=1;
SRCLK1=1;
_nop_();
_nop_();
SRCLK1=0;
}
RCLK1=1; //并行输出过程
_nop_();
_nop_();
RCLK1=0;
}
void main() //主程序
{
HC595(0x03); // 0 0 0 0 0 0 1 1 //高位先入,低位后进,所以Q0、Q1为高电平
} // Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
原创:简述74HC595功能_lgzisme的博客-CSDN博客
|