历史上的今天
返回首页

历史上的今天

今天是:2025年10月20日(星期一)

正在发生

2022年10月20日 | STC89C52单片机 数码管静态显示

2022-10-20 来源:csdn

数码管显示原理

在这里插入图片描述

数码管根据内部连接不同分为共阴极和共阳极。八段数码管内部有8颗LED组成,如果想要显示特定字形只需控制相应的LED亮起,其他LED熄灭即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c7ppkdZI-1604209821031)(img/code_table.png?imageView2/2/w/550)]

静态与动态显示

静态显示:

LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个9位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。

缺点:使用的IO口比较多。


动态显示

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。


74HC573锁存器的工作原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zlCrpAey-1604210100233)(img/74HC573.png?imageView2/2/w/550)]

芯片文档查询网址: https://www.alldatasheet.com/


上拉电阻的作用

上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下位同理,也是将不确定的信号通过一个电阻钳位在低电平。


当P0口作为输入、输出口时,上电复位后处于开漏模式。P0口内部无上拉电阻,所以作I/0口必须外接10K-4.7K的上拉电阻。

在这里插入图片描述

点亮一位数字"1"

#include

#include


#define uint unsigned int

#define uchar unsigned char


sbit DU = P2^6;//数码管段选

sbit WE = P2^7;//数码管段选


void main(){ // main函数自身会循环

WE = 1; // 打开位选锁存器

P0 = 0XFE;   // 1111 1110  选通第一位数码管

// P0 = 0X00;  // 0000 0000  表示选通所有位数码管

WE = 0; // 锁存位选数据

DU = 1;  // 打开段选锁存器

P0 = 0X06;  // 0000 0110  显示“1”

DU = 0;   // 锁存段选数据

while(1){

   // P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开位选锁存器才能进行修改


}

}


点亮两位数字"2"

#include

#include


#define uint unsigned int

#define uchar unsigned char


sbit DU = P2^6;//数码管段选

sbit WE = P2^7;//数码管段选


void main(){ // main函数自身会循环

WE = 1; // 打开位选锁存器

P0 = 0XFC;   // 1111 1100  选通第一位和第二位数码管

// P0 = 0X00;  // 0000 0000  表示选通所有位数码管

WE = 0; // 锁存位选数据

DU = 1;  // 打开段选锁存器

P0 = 0X5B;  // 0101 1011  显示“2”

DU = 0;   // 锁存段选数据

while(1){

   // P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开锁存器才能进行修改


}

}


点亮三位数字"3"

#include

#include


#define uint unsigned int

#define uchar unsigned char


sbit DU = P2^6;//数码管段选

sbit WE = P2^7;//数码管段选


void main(){ // main函数自身会循环

WE = 1; // 打开位选锁存器

P0 = 0XF8;   // 1111 1000  选通第一位、第二位和第三位数码管

// P0 = 0X00;  // 0000 0000  表示选通所有位数码管

WE = 0; // 锁存位选数据

DU = 1;  // 打开段选锁存器

P0 = 0X4F;  // 0100 1111  显示“3”

DU = 0;   // 锁存段选数据

while(1){

   // P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开锁存器才能进行修改


}

}


点亮数码管最后一位数字"8"

#include

#include


#define uint unsigned int

#define uchar unsigned char


sbit DU = P2^6;//数码管段选

sbit WE = P2^7;//数码管段选


void main(){ // main函数自身会循环

WE = 1; // 打开位选锁存器

P0 = 0X7F;   // 1111 1000  选通第八位数码管

// P0 = 0X00;  // 0000 0000  表示选通所有位数码管

WE = 0; // 锁存位选数据

DU = 1;  // 打开段选锁存器

P0 = 0X7F;  // 0111 1111  显示“8”

DU = 0;   // 锁存段选数据

while(1){

   // P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开锁存器才能进行修改


}

}


使第三个(从左至右)数码管显示数字 6

#include

#include


#define uint unsigned int

#define uchar unsigned char


sbit DU = P2^6;//数码管段选

sbit WE = P2^7;//数码管段选


void main(){ // main函数自身会循环

P0 = 0X00;   //清除断码

WE = 1; // 打开位选锁存器

P0 = 0X03;   // 0000 0011  选通第3位、第4位、第5位、第6位、第7位、第8位数码管

// P0 = 0X00;  // 0000 0000  表示选通所有位数码管

WE = 0; // 锁存位选数据

DU = 1;  // 打开段选锁存器

P0 = 0X7D;  // 0111 1101 对应的数码管字母 acdefg  显示“6”

DU = 0;   // 锁存段选数据

}

在这里插入图片描述

推荐阅读

史海拾趣

A1 PROS公司的发展小趣事

在2006年至2007年期间,A1 PROS的技术实力得到了业界的广泛认可。韩国技术信用保证基金将A1 PROS评选为杰出技术公司,这是对A1 PROS在技术研发和创新方面所取得成就的肯定。同时,A1 PROS还被韩国工业银行选定为家族企业,获得了更多的资金支持和发展机会。

埃派克森微电子(Apexone)公司的发展小趣事

