共阴极数码管显示数字和字符

描述

7段数码管由8个LED组成,其中7个细长的LED可以显示数字数字0至9,和字母ABCDEF,另外一个圆形的发光二极管显示小数点

类型可分为共阳极和共阴极。

共阴极(Common Cathode):LED的所有阴极都连接在一起。 7SEG-MPX1-CC

共阳极数码管(Common Anode):LED的所有阴极都连接在一起 。 7SEG-MPX1-CA

共阴极数码管显示数字和字符

编译

思路:

1.一个字节(Byte)是8位。 P2端口P2^0--P2^7也是8位,P2端口可以控制8个led灯的亮灭

利用工具软件可以生成7段数码管的的0-9,a-f的表值

//C语言一行过长时,使用  \\  结尾作为换行标记,并不会影响语句的编译	
u8 a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,\\
	0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//0-9,A-F

2.利用for循环将数组中的值赋值给P2端口,延时一段时间,动态地显示出来

size = sizeof(a)/sizeof(a[0]);//计算数组有多少个元素
	while(1){
		for(num=0;num

编译

4位7段共阳极数码管动态显示数字1-9999

思路:

1.1-9999本质由0-9这10个数字组成。 4位数码管分别显示千位百位十位个位

2.利用PNP三极管开关来控制4个数码管的显示,只有高电平,数码管才会工作

3.事实上同一时间只有一个数码管是工作的,但是延时10毫秒左右,欺骗人的眼睛,让人感觉4个数码管同时亮

编译

#include

#define u8 unsigned char
#define u16 unsigned int
	
#define led P0

sbit sw1 = P2^0;//控制开关
sbit sw2 = P2^1;
sbit sw3 = P2^2;
sbit sw4 = P2^3;

u8 a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9

void delay(u16 ms);//延时函数
void display(u16 number);//数码管上显示数字

void main()
{
		u16 count=0;
  
	 while(1){
		count++; //从1开始
		display(count);
		if(10000 ==count) 
			count = 0;//计数到10000时置0
	}
}


void display(u16 number)
{	
	led = a[number/1000];//千位上的数字
	sw1 = 1;
	delay(9);
	sw1 = 0;
	
	led = a[(number/100)%10];//百位上的数字
	sw2 = 1;
	delay(9);
	sw2 = 0;
	
	led = a[(number/10)%10];//十位上的数字
	sw3 = 1;
	delay(9);
	sw3 = 0;
	
	led = a[number%10];//个位上的数字
	sw4 = 1;
	delay(9);
	sw4 = 0;
}

void delay(u16 ms)
{
    u16 x,y;
    for(x=0;x
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分