谁能给我解释一下74hc595走马灯程序中这两句话是什么意思

[复制链接]
查看11 | 回复1 | 2010-12-24 10:19:42 | 显示全部楼层 |阅读模式
#include
//51芯片管脚定义头文件
#include
//内部包含延时函数 _nop_();
#define uchar unsigned char
#define uintunsigned int
uchar code DAT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbitSDATA_595=P1^0;
//串行数据输入
sbitSCLK_595 =P1^1;
//移位时钟脉冲
sbitRCK_595=P1^2;
//输出锁存器控制脉冲
uchar temp;

/********************************************************/
/*

*/
/* 延时子程序

*/
/*

*/
/********************************************************/
void delay(int ms)
{

int k;
while(ms--)
{

for(k=0; k<250; k++)

{

_nop_();

_nop_();

_nop_();

_nop_();

}
}
}
/********************************************************/
void WR_595(void)
{

uchar j;

for (j=0;j<8;j++)

{

temp=temp<<1;

SDATA_595=CY;

SCLK_595=1;
//上升沿发生移位

_nop_();

_nop_();

SCLK_595=0;

}

}
/********************************************************/
/*

*/
/*将移位寄存器内的数据锁存到输出寄存器并显示
*/
/*

*/
/********************************************************/
void OUT_595(void)
{

RCK_595=0;

_nop_();

_nop_();

RCK_595=1;
//上升沿将数据送到输出锁存器

_nop_();

_nop_();

_nop_();

RCK_595=0;
}
/********************************************************/
*

*/
*主程序

*/
*

*/
*********************************************************/
main()
{
SCLK_595=0;
RCK_595=1;


while(1)


{

uchar i;

for (i=0; i<8; i++)

{

temp=DAT;
//取显示数据

WR_595();

OUT_595();

delay(100);

}

}
}

其中
temp=temp<<1;

SDATA_595=CY; 这两句是什么意思。

回复

使用道具 举报

千问 | 2010-12-24 10:19:42 | 显示全部楼层
temp=temp<<1; 会把最高位元移入CY内SDATA_595=CY;把CY的值给P1^0,也就是准备好资料(0或1)给595
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行