0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机实现LED闪烁

CHANBAEK 来源: 工控小新 作者: 工控小新 2023-11-10 11:28 次阅读

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灯就会亮一段时间,然后熄灭一段时间,这样就能实现了“眨眼睛”了。

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

    关注

    242

    文章

    23314

    浏览量

    661739
  • 单片机
    +关注

    关注

    6039

    文章

    44583

    浏览量

    636623
  • C语言
    +关注

    关注

    180

    文章

    7608

    浏览量

    137181
  • 函数
    +关注

    关注

    3

    文章

    4338

    浏览量

    62778
  • LED闪烁
    +关注

    关注

    0

    文章

    29

    浏览量

    9848
收藏 人收藏

    评论

    相关推荐

    如何利用51单片机实现led闪烁

    如何利用51单片机实现led闪烁
    发表于 10-12 06:25

    如何利用STM32单片机实现LED闪烁

    如何利用STM32单片机实现LED闪烁
    发表于 10-25 06:19

    单片机实现LED闪烁的过程

    上期回顾:上篇文章我写了单片机入门(2):点亮奇数位/偶数位LED灯,这篇文章实现LED闪烁单片机
    发表于 11-25 08:09

    89C52单片机实现LED闪烁的方法

    ;第二个led寄存器置高电平LCALL DEL ;调用子程序,相当于调用函数,子程序执行完后则执行LCALL后的语句 CLRP2.0;LCALL DELAJMP START...
    发表于 12-02 08:13

    如何实现单片机led闪烁

    如何实现单片机led闪烁
    发表于 01-19 07:42

    使用STC15系列单片机实现LED闪烁的资料和程序免费下载

    本文档的主要内容详细介绍的是使用STC15系列单片机实现LED闪烁的资料和程序免费下载。
    发表于 09-20 17:19 21次下载
    使用STC15系列<b class='flag-5'>单片机</b><b class='flag-5'>实现</b><b class='flag-5'>LED</b><b class='flag-5'>闪烁</b>的资料和程序免费下载

    使用51单片机的定时器实现LED闪烁的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机的定时器实现LED闪烁的程序免费下载。
    发表于 08-22 17:30 7次下载
    使用51<b class='flag-5'>单片机</b>的定时器<b class='flag-5'>实现</b><b class='flag-5'>LED</b><b class='flag-5'>闪烁</b>的程序免费下载

    使用80C51单片机实现LED闪烁的程序和电路图免费下载

    本文档的主要内容详细介绍的是使用80C51单片机实现LED闪烁的程序和电路图免费下载。
    发表于 07-16 17:39 5次下载
    使用80C51<b class='flag-5'>单片机</b><b class='flag-5'>实现</b><b class='flag-5'>LED</b><b class='flag-5'>闪烁</b>的程序和电路图免费下载

    LED闪烁的程序和电路图及仿真资料免费下载

    本文档的主要内容详细介绍的是使用单片机实现LED闪烁的程序和电路图及仿真电路图免费下载。
    发表于 05-28 12:04 16次下载
    <b class='flag-5'>LED</b><b class='flag-5'>闪烁</b>的程序和电路图及仿真资料免费下载

    使用单片机实现闪烁LED的程序和仿真资料免费下载

    本文档的主要内容详细介绍的是使用单片机实现闪烁LED的程序和仿真资料免费下载。
    发表于 06-11 16:59 13次下载
    使用<b class='flag-5'>单片机</b><b class='flag-5'>实现</b><b class='flag-5'>闪烁</b><b class='flag-5'>LED</b>的程序和仿真资料免费下载

    使用单片机实现LED闪烁的程序和仿真工程文件免费下载

    本文档的主要内容详细介绍的是使用单片机实现LED闪烁的程序和仿真工程文件免费下载。
    发表于 03-17 17:00 19次下载

    51单片机led闪烁实例

    51单片机代码实例(keil)源代码
    发表于 11-12 12:21 6次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>led</b>灯<b class='flag-5'>闪烁</b>实例

    单片机零基础入门(3):实现LED闪烁

    上期回顾:上篇文章我写了单片机入门(2):点亮奇数位/偶数位LED灯,这篇文章实现LED闪烁单片机
    发表于 11-17 16:06 16次下载
    <b class='flag-5'>单片机</b>零基础入门(3):<b class='flag-5'>实现</b><b class='flag-5'>LED</b>灯<b class='flag-5'>闪烁</b>

    STM32和C51单片机实现程序设计与仿真测试(LED闪烁

    STM32和C51单片机实现程序设计与仿真测试(LED闪烁
    发表于 11-20 11:36 26次下载
    STM32和C51<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>程序设计与仿真测试(<b class='flag-5'>LED</b><b class='flag-5'>闪烁</b>)

    单片机led闪烁实验总结_Linux下单片机开发2(C51):LED闪烁

    :/**************************************************************************************然后make 代码没有什么问题就写入单片机中效果如下LED
    发表于 01-17 10:51 2次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>led</b>灯<b class='flag-5'>闪烁</b>实验总结_Linux下<b class='flag-5'>单片机</b>开发2(C51):<b class='flag-5'>LED</b><b class='flag-5'>闪烁</b>