STC89C52单片机开发板芯片74HC595的SCK、RCK以及SI之间的关系是什么?怎么用?(做一个8位电子钟)

输送位选和段选时这三个脚位的电平应该怎样设置?它们的含义是什么?
刚开始学习单片机,希望学长们能帮帮忙~~~谢谢^ ^~~~~

SI是数据输入端口,SCK是移位脉冲输入端口,RCK是锁存端口,DH是数据输出端口,可以多个芯片级联。按照你这个图纸,假设U7的DA-DH接数码管的段选端,U8的DA-DH接数码管的位选端,需要在某个位显示一个数据,设需要显示的段码的数据为dat,显示位码的数据为w,则程序如下:
char i;
for(i = 0;i < 8;i ++)
{
SI = w & 0x80; //先送出段码,高位在前
SCK = 0;
w <<= 1;
SCK = 1;
}
for(i = 0;i < 8;i ++)
{
SI = dat & 0x80;
SCK = 0;
dat <<= 1;
SCK = 1;
}
RCK = 0;
RCK = 1;追问

uchar i;
for(i=0;i<8;i++)
{
if((dat<<i)&0x80) //这一句是什么意思?程序是怎么执行的?
si=1;
else si=0; //si=0是什么意思?
sck=0; //上升沿是发送数据吗?
sck=1;
}

追答

if((dat<<i)&0x80) //这一句的意思是,dat左移i个位后,在和0x80做与运算,如果结果不为零,那么SI = 1
si=1;
else//否则SI = 0,
si=0; //si=0的意思就是把和SI相连的单片机IO清零。
简单来说,这一段的意思就是:把dat左移i个位之后的最高位赋给与SI相连的单片机IO口。因为595发送数据的时候是高位在前,当8位数据发送完毕之后,第一次发送出去的数据对应DH,最后一个数据对应DA。

595的数据移位和锁存都是在上升沿发生的。

追问

U7的第9脚和U8的第14脚相连有什么含义呢?U7的SI的高低电平对U8的第14脚有什么影响呢?

追答

14脚每移进1个位,就在9脚移出一个位。假设U7的DH - DA分别为1010 1011,U7的14脚为0,那么当SCK为上升沿时,U7的DH - DA就分别为0101 0110,U7的9脚为1,也就是说在每次SCK的上升沿时,把内部移位寄存器的最高位输出到9脚,

温馨提示:答案为网友推荐,仅供参考
相似回答