一、流水灯
实验用开发板型号:STC15W4K56S4
1.1硬件设计
由原理可知,LED采用共阴极接法,给高电平LED亮。(LED 共阴极指的是LED共同的接点是GND(接地),而共阳极指的是LED共同的接点是电源,共阳极给低电平LED点亮。LED亮灯的条件是两端有电势差。)
<1>控制LED亮灭需要控制573锁存器,开启573锁存器,使能端口Y3要给高电平1。
Y3端口由74HC02控制,如下图所示。
74HC02原理:
74HC02芯片内部是一个或非门,如下图所示:
或非门原理:
例如上图Y7给高电平1,WR给低电平0,经过逻辑运算或非,1或0 = 1,非就是0,Y7C就是0。74HC02就是经过了一个或非逻辑运算(WR一般在硬件端实现)。
<2>原理图如下图所示可看出Y3的输出和CS与1Y2有关,CS与硬件跳帽连接有关,1Y2连接138译码器。
138译码器简单介绍
由该原理图可知:
138译码器由端口P0.0~P0.2控制,例如:P0.0 --P0.1–P0.2对应000,端口Y0输出0;P0.0 --P0.1–P0.2对应001,端口Y1输出0;P0.0 --P0.1–P0.2对应010,端口Y2输出0。原理就是控制端口的二进制编码对应输出十进制端口的低电平。
138译码器真值表:
1.2硬件流程
1.控制LED灯就要打开使能端口Y3 = 1;
2.使能端口Y3 = 1那么CS = 0,1Y2 = 0,经过或非以后才为1;
3.控制端口P0.0–P0.1–P0.2 = 0–1–1,使138译码器Y3口即1Y2输出0;
4.所以P0的端口控制为P0 = 0x06
所以要打开硬件流程就是:
1.3代码设计
例:依次点亮LED灯再依次熄灭LED灯
/*****
STC15单片机开发系统演示程序
依次点亮LED灯再依次熄灭LED灯
MCU:STC15W4K56S4 ,晶体频率:22.1184MHz
****/
#include <stc15.h>
void Delay(unsigned char t) //@22.1184MHz延时1ms
{
while(t)
{
unsigned char i, j;
_nop_();
_nop_();
i = 22;
j = 128;
do
{
while (--j);
} while (--i);
t--;
}
}
void main()
{