我专门为你做的程序。
/*
AT89C52、共阳LED
*/
#include<reg51.h>
#include<INTRINS.H>
sbit SER=P2^0;//14脚
sbit RCLK=P2^2;//12脚
sbit SRCLK=P2^1;//11脚
void Delay10ms(unsigned int c)
{
unsigned char a,b;
for(c;c>0;c--)
{
for(b=44;b>0;b--)
{
for (a=112;a>0;a--)
{
}
}
}
}
void HC595 (unsigned char dat)
{
unsigned char i;
SRCLK=0;
RCLK=0;
for (i=0;i<8;i++)
{
SER=dat>>7;
dat<<=1;
SRCLK=1;
_nop_();
_nop_();
SRCLK=0;
}
RCLK=1;
_nop_();
_nop_();
RCLK=0;
}
void main(void)//主函数
{
unsigned char i=0x01,j;
HC595(0x00);//初始化595
HC595(0x00);
for (j=0;j<8;j++)
{
HC595(0);
HC595(i);
i<<=1;
Delay10ms(50);
}
i=0x01;
for (j=0;j<8;j++)
{
HC595(i);
HC595(0xff);
i<<=1;
Delay10ms(50);
}
while (1)//主循环
{
}
}
|