单片机+数码管

利用8个数码管显示座位号+字母+学号后六位

  • 首先参考图
  • 参考程序
  • 可以了解到此程序实现了数码管显示OFF

  • 我们可以改的简单一点如下

#include "reg51.h" //引入块
unsigned char a_code[]{0x3f,0x71,0x00}; //共阴级数码管字段编码,我们选取重要的几个
unsigned char a_disp[]{16,0,1,1};//四位数码管的显示缓冲区,在不改编图中程序主体的情况下确定显示区域
  • 接下来我们加多一点8个灯

实现的效果如图,程序如下

#incldue "reg51.h"//引入块
unsigned char a_coddde[]={0x5b,0x76,0x5b,0x55b,0x3f,0x3f,0x6d,0x6d};//共阴级数码管字段编码,我们选取重要的几个
unsigned char a_disp[]={0,1,2,3,4,5,6,7,8};//四位数码管的显示缓冲区,在不改编图中程序主体的情况下确定显示区域
sbit WX1=P2^0;//定义数码管的位置和端口
sbit WX2=P2^1;
sbit WX3=P2^2;
sbit WX4=P2^3;
sbit WX5=P2^4;
sbit WX6=P2^5;
sbit WX7=P2^6;
sbit WX8=P2^7;
void delay(unsigned int xms);//延时子函数声明
//主函数
void main(void)
{
 while(1)
 {
  WX1=0;//点亮第一个数码管
  P0=a_code[a_disp[0]];//送第一个显示数字至P0
  delay(2);
  WX1=1;
  WX2=0;
  P0=a_code[a_disp[1]];
  delay(2);
  WX2=1;
  WX3=0;
  P0=a_code[a_disp[2]];
  delay(2);
  WX3=1;
  WX4=0;
  P0=a_code[a_disp[3]];
  delay(2);
  WX4=1;
  WX5=0;
  P0=a_code[a_disp[4]];
  delay(2);
  WX5=1;
  WX6=0;
  P0=a_code[a_disp[5]];
  delay(2);
  WX6=1;
  WX7=0;
  P0=a_code[a_disp[6]];
  delay(2);
  WX7=1;
  WX8=0;
  P0=a_code[a_disp[7]];
  delay(2);
  WX8=1;
  }
}
//下面是延时子函数
void delay(unsigned int xms)
{
 unsigned int i,j;
 for(i=xms,i>0,i--)
 for(j=102;j--);
}

下面分享一下:共阳极、共阴极数码管编码表

共阳极:

位选为高电平(即1)选中数码管,

各段选为低电平(即0接地时)选中各数码段。

    0xc0,//0
    0xf9,//1
    0xa4,//2
    0xb0,//3
    0x99,//4
    0x92,//5
    0x82,//6
    0xf8,//7
    0x80,//8
    0x90,//9
    0x88,//A
    0x83,//B
    0xc6,//C
    0xa1,//D
    0x86,//E
    0x8e, //F
    0x8c, //P
    0xc1,//U
    0x91,//Y
    0x7c,//L
    0x00,//全亮
    0xff  //熄灭

共阴极: 位选为低电平(即0)选中数码管,

各段选为高电平(即1接+5V时)选中各数码段。

    0x3F,  //"0"
    0x06,  //"1"
    0x5B,  //"2"
    0x4F,  //"3"
    0x66,  //"4"
    0x6D,  //"5"
    0x7D,  //"6"
    0x07,  //"7"
    0x7F,  //"8"
    0x6F,  //"9"
    0x77,  //"A"
    0x7C,  //"B"
    0x39,  //"C"
    0x5E,  //"D"
    0x79,  //"E"
    0x71,  //"F"
    0x76,  //"H"
    0x38,  //"L"
    0x37,  //"n"
    0x3E,  //"u"
    0x73,  //"P"
    0x5C,  //"o"
    0x40,  //"-"
    0x00  //熄灭
posted @ 2023-11-22 13:42  小kBlog  阅读(24)  评论(0编辑  收藏  举报