SN74HC595 怎么显示数码管

2024-11-24 19:41:01
推荐回答(1个)
回答1:

这个,首先根据595的数据手册把各个管脚处理好,之后写595驱动程序程序思路如下:
1,首先拉低存储器时钟输入,
2,之后拉低移位寄存器时钟输入,
3,之后由高位开始片段数据位1或0从数据线移入一位
4,之后拉高一位寄存器始终输入管脚,
5,如此循,2,3,4直到8位数据全部移入
6,拉高存储器时钟输入引脚
一个数据显示完成
程序例程:(仅供参考)
#define u8 unsigned char
#define u16 unsigned int
sbit MR=P1^6; //寄存器清0,避免数据错位
sbit RCK=P1^5; //并行输出时钟
sbit DS=P1^4; //数据线
sbit CLK=P1^3; //移位输入时钟
void writ_595(u8 dat)
{
u8 i;
MR=0; //寄存器清0,避免数据错位
MR=1;
for(i=0;i<8;i++)
{
CLK=0;
if((dat&0x80) == 0x80)
DS = 1; //串行数据输入
else
DS = 0;
CLK=1; //移位输入时钟,上升沿输入
dat<<=1;
}
RCK=0; //并行输出时钟
RCK=1;
}
该子函数可以直接调用,比如writ_595(0xfe);Q0-Q7脚则输出对应的二进制码