精华内容
下载资源
问答
  • 本文主要讲了单片机数码管动态显示原理,下面一起来学习一下
  • 单片机基础实验单片机数码管静态、动态显示原理及实现
  • 数码管动态显示原理

    千次阅读 2018-12-27 22:03:00
    2、由于段码连接在一起,如果数码管全亮,则显示的数据相同,所以为了显示不同的数字,任何时刻,只能有一个数码管显示,其余不显示。 3、我们用软件使这几个数码管轮流显示我们需要的数字。 4、只要更新频率足够...

    1、多个数码管的段码连接在一起,位码分别控制。

    2、由于段码连接在一起,如果数码管全亮,则显示的数据相同,所以为了显示不同的数字,任何时刻,只能有一个数码管显示,其余不显示。

    3、我们用软件使这几个数码管轮流显示我们需要的数字。

    4、只要更新频率足够快(>100Hz),我们肉眼看起来,这些数码管就同时显示我们需要的数字了。

    转载于:https://www.cnblogs.com/oldhuang/p/10187732.html

    展开全文
  • 叨逼逼 设计个人简历时,我遇到的第一个问题就是如何让我的小火箭动起来。 设计历程 一开始,我的思路是:将火箭每一帧图片的url保存为一个字符串...正如原理图所示,所有帧的图片合成一张大的图片,而且帧与帧之...

    叨逼逼

    设计个人简历时,我遇到的第一个问题就是如何让我的小火箭动起来。

    设计历程

    一开始,我的思路是:将火箭每一帧图片的url保存为一个字符串数组,然后使用JS对div标签的background-image属性进行更改切换,以达到让火箭动起来的目的。

    之后,我阅读Robby Leonardi个人简历时发现,他让小人动起来的原理是这样的:

    原理示意图

    正如原理图所示,所有帧的图片合成一张大的图片,而且帧与帧之间没有间隙,我是为了方便观看而加上的间隙。图片在网页中的可见范围正好为一张图片大小。

    这里需要两个div块。一个div块表示可见范围,我暂且叫它可见范围块。可见范围块内嵌入一个div块,这个div块我叫它动画图片块。Ps:可见范围块要设置宽高为一帧图片的大小,并且overflow设置成hidden。

    设置一个interval的计数器,固定时间改变图片块的位置。使下一帧图片处于与可见范围块重合的位置。当切换到最后一帧时,循环切换回第一帧。所以,这样就实现了让小人动起来。

    切换下一帧后原理示意图

    最终成果

    我所做的最终结果如下图所示。
    火箭图片

    火箭图片

    js代码

    JS代码

    展开全文
  • 当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把...
    • 数码管
      多位数码管,即是两个或两个以上单个数码管并列集中在一起形成一体的数码管。当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端叫做“位选线”,连接在一起的段线叫做“段选线”有了这两个线后,通过单片机及外部驱动电路就可以控制任意的数码管显示。一般一位数码管有10个引脚,二位数码管也是10个引脚,四位数码管是12个引脚。
      为了更方便区分段选和位选,请看下原理图:

    d1acf4ee1805b59a2fae3b2564f2c926.png


    如图为两个4位一体的数码管,可以看到与8个com相连的是两个数码管的位选,位选与引脚相连,所以位选控制那个灯亮。段选可以看到a,b,,,,,g并联到一起。因为是并联,所以点亮的数码管显示的数字相同。

    • 共阴极数码管和共阳极数码管

    92e86baff6072842de09591062e127fe.png

    图a数码管管脚图,图b是共阳极数码管,图c是共阴极数码管。
    由图b可知共阳极数码管阳极连接在一起,接高电平,阴极对应的各段分别控制。比如要想显示1,则阴极对应的bc段低电平,其它接高电平,即可显示。
    由图C可知,共阴极数码管将各个二极管的阴极连接在一起(阴极为低电平),而阳极控制各段,比如要显示1,则bc为高电平,其它各段低电平即可显示。


    共阳极和共阴极数码管对照表:
    共阳极数码管对照表(位选位高电平,各段选低电平控制数字显示)

    uchar code table[]={
    	0xc0,//0
    	0xf9,//1
    	0xa4,//2
    	0xb0,//3
    	0x99,//4
    	0x92,//5
    	0x82,//6
    	0xf8,//7
    	0x80,//8
    	0x90,//9
    	0x88,//A
    	0x83,//B
    	0xc6,//C
    	0xa1,//D
    	0x86,//E
    	0x8e, //F
    	0x8c, //P
    	0xc1,//U
    	0x91,//Y
    	0x7c,//L
    	0x00,//全亮
    	0xff  //熄灭


    共阴极数码管对照表(位选为低电平,段选为高电平)

    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  //熄灭
    	};
    
    
    • 数码管显示原理
      1.静态显示
      多位数码管依然可以静态显示,但是显示时要么只显示一位数码管,否则一体的多位同时显示必须时显示相同内容。当多位数码管应用于某一系统时,它们的“位选”是可独立控制的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管亮,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选的信号都是相同的,那么他们显示的数字必定一样。(换言之,你可以通过位选控制那个数码管亮,但是亮的同时显示的数字必定相同)
      2.动态显示
      位选控制亮不亮,而段选控制显示数字,那怎样显示不同的数字呢?这就利用了人体肉眼观察的能力。
      举个例子,假设段选1控制第一位数码管数字显示1,那么在显示第二个数码管是段选控制数码管显示2,而位选控制灯第二位数码管亮,第一位数码管灭。但是给人的感受是第一位数码管并没有灭(实际已经灭了),因为时间太短人体肉眼无法识别。这样就会发现数码管动态显示是向左或向右一位一位点亮。
    • 静态数码管工作原理
      静态数码管原理图:

    e964b01b76150c433ac98009ae633322.png


    因为共阳极数码管,所以位选接的是高电平,要想正常显示通过控制低电平来控制段选即可。

    • 静态数码管代码实现:
    #include <reg52.h>
    #include <intrins.h>
    typedef unsigned char u8; //重定义全局字符型变量
    typedef unsigned int u16; //重定义全局整型变量
    u8 code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
    0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
    /*利用数组引用数码表(注次数码表为阴极数码表,因为是共阳极数码管,本应使用刚阳极数码管,
    为了方便直接将共阴极数码表取反来使用)。code是将数组从ram调到ROM节省空间*/
    
    /*延时函数*/
    void dealy(u16 i)
    {
    while(i--);
    }
    
    void main()
    { int i=0;
      for(i=0;i<9;i++){
      P0=~table[i];//取反是因为使用的是阴极数码表,而取反得阳极数码表
      dealy(50000);
      }	
      //p0=~table[0];  该写法是固定显示数字不变的写法,~table[0]显示的就为0
    	 
    }
    • 动态数码管工作原理

    583133e1ab304fe295314a18613aca68.png

    ada7acb827d8ea289f35b25eef3999b2.png


    如图,位选的控制通过连接J16的管脚连接138译码器,利用138译码器控制位选。段选不是有单片机IO直接驱动,而是通过连接74HC25芯片连接管脚,利用芯片来实现段选。
    因为是共阴极数码管,所以位选应接低电平,段选接高电平时,数码管正常显示。

    译码器工作原理

    767a5271040814dc2af93de6a0a11be6.png

    3aefbb0cf21d0cb047ddd0fc95174280.png

    ce455ac5445406bf5f95bb07748a1c0f.png


    可以有真值表观察,当使能控制都为低电平的情况下,A0A1A2输入不同电平控制输出。
    例,A0A1A2为000(二进制为0,A为低位,C为高位)对应Y0就输出低电平,为001(二进制为1)输出Y1就位高电平。所以就相当于二进制十进制,十进制对应输出。
    74HC25看自己的原理图即可,不再阐述。

    • 动态数码管代码实现
    #include <reg52.h>
    #include <intrins.h>
    typedef unsigned char u8; //重定义全局字符型变量
    typedef unsigned int u16; //重定义全局整型变量
    
    u8 code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
    0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
    /*利用数组引用数码表(该数码管是共阴极数码管,所以使用共阴极数码表)。code是将数组从ram调到ROM节省空间*/
    
    sbit LSA=P2^2;    //ABC分别连接单片机的P2^2,P2^3,P2^4管脚
    sbit LSB=P2^3;
    sbit LSC=P2^4;
    
    /*延时函数*/
    void dealy(u16 i)
    {
    while(i--);
    }
    
    /*动态显示函数
    *参数说明
    *ABC分别为138译码器的输入端,通过控制输入端来控制输出端的高低电平,从而实现对位选的控制
    且A为二进制中的低位,C为高位*/
    void Display()
    {  u16 i=0;
    for(i=0;i<8;i++)
    {
     switch(i)
     {
     case 0:LSA=0;LSB=0;LSC=0;break; //利用138译码器来控制位选,当ABC都等于0时,y0为低电平,其余为高电平
     case 1:LSA=1;LSB=0;LSC=0;break; //Y1输出低电平
     case 2:LSA=0;LSB=1;LSC=0;break; //Y2输出低电平
     case 3:LSA=1;LSB=1;LSC=0;break; //Y3输出低电平
     case 4:LSA=0;LSB=0;LSC=1;break; //Y4输出低电平
     case 5:LSA=1;LSB=0;LSC=1;break; //Y5输出低电平
     case 6:LSA=0;LSB=1;LSC=1;break; //Y6输出低电平
     case 7:LSA=1;LSB=1;LSC=1;break; //Y7输出低电平
     }
     P0=table[i];  //第i个为低电平决定位选则跳出switch循环,P0提供段选(原理图可以看出)
     dealy(100);  // 短暂的延时,达到肉眼看不到的速度,以达到同时显示效果
     P0=0x00;     //清零,作用为了下一个显示不会产生重影
    }
    }
    
    void main()
    { 
      while(1)
      {
      Display();
      }	 
    } 
    展开全文
  • 对于单片机入门的同学大有好处,关于单片机的数码管显示从0到9的动态显示,时间间隔可以自己设定哦!
  • 数码管显示控制原理 动态显示原理 7447应用
  • 动态数码管显示原理

    2020-12-06 15:13:12
    (除资料夹通篇无代码)静态显示数码管对比学习动态显示数码管原理(两位8字形),初识模块思维

    原理

    • 以两位8字形数码管为例
      在这里插入图片描述

    • 如果要显示两位数18有两种思路:

    • 一种就是同时单个点亮,学名叫静态数码管显示

    • 另一种就是分时一位一位地点亮数码管,假如这个一位一位点亮的速度够快,人的眼睛就看不出来数码管是十位,个位单独点亮的(人眼视觉暂留效应),这种情况就叫做动态数码管显示

    • 在硬件上体现的点亮过程为(以共阳极为例):
      在这里插入图片描述

    • 看到没有,我只要把一位数码管的公共端接地,不管下面的1-8这8个pin到底是1还是0,这数码管它就是不会亮!

    • 所以我在时刻1给十位com接5v,个位com接地,给b,c置0,其他pin置1,十位的数就显示1,时刻2给十位com接地,个位com接5v,同理点亮8即可

    • 那你现在要说,这十位和个位不是同时亮的啊,没有关系,眼见为虚即可,人眼有一个视觉暂留效应,只要时刻1和时刻2足够接近,人眼就区分不出来数码管是逐个点亮的

    • 1s点亮数码管20-30次,我们可以看到数码管是逐位显示的,1s点亮数码管500-1000次,我们就能看到稳定显示的数字18,这个频率的体现就是一个扫描模块,扫描速度越快即频率越高

    • 动态数码管显示由五个模块组成,最重要的是同步点亮模块和同步扫描模块,说同步是因为二者是同源时钟(即系统时钟),点亮模块就是控制段选信号1,2,3…8,扫描模块就是控制位选信号com1,com2

    • 其他三个模块分别是数据产生模块,top模块和译码模块,正点原子这里体现为计数器模块,其他除top模块原子都合在一起写了

    • 途中标记部分是xdc文件部分,六位数码管位选为6位,高电平或者低电平的时候选中
      在这里插入图片描述

    资料夹

    原子教你玩FPGA

    七段数码管显示的Verilog简单设计 李锐博恩

    控制数码管动态扫描显示的小实验 李锐博恩

    FPGA和外围接口(FPGA和数码管) 碎碎思

    展开全文
  • 动态显示程序原理

    2015-05-26 12:18:02
    十天学会单片机编程,讲解细致生动,初学者的良师益友
  • PHP中动态显示签名和ip原理
  • 1.实验任务与原理1.1任务指标 采用扫描方式LED数码管的动态显示,控制好数码管之间的延迟,根据视觉暂留原理对数据进行连续计数。1.2功能需求(1)能够通过动态扫描显示数据。1.3原理阐述(1)LED数码管显示原理 LED七段...
  • 动态扫描及动态显示附加proteus原理图 简单使用!
  • 数码管动态静态显示原理

    万次阅读 2018-03-07 13:02:32
    从计算机角度,每个数码管隔一段时间才显示一次,但是由于人的视觉暂留效应,只要隔离时间足够短,循环的周期足够长,美妙达到24次以上,看起来数码管就一直稳定显示了,这就是动态显示原理。 动态显示时候需要...
  • 多个数码管显示数字的时候,我们实际上是轮流点亮数码管(一个时刻内只有一个数码管是亮的),利用人眼的视觉暂留现象(也叫余辉效应),就可以做到看起来是所有数码管都同时亮了,这就是动态显示,也叫做动态扫描。...
  • 微机原理课程设计 字符串动态显示 80X86指令系统
  • 动态密码原理

    千次阅读 2018-12-31 00:36:30
    动态口令牌是一种内置电源、密码生成芯片和显示屏、根据专门的算法每隔一定时间自动更新动态口令的专用硬件。基于该动态密码技术的系统又称一次一密(OTP)系统,即用户的身份验证密码是变化的,密码在使用过一次后...
  • 1. 数码管静态、动态显示原理 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于...
  • 1.在后四位数码管上显示0~9999 #include&lt;reg52.h&gt; unsigned char code duanma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};//共阳极数码管的段码表 unsigned char code weima[8]={...
  • 1.实验任务与原理1.1任务指标 采用扫描方式LED数码管的动态显示,控制好数码管之间的延迟,根据视觉暂留原理对数据进行连续计数。1.2功能需求(1)能够通过动态扫描显示数据。1.3原理阐述(1)LED数码管显示原理 LED七段...
  • 动态数码管的工作原理和代码实现

    千次阅读 2019-09-30 18:14:27
    数码管动态显示原理:动态显示的特点是将所有数码管的段选并联在一起,有位选控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和...
  • 数码管动态显示原理 课程实验 数码管动态显示原理 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送...
  • PHP中动态显示签名和ip原理//包含一个计数器,一个提醒语句,用户ip以及自己的广告图片。//给浏览器发送头,说我是张图片Header("Content-type:image/PNG");//这里定义计数器,放到一个文件里的$Visited=array();if...
  • 基于AT89C51 的双色LED动态显示效果PCB原理图,与您分享!
  • 动态显示原理 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位 数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓...
  • 数码管动态显示原理 动态数码管显示有段选和位选。段选是单个数码管显示的数字,位选是哪一个数码管亮。利用人眼的视觉效应,只要数码管切换的足够快,人眼就无法分辨出来,就会认为数码管一直保持亮,一般为20ms。 ...
  • 数码管的动态显示原理及应用实现 课前回顾 例题:用延时函数让流水灯以1s的间隔流动并且让数码管(静态显示)每2s从0到F变化: 注意:在主程序中执行流水灯;在中断程序中执行数码管。(以免出现程序紊乱) #...
  • 多位数码管动态扫描原理分析

    千次阅读 2018-09-11 09:13:29
    多位数码管扫描原理 视频讲解 ... 为了更好说明多位数码管的动态扫描原理,请看视频更清晰哦。 一位数码管显示无需进行扫描,只要给定...多位数码管显示原理就是在不同时间段显示各个位数码管即可,而这个时间段需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,868
精华内容 1,147
关键字:

动态显示原理