当前位置: 首页 > news >正文

(十一)c52学习之旅-动态数码管

一、动态数码管显示原理
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

二、动态刷新
刷新频率>50HZ,我们就感觉不到闪烁了,即低于0.02秒(20毫秒)。
所谓动态扫描显示是指轮流向各位数码管送出段选(字形码)和位选,由于人眼的视觉残留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要低,所以在选择限流电阻时应小于静态显示电路中的。

三、6个数码管显示0-5的数字
如下图显示
这里写图片描述
下面为演示的代码

#include<reg52.h>
#define uint8 unsigned char 
//段选锁存控制位p2.6  位选锁存控制位p2.7
sbit DU=P2^6;
sbit WE=P2^7;
//数码管0-9的16进制
uint8 num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x70,0x7f,0x5f};
//位选6个数码管
uint8 smg[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
int flag=0;

void init_t0()
{
    TMOD=0X01 ;//0000 0001 定时器T0方式1
    /*设定初始数值,16位*/
    //溢出一次大概3ms  用到了6个数码管,所以20/6约等于3,即延时定在3毫秒
    TH0=0Xf4;
    TL0=0x48;
    ET0=1;//打开定时器开关
    EA=1;//打开中断总开关
    TR0=1;//开始启动计数器 =0关闭停止计数
}

void main()
{
    init_t0();
    while(1);
}

void Delay3ms() interrupt 1         //延迟3ms
{
    TR0=0;//此时溢出,停止计数 
    TH0=0Xf4;
    TL0=0x48;

    DU=1;//打开段选
    P0=num[flag];
    DU=0;//关闭段选

    WE=1;//打来位选
    P0=smg[flag];
    WE=0;//关闭位选
    if(flag++==5)
        flag=0;
    TR0=1;//开始计数
}

相关文章:

  • linux屏幕亮度调节解决办法
  • 一、系统准备工作
  • 二、CUDA安装和测试
  • 三、安装Anaconda实验平台
  • 3.1安装配置Anaconda
  • 3.2使用conda安装theano环境
  • 四、安装cuDNN,caffe和openCV
  • 测试Theano使用GPU并行计算,以验证环境搭建是否成功
  • 安装cuda的错误解决办法
  • Anaconda 安装编译pycaffe
  • 服务器(多GPU)caffe安装和编译
  • DIGITS安装和配置
  • SeetaFaceEngine安装和测试
  • yolo的安装和使用
  • yolo-v1 train和test自己的分类和数据
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • angular2 简述
  • DOM的那些事
  • es6--symbol
  • export和import的用法总结
  • hadoop集群管理系统搭建规划说明
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • PermissionScope Swift4 兼容问题
  • Python十分钟制作属于你自己的个性logo
  • TCP拥塞控制
  • v-if和v-for连用出现的问题
  • Vultr 教程目录
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • XForms - 更强大的Form
  • 回顾2016
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 王永庆:技术创新改变教育未来
  • 走向全栈之MongoDB的使用
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​linux启动进程的方式
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • $$$$GB2312-80区位编码表$$$$
  • $.each()与$(selector).each()
  • (BFS)hdoj2377-Bus Pass
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (WSI分类)WSI分类文献小综述 2024
  • (生成器)yield与(迭代器)generator
  • (四)JPA - JQPL 实现增删改查
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • .bashrc在哪里,alias妙用
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .net/c# memcached 获取所有缓存键(keys)
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [17]JAVAEE-HTTP协议
  • [Angular 基础] - 表单:响应式表单
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C语言]——内存函数
  • [Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