先放原理图
注释:图中引脚号
1:脉冲输入————接SH_CP
2:串行输入————接DS
3:锁存——————接ST_CP
其他:
MR———复位,低电平有效
OE———使能,低电平有效
Q7’———串行输出
51单片机控制:
① 代码段1———引脚定义
文件名:hc595.h
#ifndef __HC595_H
#define __HC595_H
#include "reg52.h"
sbit sh_cp = P0^0;
sbit ds = P0^1;
sbit st_cp = P0^2;
unsigned char HC595(int date);
#endif
②代码段2——函数使能
文件名:hc595.c
#include "hc595.h"
unsigned char HC595(int date){
char i;
st_cp=0;
ds=0;
sh_cp=0;
for(i=0;i<16;i++) //此处16是定义了两个595串联
{
if(date&0x01)
ds=1;
else
ds=0;
sh_cp=1; //发送高电平脉冲
sh_cp=0;
date = date >>1;
}
st_cp=1; //串行输入
st_cp=0; //需要有个跳变
}
③代码段3——main()函数
#include "reg52.h"
#include "hc595.h"
int main()
{
HC595(0xf00f);
//详情见图中U2、U3输出引脚,蓝色低电平,红色高电平,可直接接数码管。
while(1){
}
}