这回我们讲,蓝桥杯中LED模块
1.点亮一颗LED灯
在写代码之前我们必须要先明确自己的目的,然后根据需求去写对应的代码功能。首先我们要实现点亮一颗LED灯,在此之前我们要先了解一下LED灯的工作原理,
首先我们看一下,LED灯的原理图,图中写LED1的地方就是LED灯,左侧是他的正极,我们在图中也可以看到,他的左侧连接了5v电压,右侧是他的负极,由于二极管是单向导电,我们需要在右侧给他低电平,转化成TTL电平也就是0,这样才能够导通二极管,看P1.5这个意思就是说二极管的负极与单片机的P1.5管引脚相连在一起,我们是通过控制引脚的输出高低电平来控制LED灯的亮灭,因此我们给P1.5这个管脚赋值0,就可以导通二极管,让LED灯亮,接下来看代码演示
接下来,看代码演示
//主函数
void main()
{
while(1)
{
P1.5 = 0;//给P1.5管脚赋值0
}
}
这样子的话我们就导通了二极管,二极管就会进行发光发亮,然后我们想让他进行灭掉的话就给P1.5管脚赋值1,就可以关闭LED灯了。
我们如果想让LED灯亮一会,然后再熄灭,该怎么操作呢? 这个我们只需要加个延时函数即可,下面这段代码的功能就是让LED灯亮1000毫秒,然后熄灭,熄灭1000毫秒,这样我们就完成了点亮LED和熄灭LED的操作
void main()
{
P1.5 = 0;//给P1.5管脚赋值0,让LED点亮
Delay(1000);//延时1000毫秒
P1.5 = 1;//给P1.5管脚赋值1,让LED灭掉
Delay(1000);//延时1000毫秒
}
如果我们想持续让LED灯进行亮灭,如果是流水灯的模式岂不是挨个赋值,这样会大大加大我们代码的复杂性,这里给大家介绍一个LED流水灯的模式,
假如说,这里有4颗LED灯,对应的原理图如图所示,
代码如下
unsgined char LED=0xf;//定义一个变量,给他赋值1111
void main()
{
while(1)
{
P1 =LED;//把LED这个变量的值,赋值给P1,也就是同时赋值给P1.5 P1.4 P1.3 P1.2
Delay(100);
LED = _nop_(LED,1);//左移1位
}
}
这里面用到了一个左移一位的函数,括号里面传的参数有两个,第一个是移位的对象,我们代码中移位的对象是LED这个变量,1表示左移一位,每次左移一位,这样我们就完成了一个流水灯的操作。
标签:管脚,LED,蓝桥,单片机,P1.5,赋值,我们,1000 From: https://blog.csdn.net/2301_80399461/article/details/141558184