历史上的今天
返回首页

历史上的今天

今天是:2025年10月09日(星期四)

正在发生

2022年10月09日 | 89C52单片机静态数码管的显示,动态数码管显示

2022-10-09 来源:csdn

1.简介

就是用单片机控制点亮上面的灯,显示对应数字

在这里插入图片描述

2、理论介绍

1)我么们先看一下电路图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1)我们可以看到 控制数码管的连接方式是

P0 口 连接 锁存器 ,通过锁存器 再控制数码管上灯亮

2)锁存器U8 通过 LE 脚 高低电平 来控制WE1~WE8 引脚的电平和P0口是否保持一致。进而控制8个数码管中的哪一个数码管可以亮或者灭

3)锁存器U9 通过 LE 脚 高低电平 来控制A~H 引脚的电平和P0口是否保持一致。进而控制一个数码管里面哪个字段可以亮或者灭从而形成数字

在这里插入图片描述

3.示例展示

下面我们就让第四个数码管显示1来展示


#include

sbit U8 = P2^7; //U8 锁存器LE 端口,用于控制哪一个数码管

sbit U9 = P2^6;// U9 锁存器LE端口,用于控制数码上数字显示


void main(){

//控制哪一个数码管亮

U8 = 1;//锁存器 高电平,则表示 允许U8锁存器输出端和输入端电平一样

P0 = 0xf7; //1111 0111 我们想第四个数码管亮,第四位置为低电平

U8 = 0; //锁存器 低电平 ,表示 即使 输入端电平改变,输出端也不改变


//控制数码管显示什么数字

U9 = 1;

P0 =0x06; //0000 0110 显示1 则数码管 bc 段位 显示高电位,其余都是0 

U9 = 0;

    

while(1){

;

}


}


4、实物展示

但是 这个数码管会每隔几秒闪一下,到现在不知为什么?

在这里插入图片描述

5.动态数码管显示

动态数码管就是让人感觉多个数码管一起亮

动态数码管显示和静态基本类似

就是多个数码管切换的过程,利用人的视觉效果差,来感觉数码管是一起亮的


//数码管动态显示12345678

#include //51头文件


#define uchar unsigned char//宏定义

#define uint  unsigned int //宏定义

sbit we = P2^7; //位定义数码管位选锁存器接口

sbit du = P2^6; //位定义数码管段选锁存器接口

//数码管段选表

uchar code leddata[]={ 

 

                0x3F,  //"0"

                0x06,  //"1"

                0x5B,  //"2"

                0x4F,  //"3"

                0x66,  //"4"

                0x6D,  //"5"

                0x7D,  //"6"

                0x07,  //"7"

                0x7F,  //"8"

                0x6F,  //"9"

                0x77,  //"A"

                0x7C,  //"B"

                0x39,  //"C"

                0x5E,  //"D"

                0x79,  //"E"

                0x71,  //"F"

                0x76,  //"H"

                0x38,  //"L"

                0x37,  //"n"

                0x3E,  //"u"

                0x73,  //"P"

                0x5C,  //"o"

                0x40,  //"-"

                0x00,  //熄灭

                0x00  //自定义

 

                         };

//毫秒级延时函数

void delay(uint z)

{

uint x,y;

for(x = z; x > 0; x--)

for(y = 114; y > 0 ; y--);

}


void main()

