显示器件之数码管

51课程重新学之数码管学习:

一、基本特性
1、作用:显示器件,用来显示数字的,只能显示简单的字母。
分类:单排(1位),联排(4位 8位)。
优点:数码管显示稳定可靠,不易被干扰,多半用在工业领域。
亮灭原理:内部8颗LED的亮灭

二、分类
共阳极数码管(单片机输0亮)与共阴极数码管(单片机输1亮)。8颗LED是可以单独驱动的。
驱动电流的差异:共阳极的数码管单片机引脚是可以直接控制的。共阴极的数码管单片机的引脚的输出电流是不够驱动数码管显示的。
74HC573驱动大电流。

静态数码管与动态数码管:
数码管的段码:数码管的每一段与二进制数的对应关系。

1.7.3显示数字
获取数字的段码
重要的是方法:硬件平台不确定的情况下,断码表是不确定的。
实验测定断码表的对应关系。
1.7.4 0-f依次显示

void main(void)
{
unsigned char i;
unsigned char varry[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xA1,0x86,0x8e};

	for(i=0;i<16;i++)
	{	
		if(i == 15)
		{
			i = 0;
		}
		P0 = varry[i];
		delay();
	}
}

注意图片
注意图片上的代码与图片之上的代码段中的代码的区别!
有区别,一个循环周期结束之后图片中的代码会跳过0的显示。因为当i==15之后,i = 0; i = 0之后又i++了,此时的i == 1;了,因此循环从数组的下标1开始执行。代码段中的就不一样了。

1.7.5动态数码管
静态数码管的优点:简单,好编程。
静态数码管的缺陷:费单片机的端口。因此出现了动态数码管。
段码就是每一个数码管中的一个LED所对应的一个IO的二进制码。

什么样的数码管是动态数码管?
(1)数码管还是原来的数码管(共阴极或共阳极)
(2)段码一侧还是接单片机的IO口
(3)COM(共极)接单片机的一个IO口,多个联排数码管的COM共同接一个单片机的IO。
(4)数码管有两端:COM端与段码端。
(5)动态数码管的点亮:段码端给一个段码值之后,还有COM端给一个值配合数码管才会亮。而静态数码管是段码端给一个值就会亮。

动态数码管是如何工作的?
(1)在某个特定的时间内,联排数码管中只有一个在工作,其他的均在休息(不工作)
(2)COM端选择哪个数码管工作,段码端输出这个数码管要显示的内容;延时,COM端选择下一个要工作的数码管,同时段码端输出要显示的内容的段码值,延时;……
(3)快速切换工作的数码管,则给人的感觉是所以的数码管都在亮,亮度是比静态数码管低的
(4) 动态数码管利用了人的视觉暂留
搞清楚2点:
第一,宏观上所有的数码管都是同时亮的,所以人以为所有数码管同时工作,所以多个数码管可以合在一起来显示(譬如显示12345678)。
第二,微观上数码管是依次亮的,我们可以给不同的数码管送不同的段码,所以不同的数码管可以显示不同的数字。所以相当于8个数码管的显示是独立的。

1.7.6 动态数码管显示0-F的实现

#include <reg51.h>
//此处的开发板的数码管是共阴的。所以COM端哪一位给0就选中
//那个数码管。
void delay(unsigned char d)
{
unsigned char i,j;
for(i=0; i<d;i++)
	for(j=0; j<d; j++);
}

void main(void)
{
unsigned char i;
//段码
//P0端口接的是COM端
//P1端口接的是段码端
   unsigned char duanma[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};		
   unsigned char weima[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
	while(1)
	{
		for(i=0; i<8; i++)
		{
			P1 = duanma[i];  
			//P1 = 0x04; //a
			//P1 = 0xff;
			P0 = weima[i];
			delay(10);
			P1 = 0x00;	//切换状态时用于消影。
		}
	}	
}

1.7.8用三八译码器驱动数码管
74LS138 三个输入8个输出
功能:用三个IO口控制8路输出,节省IO端口。
000 001 010 011 100 101 110 111 (0-7)8种状态。
真值表:
在这里插入图片描述
【学会看数据手册:重要的是学方法】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值