第十四届蓝桥杯单片机组学习笔记(1):点亮板子第一个LED
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
点亮板子第一个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) | Y0 | Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
- 由此可见我们在选择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的状态清零而其他位保持不动