在使用單片機(jī)開(kāi)發(fā)項(xiàng)目的時(shí)候,經(jīng)常會(huì)使用到7段顯示器。7段顯示器可以顯示字母和數(shù)字,它內(nèi)部是其實(shí)是發(fā)光LED燈,通過(guò)控制不同的接口點(diǎn)亮內(nèi)部LED燈,從而顯示出數(shù)字。目前,它在許多電子產(chǎn)品中用于顯示信息,比如:充電寶、直發(fā)器等。
7段顯示器由8個(gè)LED構(gòu)成,這些LED以順序方式連接,以方便在打開(kāi)某些LED組合時(shí)顯示0到9的數(shù)字。點(diǎn)亮?xí)r,它一次只顯示一位數(shù)字。
使用8051單片機(jī)在7段顯示器上顯示數(shù)字的原理圖:
在7段顯示器上顯示從“0到F”的數(shù)字的程序是:
#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”的數(shù)字的程序是:
#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++);
}
-
顯示器
+關(guān)注
關(guān)注
21文章
4979瀏覽量
139991 -
8051單片機(jī)
+關(guān)注
關(guān)注
5文章
153瀏覽量
25505
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論