(资料图片)
在使用单片机开发项目的时候,经常会使用到7段显示器。7段显示器可以显示字母和数字,它内部是其实是发光LED灯,通过控制不同的接口点亮内部LED灯,从而显示出数字。目前,它在许多电子产品中用于显示信息,比如:充电宝、直发器等。
7段显示器由8个LED构成,这些LED以顺序方式连接,以方便在打开某些LED组合时显示0到9的数字。点亮时,它一次只显示一位数字。
使用8051单片机在7段显示器上显示数字的原理图:
在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++);}