历史上的今天
返回首页

历史上的今天

今天是:2025年04月04日(星期五)

2020年04月04日 | 51单片机 数码管的静态显示和动态显示

2020-04-04 来源:eefocus

数码管(Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。


数码管原理图:

数码管共阴极接法:

数码管共阳极接法:

数码管中有位选和段选,位选就是选择哪个数码管,段选就是被选择的数码管要显示什么数字!


根据数码管的段选,可以总结出数码管的显示数据表:

image.png?imageView2/2/w/550

数码管的静态显示:


/*======================================================*/

/* 时间:2015年8月3日 21:19:03 */

/* 功能:数码管的静态显示 */

/* 目的:51单片机学习 */

/* ^_^……! */

/*======================================================*/


#include 

#include "commLib.h"


sbit WLE  = P2^7; // 位选

sbit DLE  = P2^6; // 段选


#define DIGITAL_ARR_NUM 18

unsigned char code digital[DIGITAL_ARR_NUM] = { // 数码管显示数据表

/* 0,    1,    2,    3,    4,     5,   6,    7,    8, */

0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 

/* 9,    A,    B,    C,    D,    E,    F,    .,   不显示 */

0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x80, 0x00

};


int main(void)

{

unsigned int i;

// 位选

WLE = 1; // 位选端锁存器置高,送数据

P0 = 0xC0; // 送数据

WLE = 0; // 位选端锁存器置低,保存数据

while(1)

{

for (i = 0; i < DIGITAL_ARR_NUM; i++)

{

// 段选

DLE = 1; // 段选端锁存器置高,送数据

P0 = digital[i]; // 送数据

DLE = 0; // 位选端锁存器置低,保存数据

delay(500); // 延时500ms

}

}


return 0;

}


效果截图:

数码管的动态显示:

/*======================================================*/

/* 时间:2015年8月6日 20:45:09 */

/* 功能:数码管的动态显示 */

/* 目的:51单片机学习 */

/* ^_^……! */

/*======================================================*/


#include 

#include "commLib.h"


sbit WLE  = P2^7; // 位选

sbit DLE  = P2^6; // 段选


#define DIGITAL_ARR_NUM 18

unsigned char code digital[DIGITAL_ARR_NUM] = { // 数码管显示数据表

/* 0,    1,    2,    3,    4,     5,   6,    7,    8, */

0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 

/* 9,    A,    B,    C,    D,    E,    F,    .,   不显示 */

0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x80, 0x00

};


int main(void)

{

unsigned int i;

while (1)

{

for (i = 0; i < 6; i++)

{

P0 = 0xFF; // 消影(必须有)

WLE = 1; // 位选端锁存器置高,送数据

P0 = ccCrol(0xFE, i); // 送数据

WLE = 0; // 位选端锁存器置低,保存数据

DLE = 1; // 段选端锁存器置高,送数据

P0 = digital[i]; // 送数据

DLE = 0; // 位选端锁存器置低,保存数据

delay(1);

}

}

return 0;

}


效果截图:

推荐阅读

史海拾趣

HellermannTyton公司的发展小趣事

随着全球对环境保护意识的增强,Heimann Optoelectronics Gmbh积极响应,将绿色环保理念融入产品设计和生产中。公司投入大量资源研发出低功耗、长寿命的光电传感器,这些产品在使用过程中能够显著减少能源消耗和废弃物产生。此外,公司还采用环保材料进行包装,确保从生产到废弃的整个生命周期都符合环保标准。这一举措不仅赢得了市场的广泛赞誉,还为公司树立了良好的企业形象。

高创科技(gotrend)公司的发展小趣事

面对全球经济波动和行业竞争加剧的挑战,Heimann Optoelectronics Gmbh果断实施转型升级战略。公司加大在物联网、人工智能等新兴技术领域的研发投入,成功开发出了一系列智能光电传感器和解决方案。这些产品能够实时监测环境变化、智能控制设备运行,为智慧城市、智能家居等领域提供了强有力的支持。通过转型升级,公司不仅巩固了传统市场的领先地位,还成功开拓了新的增长点。

诚芯微(CXW)公司的发展小趣事

在2017年,诚芯微被认定为国家高新技术企业,这是对公司技术实力和创新能力的高度肯定。获得这一荣誉后,诚芯微进一步加大了研发投入,加强了与高校和科研机构的合作,推动了公司技术的持续创新。同时,公司还扩大了产能,优化了供应链管理,提升了市场竞争力。

B&F Fastener Supply公司的发展小趣事

B&F Fastener Supply公司在上世纪末成立之初,就瞄准了快速发展的电子行业,意识到紧固件和电子元器件的供应将成为行业发展的关键。公司迅速调整战略,开始专注于电子工业用紧固件的研发和销售。通过与多家电子制造厂商建立合作关系,B&F逐渐在电子紧固件市场占据了一席之地。

CML公司的发展小趣事

CML公司成立于1968年,那是一个半导体技术刚刚起步的年代。公司创始人们洞察到单芯片解决方案的巨大潜力,决心打破当时标准组件组装的常规,着手创建创新的单芯片产品。初创时期,CML面临着资金短缺、技术瓶颈以及市场竞争等多重挑战。然而,正是在这样的环境下,CML凭借对技术的执着和对市场的敏锐洞察,成功推出了首款产品——频率敏感开关。这款产品凭借其卓越的性能和稳定性,迅速在消费产品市场赢得了口碑,为CML的发展奠定了坚实的基础。

Engineered Components Co公司的发展小趣事

随着市场竞争的加剧,ECC意识到只有不断创新才能保持领先地位。因此,公司加大了对研发的投入,引进了一批先进的研发设备和人才。经过数年的努力,ECC成功研发出了具有更高精度、更好性能的电子连接器,并推出了一系列新型电子元件。这些新产品不仅满足了客户日益增长的需求,还为公司带来了更多的市场份额。

问答坊 | AI 解惑

概念车系列(一)

这是一款三菱的混合动力概念车。…

查看全部问答>

咨询一个问题关于mini2440驱动中的文件

IO口,寄存器是不是都定义在这个地方呢 mini2440驱动中的文件regs-gpio.h的位置在什么地方呢…

查看全部问答>

为什么LPC2103 ARM的IRQ中断无法使用

这是我写的timer1定时器IRQ中断程序:当定时器发生中断时,关闭LED 我用的开发工具是IAR Embedded Workbench(编译成ARM指令,不用THUMB指令) #include #define Fosc        11059200          ...…

查看全部问答>

arm汇编实现YUV2RGB的问题

YUV2RGB时需要用到下面的公式: R = Y + 1.402 ( Cr - 128 ) G = Y - 0.34414 ( Cb - 128 )  -  0.71414 ( Cr - 128 ) B = Y + 1.772 ( Cb - 128 ) 为了避免浮点数运算,修改为 R = Y + ( 91881*( Cr - 128 ))>>16 当 ...…

查看全部问答>

P4 CPU中断控制器设置问题

我想将并口的中断模式从level触发改成edge触发,是不是得修改CPU的中断控制器相关寄存器值? 我的cpu是celeron D 347,有人知道它的中断控制器地址和相应寄存器偏移么? …

查看全部问答>

STM32的TAMPER-RTC管脚作为Tamper使用的问题

请问这个引脚作为Tamper使用时,应该注意哪些问题?中文手册描述如下:9.3  侵入检测 当 TAMPER引脚上的信号从 0变成1或者从 1变成 0(取决于备份控制寄存器BKP_CR的 TPAL位),会产生一个侵入检测事件 ...…

查看全部问答>

串口的中断会影响定时器A和B的中断。

485通讯和TIMER-A,TIMER-B单独运行时均正常。但加在一齐时,程序跑飞了。只要不写 IE2=URXIE1+UTXIE1;程序运行正常。一旦加上这句话,程序就跑飞。为什么呀?…

查看全部问答>

大神级的亲们!!求可替换HA9P4905-5的器件型号

你知道吗?!最最难受的是我知识有限啊。。找器件花了好久时间,没效率啊!!大神求帮忙啊:贴片,16脚,四比较,工业级的。。。HA9P4905-5的温度有限制,不够。。。。。…

查看全部问答>

菜鸟问题:C2000主频定义?

ti官网给出28027的频率为60MHz,请问这个频率是什么频率?最高工作频率吗? 但查看数据手册发现可以通过对OSC12倍频使28027达到120MHz的频率,因此对60MHz的定义不解。 …

查看全部问答>