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

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口。
在这里插入图片描述
在这里插入图片描述

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

2、测试

#include <REGX51.H>


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

在这里插入图片描述

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

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

#include <REGX51.H>

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();
		}
	}
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值