前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教程 | 数码管还能这么玩,别样流水灯

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

作者头像
单片机技术宅
发布2020-03-17 10:50:46
5290
发布2020-03-17 10:50:46
举报
文章被收录于专栏:初学单片机
视频内容

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

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

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

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

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

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

代码语言:javascript
复制
#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获取。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单片机技术宅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档