07:使用38译码器驱动动态数码管

使用38译码器驱动动态数码管

  • 1、为什么引入38译码器
  • 2、测试
  • 3、动态数码管显示编程实战

1、为什么引入38译码器

(1)38译码器的作用:用3个IO口来控制8路输出。
(2)用38译码器驱动数码管的意义:
原来不用38译码器时,8个动态数码管一共使用2个IO端口(16个引脚),现在使用了38译码器后,我们可以用38译码器的3路输入来控制数码管的8路位码,这样总共只需要3+8=11个IO引脚就可以来驱动8个动态教码管了,省了5个IO口。
07:使用38译码器驱动动态数码管_第1张图片
07:使用38译码器驱动动态数码管_第2张图片

有图得:C是高位,A是低位。
J15连接J16,J6连接单片机的P1引脚。
C接P1.2,B接P1.1,A接P1.0

2、测试

#include 


void main(void)
{
	P0 = 0x06;//显示数字1
	P1 = 0X01;//第2个led灯亮
}

07:使用38译码器驱动动态数码管_第3张图片

3、动态数码管显示编程实战

8个联排数码管依次显示12345678

#include 

void delay(void)
{
	unsigned char k = 200;
	unsigned char h = 200;
	while(k--)
	{
		while(h--);
	}
}



void main(void)
{
	unsigned char i[8] = {0x06,0x5b,0x4f,0x66,
	0x6d,0x7d,0x07,0x7f};//依次显示1到8
	unsigned char j[8] = {0x00,0x01,0x02,0x03,
	0x04,0x05,0x06,0x07};//译码器依次选择LED灯
	unsigned char m;
	while(1)
	{
		for(m=0 ;m<=7 ;m++)
		{
			P1 = j[m];//从左到右依次亮
			P0 = i[m];//依次显示1到8
			delay();
		}
	}
}

你可能感兴趣的:(第一季51单片机,单片机,c语言,嵌入式硬件)