网站颜色:

【LED5604】工业级4位0.5寸数码管显示器 595静态显示 35V供电

  • 无参数

 

 购买后,请提供邮箱,我们将把相关资料(移植说明、最新例程)发到你的邮箱。

 

本产品由安富莱电子设计和生产。可以直接用于设备和工程(工业级)。

购买本产品,送一根25CM长,5P蓝白排线(双头是KF2510)

                         好消息!!

 

1.批量价格绝对有优势,欢迎洽谈!               2.可以根据客户的要求定制

 

型号:LED5604 (四位)  

产品名称:LED数码管显示屏

产品规格:

供电电压 : 3-5V

供电电流 : 3.3V供电全亮时70mA, 全熄时小于15uA;   5V供电全亮时150mA, 全熄时小于20uA

工作温度 :-40 ~ 85℃ (工业级)

内部数码管 :4个红色高亮,尺寸 0.5“

外壳尺寸 :宽79.4mm x 高43.0mm x 深26.1mm

推荐面板开孔尺寸 :宽76.2mm x 高39.2mm

推荐用户的板子使用KF2510-5P插座, 线序为:VCC、CLK、SDI、GND、LCK

 

产品优势:

1、静态显示,显示稳定。内置4片74HC595,无需CPU动态扫描,可以让单片机做其它的事情

2、只需要占用CPU的3个普通IO (输出口)即可驱动,无论级联多少个显示屏,均只需占用3个IO。

3、兼容3.3V和5V系统。可以给显示模块提供3.3V或5V电源。

4、控制IO口输入端有缓冲器,IO口集成上拉电阻,抗干扰性能好(特别是连接线较长时)

5、完美解决单片机上电复位期间的乱显问题(通过硬件方式)。保证单片机复位期间,LED数码管无显示。

6、级联输出口带限流保护。即使你将输入口和级联输出口搞反,也不会损坏显示模块。

FAQ:

1、可以和5V的STC51单片机连接吗?

答:可以。保证模块的电源和CPU的电源一致即可,支持3.3V和5V的单片机。说白了,就是支持任何单片机。

2、级联的显示模块可以显示不同的内容吗?

答:可以。调用LED595_DispStr() 函数时,第1个形参用来指定是第几个显示模块(从0开始)。

3、能够显示英文字母吗,比如A,H,F,E等?

答:可以。我们提供的函数支持ASCII字符串,因此可以ASCII和数字混合显示。比如:

调用 LED595_DispStr(0, "F12A");    /* 第1个显示屏将显示 F12A */

4、能够显示负号和小数点吗

答:可以。我们提供的函数支持带小数点的字符串,甚至4个小数点都可点亮。比如:

调用 LED595_DispStr(0, "-1.23.");    /* 第1个显示屏将显示 -1.23. */

工程案例1:

工程案例2:

工程案例3:

产品靓照:

 

 

 

 

 应用程序编程示例:

购买后,请我们提供产品资料(例程和移植说明)

核心驱动文件为 bsp_LED595.c 和 .h 文件,可以移植到任意单片机。

 

主程序实例:

#include "bsp_led595.h"

void main(void)

{

LED595_InitHard();                        /* 配置CPU的GPIO,显存清零 */

LED595_DispStr(0, "1.234");          /* 第1个显示屏显示 1.234 */

LED595_DispStr(1, " OFF");          /* 第2个显示屏显示 OFF */

LED595_DispStr(2, "8.8.8.8.");       /* 第2个显示屏全部笔画点亮 */

LED595_DispStr(3, "    ");              /*  第4个显示屏显示空格,等于不显示 */

LED595_DispStr(7, "-0.23");          /*  第8个显示屏显示 -0.23 */

while(1);

}

提示:LED595_DispStr()函数的第1个形参表示级联的显示模块序号,从0开始,(如果只有1个,就是0)。第2个形参表示显示内容,是标准的ASCII字符串(0结束),必须凑齐4个有效显示字符,不足4字符的用空格替代。

 

