开启蓝桥杯单片机的学习之路~
目录
一、理论部分
在查询原理图时,我们可以看到驱动LED灯与以上芯片及门电路有关,因而在学习LED前我们需要先了解一下以上芯片及门电路:
1、138译码器
74HC138译码器为3 线-8 线译码器,主要作用是将地址端(P25、P26、P27)的二进制编码在Y0至Y7对应的输出端以低电平译出。(即输出为Y0至Y7的非)比如:P27P26P25=110时,则Y6输出端输出低电平信号。
查找74HC138译码器芯片手册,可以找到其真值表如下,P25、P26、P27分别代表其中的C、B、A。引用刚才的例子: P27P26P25=110时,对应CBA=110即HHL,则由如下真值表可知Y6输出低电平。
2、锁存器
M74HC573M1R是拥有八口输出的透明锁存器。当使能(11)为高电平时,Q 输出将随数据(D)输入而变。当使能为低电平时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即旧数据可以保持。
3、或非门
或非门是数字逻辑电路中的基本元件,实现逻辑或非功能。有多个输入端,1个输出端,多输入或非门可由2输入或非门和反相器构成。只有当两个输入A和B为低电平(逻辑0)时输出为高电平(逻辑1)。也可以理解为任意输入为高电平(逻辑1),输出为低电平(逻辑0)。
4、分析LED相关电路
了解完上述部分后我们再对LED相关电路进行分析:
为了使得八个LED灯能够跟随IO口变化,则需要通过Y4C给LE高电平
而Y4C是或非门的输出端,由输入端Y4,WR决定。我们在这里选择的是IO模式,CON3是WR与GND短接(在板子上为:j13选择IO模式)。 则WR为低电平,即当Y4为低电平时,Y4C为高电平,因而对应的74HC138译码器的CBA=100,即P27P26P25=100时Y4为低电平,这样就可以使能锁存器,通过P0控制LED灯。另外,八颗LED灯共阳极,则需要低电平触发。
二、程序案例
/*****************************************************************
*@Function: LED_Show
*@Description: 用于显示LED灯
*@Input: 输入LED的十六进制数
*@Return: 无
*@Others: 无
*****************************************************************/
void LED_Show(unsigned char LED)
{
P0 = ~LED; //由于LED灯低电平有效,将输入信号取反
P2 = P2 & 0x1F | 0x80; // 0x1F对应00011111与上P2相当于P27~P25 清零,或上0x80即10000000即将P27~25置100,即定位 Y4C
P2 &= 0x1F; // 与上同理,P27~P25 清零
}
调用:
LED_Show(0x04);//0x04对应00000100则亮的是第三颗灯
上述函数封装,在需要的时候直接调用即可。
感谢大家的观看
欢迎大家提出问题并指正~