第十四届蓝桥杯单片机组学习笔记(1):点亮板子第一个LED

前言

使用CT107D实验板子的时候可以看到为了IO口对多个外设的复用,所以板子使用了几个锁存器来对LED、数码管、蜂鸣器等外设进行了一个选择,最后再使用38译码器来使用三个IO口选择8个译码器,从而使得一组IO能够控制多个外设。

单片机IO控制

根据原理图可以看到,LED是低电平驱动,所以Q1~Q8为0时对应的LED亮起

M74HC573M1R-数据锁存器

在这里插入图片描述
LED由数据锁存器控制,查阅锁存器芯片的数据手册可以看到
在这里插入图片描述
在这里插入图片描述
所以可以看到我们如果要使能锁存器达到一个transparent mode 透明的模式(透传),即输入什么输出什么的时候LE需要输入高电平

74HC138-38译码器

由于Y4C需要高电平,所以Y4|WR应该为低电平才行,正好38译码器输出时需要让Y4为0,即输入的是100
译码器电路
38译码器真值表:左边的输入由二进制码组成,右边对二进制码译成十进制码,将十进制对应标号的引脚拉低其他为高。(B - >D)

A2(P27)A1(P26)A0(P25)Y0Y1Y2Y3Y4Y5Y6Y7
00001111111
00110111111
01011011111
01111101111
10011110111
10111111011
11011111101
11111111110

WR和Y4引脚通过或门进行运算,输出再加入个非,所以为了Y4C要是高电平1,则或门输出的要是0,则Y4要是0,所以三八译码器要译码4的二进制;

  • 由此可见我们在选择LED的时候只需要P2=0X80即可
    在这里插入图片描述

代码

void main(void)
{
	P2 = (P2&0x1f)|0x80);//P2 & (0001 1111) | (1000 0000)
    while (1)
    {
        P00 = 0;  //LED熄灭
        Delay500ms();
        P00 = 1;  //LED熄灭
        Delay500ms();
    }
}
  • P2&0x1f是为了把P2口原来的P27,P26,P25的状态清零而其他位保持不动
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值