zoukankan      html  css  js  c++  java
  • 8位动态数码管

    以下代码在8个数码管依次显示01234567,其原理是通过锁定位和段显示1个码,然后适当延时保持一会儿让人眼识别接着解锁位和段,赋值下一个数字,然后锁定位和段,再延时让人眼识别,这样通过不断的赋值依次将8个数字送到数码管。

    #include <reg52.h>

    void Delay(unsigned int t);

    sbit LATCH1 = P2^2; // 定义锁存使能端口 段锁存
    sbit LATCH2 = P2^3; // 位锁存
    unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    // 显示段码值01234567
    unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    //分别对应相应的数码管点亮,即位码

    void main()
    {
    unsigned char i = 0;
    while(1)
    {
    P1 = WeiMa[i]; //取位码
    LATCH2 = 1;    //位锁存
    LATCH2 = 0;

    P1 = DuanMa[i]; //取显示数据,段码
    LATCH1 = 1;      //段锁存
    LATCH1 = 0;

    Delay(200); //合适的扫描间隙延时,时间太长会闪烁,太短会造成重影
    i++;
    if(8 == i) //检测8位扫描完全结束 如扫描完成则从第一个开始再次扫描8位
    i = 0;
    }
    }

    void Delay(unsigned int t) // 延时
    {
    while(--t);
    }

  • 相关阅读:
    hbase 自定义过滤器
    idea的protobuf使用
    Docker自动补全容器名
    Docker普通用户不使用sudo提权
    Hadoop安装错误总结
    Git中撤销提交
    Python经典算法片段
    Git设置彩色输出
    Git同步远程fork的项目
    Git错误汇总
  • 原文地址:https://www.cnblogs.com/coloregg/p/3567777.html
Copyright © 2011-2022 走看看