数码管的动静态显示(普中51_单核_A1)

1  数码管的显示原理

数码管内部是由 7 个条形的发光二极管和右下方一个圆形的发光二极管组成,这样一共有8 段线。根据显示需要,有选择性地让对应的发光二极管发光,就能实现不同的显示效果。

 1.1 数码管内部结构图

由二极管的单向导电性我们知道,当二极管阳极的电压大于阴极的电压的时候,二极管就会导通。共阴极数码管是将所有发光二极管的阴极接在一起作为公共端 COM当公共端接低电平时,某一段阳极上的电平为“1”时,该段点亮,电平为“0”时,该段熄灭。

数码管显示参考表

 

 

 这里建议咱们自己下去先根据数码管结构写一遍再看此表。

2  单片机中的数码管模块

 74HC245

74HC245是典型的CMOS型三态缓冲门电路,八路信号收发器。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。主要应用于大屏显示,以及其他的消费类电子产品中增加驱动。

总结:充当主控芯片的驱动的缓存器

74HC138

通过P2^2 P2^3 P2^4三个输入口来控制八位数码管的位置显示

 

 

 3 静态显示

代码示例

#include <REGX52.H>

unsigned char NixieTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void Nixie(unsigned char Location,Number)
{
	switch(Location)
	{
	  case 1:P2_4=1;P2_3=1;P2_2=1;break;
	  case 2:P2_4=1;P2_3=1;P2_2=0;break;
	  case 3:P2_4=1;P2_3=0;P2_2=1;break;
	  case 4:P2_4=1;P2_3=0;P2_2=0;break;
	  case 5:P2_4=0;P2_3=1;P2_2=1;break;
	  case 6:P2_4=0;P2_3=1;P2_2=0;break;
	  case 7:P2_4=0;P2_3=0;P2_2=1;break;
	  case 8:P2_4=0;P2_3=0;P2_2=0;break;

	}
	P0=NixieTable[Number];
}
 void main()
 {
 	Nixie(2,3);
	while(1)
	{

	}
 }

实物展示

4  动态数码管显示

相比于静态数码管,动态数码管并非实时显示多个图像,而是通断极短的延时使得人眼认定为是在实时显示,实际上数码管仍然只显示1个码断,只是在不断的动态变换。

#include <REGX52.H>

unsigned char NixieTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void Delay(unsigned int xms)		//@12.000MHz
{
	unsigned char i, j;
	 while(xms)
	{
		i = 2;
	j = 239;
	do
	{
		while (--j);
	} while (--i);
	xms--;
	}
}
void Nixie(unsigned char Location,Number)
{
	switch(Location)
	{
	  case 1:P2_4=1;P2_3=1;P2_2=1;break;
	  case 2:P2_4=1;P2_3=1;P2_2=0;break;
	  case 3:P2_4=1;P2_3=0;P2_2=1;break;
	  case 4:P2_4=1;P2_3=0;P2_2=0;break;
	  case 5:P2_4=0;P2_3=1;P2_2=1;break;
	  case 6:P2_4=0;P2_3=1;P2_2=0;break;
	  case 7:P2_4=0;P2_3=0;P2_2=1;break;
	  case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];
    Delay(2) ;                  //注意这里的延时,正是动态数码管的重点所在
	P0=0x00;
}


 void main()
 {
 
	while(1)
	{
	 	Nixie(1,1);
//		Delay(20);
		Nixie(6,2);
//		Delay(20);
		Nixie(7,3);
//		Delay(20);

	}
 }

实物演示

~~~延时过高时 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Richard 刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值