【蓝桥杯单片机 控制LED灯电路经典程序】(2)
接上篇:上一篇(1)中只介绍了控制LED灯的电路,138译码器打通573锁存器,锁存器再控制八路LED灯。这篇主要介绍如何编写代码控制LED灯的亮灭。搞懂前面两篇内容,也就相当于简单入门了。
比赛时用的是keil uv4编译软件和stc-isp烧录软件,它们的使用这里不多讲了。
一、在keil中写好程序基本构架
#include"reg52.h" //包含头文件
void Delay(unsigned int t) //延时t毫秒
{
unsigned char i, j;
for(i = t; t > 0; t--)
for(j = 110; j > 0; j--);
}
void main() //主函数
{
while(1) //死循环
{
}
}
二、38译码器程序
上篇(1)说过,要使得控制LED灯的锁存器打通,就要让Y4输出低电平,也即让P25=0,P26=0,P27=1。
在程序上是这样表示的:
sbit HC138_A = P2^5; //定义译码器中ABC所在引脚
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;
HC138_C = 1; //给CBA赋值
HC138_B = 0;
HC138_A = 0;
三、573锁存器程序控制LED灯
上一个程序让Y4C输出了高电平,打通了锁存器,则Dx与Qx电平特性一致。低电平,灯亮;高电平,灯灭。下面是让LED一直闪烁的程序:
注:0x00二进制为00000000,所以P0=0x00就是一次性给P20–P27都赋值为了0; 0xff类似,后面的十六进制数都是要转化为2进制来理解的。
P0 = 0x00; //让P20--P27输出低电平
Delay(1000);
P0 = 0xff; //让P20--P27输出高电平
Delay(1000);
将程序写完整是这样的: