蓝桥杯单片机速成1--138锁存器

一、原理图 

大家都知道,蓝桥杯单片机比赛用的板子的原理就是51的原理,但二者唯一的区别就是这个74HC138锁存器,因为比赛用板的LED,数码管,蜂鸣器和继电器都在P0口上,所以为了防止错乱,加了一个锁存器,每次写入p0口后都要关闭锁存器

二、代码分析 

#define Y4   P2=(P2&0x1f) | 0x80
#define Y5	 P2=(P2&0x1f) | 0xa0
#define Y6   P2=(P2&0x1f) | 0xc0
#define Y7	 P2=(P2&0x1f) | 0xe0
#define Y0	 P2=(P2&0x1f)

由于我们只用到了P25,6,7

所有要P2=P2&0x1f来取出高三位 

根据原理图,可知Y4控制LED,Y5控制蜂鸣器和继电器,Y6控制数码管位选,Y7控制数码管段选 

                                        P25                           P26                              P27

111
110
101
100
011
010
001
000

一共八种组合方式,其中只用到了80,a0,c0,e0

 


再来看一下初始化函数 


void ALL_INIT()
{
	P0=0xFF;Y4;Y0;
	P0=0xAF;Y5;Y0;//蜂鸣器P06,继电器P04
	P0=0xFF;Y6;Y0;
	P0=0xFF;Y7;Y0;
}

P0=0xFF;Y4;Y0;->关闭所有LED灯
P0 = 0xAF;Y5;Y0;->关闭蜂鸣器P06,继电器P04
P0 = 0xFF;Y6;Y0; ->数码管位选,全部选中       
P0 = 0xFF;Y7;Y0;->数码管段选,全部熄灭(共阳极,给0点亮)

该函数在主函数里面调用一次便初始化了LED,数码管,蜂鸣器和继电器了 

然后我们若是想点亮LED就需要写入P0口数据之后,打开Y4,再关闭Y4

如P0=0x00;Y4;Y0;就是点亮全部的LED

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值