基于单片机实现LED闪烁

描述

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);

}

}

led

仿真演示:

利用proteus软件进行仿真具现出来。

可以看到,当我们启动仿真的时候,那么对应的LED灯就会亮一段时间,然后熄灭一段时间,这样就能实现了“眨眼睛”了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分