在使用单片机开发项目的时候,经常会使用到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++); }
以上就是英锐恩单片机开发工程师分享的“使用8051单片机在7段显示器上显示数字”。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机。