📜  嵌入式系统7细分

📅  最后修改于: 2021-01-01 02:54:57             🧑  作者: Mango

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

用于显示字母数字字符的电子显示器被称为7段显示器,它在许多系统中用于显示信息。

它由八个LED构成,这些LED顺序连接,以便在打开某些LED组合时显示从0到9的数字。一次仅显示一位数字。

考虑使用8051微控制器在7段显示器上显示数字的基于Proteus软件的仿真是:-

考虑在7段显示器上显示从'0到F'的数字的程序是:

#include                                        
sbit a= P3^0;                                            
sbit x= P3^1;
sbit y= P3^2;
sbit z= P3^3;
void main()
{
unsigned char m[10]={0?40,0xF9,0?24,0?30,0?19,0?12,0?02,0xF8,0xE00,0?10};
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
sbit x= P3^0;
sbit y= P3^1;
void display1();
void display2();
void delay();
void main()
{
unsigned char m[10]={0?40,0xF9,0?24,0?30,0?19,0?12,0?02,0xF8,0xE00,0?10};
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++);
}