例程下载地址: http://picimg.witdes.cn/pic/bbs.armfly.com/read.php@tid=329

STM8-006_4位LED数码管(74HC595静态)显示例程

下载该例程后,请解压rar文件,核心驱动代码在: bsp_led595.c 和 bsp_led595.h 两个文件。

bsp_led595.h 文件内容如下:

#ifndef _BSP_LED595_H
#define _BSP_LED595_H

void LED595_InitHard(void);
void LED595_DispOn(void);
void LED595_DispOff(void);
void LED595_DispClr(void);
void LED595_DispTestOn(void);
void LED595_DispStr(uint8_t _ucSN, char *_ucaBuf);

#endif

bsp_led595.c 文件内容如下:

/*
*********************************************************************************************************
*
*   模块名称 : LED数码管(74HC595驱动,静态显示)驱动模块
*   文件名称 : bsp_led595.c
*   版    本 : V1.0
*   说    明 : 驱动74HC595静态驱动的四位LED数码管; 支持级联操作。
*   修改记录 :
*       版本号  日期       作者    说明
*       v1.0    2012-10-12 armfly  ST固件库版本 V2.1.0
*
*   Copyright (C), 2012-2013, 安富莱电子www.armfly.com
*
*********************************************************************************************************
*/

#include "stm8s.h"
#include
#include

#include "bsp_led595.h"

#define LED_COUNT_PER_MODULE    4               /* 每个LED模块包含的数码管个数 */
#define MODULE_COUNT            2               /* LED模块的个数,支持级连 */

/*
1.安富莱LED5604型 4位LED数码管模块 接线定义 (只需要5根杜邦线连接)
   【LED模块排针】 【开发板接口】
        VCC ----------- 3.3V
        SCK ----------- PC5/SPI_SCK
        SDI ----------- PC6/SPI_MOSI
        GND ----------- 无需软件控制
        LCK ----------- PA3
*/
#define SCK_PORT        GPIOC
#define SCK_PIN         GPIO_PIN_5

#define SDI_PORT        GPIOC
#define SDI_PIN         GPIO_PIN_6

#define LCK_PORT        GPIOA
#define LCK_PIN         GPIO_PIN_3

#if 0   /* 使用固件库函数,一次翻转约 1.167us */
    #define SCK_1()     GPIO_WriteHigh(SCK_PORT, SCK_PIN)
    #define SCK_0()     GPIO_WriteLow(SCK_PORT, SCK_PIN)

    #define SDI_1()     GPIO_WriteHigh(SDI_PORT, SDI_PIN)
    #define SDI_0()     GPIO_WriteLow(SDI_PORT, SDI_PIN)

    #define LCK_1()     GPIO_WriteHigh(LCK_PORT, LCK_PIN)
    #define LCK_0()     GPIO_WriteLow(LCK_PORT, LCK_PIN)
#else   /* 直接操作寄存器,一次翻转约 125ns; 一个完整的SCK 实测 1.56us */
    #define SCK_1()     SCK_PORT->ODR |= SCK_PIN
    #define SCK_0()     SCK_PORT->ODR &= (uint8_t)(~SCK_PIN);

    #define SDI_1()     SDI_PORT->ODR |= SDI_PIN
    #define SDI_0()     SDI_PORT->ODR &= (uint8_t)(~SDI_PIN);

    #define LCK_1()     LCK_PORT->ODR |= LCK_PIN
    #define LCK_0()     LCK_PORT->ODR &= (uint8_t)(~LCK_PIN);
#endif

/*
    共阳数码管0-3和的16进制代码
    从ASCII字符空格开始 ‘ ’
*/
#define CHAR_SUB        0xDF        /* '-' 的显示代码 */
#define CHAR_F          0x87        /* 'F' */
#define CHAR_A          0x06        /* 'A' */
#define CHAR_n          0xD6        /* 'n' */
#define CHAR_S          0x8A        /* 'S' */
#define CHAR_E          0x83        /* 'E' */
#define CHAR_O          0x22        /* 'O' */
#define CHAR_o          0xD2        /* 'o' */
#define CHAR_SPACE      0xFF        /* 不显示 */
#define CHAR_P          0x07        /* 不显示 */

