您的位置 首页 > 装修房产

【led数码管价格】单片机第二课——动态数码管的显示

一,LED数码管显示的原理

数码管的发光原理实际是七段LED灯(不包括小数点)或者八段LED灯被点亮的结果。八段依次是 a,b,c,d,e,f,g,dp(表示点)。LED数码管是常见的显示器件,在很多场合都可以看到,比如,闹钟的显示,家电的显示功能,车站等等。我们看到的数码管为“8”字形,数码管又分为共阴极和共阳极两种。

1.共阴极:就是将八段数码管的阴极(负极)接地在一起,需要高电平点亮。如下图所示

2.共阳极:就是将八段数码管的阳极(正极)接(+5v)在一起,需要低电平点亮。如下图所示

3.数码管的具体显示

①共阴数码管的点亮

为使数码管的不同段显示不同的字符,需要点亮和熄灭不同段的LED灯,才可以实现。对于共阴极数码管来说,只需要给高电平LED灯就会被点亮,对应的断码就会亮起。给低电平相应的断码就会熄灭。

以显示“0”为例 只需要给“dp”和“g”给低电平熄灭就可以了

断码的顺序为:dp g f e d c b a

“0”断码用16进制表示为:3FH

其他字符的断码以此类推:如下表所示

②共阳数码管的点亮

为使数码管的不同段显示不同的字符,需要点亮和熄灭不同段的LED灯,才可以实现。对于共阳极数码管来说,只需要给低电平LED灯就会被点亮,对应的断码就会亮起。给高电平相应的断码就会熄灭。

以显示“0”为例 只需要给“dp”和“g”给高电平熄灭就可以了

断码的顺序为:dp g f e d c b a

1 1 0 0 0 0 0 0

“0”断码用16进制表示为:C0H

其他字符的断码以此类推:如下表所示

二.动态数码管的显示(共阴)

  1. 思路: 建立显存、断码、位码表格,将软件延时部分设计成子函数的结构,在主函数中利用查表的方法来获得相应的位码和段码,这种思路经常用于显示变化的字符。
  2. 显示的状态(左移动态显示,类似于常见的广告牌)

3.原理图(protues仿真图)

4.设计方法

在多个数码管的显示中点亮数码管需要 位码和段码共同作用才能点亮

位码(低电平有效):表示要点亮的数码管的位置。

断码(上面讲过了):就是要点亮哪一段数码管

举例说明:

如果要在上面的六个数码管中点亮第一个数码管,且让它显示“1”,首先确定它的位置是第六个。用八个二进制表示,最低位从0开始,最高位为7 那么它的位码为:11111110 (低电平有效)

断码为0x06

其他的以此类推

先要数码管动态显示要建一个数组。下图为断码

源代码:

#include<reg52.h> #include<in; #define uchar unsigned char #define uint unsigned int sbit duan=P2^6; sbit wei=P2^7; uchar code tab[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x00,0x40}; //共阴极数码管段码表 uchar idata dis_buf[6]={17,17,17,17,17,17}; //显示缓冲区数据(十进制) void delayms(uint i) //延时1ms函数 { uint j; for(;i>0;i--) for(j=120;j>0;j--) {;} } void main() //主函数 { uchar k,m,n,bitcode,segcode; while(1) { for(n=0;n<17;n++) { dis_buf[0]=dis_buf[1]; //数据移动 dis_buf[1]=dis_buf[2]; dis_buf[2]=dis_buf[3]; dis_buf[3]=dis_buf[4]; dis_buf[4]=dis_buf[5]; dis_buf[5]=n; for(m=0;m<100;m++) //100次扫描,大约600ms { bitcode=0xfe; //起始位码 for(k=0;k<6;k++) { P0=0xff; //消影 wei=1; wei=0; segcode=dis_buf[k]; //取数据 P0=tab[segcode]; //送段码 duan=1; duan=0; P0=bitcode; //送位码 wei=1; wei=0; delayms(1); bitcode=_crol_(bitcode,1); //更新位码,准备显示下一位 } } } } }

关注我获得更多干货哦!记得转发和收藏让更多想要学的伙伴看到!!!!

有问题,可以在评论区打出来哦!!!

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