目录
一、前言
通过分析蓝桥杯的电子竞赛——单片机开发与设计的竞赛的赛题发现,其中LED的设计基本都会涉及到,下面讲解其LED的基本操作。
二、LED的基本操作
为了实现任意功能,首先必须要分析其有哪些功能,有什么器件和芯片来实现,在蓝桥杯单片机开发与设计竞赛中官方为参赛选手提供了相应的开发板和原理图,其次需要熟悉其原理图,才能编写代码实现某一功能。下面提供涉及到相关原理图:
图1 74HC573锁存器与8个LED灯相连的电路图
图2 74HC138译码器与74HC02或非门
图3 STC89C52系列单片机
从电路原理图上可以分析出,单片机的WR引脚或者GND和74HC138译码器的Y4引脚作为74HC02或非门的输入。其可以通过J13的跳帽选择是WR还是GND作为74HC02的输入。当译码器的Y4输出低电平,则74HC02的输出Y4C将为高电平,而且该引脚接到74HC573锁存器的LE引脚,这时候锁存器处于数据联通的开放状态,也就是单片机可以控制LED灯,否则不能控制LED灯。
(一)、74HC138译码器
1、74HC138译码器简介
74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7),即低电平有效。
74HC138是一种3线—8线译码器 ,三个输入端CBA,其共有8种状态组合(000—111),故译出8个输出信号Y0—Y7。
2、74HC138译码器真值表
不考虑其控制位。
输入 | 输出 | |||||||||
C | B | A | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
(二)、74HC537锁存器
1、74HC573锁存器简介
锁存器能够把输出的数据保存住,不会受到输入变化的影响。
图4 74HC573原理图
74HC573锁存器有20个引脚,D0~D7是数据输入端,Q0~Q7是数据输出端,LE为锁存控制端。当LE为高电平时,74HC573的锁存对于数据是透明的(也就是说输出同步)。即Q0~Q7输出与D0~D8输入的数据树一样的;当LE端为低电平时,起到锁存是作用,即 LE为低电平时,Q0~Q7输出不受D0~D7输入的变化影响。
输入 | 输出 | ||
OE | LE | D0~D7 | Q0~Q7 |
H | X | X | 高阻 |
L | L | L | 不变 |
L | H | L | L |
L | H | H | H |
H——高电平;L——低电平;X——不定态
(三)、74HC02或非门
74HC02真值表
(四)例题
在CT107D单片机综合训练平台上实现8个LED灯依次点亮,然后依次熄灭。
#include "reg52.h"
sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;
void Delay(unsigned int t)
{
while(t--);
while(t--);
}
void LEDRunning()
{
char i = 0;
HC138_A = 0;
HC138_B = 0;
HC138_C = 1;
for(i = 0; i < 8; i++)
{
P0 <<= 1;
Delay(60000);
}
for(i = 0; i < 8; i++)
{
P0 <<= 1;
P0 |= 1;
Delay(60000);
}
}
void main()
{
while(1)
{
LEDRunning();
}
}
三、总结
对于实现任意功能,要了解其有哪几部分组成,运用到那些芯片,了解其逻辑关系,再通过编写代码并调试,看是否达到了要求。