一、原理图
二、原理分析
74HC138是一个3-8译码器,三个输入端分别与单片机的P2.7、P2.6和P2.5相连,四个输出端(输出低电平有效)分别作为四个或非门的输入端。或非门U25B的输出端Y5C与74HC573锁存器(U9)的锁存使能输入端LE(输入高电平有效)。锁存器的输入端分别与P0.0~P0.7相连,输出端分别与ULN2003驱动芯片的输入端相连(ULN2003可看作一个非门)。而驱动芯片的OUT5端接到继电器的一个输入端,用于控制继电器开关,OUT7端接到蜂鸣器的一端,用于控制蜂鸣器的开关。或非门U25B的输出端Y4C与74HC573锁存器(U6)的锁存使能输入端LE(输入高电平有效)。锁存器的输入端分别与P0.0~P0.7相连,输出端接8个LED的阴极(低电平点亮),用于控制LED的亮灭。
由于WR是接地,所以只需控制或非门的输出进而使能锁存器。
三、代码
#include <STC15F2K60S2.H>
#include "main.h"
void Delay(unsigned int x){
while(x--);
}
void Task_LED()
{
static unsigned char led = 0xff;
unsigned char i;
BUZZ(0x00);
for(i=0;i<8;i++){
led = ~(0x01 << i);
LED(led);
Delay(50000);
}
}
void main()
{
while(1)
{
Task_LED();
}
}
tips:实现的流水效果。