基础的点灯
通过74HC138译码器实现三路输入控制八路互斥的低有效输出
如下:
A | B | C | 输出 |
---|---|---|---|
0 | 0 | 0 | Y0 |
0 | 0 | 1 | Y1 |
0 | 1 | 0 | Y2 |
0 | 1 | 1 | Y3 |
1 | 0 | 0 | Y4 |
1 | 0 | 1 | Y5 |
1 | 1 | 0 | Y6 |
1 | 1 | 1 | Y7 |
通过74HC573锁存器控制LED的亮灭
如下:
0E(默认接地) | LE | D1~D8 | Q1~Q8 |
---|---|---|---|
高 | X | X | 高阻 |
低 | 低 | X | 不变 |
低 | 高 | 低 | 低 |
低 | 高 | 高 | 高 |
实现代码:
/*
* @Author: 青衫签
* @Date: 2022-10-23 13:07:11
*/
#include <stc15.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--)
{
};
}
/*do led*/
void LED_RUN()
{
unsigned int i = 0;
HC138_A = 0;
HC138_B = 0;
HC138_C = 1;
for (i = 0; i <=8; i++)
{
Delay(3000);
P0 = 0xff << i; //0xff每次向左移i位
Delay(3000);
}
// Delay(6000);
// P0=0XFF;
// Delay(6000);
}
/*主函数入口*/
void main()
{
while (1)
{
LED_RUN();
}
}