lugf 发表于 2019-8-7 15:51:04

HC595

如何用一个HC595做流水灯,我是初学者,请各位大神指点一下。最好有代码来看一下,多谢了。

zcl201207 发表于 2019-8-7 21:58:52

这个网上很多的呀,建议先看595数据手册。。。

maxtch 发表于 2019-8-8 01:45:53

你的 595 是怎么接的?595 可以作为 SPI 从设备用,也可以直接操纵 GPIO。如果接成 SPI 从设备的话,直接向 SPI 写字节就可以了。GPIO 的话那照着数据手册里面的时序操纵 I/O。

lugf 发表于 2019-8-8 10:55:20

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


                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 10:58:35

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:00:36

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

lugf 发表于 2019-8-8 11:03:18

maxtch 发表于 2019-8-8 01:45
你的 595 是怎么接的?595 可以作为 SPI 从设备用,也可以直接操纵 GPIO。如果接成 SPI 从设备的话,直接向 ...

我发了一个程序上来,麻烦大哥有时间帮忙看一下哪里出问题

lugf 发表于 2019-8-8 11:04:28

zcl201207 发表于 2019-8-7 21:58
这个网上很多的呀,建议先看595数据手册。。。

我发了一个程序上来,麻烦大哥有时间帮忙看一下哪里出问题

TLLED 发表于 2019-8-8 11:44:41

给你一个参考程序


#define nop _nop_

sbit RCLK1=P1^2;//控制位信号
sbit DAT=P1^5;          //数据输出
sbit SRCLK=P1^4;//左移时钟
sbit ENC=P1^3;          //芯片使能


//发送字节
void SendByte(uchar num)
{   
      uchari;
      for(i=0;i<8;i++)
      {
                SRCLK=0;
                DAT=num&0x80;
                num=num<<1;         
                SRCLK=1;               
      }         
}
//输出控制信号
void OutCtrl595(void)
{
      RCLK1=0;
      nop();
      RCLK1=1;
}
页: [1] 2 3
查看完整版本: HC595