2005年,埃派克森微电子发布了一系列USB鼠标控制器芯片,这些产品采用了公司独创的无晶振鼠标控制技术和对管免调技术。这些专利性的混合信号集成核心技术不仅为全球鼠标生产厂商提供了高性价比、简单方便的解决方案,还标志着埃派克森的专利技术全面进入商用时代。这一突破不仅提升了公司的市场地位,也为公司的后续发展注入了强大动力。

Delus Corp公司的发展小趣事

Delus Corp公司非常重视人才培养和团队建设。公司积极引进高素质人才,并为员工提供良好的培训和发展机会。公司建立了完善的激励机制和绩效考核体系,激发员工的工作积极性和创造力。同时,公司还注重团队建设和文化建设,营造了一个积极向上、团结协作的工作氛围。这些措施的实施,使得公司拥有一支高素质、专业化的团队,为公司的发展提供了有力的人才保障。

ETERNA公司的发展小趣事

1995年,ETERNA被保时捷家族收购,为公司的发展注入了新的活力。保时捷家族对制表业有着深厚的兴趣,他们投入大量资金用于研发和生产。在保时捷家族的支持下,ETERNA不断推出具有创新性的产品,如Spherodrive系统和超薄自动上炼机芯3030等。这些技术的成功应用,使ETERNA在制表业中取得了举足轻重的地位。同时,保时捷家族还通过全球营销战略,将ETERNA品牌推向了更广阔的市场。

Capax Technologies Inc公司的发展小趣事

Capax Technologies Inc的成功还得益于与各大企业的紧密合作。公司与多家知名的电子设备制造商建立了长期稳定的合作关系,为其提供高品质的组件和技术支持。通过与合作伙伴的共同努力,Capax Technologies Inc的产品得以广泛应用在各类电子设备中,进一步提升了公司的知名度和市场份额。

Comtronic Gmbh-Verbindungstechnik公司的发展小趣事

Capax Technologies Inc在市场定位和产品策略上表现出色。公司深入调研市场需求,发现高端电子设备市场对于高性能、高可靠性的组件有着旺盛的需求。于是,Capax Technologies Inc将产品定位为高端市场,专注于研发和生产高品质的电子组件。通过精准的市场定位和优质的产品,Capax Technologies Inc迅速在高端市场中占据了一席之地。

问答坊 | AI 解惑

求助 使用MC34063设计DC-DC变换器 急!!!

使用MC34063设计DC-DC变换器 参数要求如下; 1 交流输入15V 2 直流输出3~12V可调3   效率70%以上 4  输出纹波小于200mV 5 最大输出电流 500mA 且带过流保护。。 请把懂得的发上来,谢谢拉!!…

查看全部问答>

有关DDS输出正弦信号功放的问题

AD9852的输出为可调的不足1V的电压,输出电流为5-20mA, 有什么办法能使电压升220V,又使正弦波不失真啊。。 高手们给些建议。。…

查看全部问答>

谁知道有IM字节的EEPROM吗?

谁知道有IM字节的EEPROM吗?…

查看全部问答>

zibee疑问

#define SET_MAIN_CLOCK_SOURCE(source) \\   do {                                  \\      &n ...…

查看全部问答>

Wince6.0下这样的窗体风格如何实现?

软件平台:wince6.0 硬件平台:UT-S3C6410开发板 我做了个控制音量的系统托盘程序,但是我向往窗口风格像XP下的那样,有立体的感觉 可是我的风格却只能这样,扁平的窗口 http://i3.6.cn/cvbnm/be/fb/90/8de0ce4c7163006c7feb4f5526a0ffc6.j ...…

查看全部问答>

关于vxworks5.5下的82541网卡使用求教

找了好长时间,还是修改已有驱动没成功,deviceid等到底是改什么,查了芯片手册没发现差别啊,求教已经修改成功的同学,折腾的头大,现在被卡住在网卡这个地方了,有谁帮一把,谢谢各位!…

查看全部问答>

FPGA语法问题

为什么WAIT ON语句在QUARTUS里面编译会有问题??只有 WAIT ON SIGNAL UNTIL CONDITION才可以编译通过…

查看全部问答>

如何给M25P64写官方开发板的image?

现在用EK-STM32开发板,已经搞定320x240的液晶,但该板没有M25P64,故在程序运行的开始,会“蓝屏”,提示SPI FLASH不对头。现在已经在SPI1安装上了空白的M25P64。以前偶尔好像看过一篇文档,讲的是怎么样将官方的image写到m25p64中,但 ...…

查看全部问答>

吉时利DriverLINX的应用寄语

KPCI-3100系列板卡都有多个数字信道。KPCI-3101/2/3/4有两个8位和一个7位(分别是信道A,B和C)。KPCI-3110/16有两个8位和一个2位(分别是信道A和B,以及动态数字输出[1])。在KPCI-3101/2/3/4中,信道C既可以作为普通的数字位操作,也可以作为动态数 ...…

查看全部问答>

busybox 不能ctrl+c 提示can't access tty.job control

板子启动后就会自动创建ttyS0之类的节点 inittab文件内容: # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:5:initdefault: # Boot-time system configuration ...…

查看全部问答>