-
LED-电路图原理
74HC138译码器高三位作为输入端,Y4作为输出口低电平,连接到74HC02或非门,或非门WR口与J13接地口连接,因此,两个输入端都为低电平,(先或后非) 输出高电平(1)。
74HC573锁存器LE口接入高电平,使P0能正常输入命令,控制LED灯的亮灭。
-
正文:
1.引入头文件
//头文件-已经定义好的函数
#include <STC15F2K60S2.H>
2.程序框架
- 主函数
//主函数
void main()
{
while(1)//while(1)的无限循环。这意味着循环将一直运行,直到程序被终止。
{
}
}
- 定义引脚
sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;
//以上代码定义了三个sbit变量:这些变量可以用于控制单个引脚的状态。
- 嵌套延时函数
void Delay30ms() //延迟30毫秒
{
unsigned char i, j, k;
i = 2;
j = 95;
k = 43;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
控制led灯
①检测led灯
void led()
{
HC138_A = 0;//138译码器
HC138_B = 0;
HC138_C = 1;
P0 = 0x00;//打开lED
Delay30ms();
P0 = 0xff;//关闭LED
Delay30ms();
}
②利用for循环实现流水灯
void led()
{
unsigned char i;
HC138_A = 0;
HC138_B = 0;
HC138_C = 1;
for(i = 1; i < 9; i++)
{
P0 = 0xff << i;
Delay30ms();
}
for(i = 1; i < 9; i++)
{
P0 = ~(0xff << i);
Delay30ms();
}
}
//for循环将1移动到每个字节的8个位中,然后将0移动到每个字节的8个位中。创建一个“跑灯”效果。
3.全部程序
//头文件-已经定义好的函数
#include <STC15F2K60S2.H>
sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;
//以上代码定义了三个sbit变量:这些变量可以用于控制单个引脚的状态。
void Delay30ms() //延迟30毫秒
{
unsigned char i, j, k;
i = 2;
j = 95;
k = 43;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void led()
{
unsigned char i;
HC138_A = 0;
HC138_B = 0;
HC138_C = 1;
for(i = 1; i < 9; i++)
{
P0 = 0xff << i;
Delay30ms();
}
for(i = 1; i < 9; i++)
{
P0 = ~(0xff << i);
Delay30ms();
}
}
//for循环将1移动到每个字节的8个位中,然后将0移动到每个字节的8个位中。创建一个“跑灯”效果。
//主函数
void main()
{
while(1)//while(1)的无限循环。这意味着循环将一直运行,直到程序被终止。
{
led();
}
}
只是做个笔记,作为复习。