**嵌入式静态显示与动态显示**

首先LED显示器工作方式有两种:静态显示方式和动态显示方式。下面细说两种不同的显示。
1.静态显示:
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
以七段码为例:
你需要8根线去控制它,你若想让它对应的地方亮,就给它对应的8位2进制代码为1,然后输入,就可以命它发亮而且是一直发亮,但是这是仅仅一个七段码就需要8根线来控制,而一个板子可以使用的接口是有限的,故就用到了动态显示。
小显示,代码大家都懂

2.动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
这上面就是说其实每次仅仅只有一个亮,但是每个灯亮的时间很短,变化很快,你就看到了都在亮。
如下图,这是我做的小时钟。
这是运行的的时候,看起来是都亮的。
但是一静止,就只有一个亮了。(上图有个锁存器(中转器)没有显示)中转器的多些肯定是比版子多好很多
这里我讲为什么,一个锁存器控制亮的地方(控制一个亮),一个锁存器控制亮的样子(这是我就输入对应七段码二进制了),
而且可以一说的是我就同样一个版子,加上两个锁存器,控制了8个七段码合成的屏幕(一个板子是没有64根线的哈)。
代码如下

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit du =P2^6;
sbit we =P2^7;void delay(uint z)    //时间函数dealy(1000)=1秒
{uint x,y;for(x=z;x>0;x--)for(y=120;y>0;y--);
}unsigned char leddata[]={ //用一字符组存更好变化0x3F,  //"0"0x06,  //"1"0x5B,  //"2"0x4F,  //"3"0x66,  //"4"0x6D,  //"5"0x7D,  //"6"0x07,  //"7"0x7F,  //"8"0x6F,  //"9"};
void main()
{int i=0,j=0,h=0,l=0,t=0;while(1){we = 1;     //每次前面都要段选与位选为0,要不在原有值上再赋值会有问题,这我说不出来为什么P1 = 0xff;we = 0;du = 1;P1 = 0x00;du = 0;du = 1;P1 = leddata[i];        du = 0;                         //个位秒we = 1;P1 = 0x7f;we = 0;delay(5);//这是一个小延迟,以下每个变化后都有,大家可以想想每个都是5毫秒不变时间非常的短,就跳到下以个地方闪了,但又很快跳回来,
这在肉眼是看不到中间变化的,这就是动态规划,它不是赋值了就不变的。we = 1;P1 = 0xff;we = 0;du = 1;P1 = 0x00;du = 0;du = 1;P1 = leddata[j];                   //十位秒du = 0;we = 1;P1 = 0xbf;we = 0;delay(5);we = 1;P1 = 0xff;we = 0;du = 1;P1 = 0x00;du = 0;du = 1;P1 = leddata[h];                     //各位分du = 0;we = 1;P1 = 0xef;we = 0;delay(5);we = 1;P1 = 0xff;we = 0;du = 1;P1 = 0x00;du = 0;du = 1;P1 = leddata[l];                  //十位分,下面小时没有变化,没有写出来,可以同上。du = 0;we = 1;P1 = 0xf7;we = 0;delay(5);we = 1;P1 = 0xff;we = 0;du = 1;P1 = 0x00;du = 0;du = 1;P1 = leddata[1];du = 0;we = 1;P1 = 0xfe;we = 0;delay(5);we = 1;P1 = 0xff;we = 0;du = 1;P1 = 0x00;du = 0;du = 1;P1 = leddata[2];du = 0;we = 1;P1 = 0xfd;we = 0;delay(5);t++;                 //这里上面共用6个dealy(5),就是dealy(30),而1000是一秒,33*30=990我就t%33来控制一秒变化(这里有点误差)if(t%34==0)                    //控制每秒变化,接下来就是改数了{i++;if(i==10){i=0;j++;if(j==6){j=0;h++;if(h==10){h=0;l++;}}}}}}

嵌入式静态显示与动态显示相关推荐

  1. 数码管静态显示到动态显示——六位8段数码管(共阴极)按顺序间隔1s显示数字1~6

    数码管静态显示到动态显示 2021-01-21,51单片机学习笔记 六位8段数码管(共阴极)按顺序间隔1s显示数字1~6 代码: /********************************** ...

  2. 【STC89C52】数码管静态显示和动态显示

    今天我跟大家分享的是数码管静态显示和动态显示实验的学习笔记,希望对你有所帮助!!!如果有什么错误欢迎评论区留言指正!!! 目录 一.原理图分析 二.静态显示 ​编辑 三.动态显示 一.原理图分析 1) ...

  3. 任务11:“数码管”的静态显示和动态显示

    本系列教程以AVR单片机为对象,介绍单片机的快速开发方法. 参考教材:<单片机技术及应用项目教程> 栾秋平 电子工业出版社 2019.6 第1版 本文介绍"数码管"的静 ...

  4. FPGA(5)数码管静态显示与动态显示

    目录 一.数码管静态显示 二.数码管动态显示 1.变量定义 2.定时(60us) 3.动态显示 代码 一.数码管静态显示 FPGA的数码管有4位,8段.(位和段都是共阳,即低电平有效) 位选的4位(二 ...

  5. 5动态显示图片_单片机入门 数码管的静态显示和动态显示 壁纸

    首先是静态显示,代码如下 #include "reg52.h"sbit dula=P2^6; sbit wela=P2^7;main() {wela=1;//打开位选,控制哪个数码 ...

  6. 让51单片机八段数码管亮起来(静态显示和动态显示、共阴极和共阳极、位码和段码)

    51单片机数码管的显示 一.八段数码管基础部分 1.八段数码管的共阴极和共阳极 2.八段数码管的位码和段码 二.八段数码管动态显示 1.八个八段数码管动态扫描0到7流水显示 2.八个八段数码管动态扫描 ...

  7. 51单片机怎么显示当前时间_51单片机数码管静态显示和动态显示原理及实验

    数码管 多位数码管,即是两个或两个以上单个数码管并列集中在一起形成一体的数码管.当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一 ...

  8. 嵌入式技术(单片机原理)基本概念梳理(保研/考研面试)

    嵌入式技术基础(单片机原理),常见概念及知识点整理(保研面试用). 目录 第1章 概论 第2章 MCS-51系列单片机的资源配置 第3章 MCS-51系列单片机的指令系统及汇编语言程序设计 第4章 单 ...

  9. LED 数码管共阴共阳的区别+静态/动态显示

    51单片机--数码管动态显示 1.共阴共阳定义 LED 共阴极指的是LED共同的接点是GND(接地),而共阳极指的是LED共同的接点是电源.LED亮灯的条件是两端有电势差. 最后一段h/dp小数点在高 ...

最新文章

  1. 只需一行代码,你的纯文本秒变Markdown
  2. Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
  3. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! test_vue_0613@1.0.0 dev: 错误的解决方法
  4. Unity3D脚本中文系列教程(五)
  5. HDU Problem - 4292 Food(最大流, 建边)
  6. python编程能有什么用_python编程能做什么开发
  7. Mongodb05 - 数据操作(删除、游标)
  8. mongodb默认的用户名密码_Windows下MongoDB设置用户、密码
  9. Java-数字相关类
  10. Hyperledger Fabric 或 Composer的configtx.yaml配置文件解析
  11. 重启路由器可以换IP吗
  12. 了不起的 Java VM-Java 虚拟机初探
  13. es6 嵌套数组循环_[js]从 ES3 到 ES6 教你如何数组去重
  14. C++如何判断一个程序是 死锁 还是 死循环,如何进行问题定位与分析
  15. 为地图marker 设置网络图片
  16. python实现之极限
  17. leetcode 810. Chalkboard XOR Game
  18. 使用 ESP32 设计智能手表第 3 部分 - 磁力计和陀螺仪
  19. 使用latex导出IEEE文献格式
  20. oracle rac mpp,DB2 purescale vs Oracle RAC

热门文章

  1. 论文笔记-Domain Adaptation for Semantic Segmentation with Maximum Squares Loss
  2. 快手坐拥3亿用户,想成为平行世界里的Snapchat,然后呢
  3. Linux基础笔记11 | 链接文件详解
  4. Python基础:进程、线程、协程(2)
  5. JZOJ5677. 【GDOI2018Day2模拟4.21】纽约
  6. gel文件的作用——摘自百度
  7. 【js】onchange事件不被触发
  8. 我的天空是灰色的......
  9. 开学后,高一高二的分班考该如何准备?
  10. 计算机专业能当体育老师吗,非师范类专业也能当老师的4个专业,录取率比其它专业还高...