LED有两种连接方式,一种是共阳极连接,一种是共阴极连接。
共阳极连接是指多个LED的阳极连接在一起,接到电源正极,而各自的阴极接到单片机的输出引脚。这样,当单片机输出低电平时,相应的LED就会点亮;当输出高电平时,相应的LED就会熄灭。
共阴极连接是指多个LED的阴极连接在一起,接到电源负极,而各自的阳极接到单片机的输出引脚。这样,当单片机输出高电平时,相应的LED就会点亮;当输出低电平时,相应的LED就会熄灭。
我们可以根据上述的原理来实现一个LED闪烁,让你的LED真正会“眨眼睛”
准备知识:
在实现LED闪烁之前,我们需要学习一下一些基本的知识。
1、typedef(重定义)的功能使用
C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。
例如:
typedef unsigned char u8;
typedefunsigned int ul6;
重新定义一些常用的关键词,可以增强程序的可移植性,因为在不同的编译软件上面,C语言的数据类型的关键词的位宽是不一样的。
2、While循环函数
while循环函数语句的意义:当函数值内的循环条件为真时,则执行循环体内的函数值;当且仅当循环条件为假时,才会退出循环,程序往下执行。
3、delay延时函数
简答的以while循环来做一个延时函数说明,根据设定的延时时间i,然后每次循环一个while程序进行减一计算,直到i为0时才退出延时计算。
void delay(u16 i)
{
while(i--);
}
编写程序:
有了上述的知识储备之后,我们在编写一个LED闪烁的程序,首先要明白,一个LED闪烁,就是要通过接通一段时间,断开一段时间,这样反反复复的原理,让我们的视觉上产生出闪烁现象,有了这个想法之后,我们就可以使用程序将想法具现化。
#include //头文件
typedef unsigned char u8;
typedef unsigned int u16; //重定义类型
sbit led=P2^0; //定义P2.0引脚为LED
void delay(u16 i) //延时函数
{
while(i--);
}
void main() //主函数
{
while(1) //循环函数,while循环函数条件为1,就永远循环下去
{
led=1; //LED接通
delay(5000); //延时5000,这个时间不准确,如果非要准确的花需要自己使用小工具来实现最好
led=0; //LED断开
delay(5000);
}
}
仿真演示:
利用proteus软件进行仿真具现出来。
可以看到,当我们启动仿真的时候,那么对应的LED灯就会亮一段时间,然后熄灭一段时间,这样就能实现了“眨眼睛”了。
全部0条评论
快来发表一下你的评论吧 !