#define CHAR_TEST_ON    0x00        /* 全点亮的代码 */
#define DOT_MASK        0xFD        /* 小数点MASK */

/*
;   数码管笔画定义:
;          AAAAAA
;         F      B
;         F      B
;         F      B
;          GGGGGG
;         E      C
;         E      C
;         E      C
;          DDDDDD  dp

;   74HC595数据位对应关系 (0表示点亮,1表示灭)

;         d6d6d6d6
;        d5      d7
;        d5      d7
;        d5      d7
;         d4d4d4d4
;        d3      d1
;        d3      d1
;        d3      d1
;         d2d2d2d2  d0
;------------------------------
*/

#define DOT_FLAG    0xFE

/*
【ASCII区】
 !"#$%&'()*+,-./0123456789:;<=>@@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
*/

const uint8_t g_CharCode[] =
{
 0xFF, // 空格 = (咨询特价)
 0xBF, // ! 笔画a
 0x7F, // " 笔画b
 0xFD, // # 笔画c
 0xFB, // $ 笔画d
 0xF7, // % 笔画e
 0xDF, // & 笔画f
 0xDF, // ' 左上一撇,也就是笔画 f
 0x93, // (
 0x39, // )
 0x0F, // * 靠上的小写o
 0x6D, // +
 0xF9, // ,
 0xEF, // - 1110 (咨询特价)
 0xFF, // . 1111 (咨询特价)
 0x67, // /
/*
;         d6d6d6d6
;        d5      d7
;        d5      d7
;        d5      d7
;         d4d4d4d4
;        d3      d1
;        d3      d1
;        d3      d1
;         d2d2d2d2  d0
*/
 0x11, // 0 0001 (咨询特价)
 0x7D, // 1 0111 (咨询特价)
 0x23, // 2 0010 (咨询特价)
 0x29, // 3 0010 (咨询特价)
 0x4D, // 4 0100 (咨询特价)
 0x89, // 5 1000 (咨询特价)
 0x81, // 6 1000 (咨询特价)
 0x3D, // 7 0011 (咨询特价)
 0x01, // 8 0000 (咨询特价)
 0x09, // 9 0000 (咨询特价)

 0xAF, // : 冒号显示不了,显示上=
 0xBB, // ; 分好显示不亮,显示下横线 + 下横线, 中间空格
 0xE3, // <    小u右旋
 0xEB, // =    下=
 0xE9, // >    下u左旋
 0x27, // @    问号无点
 0x21, // @ 小写的a

 0x05, // A
 0xC1, // B 小写b
 0x93, // C
 0x61, // D 小写d
 0x83, // E
 0x87, // F
 0x91, // G
 0x45, // H
 0xD7, // I 靠左的1
 0x79, // J
 0xC7, // K
 0xD3, // L
 0x0B, // M M表示上面1个o,下面1横杠;m表示上面1横杠,下面1个o
 0x15, // N 高一点的小些n
 0x11, // O
 0x07, // P
 0x0D, // Q 小些q
 0x97, // R 高些的小些r
 0x89, // S 数字5
 0x3D, // T 数字7
 0x51, // U
 0xF1, // V 小写u
 0x55, // W 显示不了。显示双竖线
 0x99, // X 显示不了,显示 左上对右下的对括
 0x49, // Y 小写y
 0xAB, // Z 显示不了,显示三横杠

 0x93, // [: 大写C镜像180度
 0xCD, // : 反斜杠
 0x39, // ]: 大写C
 0x1F, // ^: 上三角,小写n靠上
 0xFB, // _: 下划线
 0xDF, // `: 左上 一撇

 0x21, // a 小写a, 数字6左右镜像
 0xC1, // b 小写b
 0xE3, // c 小写C
 0x61, // d
 0x03, // e 小写e
 0x87, // f 用大些F
 0x09, // g 用数字9
 0xC5, // h 小写h
 0xFD, // i 右下一竖线
 0xF9, // j 小写j,无点
 0xC7, // k
 0xF3, // l 小写L
 0xA1, // m M表示上面1个o,下面1横杠;m表示上面1横杠,下面1个o
 0xE5, // n 小写n
 0xE1, // o
 0x07, // p 大写P
 0x0D, // q 和大写Q一样
 0xE7, // r 小写r
 0x89, // s 数字5
 0xC3, // t
 0xF1, // u
 0xF1, // v 和小写U一样
 0xF5, // w 显示不了。显示短双竖线
 0x33, // x 显示 左下对右上的对括
 0x49, // y
 0x6D, // z 右竖+1横

 0xFF, // {
 0xFF, // |
 0xFF, // }
 0xFF, // ~

 0xFF
};

