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
    +关注

    关注

    237

    文章

    22462

    浏览量

    645910
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    620953
  • C语言
    +关注

    关注

    180

    文章

    7534

    浏览量

    128903
  • 函数
    +关注

    关注

    3

    文章

    3911

    浏览量

    61313
  • LED闪烁
    +关注

    关注

    0

    文章

    28

    浏览量

    9730
收藏 人收藏

    评论

    相关推荐

    如何利用51单片机实现LED的点亮/闪烁

    如何利用51单片机实现LED的点亮/闪烁
    发表于 09-27 07:59

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

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

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

    如何利用51单片机实现LED闪烁
    发表于 10-18 07:07

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

    如何利用51单片机实现LED闪烁
    发表于 10-19 09:18

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

    如何利用51单片机实现LED闪烁
    发表于 10-19 09:23

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

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

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

    如何利用AVR单片机实现LED闪烁
    发表于 10-29 07:29

    如何利用51单片机实现LED依次闪烁显示?

    如何利用51单片机实现LED依次闪烁显示?51单片机开发板怎么使用?软件KEIL4怎么用?
    发表于 11-03 07:22

    单片机实现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>的资料和程序免费下载

    使用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 8次下载
    <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>