【蓝桥杯】让荒废的力量重新崛起吧!!

永远不要放弃啊!!

马上又是一年蓝桥杯,其实真的每年都有想要好好准备,但是每年都因为假期的各种事情而耽搁(其实是自己真的很想玩)。

今年不准备再荒废了,要把之前学习的零零散散的东西一点一点凑成系统性的学习,当然学了这么多年也还是对于整理这个方面有所欠缺,在多次挣扎后终于选择以写博客的方式分享和交流自己的学习体会,并写一些自己的学习经历和心得。

我决定先把我常用的子函数先整理一下,其中包括锁存函数显示函数矩阵按键IIC驱动程序等。

我希望我说的会比较详细,在写博文的同时回想学过的东西。

一、锁存

首先,为什么需要锁存器?
如果每个器件都需要单片机控制芯片的一组引脚来控制,则器件越多,需要的引脚越多。

但是为了提高引脚的利用率和可靠性,引入了锁存器。它可以使一组引脚控制多个器件。形象的比方就是,锁存器相当于一把钥匙,选中哪把钥匙,则打开哪个房门【选中哪个器件】,再对房里的设施进行布置【对相应器件进行控制】。

在蓝桥杯单片机板中,有一个译码器为74HC138,即3线-8线译码器,三个输入:P25,P26,P27三个口,左侧下面三个为使能端(已经默认设置使能开启)。右侧八个Y0-Y7为输出,不同的输出对应能控制不同器件的573锁存器,让不同的器件使能端打开,则做到了使P0口可以控制LED,数码管,按键等。

74HC138在这里插入图片描述
在这里插入图片描述

举例:LED的控制

在这里插入图片描述
从图中可以看出,LED部分的使能端只有LE,即Y4C可以控制,其他已经默认开启,则只需Y4C置高电平,LED模块即可控制。

Y4C置高电平,则应使74HC138的Y4置低电平,根据74HC138可知,应使P25=0,P26=0,P27=1;则P2 = 0x80,即开启LED锁存端。

下面附上我常用的开、关锁存函数

void Latch(uchar n)		//n为要开的使能端号,例如LED是n=4;
{
	P2 &= 0x1f;		//先将P25,P26,P27置零
	P2 |= n<<5;		
	_nop_();
	P2 &= 0x1f;
}

第二句的写法就是通过移位,达到将第四位换到高位来的方式,可以自己举例试试,就明白这个写法了。

【感觉本篇废话有点多,标题不符,先结束,换到下一篇写其他的】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值