51单片机的静态和动态数码管的显示

发布者:鑫森淼焱最新更新时间:2022-04-23 来源: eefocus关键字:51单片机  静态  动态  数码管 手机看文章 扫描二维码
随时随地手机看文章

一、数码管显示原理:


数码管其实就是有8个LED构成,分为a、b、c、d、e、f、g、dp,而数码管又分为共阴极(左边,高电平点亮)和共阳极(右边,低电平点亮),点亮对应的LED即可显示对应的数字,共阴极编码表如下:


0x3f  , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d 、0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c,0x39 , 0x5e , 0x79 , 0x71 , 0x00


分别对应0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,而0x00则不显示。


注意:比如显示0,则要abcdef都为1,即是0011 1111,转为16进制就是0x3f,依次类推

为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。LED显示器工作方式有两种:静态显示方式和动态显示方式。


二、静态显示原理


静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。

八位数码管及74HC573原理图

D74HC138译码器原理图


3、74H573锁存器的使用(控制段选)

OE为使能端,当他为低电平的时候, 锁存器开始工作

VCC和GND为电源和地端

LE为锁存端,当LE为高电平的时候,Q0~Q7都跟D0~D7状态一样,处于直连状态。

当LE为低电平的时候,Q0~Q7都锁存数据,无论D0~D7怎么变化,Q0~Q7都保持锁存之前的那个状态。


代码如下:


sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

 

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

 

void main()

{

LSA=0;

LSB=0;

LSC=0; //控制38译码器的Y0输出低电平

P0=smgduan[0];

while(1);

}


三、动态数码管


动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。


3-8译码器---D74HC138(控制位选)

74HC138D 是一种三通道输入、八通道输出译码器,简称为3-8译码器,主要应用于消费类电子产品

从真值表可以看出:

image.png

反过来的规律其实就是八进制,000对应Y0,001对应Y1,010对应Y2,依次类推,这样就能实现对应数码管的位选操作。


代码如下:


sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

 

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

 

/*******************************************************************************

* 函 数 名         : delay

* 函数功能    : 延时函数,i=1时,大约延时10us

*******************************************************************************/

void delay(u16 i)

{

while(i--);

}

 

/*******************************************************************************

* 函 数 名         : DigDisplay

* 函数功能    : 数码管动态扫描函数,循环扫描8个数码管显示

*******************************************************************************/

void DigDisplay()

{

u8 i;

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

{

switch(i) //位选,选择点亮的数码管,

{

case(0):

LSA=0;LSB=0;LSC=0; break;//显示第0位

case(1):

LSA=1;LSB=0;LSC=0; break;//显示第1位

case(2):

LSA=0;LSB=1;LSC=0; break;//显示第2位

case(3):

LSA=1;LSB=1;LSC=0; break;//显示第3位

case(4):

LSA=0;LSB=0;LSC=1; break;//显示第4位

case(5):

LSA=1;LSB=0;LSC=1; break;//显示第5位

case(6):

LSA=0;LSB=1;LSC=1; break;//显示第6位

case(7):

LSA=1;LSB=1;LSC=1; break;//显示第7位

}

P0=smgduan[i];//发送段码

delay(100); //间隔一段时间扫描

P0=0x00;//消隐

}

}

 

void main()

{

while(1)

{

DigDisplay();  //数码管显示函数

}

}

关键字:51单片机  静态  动态  数码管 引用地址:51单片机的静态和动态数码管的显示

上一篇:C51/C52单片机的串口原理及参考代码
下一篇:C51/C52单片机的中断(EXTI)介绍及实现(二)

推荐阅读最新更新时间:2024-11-17 06:55

