74LS164(74HC164)單片機C51驅(qū)動
#include
#define uchar unsigned char
#define uint unsigned int
sbit AB =P1^0;
sbit CLK=P1^1;
sbit RET=P1^2;
//延時函數(shù)
void mDelay(uchar Delay)
{ // 延時子程序
uchar i;
while(Delay--)
{
for(i = 0; i< 123; i++);
}
}
void uDelay(uchar Delay)
{ // 延時子程序
for(;Delay>0;Delay--);
}
void output(uchar i_data)
{
uchar i;
RET=0;
uDelay(2);
RET=1;
for(i=0;i<8;i++)
{
AB=(bit)(i_data&0x80);
CLK=0;
uDelay(2);
CLK=1;
i_data<<=1;
}
}
//主函數(shù)
void main(void)
{
uchar i;
while(1)
{
i++;
output(i);
mDelay(250);
mDelay(250);
if(i==255) i=0;
}
}