static uint8_t s_ucLedBuf[LED_COUNT_PER_MODULE * MODULE_COUNT]; /* 定义LED数码管显示缓冲区 */

static void LED595_ConfigGPIO(void);
static void LED595_LockOutData(void);
static void LED595_Delay(void);
static void LED595_RefeshDisp(void);

/*
*********************************************************************************************************
*   函 数 名: LED595_InitHard
*   功能说明: 初始化led数码管模块
*   形    参:无
*   返 回 值: 无
*********************************************************************************************************
*/
void LED595_InitHard(void)
{
    LED595_ConfigGPIO();
    LED595_DispClr();
}

/*
*********************************************************************************************************
*   函 数 名: LED595_DispOff
*   功能说明: 暂时关闭全部显示(可用于闪烁)
*   形    参: 无
*   返 回 值: 无
*********************************************************************************************************
*/
void LED595_DispOff(void)
{
    LCK_1();            /* LCK = 1 时, 全部不显示 */
}

/*
*********************************************************************************************************
*   函 数 名: LED595_DispOn
*   功能说明: 恢复全部显示(可用于闪烁)
*   形    参: 无
*   返 回 值: 无
*********************************************************************************************************
*/
void LED595_DispOn(void)
{
    LED595_LockOutData();
}

/*
*********************************************************************************************************
*   函 数 名: LED595_DispClr
*   功能说明: 清屏
*   形    参:无
*   返 回 值: 无
*********************************************************************************************************
*/
void LED595_DispClr(void)
{
    memset(s_ucLedBuf, CHAR_SPACE, LED_COUNT_PER_MODULE * MODULE_COUNT);    /* 先清楚显示缓冲区,显示空白 */
    LED595_RefeshDisp();    /* 刷新LED数码管 */
}

/*
*********************************************************************************************************
*   函 数 名: LED595_DispTestOn
*   功能说明: 显示全8带小数点
*   形    参:无
*   返 回 值: 无
*********************************************************************************************************
*/
void LED595_DispTestOn(void)
{
    memset(s_ucLedBuf, CHAR_TEST_ON, LED_COUNT_PER_MODULE * MODULE_COUNT);  /* 先清楚显示缓冲区,显示空白 */
    LED595_RefeshDisp();    /* 刷新LED数码管 */
}