微信推出“拜年红包”功能:金额随机,带有祝福语和动态
微信官方宣布推出“拜年红包”功能。将微信升级到最新版本,在微信单聊对话框里点击“红包”,就可以体验“拜年红包”功能。   据介绍,拜年红包不能自定义金额,系统会随机选择一些吉利数字。比如:2.88、1.66、6.66、8.88、0.88、2.33 等。每个数字配套带有不同的祝福语和不同的动态效果。   IT之家了解到,好友在领取红包封面后,还可以将红包的祝福语设置为微信状态(祝福语包括:团团圆圆、心想事成、一夜暴富、大吉大利、好运连连、笑口常开)。   设置为微信状态后,在对话页面会显示一只小老虎头像,和迎新春的文字状态。   此外,在对话页面 / 朋友圈点击好友的迎新春状态,还能直接发放拜年红包给该好友。   点击
[手机便携]
[nrf51][nrf52] 非静态地址设置白名单,导致程序死机
静态地址规则 这种特定类型的蓝牙地址可作为公共地址的一种流行替代方法,因为使用它无需付费。 随机静态地址可以通过以下两种方式之一使用: 可以在设备的使用寿命内分配和固定它 可以在启动时更改 但是,无法在运行时更改它。 随机静态地址的格式如下: 随机静态地址格式 1和1固定在最低有效位 剩余的46位由开发人员/制造商随机选择 重要说明:所有蓝牙设备都必须使用以下两种类型之一:公共地址或随机静态地址。 静态设备地址的特征可总结为: 最高两个 bit 为 “11”。 剩余的 46bits 是一个随机数,不能全部为0,也不能全部为1。 在一个上电周期内保持不变。 下一次上电的时候可以改变。但不是强制的,因此也可
[单片机]
[nrf51][nrf52] 非<font color='red'>静态</font>地址设置白名单,导致程序死机
51单片机设计多路开关状态指示器
1.实验任务   如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。 2.电路原理图                       图4.3.1 3. 系统板上硬件连线 (1). 把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上; (2). 把“单片机系统”区域中的P1.4-P1.7用导线连接到“四路拨动开关”区域中的K1-K4端口上; 4. 程序设计内容 (1). 开关状态检测   对于开关状态检测,相对单片机来
[单片机]
<font color='red'>51单片机</font>设计多路开关状态指示器
DS2450转换器与51单片机接口设计
在普通方式下其串行通信速率为16.3kbps,而超速工作模式时的速率可达 142kbps,片内16位循环冗余校验码生成器可用于检测通信的正确性。DS2450是DALLAS公司生产的单总线四通道逐次逼近式A/D转换器芯片,它的输入电压范围、转换精度位数和报警门限电压均可编程;每个通道均可用各自的存储器来存储电压范围设置、转换结果和门限电压等参数。DS2450采用8脚SOIC小体积封装。它既可用单5V电源供电,也可采用寄生电源方式供电,芯片正常工作时的功耗仅2.5mW,空闲时的功耗为25μW。多个DS2450或其它功能的具有MicroLAN接口的单总线芯片可以并联,CPU只需一根端口线就能与诸多单总线芯片通信,而且占用微处理器的端
[单片机]
DS2450转换器与<font color='red'>51单片机</font>接口设计
51单片机两点间温度控制设计
1.电路原理图 图4.29.1 2.系统板上硬件连线 a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 c)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。 d)把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。 e)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。 f)把“单片机系统”区域中的P3.3与“模数转换模
[单片机]
<font color='red'>51单片机</font>两点间温度控制设计
基于89C51单片机的485总线接口的软硬件设计提高可靠性和稳定性
引言 近年来,由于人们防火意识的不断增强以及有关法律、法规的不断完善,火灾自动报警系统得到迅猛发展和广泛应用,已成为预防火灾、保障人民生命和财产安全的最重要手段。这就要求火灾自动报警系统必须具有很高的可靠性和稳定性。 目前,国内火灾报警系统多采用RS485半双工异步通信总线进行联网,实现火灾报警控制器之间,以及火灾报警控制器与火灾显示盘之间的通信。但在实际使用中,往往由于设备数量多、通信线路远以及现场的各种干扰等,造成通信可靠性、稳定性不高,致使联网系统的质量得不到保证。 在火灾自动报警系统的联网设计中,经大量试验,发现在使用RS485总线时,如果简单地按常规方式设计电路,那么在实际工程中可能存在以下两个问题:一是通信数据
[单片机]
基于89C<font color='red'>51单片机</font>的485总线接口的软硬件设计提高可靠性和稳定性
51单片机实现流水灯操作
一、用移位操作 用左移指令和取反运算实现从第一个二极管到最后一个二极管的流水灯 #include reg52.h //间隔200毫秒的流水灯 void delayms(unsigned int xms)//带参数函数 { unsigned int i,j;//局部变量,需要时随时分配,不用时立即销毁 for(i=xms;i 0;i--) for(j=110;j 0;j--); } unsigned char k;//全局变量,占据固定RAM void main() { while(1) { for(k=0;k 8;k++) { P1=~(1 k);/*1即为0000 0001,
[单片机]
<font color='red'>51单片机</font>实现流水灯操作
mcs51单片机计数器/定时器工作方式3 编程举例
2个8位方式。工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。 当T0为工作方式3时,THo和TL0分成2个独立的8位 计数器 。其中,TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。TH0只能用作定时器,并使用T1的控制位TRl、回零标志TFl和中断源,见下图。 通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。这时,T1往往用作串行口波特率发生器(见1.4),TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地
[单片机]
mcs<font color='red'>51单片机</font>计数器/定时器工作方式3 编程举例

