#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; 这两句是什么意思。
|