HC595
如何用1个HC595做流水灯,我是初学者,请各位大神指点一下 void main(){
unsigned char a;
disableInterrupts();
CLK_Configuration();
GPIO_Configuration();
TIME2_Init();
enableInterrupts();
while(1)
{
//KEY_Demo();
//KEY_Demo2();
//KEY_Demo1();
for(a=0;a<8;a++)
{
LED_HC595( );
}
delay_ms(100);
}
} void LED_HC595(void)
{
//volatile unsigned char LED_data=0x0f;
volatile unsigned char LED_data={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
//数据传输//
unsigned char c,b,num;
num= LED_data;
for(b=0;b<8;b++)
delay_ms(100);
{
CLR_HC595_RCK;
delay_us(500);
for(c=0;c<8;c++)
{
CLR_HC595_SCK;
delay_us(500);
if((num&0x80)==0x80)
SET_HC595_DS;
else
CLR_HC595_DS;
delay_us(500);
num<<=1;
SET_HC595_SCK;
delay_us(500);
}
SET_HC595_RCK;
delay_us(500);
}
}
哪位大神帮忙看一下,这个流水灯的程序有什么问题
void LED_HC595(void)
{
volatile unsigned char LED_data={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
unsigned char c,b,num;
//数据传输//
for(b=0;b<8;b++)
{
delay_us(5);
num= LED_data;
CLR_HC595_RCK;
delay_us(5);
for(c=0;c<8;c++)
{
CLR_HC595_SCK;
delay_us(5);
if(num&0x80)
SET_HC595_DS;
else
CLR_HC595_DS;
delay_us(5);
num <<= 1;
SET_HC595_SCK;
delay_us(5);
}
SET_HC595_RCK;
delay_us(5);
}
} 74HC595速度足够快了,不需要长时间等待的,延迟减短或去掉也可以的,可以提高程序执行的效率
zhao.zhao 发表于 2019-8-11 14:37
74HC595速度足够快了,不需要长时间等待的,延迟减短或去掉也可以的,可以提高程序执行的效率
...
已经解决问题了,感谢兄弟的回复:handshake :handshake
页:
[1]