蓝桥杯单片机组经验分享之(三)各模块用法(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 确保我们只需要考虑欲操作通道是几号通道

发布了71 篇原创文章 · 获赞 4 · 访问量 7197

猜你喜欢

转载自blog.csdn.net/floatinglong/article/details/103691369