• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

HC595驱动疑问

FEItwo 2018-11-19 浏览量:677
STM8如何控制HC595驱动8个LED,希望大神们能发个程序上来看一下
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 我只有一个F429上面的595驱动程序,能够完美运行,是我从pic单片机上移植的,没问题的。

    unsigned char leddata[]={ //数码管显示的段信息,自定义的连线 不是标准的段码信息 共阴极

                    0x77  //"0"
                    0x41  //"1"
                    0x3B  //"2"
                    0x6B  //"3"
                    0x4D  //"4"
                    0x6E  //"5"
                    0x7E  //"6"
                    0x43  //"7"
                    0x7F  //"8"
                    0x6F  //"9"
                    0x5F  //"A"
                    0x7C  //"B"
                    0x36  //"C"
                    0x79  //"D"
                    0x3E  //"E"
                    0x1E  //"F"
                    0x5D  //"H"
                    0x34  //"L"
                    0x57  //"n"
                    0x75  //"u"
                    0x1F  //"P"
                    0x78  //"o"
                    0x08  //"-"
                    0x00   //熄灭
    };

    /* 初始化芯片引脚 */
    void gpio_init(void)
    {
        GPIO_InitTypeDef gpio; //定义一个gpio的结构体变量 用于初始化GPIO引脚
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOCENABLE); //打开GPIOC口的时钟
        
        gpio.GPIO_Pin = RCK_595|SCLK_595|SDATA_595; //准备初始化595相关引脚
        gpio.GPIO_Mode = GPIO_Mode_OUT; //将引脚设置为“输出模式”
    gpio.GPIO_Speed = GPIO_High_Speed; //输出的最高频率为100兆
    gpio.GPIO_OType = GPIO_OType_PP; //输出模式:配置为“推挽”
    gpio.GPIO_PuPd = GPIO_PuPd_UP; //端口的电阻配置为“上拉”

    GPIO_Init(GPIOC&gpio); //将引脚的配置信息写入相关寄存器
    }

    /* 向595芯片写入数据 */
    void WR_595(unsigned char temp)
    {
        unsigned char j;
        for (j=0;j<8;j++)
        {
            if(temp&0x01)
            {
    GPIO_SetBits(GPIOCSDATA_595);
            }
            else
            {
    GPIO_ResetBits(GPIOCSDATA_595);
            }
    GPIO_SetBits(GPIOCSCLK_595);                      //上升沿发生移位
    __nop();
    __nop();
    GPIO_ResetBits(GPIOCSCLK_595);
            temp=temp>>1 ;
        }
    }
    /* 使能595芯片的输出信号 */
    void OUT_595(void)
    {
    GPIO_SetBits(GPIOCRCK_595);                    //上升沿将数据送到输出锁存器
    __nop();
    __nop();
    GPIO_ResetBits(GPIOCRCK_595);

    }



    • 发布于 2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 直接用通过移位寄存器的方式控制LED,同时还需要在输出使能端发一个脉冲信号
    • 发布于2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 595实际就是个SPI接口,可级联。
    • 发布于2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是个串转并的芯片,可以使用SPI的方式进行驱动的
    • 发布于2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 就是一个spi接口的串转并芯片,配一下io就可以了
    • 发布于2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

  • spi接口的串转并,很容易驱动外部LED的。
    • 发布于2018-11-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 595是三串行总线输入,8串行移位输出,参考51控制595的例程即可。
    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 74HC595是串行输入并行输出的,例程可以参考一下http://blog.sina.com.cn/s/blog_8c7bf1970101qsr5.html
    • 发布于2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 595芯片 是串转并的芯片,在控制时,要使用SPI进行通讯
    • 发布于2018-12-13
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

HC595驱动疑问