技术热线: 4007-888-234

使用8051单片机在7段显示器上显示数字?

更新时间: 2021-10-23
阅读量:3929

在使用单片机开发项目的时候,经常会使用到7段显示器。7段显示器可以显示字母和数字,它内部是其实是发光LED灯,通过控制不同的接口点亮内部LED灯,从而显示出数字。目前,它在许多电子产品中用于显示信息,比如:充电宝、直发器等。

7段显示器由8个LED构成,这些LED以顺序方式连接,以方便在打开某些LED组合时显示0到9的数字。点亮时,它一次只显示一位数字。

使用8051单片机在7段显示器上显示数字的原理图:

embedded-system-7-segment-display1.png

在7段显示器上显示从“0到F”的数字的程序是:

#include<reg51.h> 
sbit a= P3^0; 
sbit x= P3^1;
sbit y= P3^2;
sbit z= P3^3;
void main()
{
unsigned char m[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10};
unsigned int i,j;
a=x=y=z=1;
while(1)
{
for(i=0;i<10;i++)
{
P2=m[i];
for(j=0;j<60000;j++);
}
}
}


在7段显示器上显示从“00到10”的数字的程序是:

#include<reg51.h>
sbit x= P3^0;
sbit y= P3^1;
void display1();
void display2();
void delay();
void main()
{
unsigned char m[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10};
unsigned int i,j;
ds1=ds2=0;
while(1)
{
for(i=0,i<20;i++)
display1();
display2();
}
}
void display1()
{
x=1;
y=0;
P2=m[ds1];
delay();
x=1;
y=0;
P2=m[ds1];
delay();
}
void display2()
{
ds1++;
if(ds1>=10)
{
ds1=0;
ds2++;
if(ds2>=10)
{
ds1=ds2=0;
}
}
}
void delay()
{
unsigned int k;
for(k=0;k<30000;k++);
}


以上就是英锐恩单片机开发工程师分享的“使用8051单片机在7段显示器上显示数字”。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机。