/*
*********************************************************************************************************
*   函 数 名: LED595_DispStr
*   功能说明: 控制4位LED数码管显示字符串. (支持插入小数点)
*   形    参: _ucSN: 数码管模块的编号,0表示1个,1表示第2个级联的
*            _ucaBuf : 字符串,以0结束。 支持字符串中插入小数点。 比如 “1.23”
*   返 回 值: 无
*********************************************************************************************************
*/
void LED595_DispStr(uint8_t _ucSN, char *_ucaBuf)
{
    uint8_t ucLen;
    uint8_t i;
    uint8_t offset;

    offset = _ucSN * LED_COUNT_PER_MODULE;      /* 计算偏移地址 */
    ucLen = 0;
    /* 未作数据有效性判断 */
    for (i = 0; i < 32; i++)
    {
        /* 首位小数点 */
        if ((i == 0) && (_ucaBuf[i] == '.'))
        {
            s_ucLedBuf[offset + ucLen] = DOT_FLAG;
            ucLen++;
        }
        else
        {
            if (_ucaBuf[i+1] == '.')
            {
                s_ucLedBuf[offset + ucLen] = (g_CharCode[_ucaBuf[i] - ' '] & DOT_FLAG);
                ucLen++;
                i++;
                if (ucLen >= LED_COUNT_PER_MODULE)
                {
                    break;
                }
            }
            else
            {
                s_ucLedBuf[offset + ucLen] =  g_CharCode[_ucaBuf[i] - ' '];
                ucLen++;
                if (ucLen >= LED_COUNT_PER_MODULE)
                {
                    break;
                }
            }
        }
    }

    for (i = ucLen; i < LED_COUNT_PER_MODULE; i++)
    {
        s_ucLedBuf[offset + ucLen] = CHAR_SPACE;
        ucLen++;
    }

    LED595_RefeshDisp();    /* 刷新LED数码管 */
}

/*
*********************************************************************************************************
*   函 数 名: LED595_ConfigGPIO
*   功能说明: 配置数码管模块的控制口线
*   形    参:无
*   返 回 值: 无
*********************************************************************************************************
*/
static void LED595_ConfigGPIO(void)
{
    /* 初始化OLED接口,配置为推挽输出 */
    GPIO_Init(LCK_PORT, (GPIO_Pin_TypeDef)LCK_PIN, GPIO_MODE_OUT_PP_HIGH_FAST);
    GPIO_Init(SDI_PORT, (GPIO_Pin_TypeDef)SDI_PIN, GPIO_MODE_OUT_PP_HIGH_FAST);
    GPIO_Init(SCK_PORT, (GPIO_Pin_TypeDef)SCK_PIN, GPIO_MODE_OUT_PP_HIGH_FAST);
}

/*
*********************************************************************************************************
*   函 数 名: LED_Delay
*   功能说明: 时序延迟。如果太快了,LED数码管可能乱码。
*   形    参:无
*   返 回 值: 无
*********************************************************************************************************
*/
static void LED595_Delay(void)
{
    //uint8_t i;
    //for (i = 0; i < 32; i++);
    // 实际测试,无需延迟也很正常
}

/*
*********************************************************************************************************
*   函 数 名: LED595_LockOutData
*   功能说明: 发送1个输出锁存脉冲
*   形    参:无
*   返 回 值: 无
*********************************************************************************************************
*/
static void LED595_LockOutData(void)
{
    LCK_0();
    LCK_1();
    LCK_0();
}

/*
*********************************************************************************************************
*   函 数 名: LED595_RefeshDisp
*   功能说明: 将全局显示缓冲区的显示数据刷新到LED数码管
*   形    参:无
*   返 回 值: 无
*********************************************************************************************************
*/
static void LED595_RefeshDisp(void)
{
    uint8_t i;
    uint8_t k;
    uint8_t dd;

    for (k = LED_COUNT_PER_MODULE * MODULE_COUNT; k > 0 ; k--)
    {
        dd = s_ucLedBuf[k - 1];
        for (i = 0; i < 8; i++)
        {
            if (dd & 0x80)
            {
                SDI_1();
            }
            else
            {
                SDI_0();
            }

            LED595_Delay();
            SCK_0();            ;
            LED595_Delay();
            SCK_1();
            dd <<= 1;
        }
    }
    LED595_LockOutData();
}

/***************************** 安富莱电子www.armfly.com(END OF FILE) *********************************/

 

模板保护代码0528
热门设计服务