专栏首页初学单片机教程 | 数码管还能这么玩,别样流水灯

教程 | 数码管还能这么玩,别样流水灯

视频内容

本节内容的视频讲解,时长18分钟,请在wifi下观看,土豪请随意。

由于视频网站压缩的问题,上传后为标清,高清视频请移步到优酷或文末点击阅读原文观看 http://v.youku.com/v_show/id_XMzI4OTk5ODY2NA==.html?spm=a2hzp.8244740.0.0

以上就是我们的数码管驱动电路,完整版电路图在以前的文章里有提供下载,没看的小伙伴请查看历史文章下载电子时钟高清电路图全网首发(点击直达)。

从电路图可以看出,我们用的数码管是共阳的数码管,位选控制采用的8550三极管控制,段选接510R的限流电阻后接的是单片机的P2口,关于数码管的详细原理,小编在之前的文章也说道过②LED数码管解析(点击直达)

电路很简单,那我们要用程序去控制它,具体该怎么办呢?

下面小编就贴出完整代码:详细的讲解请看以上视频。

#include"STC15.h"
//函数声明
void delay(unsigned int x);   //延时函数
void disp_seg1();    //显示函数
void disp_seg2();
void disp_seg3();
//接口定义
sbit seg1=P3^4;     //最高位 --最左边一位的位选
sbit seg2=P3^5;
sbit seg3=P3^6;
sbit seg4=P3^7;    //最低位  --最右边一位的位选
unsigned char leddata[]={      //共阳数码管段选码
                0xC0,  //"0"
                0xF9,  //"1"
                0xA4,  //"2"
                0xB0,  //"3"
                0x99,  //"4"
                0x92,  //"5"
                0x82,  //"6"
               0xF8,  //"7"
                0x80,  //"8"
                0x90,  //"9"
            };
/////////////////////////////////////////////////////
//函数功能: 主函数
//参数: 无
//作者: 小代
//公众号:单片机技术宅(ID:chuxue_MCU)
//QQ:2463515595  微信:dianzi126
/////////////////////////////////////////////////////
void main(){
         while(1){
//                         disp_seg1();    //显示函数
//                         delay(10000);
//                         disp_seg2();
//                         delay(10000);
                            disp_seg3();
//                         delay(10000);
         }
}
/////////////////////////////////////////////////////
//函数功能: 点亮数码管的一位
//参数: 无
//作者: 小代
//公众号:单片机技术宅(ID:chuxue_MCU)
//QQ:2463515595  微信:dianzi126
/////////////////////////////////////////////////////
void disp_seg1(){
                            P2=0xf0;
                            seg1=0;
             delay(5000);
}
/////////////////////////////////////////////////////
//函数功能: 数码管流水灯
//参数: 无
//作者: 小代
//公众号:单片机技术宅(ID:chuxue_MCU)
//QQ:2463515595  微信:dianzi126
/////////////////////////////////////////////////////
void disp_seg2(){     
                   unsignedchar i,j;
                   j=0xfe;
                   for(i=0;i<8;i++){
                            P2=j;
                            seg1=0;
                            delay(2000);
                            j=(j<<1)|0x01;
                   }                
}
/////////////////////////////////////////////////////
//函数功能: 数码管轮流显示0-9
//参数: 无
//作者: 小代
//公众号:单片机技术宅(ID:chuxue_MCU)
//QQ:2463515595  微信:dianzi126
/////////////////////////////////////////////////////
void disp_seg3(){     
                   unsignedchar i;
                   for(i=0;i<10;i++){
                            P2=leddata[i];
                            seg1=0;
                            delay(3000);
                   }                
}
/////////////////////////////////////////////////////
//函数功能:延时函数 
//参数:  X  取值0-65535 X越大延时时间越长
//作者: 小代
//公众号:单片机技术宅(ID:chuxue_MCU)
//QQ:2463515595  微信:dianzi126
/////////////////////////////////////////////////////

void delay(unsigned int x){
         unsignedint a,b;
         for(a=0;a<x;a++){
                   for(b=0;b<150;b++){
                            ;
                   }
         }
}

需要下载高清视频和本节资料的小伙伴请关注微信公众号:单片机技术宅,在回复框回复180104获取。

本文分享自微信公众号 - 单片机技术宅(chuxue_MCU),作者:小代

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ②LED数码管解析

    LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

    单片机技术宅
  • STC单片机没法下载程序解决办法汇总

    上一篇推文里已经对STC单片机下载程序过程做了简述,今天的问题是解决有部分小伙伴没法下载程序的问题的,在解答这个问题之前,小编觉得有必要对STC_ISP 软件的...

    单片机技术宅
  • ④蜂鸣器解析

    我们现在做的DIY电子时钟里的声音提示同样采用蜂鸣器来实现声音提醒。在我们DIY的这个时钟里蜂鸣器实现闹铃声音提醒,按键音。等我们教程做完后就打样板子,完了测试...

    单片机技术宅
  • 表——完整约束性规则(键)

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: primary key (PK) 标识该字段为该表的...

    用户1214487
  • iOS自动化探索(二)WDA API的使用

    前面我们已经安装好了WebdriverAgent, 现在可以用Facebook官方提供的API来进行一些操作

    周希
  • Office 2016下载安装与激活教程

    首先下载office professional plus 2016办公软件。 下载地址:

    Dabelv
  • 使用Windows Server 2012 Hyper-V 在虚拟机中做群集需要注意的事项

    在使用Windows Server 2012 做为你的虚拟化Hypervisor时,如果虚拟机里面再启用可故障转移群集,虚拟机中的群集运行一段时间可能会出现某个...

    SuperDream
  • 「译」无处不在的微浏览器

    最近对交互设计方面比较感兴趣,关注了 Medium 的一些相关栏目,有很多文章虽然篇幅不长,但是讲的东西都是我们在使用 app 时经常接触到的,所以阅读这类文章...

    Chor
  • 分分钟搭建MySQL Group Replication测试环境(r11笔记第82天)

    最近看了下MySQL 5.7中的闪亮特性Group Replication,也花了不少做了些测试,发现有些方面的表现确实不赖。当然要模拟这么一套环境还是需...

    jeanron100
  • GitHub上如何删除代码仓库?

    黑泽君

扫码关注云+社区

领取腾讯云代金券