TLLED 发表于 2019-8-8 11:44
给你一个参考程序
按照你的方式试了和我上面的一样,能在详细点吗?多谢了
lugf 发表于 2019-8-8 15:00
按照你的方式试了和我上面的一样,能在详细点吗?多谢了
void main()
{
unsigned char a;
unsigned char LED_data={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
disableInterrupts();
CLK_Configuration();
GPIO_Configuration();
TIME2_Init();
enableInterrupts();
while(1)
{
//KEY_Demo();
//KEY_Demo2();
//KEY_Demo1();
for(a=0;a<8;a++)
{
//LED_HC595( );
SendByte(LED_data);
OutCtrl595();
delay_ms(1000);
}
// delay_ms(100);
}
}
大概流程就是这样的
lugf 发表于 2019-8-8 15:00
按照你的方式试了和我上面的一样,能在详细点吗?多谢了
延时的时间要稍长些,
TLLED 发表于 2019-8-8 17:42
延时的时间要稍长些,
感谢兄弟的热情帮助,我多试几次应该可以了
TLLED 发表于 2019-8-8 17:42
延时的时间要稍长些,
按照你的思路已经可以了,谢谢
信号太快了。还有,你这是 8051 代码?STM8 和 8051 差异很大。
maxtch 发表于 2019-8-8 19:52
信号太快了。还有,你这是 8051 代码?STM8 和 8051 差异很大。
我是用STM8的,51的以前学过一点,没有用过51单片机
lugf 发表于 2019-8-9 09:25
我是用STM8的,51的以前学过一点,没有用过51单片机
兄弟,再帮忙看一下,程序流水一次就停下来了,没有进入死循环。我用了两层for循环语句,但是程序只执行内层循环,没有执行外循环。
void LED_display(void)
{
unsigned char e={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
unsigned char b;
{
for(b=0;b<8;b++)
{
LED_data&=e;
LED_HC595();
delay_ms(1000);
}
}
}
void main()
{
unsigned char a;
disableInterrupts();
CLK_Configuration();
GPIO_Configuration();
TIME2_Init();
enableInterrupts();
while(1)
{
//KEY_Demo();
//KEY_Demo2();
//KEY_Demo1();
//LED_KEY();
for(a=0;a<8;a++)
{
LED_display();
delay_ms(1000);
}
}
}