lugf 发表于 2019-8-7 15:47:07

HC595

如何用1个HC595做流水灯,我是初学者,请各位大神指点一下

lugf 发表于 2019-8-8 11:09:08

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);       
                }
}

lugf 发表于 2019-8-8 11:09:26

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);

                }
       
}

lugf 发表于 2019-8-8 11:10:15

哪位大神帮忙看一下,这个流水灯的程序有什么问题

zhao.zhao 发表于 2019-8-11 14:35:09

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);
    }      
}

zhao.zhao 发表于 2019-8-11 14:37:31

74HC595速度足够快了,不需要长时间等待的,延迟减短或去掉也可以的,可以提高程序执行的效率

lugf 发表于 2019-8-15 10:38:32

zhao.zhao 发表于 2019-8-11 14:37
74HC595速度足够快了,不需要长时间等待的,延迟减短或去掉也可以的,可以提高程序执行的效率

...

已经解决问题了,感谢兄弟的回复:handshake

zhao.zhao 发表于 2019-8-15 11:49:40

:handshake
页: [1]
查看完整版本: HC595