查看: 1412|回复: 0

四位数码管静态显示

[复制链接]
  • TA的每日心情
    奋斗
    2020-4-16 13:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-9-19 16:06 | 显示全部楼层 |阅读模式
    如图所示,四位管就是四个坐在了一起,然后通过片选信号点亮选择的数码管!
    代码撸起:


    const unsigned char dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


    int ledPins[] = {2,3,4,5,6,7,8,9};
    int segPins[]={10,11,12,13};
    char displayTemp[4];//显示缓冲区
    void setup() {
    // 循环设置,把对应的端口都设置成输出
    for (int thisLed = 0; thisLed <8; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT); }
    for (int thisSeg = 0; thisSeg < 4; thisSeg++) {
    pinMode(segPins[thisSeg], OUTPUT);
    }
    }
    void play( char value){//单个数码管显示函数
    for(int i=0;i<8;i++)
    digitalWrite(ledPins[i],bitRead(value,i));//使用了bitWrite 函数,非常简单

    }
    void loop() {

    displayTemp[0]=dofly_DuanMa[1]; //静态显示
    displayTemp[1]=dofly_DuanMa[1];
    displayTemp[2]=dofly_DuanMa[1];
    displayTemp[3]=dofly_DuanMa[1];
    static
    int i;//静态变量I,要显示的位数

    play(0);// 清除“鬼影”
    for(int a=0;a<4;a++)
    digitalWrite(segPins[a],1);//位选信号全部关闭
    digitalWrite(segPins[i],0);//打开当前位选信号位
    //delay(1);
    play(displayTemp[i]);//读取对应的段码值
    i++;
    if(i==4) //4 位结束后重新循环i=?表示有几个数码管点亮
    i=0;
    }


    微信截图_20180919160426.png
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    求大神看看哪里有问题,设备在线,米家也同步正常,就.....
    求大神看看哪里有问题,设
    代码: #define BLINKER_PRINT Serial //用于打开串口 #define BLINKER_WIFI #define
    晒图ESP8266一个框架
    晒图ESP8266一个框架
    好久没发帖了,出来活跃活跃一下。ESP8266免身份登录截图。 最近外研究新的架构M2M或P
    Arduino 求助 串口接收数据不正确,数据丢失问题
    Arduino 求助 串口接收数
    问题整了好久,我自己写的C#程序发送数据,arduino接收数据。 但是发现arduino接收的
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表