{

while(1)

{

//第一位数码管显示1

P0 = 0xfe;//1111 1110 第一位数码管显示,注意数码管的排序,P0.0对应连接的是左边第一位数码管

we = 1;//打开位选

we = 0; //关闭位选


P0 = leddata[1];

du = 1; //打开段选

du = 0; //关闭段选

delay(2);//延时


//第二位数码管显示2

P0 = 0xfd;//1111 1101  只选通第二位数码管

we = 1; //打开位选

we = 0; //关闭位选

P0 = leddata[2]; //显示2

du = 1;//打开段选

du = 0; //关闭段选

delay(2);//延时

//第三位数码管显示3

P0 = 0xfb;// 1111 1011只选通第三位数码管

we = 1; //打开位选

we = 0; //关闭位选

P0 = leddata[3]; //显示3

du = 1;//打开段选

du = 0; //关闭段选

delay(2);//延时

P0 = 0xf7;//1111 0111  只选通第四位数码管

we = 1; //打开位选

we = 0; //关闭位选

P0 = leddata[4]; //显示4

du = 1;//打开段选

du = 0; //关闭段选

delay(2);//延时

P0 = 0xef;//1110 1111  只选通第五位数码管

we = 1; //打开位选

we = 0; //关闭位选

P0 = leddata[5]; //显示5

du = 1;//打开段选

du = 0; //关闭段选

delay(2);//延时

P0 = 0xdf;//1101 1111  只选通第六位数码管

we = 1; //打开位选

we = 0; //关闭位选

P0 = leddata[6]; //显示6

du = 1;//打开段选

du = 0; //关闭段选

delay(2);//延时

we = 1; //打开位选

P0 = 0xbf;//1011 1111  只选通第七位数码管

we = 0; //关闭位选

P0 = leddata[7]; //显示7

du = 1;//打开段选

du = 0; //关闭段选

delay(2);//延时

P0 = 0x7f;//0111 1111  只选通第八位数码管

we = 1; //打开位选

we = 0; //关闭位选

P0 = leddata[8]; //显示8

du = 1;//打开段选

du = 0; //关闭段选

delay(2);//延时

}

}


我们可以看到所有数码管都是通过P0口来控制,利用程序执行的速度和人视觉差来实现的。


其实这里面的灯是一个一个亮起来的

在这里插入图片描述

推荐阅读

史海拾趣

API Technologies公司的发展小趣事

API Technologies一直将品质管理作为公司的核心竞争力之一。公司建立了完善的质量管理体系,从原材料采购到产品生产的每一个环节都进行严格的质量控制。同时,公司还注重持续改进和优化生产流程,提高生产效率和产品质量。这些措施使得API Technologies的产品在市场上具有极高的口碑和竞争力。

谷峰(GOFORD)公司的发展小趣事

随着产品线的不断丰富和技术实力的日益增强,GStek开始积极拓展国内外市场。公司采取多元化的市场策略,针对不同客户群体提供定制化的解决方案。同时,GStek还注重品牌建设,通过参加各类行业展会、举办技术研讨会等方式,加强与业界的交流与合作,提升品牌知名度和影响力。这些努力使得GStek的产品广泛应用于各类电子产品中,包括智能手机、平板电脑、笔记本电脑等移动设备以及家电、工控等领域。

Cal Test Electronics公司的发展小趣事

随着全球市场的不断变化和公司规模的扩大,Cal Test Electronics开始实施全球化战略。公司积极拓展海外市场,通过参加国际展会、建立海外销售渠道等方式,提高品牌知名度和市场份额。同时,公司还加强与国际同行的合作与交流,引进先进的技术和管理经验,不断提升自身的竞争力。这些努力使得Cal Test Electronics逐渐成为一个具有全球影响力的电子配件和测试产品制造商。


这些故事旨在展示Cal Test Electronics公司可能的发展轨迹和成就,但并非基于实际发生的事件。对于该公司的真实发展历程和故事,建议查阅相关官方资料或行业报告以获取更准确的信息。

BREL International Components公司的发展小趣事

BREL International Components公司自创立之初,就致力于电子元件的技术创新。在早期阶段,公司研发出一款高性能的集成电路,其稳定性和耐用性远超市场同类产品。这一创新为BREL赢得了众多客户的青睐,公司迅速在电子元件市场占据了一席之地。随着技术的不断进步,BREL持续推出创新产品,如低功耗的芯片和高速传输的连接器,进一步巩固了其在行业内的领先地位。

Datalinear公司的发展小趣事