推荐帖子

【出售】msp432黑板launchpad,25一块,运费自理
TI/德仪/德州仪器Launchpad原装现货包邮MSP-EXP432P401Rhttps://item.taobao.com/item.htm...amp;id=527399979445【出售】msp432黑板launchpad,25一块,运费自理可直接下载程序的吗?是好的产品吗? 开箱即用的,但还是的需要基本的知识,太新手的话就不建议玩了25?还是75?同问,25就吓尿了 25,必须的,清仓价 25,必须的,清仓价包邮?还是运费自理?价格不
liyualive 淘e淘
求帮忙看看这个WM8978电路有没有什么问题
有以下几个问题1.覆铜想将数字部分和模拟部分分开覆铜,但是不知道该怎么分2.音频电路板我的布局有没有什么问题呀请求指导!谢谢!求帮忙看看这个WM8978电路有没有什么问题还有就是耳机接口这部分原理图有什么问题吗这音频电路自己打样板测试发现的什么问题呢数字地和模拟地之间分开有好几种方式,磁珠,0欧,电感 准备拿去打样,想先问问大家有没有什么大问题。还有想问一下数字地模拟地用0欧电阻分开以后覆铜是不用分开覆铜了吗 对,模拟地和数据地分开敷铜
Minxinn PCB设计
求个lcd12864驱动程序
RT:要用ARM7做一个雷达测速仪,需要在点阵式LCD屏上显示当前测距,网上找不到驱动程序...哪位高手知道留言,发给我的邮箱也行,466522097@qq.com不胜感激求个lcd12864驱动程序雷达测速?你的雷达模块是不是uart口的?其实,也就是个uart传输数据而已,反正雷达那边都已经模块化了。楼主你的网撒得挺多的哦。呵呵。。。奇怪,我在网上找到很多源码啊,你怎么搜的?
86814429 嵌入式系统
理解操作系统
单片机系统中的多任务多线程机制的实现首先要指出的一点是,我们不是讨论嵌入式实时多任务操作系统(RTOS)的设计。我们讨论的是,在不使用RTOS的控制系统中,如何体现多任务多线程机制的程序设计思想。一些嵌入式设备可以需要操作系统,例如掌上电脑、PDA、网络控制器等高性能的手持设备和移动设备。它们往往和无线通信、互联网访问和多媒体处理等复杂而强大的功能联系在一起;对CPU要求也很高,往往是以通用CPU为原型的各种高端嵌入式处理器。作为一个完整的操作系统,RTOS有一个可靠性
elec-hunter 微控制器 MCU
初学求教.怎么使用一些仿真软件如: MULITISIM 10.0
今天才来注册的.之前有下载电子仿真软件就是不大会用.不知道是不是来这里ADI参考电路›这区来发这样的贴.另外一些仿真软件能不能把一些现成的电路图(局部的或者全图)如电视机空调音响字类的图纸进行仿真.以便分析参考维修.谢谢师傅老师们给答复和帮助.(0_0).初学求教.怎么使用一些仿真软件如:MULITISIM10.0电路图需要自己画上去o哦那电路着多元件挺费周转.谢谢版主指点我受教了.能不能给介绍下一些学习群(有关仿真设
叁水西石 ADI参考电路
linux嵌入式开发群列表
linux嵌入式开发群列表,很多群:http://linuxembed.5d6d.com/thread-57-1-1.htmllinux嵌入式开发群列表
x02004514 Linux与安卓
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved