一、蓝桥杯练习笔记之IO口编程

        IO编程,该开发板(CD107D)使用了74HC573锁存器,通过P2口的P2^5,P2^6,P2^7连接74HC138译码器,扩展出了8个口,其中4个口分别连接4个74HC573锁存器,这里以LED的锁存器来举例:

74HC138-译码器

LED电路

代码分析:

        P2 = P2 & 0x1F | 0x80;

        其中0x1F=00011111,P2与0x1F进行与运算,高三位清零,其余位保持原来状态,不改变,即把控制HC138译码器的高三位留出来,接着再或上0x80;容易发现0x80=10000000;进行或运算,与1或结果为1,与0或结果不变,所以或上0x80只需看P2的高三位,则高三位为100,对应HC138译码器的话,P2^7=1; P2^6=0; P2^5=0;所以输出Y4=0;Y4再经过与非运算,看下图示:

与非门

        则输出Y4C=1;即LED对应的锁存器的片选信号被选中,锁存器打通,接下来就可以对P0口进行操作,操作完之后,P2=P2&0x1f;P2高三位直接清零,此时Y4C=0,则把锁存器锁上了。类似的方法,数码管、蜂鸣器等都是如此操作。可以将此步操作写成一个函数进行调用即可,代码如下:

void Set_Hc573(unsigned char Yx)    //需要开启的锁存器YX,4 = LED;5 = 蜂鸣器和继电器。
{
	P2 &= 0X1F;
	P2 |= Yx << 5;
	P2 &= 0X1F;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值