蓝桥杯单片机组经验分享之(三)各模块用法(1)138译码器

138译码器的设置目的是为了实现IO复用,单片机上IO资源紧张,挂载的外设较多,为了解决这一矛盾,引入了138译码器

单个138译码器能够利用3个IO实现8路选择(在逻辑上相当于扩展了5个IO),比赛专用开发板上138的连接方式如下:

左端输入ABC接单片机的P25、P26、P27,输出Y0~Y7分别对应不同的外设,通过ABC三位不同组合可以对应到Y0~Y7八种输出状态,从而选中不同输出通道所挂载的外设,即ABC组合为000时,Y0选中,Y0上的设备此时能受外部输入控制,当组合为010时,Y2选中,Y0上的设备此时能受外部输入控制(选中≠控制,138一般接的是其它模块的使能端,选中仅仅是使设备可以通过外部输入进行控制,而控制信号需要另外接入)

 

 

138译码器的控制例程如下:

void Set138(unsigned char pos,unsigned char sta){

 	P2&=0x1f;
	if(sta!=OFF){
	 	P2|=pos<<5;
	}
}

程序完成功能:使能/失能138某输出通道(按照同一时刻仅使能一通道的原则)

pos:需要操作的通道

sta:使能/失能

pos<<5 确保我们只需要考虑欲操作通道是几号通道

 

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值