74HC595驱动程序

发布时间:2018/5/25

74HC595时序图如下
#include //52芯片管脚定义头文件

#include //内部包含延时函数 _nop_();

#define uchar unsigned char

#define uint unsigned int

uchar code DAT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

sbit SDATA_595=P1^0; //串行数据输入

sbit SCLK_595 =P1^1; //移位时钟脉冲

sbit RCK_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[ i ]; //取显示数据

WR_595();

OUT_595();

delay(100);

}

}

}