Datalinear公司成立于20世纪初,由一群热衷于数据处理的工程师创立。初创时期,公司面临着资金短缺、技术瓶颈和市场竞争激烈的挑战。然而,创始人凭借着对技术的执着和对市场的敏锐洞察力,成功开发出一款高效的数据处理设备,满足了当时市场对数据处理速度的需求。这款产品迅速在市场上打开销路,为Datalinear公司赢得了第一桶金。

Deltron公司的发展小趣事

随着国内市场的不断饱和,Deltron公司开始积极拓展国际市场。通过参加国际展览、与国外企业建立合作关系、设立海外分支机构等方式,Deltron逐渐打开了国际市场的大门。其优质的产品和服务得到了国际客户的认可,为公司的发展注入了新的活力。

问答坊 | AI 解惑

[經典資源分享]各大公司電子類招聘題目精選

[經典資源分享]各大公司電子類招聘題目精選 類比電路 1、基爾霍夫定理的內容是什麼?(仕蘭微電子) 2、平板電容公式(C=εS/4πkd)。(未知) 3、最基本的如三極管曲線特性。(未知) 4、描述回饋電路的概念,列舉他們的應用。(仕蘭微電子) ...…

查看全部问答>

为什么这用了shadow register ?

C-Source Code Generated AssemblyMemory Instruction// Enable only 2801 Peripheral Clocksunion PCLKCR0_REG shadowPCLKCR0;EALLOW; 3F82A7 EALLOWshadowPCLKCR0.bit.rsvd1 = 0; 3F82A8 MOV @AL,#0x47D8shadowPCLKCR0.bit.TBCLKSYNC = 0; 3F82AA ...…

查看全部问答>

内容可寻址存储器

谁用过CAM芯片,最好是摩托罗拉的mcm69c433,讲下使用方法,谢谢!…

查看全部问答>

KernelIoControl找设备号的问题

KernelIoControl找设备号的问题    if(!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,&g_Irq,sizeof(UINT32),&g_SysIntr,sizeof(UINT32),NULL))     {       RETAILMSG(1,TEXT(\"ERROR:Failed to request sys ...…

查看全部问答>

WinCE 内存映射的疑惑

GPIO寄存器的读写方法。不过我看了还是很多疑惑,为什么在内存映射表里面这样定义 DCD 0x91600000, 0x56000000,  1  ; I/O Port register 而在s2410.h中又会这样#define IOP_BASE      0xB1600000 // 0x ...…

查看全部问答>

LED生活照明驱动设计四挑战

 驱动设计四挑战     由于LED在原器件的物理特性差异,制作光源系统的观念则与传统设计大不相同,需要有更多方面的技术与专业辅助。     1.电源转换:LED原器件若非特殊制作方式,一般都是直流驱动 ...…

查看全部问答>

锂电池充电管理--解剖HC4054

锂电池广泛使用,连环保汽车使用的都是锂电池。现在的锂电池电充管理也成了一门学问。这里跟大家汇报一下我们解剖HC4054充电IC的情况。 为了延长锂电池的使用寿命。锂电池充电都遵守如下军规: 1、单节锂电池小于2.5V时,用小电流充电(俗称的涓 ...…

查看全部问答>

期待黄智伟老师分析2011年大赛试题!

本帖最后由 paulhyde 于 2014-9-15 09:29 编辑 在竞赛版块看到不少黄智伟老师一系列的帖子。。非常给力。。。期待黄智伟老师根据2011年器件清单分析分析。。。  …

查看全部问答>

怎么用命令行打开office文档?

就像vim evince  gedit 这种命令…

查看全部问答>

LM3S9B96的enet_uip例程调试不出来

配置好IP和MAC后,直接运行例程的程序,液晶屏上根本不显示IP,加入断点后,发现调试根本没有执行到断点这句,想问下,程序中是不是要自己修改下才行? 如果要修改,是修改哪一块呢?是第二个断点那部分的IP和子网掩码吗? 串口显示: 执 ...…

查看全部问答>