数码管动态显示

Posted 皓霂dc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数码管动态显示相关的知识,希望对你有一定的参考价值。


文章目录


蓝桥杯开发板原理图


对硬件基础知识可参考前文:蓝桥杯单片机组硬件原理


一、实验原理


7段显示译码器是纯组合电路,一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如上图所示。

设输入的4位码为A[3:0],不考虑表示小数点的发光管,输出控制7段共阳数码管的7位数据为LED7S[6:0],输出信号LED7S的7位分别接上图(b)中共阳数码管的7个段,控制端置0使数码管点亮,控制端置1使数码管不亮。

字型输入Agfedcba
000001000000
100011111001
200100100100
300110110000
401000011001
501010010010
601100000010
701111111000
810000000000
910010010000
A10100001000
B10110000011
C11001000110
D11010000110
E11100001110
F11111000000

高位在左,低位在右,例如当LED7S输出“0010010”时,数码管的7个段g、f、e、d、c、b、a分别接0、0、1、0、0、1、0;接有低电平的段发亮,如下图2所示,于是数码管显示“5”.

1.共阳极数码管编码表:

unsigned char table[]=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;

2.共阴极数码管编码表:

unsigned char table[]=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;

二、蓝桥杯数码管

共阳接法-高电平是暗、低电平是亮hgfedcba-显示C则11000110*0xc6

代码如下(示例):

uchar code tab[]=0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF;
uchar code dot[]=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;
uchar shu[8] = 0,0,0,0,11,11,11,11;
uchar num;

void display(void)

    P2 = (P2&0x1f|0xe0);P0 = 0xff;P2 &= 0x1f; //数码管消隐
    P2 = (P2 & 0x1f|0xc0);
    P0 = (1<<num);P2 &= 0x1f; //位选控制
    P2 = (P2 & 0x1f|0xe0);
    P0 = tab[shu[num]];P2 &= 0x1f; //段选输入
    num++;if(num==8)num=0;


void timer0() interrupt 1

	display();

注:后面加using 1会报错


总结

后续再对数码管基本原理进行补充,本文主要针对蓝桥杯重点知识论述,如有疑问可联系小编^ o_o ^

以上是关于数码管动态显示的主要内容,如果未能解决你的问题,请参考以下文章

已知共阳极8段LED数码管的显示数字的字形码如下(求详解!)

画出单片机连接两位LED数码管显示器的硬件电路,说明显示原理。

共阴极和共阳极数码管显示的十六进制代码

共阴极共阳极七段数码管 从0至F

段码表大全

基于51单片机按键短按长按的项目工程