美文网首页
51单片机之数码管静态显示,锁存器的使用

51单片机之数码管静态显示,锁存器的使用

作者: David_Rao | 来源:发表于2019-09-26 12:34 被阅读0次

八段数码管显示原理

八段数码管由8颗LED组成,根据LED的接法,数码管可分为共阴极共阳极

共阴极是指每一颗LED的阴极都接在低电平0V上
共阳极是指每一颗LED的阳极都接在高电平5V上

对于共阴极数码管,单片机“控制”LED的阳极。想要谋颗LED亮,单片机就应该给对应LED的支路送高电平。

对于共阳极数码管,单片机“控制”LED的阴极。想要谋颗LED亮,单片机就应该给对应LED的支路送低电平。

锁存器的使用

为什么要用锁存器?你想,一个数码管就对应8个IO口。但是如果要用好多个数码管呢?单片机的引脚根本不够用。
先放上原理图(相同的标号代表是连在一起的,即电位相同。如红色圈中的D0电位都是相同的)

P27高电位,锁存器的“锁”打开,新数据传进去

P27低电位,锁存器的“锁”锁住,新数据传不进去,依然输出旧的数据


下面的芯片使用方法相同

位选,段选

比如要第三个数码管的a段亮起来
位选WE3=0,段选A=1,就能形成如图回路

如果位选WE3=1,WE4=0,段选A=1,就能形成如图回路


#include <reg52.h>

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

void delay(unsigned int z)
{
    unsigned int x, y;
    for(x = z; x > 0; x--)
        for(y = 114; y >0; y--);
}

//第一个数码管显示1
void main()
{
    P0 = 0xff;  //1111 1111不选择任何一个数码管
    WE = 1;  //打开位选
    P0 = 0XFE;  //1111 1110 即WE1 = 0
    WE = 0;  //锁住位选数据,即保持1111 1110
    //这样之后单片机P0数据的改变不会影响位选数据
    
    DU = 1;  //打开段选
    P0 = 0x06;  //这里虽然改变了P0,但不影响位选,因为位选关闭了。
    DU = 0;  //锁住段选数据
    delay(5);  //别切换太快了
}

相关文章

  • 51单片机之数码管静态显示,锁存器的使用

    八段数码管显示原理 八段数码管由8颗LED组成,根据LED的接法,数码管可分为共阴极和共阳极 共阴极是指每一颗LE...

  • 单片机实现秒表计时

    要求: 用stc89c51,数码管,锁存器实现秒表功能 实验仿真图: 加入两个锁存器使单片机能够分时进行位选和段选...

  • 1.2 数码管-静态显示

    我们的板子上是共阴极数码管 位选和段选 位选:控制那个数码管 段选:控制数码管显示东西(如1 2 3) 锁存器 上...

  • MHT5-交通灯套件

    功能介绍: 本套件是基于51单片机的交通灯模拟设计,通过对单片机编程,控制数码管显示和LED亮灭的变化。有深夜模式...

  • 基于51智能电热水器设计

    本课题是基于AT89S51单片机的智能电热水器的控制器的设计,要达到的控制要求有:(1)用两位数码管显示水温,两位...

  • 74HC573锁存器用法

    用法 可以把锁存器视为单片机的 I/O 口的扩展器

  • 51单片机常用波特率初值表(12M晶振)

    为什么51单片机的晶振一般使用11.0592? 用11.0592晶振的原因是51单片机的定时器导致的。用51单片机...

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

    姓名:冯子豪 学号:16020199001 转载自https://blog.csdn.net/qq_2748553...

  • 2017.11.08学习总结

    今天学了七段数码管显示,595是8位寄存器和一个存储器和三态输出功能,各引脚的功能。串行数据输出,高位在先,锁存...

  • 51单片机之数码管动态显示

    动态显示的原理 根据上一篇文章数码管的静态显示,我们已经知道如何精准控制某一个数码管显示某一个数字。 如果我们要前...

网友评论

      本文标题:51单片机之数码管静态显示,锁存器的使用

      本文链接:https://www.haomeiwen.com/subject/amfeyctx.html