C51 静态数码管

Posted yuqiao0303

tags:

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

显示器介绍

单片机系统中常用的显示器有:

  • LED(Light Emitting Diode):发光二极管显示器
  • LCD(Liquid Crystal Display)液晶显示器
  • TFT 液晶显示器等。

LED显示器有两种显示结构:

  • 段显示(7段、米字型等)
  • 点阵显示(5×8、8×8点阵等)

我们这里用八段led数码管,静态数码管
LED数码管根据LED的不同接法可以分为2类

  • 共阴
  • 共阳

技术分享图片

显示数字和字母表

共阳

0 1 2 3 4 5 6 7 8 9 A B C D E F 无显示
0xC0 0xF9 0xA4 0xB0 0x99 0x92 0x82 0xF8 0x80 0x90 0x88 0x83 0xC6 0xA1 0x86 0x8E 0xFF

共阴

0 1 2 3 4 5 6 7 8 9 A B C D E F 无显示
0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f 0x77 0x7c 0x39 0x5e 0x79 0x71 0x00

代码

#include <reg51.h>
#define u16 int
#define u8 unsigned char
#define delaytime 50000000
#define led P0
 
//这里用的静态数码管是共阴的

 //RAM 占用少,存在flash 里面:code
 //共阳的表,main中取反用
u8 code ledSegment  [16] = {    0x3f,   0x06,   0x5b,   0x4f,   0x66,   0x6d,
                        0x7d,   0x07,   0x7f,   0x6f,   0x77,
                        0x7c,   0x39,   0x5e,   0x79,   0x71};
void delay(u16 i)
{
    while(i--);
}


void main(void)
{
    int i=0;
    while(1)
    {
        led = ~ledSegment[i];
        delay(delaytime);
        i = (i+1)%16;
    }
}

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

c51语言设计数码管秒表,采用中断计数1s,实现模60的秒表

c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真

c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真

c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真

c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真

80c51单片机驱动LED显示。。。急急急