【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) *********************************/
-
最近销售:已售出951 掌柜:armfly¥222 元
-
最近销售:已售出895 掌柜:armfly¥6 元
-
最近销售:已售出220 掌柜:armfly¥90 元
-
最近销售:已售出101 掌柜:armfly¥294 元
-
最近销售:已售出98 掌柜:armfly¥90 元