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

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

3天内不再提示

使用单片机实现对LED的亮灭控制

CHANBAEK 来源:电子开发之家 作者:小树 2023-10-31 15:50 次阅读

发光二极管

发光二极管简称为LED。由镓、砷、磷的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。

发光二极管与普通二极管一样也具有单向导电性。当给发光二极管加上大于其导通电压的正向电压后,就会有电流产生,同时发出相应颜色的光,不同颜色的二极管的工作也是不一样的,一般发光二极管的工作电压是2V,其工作电流大多为5—20mA,因此如果用5V的电源进行供电则需要加入限流电阻,其阻值由下式计算:

R=U-Ue/I

利用单片机控制LED的工作原理

图片

图3.1.1 LED工作原理图

单片机的I/O口有两种状态“1”和“0”,当为“1”时其管脚输出为高电平,即为5V,当为“0”时为低电平,即为0V。

由上图可以,当P0.0为高时发光二级管两端电压相同,即不会产生电流,发光二极管就不会发光,当P0.0为低时,5V和P0.0就会有5V的电压,就会有电流流过LED0,使发光二极管发光。这样我们通过控制单片机的I/O口的高低电平就能实现对LED 的亮灭控制。

3.1.1使LED间隔亮灭

图片

图3.1.3 LED间隔亮灭程序

单片机IO口	模块接口	杜邦线数量	功能
P0.0	         LED1	         1	         控制LED1
P0.1	         LED2	         1	         控制LED2
P0.2	         LED3	         1	         控制LED3
P0.3	         LED4	         1	         控制LED4
P0.4	         LED5	         1	         控制LED5
P0.5	         LED6	         1	         控制LED6
P0.6	         LED7	         1	         控制LED7
P0.7	         LED8	         1	         控制LED8

表3.1.1 LED间隔亮灭接线方式

实验现象:LED间隔亮灭,第一个LED不亮,第二个亮,第三个不亮……

图片

图3.1.4 LED间隔亮灭运行图

程序讲解:

1、#include在reg52.h中有为单片机中特殊寄存器定义的宏,例如P0对应的寄存器为0X90,直接用P0就代替了枯燥的数字,减轻程序员的记忆内容。

2、main()函数。C 程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程 序运行的入口。其余函数分为有参或无参两种,均由 main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。一个程序有且只有一个 main 函数。

3、while()。计算机的一种基本循环模式。当括号内表达式的值为“1”进入循环,不满足则跳出。因为本程序只是使一个I/O口拉低,因此在循环里不需要任何内容。

3.1.2 一个LED闪烁

图片

图3.1.4 LED闪烁流程图

延时原理:单片机每执行一条指令都需要一定的时间(t),如果某条指令执行N次那么所耗费的时间将会是T=N*t;我们可以通过改变N的大小来改变延时的时间长短。

图片

图3.1.5 实物连线图

杜邦线连接——单片机IO和模块接口

单片机IO口	模块接口	杜邦线数量	功能
P0.0		LED1		1		LED闪亮

表3.1.2 LED闪烁接线方式

图片

图片

图3.1.6 LED闪烁程序

程序讲解:

sbit 这个关键字是C51中特有的,用于定义 SFR(特殊功能寄存器)的位变量。sbit LED=P0^0; 表示定义发光管连接的硬件端口, LED 定义在P1 (特殊功能寄存器的第0位,即P1.0,定义了这个端口以后,下面对P1.0的操作,我们就可以直接用 LED 代替,

LED=1; //将P1.0 口赋值 1,对外输出高电平

LED=0; //将P1.0 口赋值 0,对外输出低电平

由于sbit定义位变量,所以赋值结果只有 0和 1。

实验现象:开发板上的第一个LED闪亮

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

    关注

    241

    文章

    23135

    浏览量

    658445
  • 二极管
    +关注

    关注

    147

    文章

    9572

    浏览量

    165893
  • 单片机
    +关注

    关注

    6032

    文章

    44516

    浏览量

    632991
  • 发光二极管
    +关注

    关注

    13

    文章

    1193

    浏览量

    66200
收藏 人收藏

    评论

    相关推荐

    如何利用52单片机控制led

    如何利用52单片机控制led
    发表于 10-28 08:05

    如何利用单片机控制LED

    实验内容此次实验为利用单片机读取开关的状态从而控制LED。实验环境仿真软件Protue 8.9 sp2IDEKeil5 C51
    发表于 11-18 06:33

    如何用51单片机实现按键控制LED

    用51单片机实现按键控制LED#include//头文件***it
    发表于 11-18 06:20

    单片机中是如何去控制LED

    单片机控制LED通常可以通过控制IO口的电平来实现
    发表于 12-01 06:18

    如何去实现单片机开关控制LED的代码程序呢

    如何去实现单片机开关控制LED的代码程序呢?
    发表于 02-25 07:04

    使用51单片机控制数码管的动静态显示和控制LED的程序及资料

    本文档的主要内容详细介绍的是使用51单片机控制数码管的动静态显示和控制LED的程序及资料免费
    发表于 09-09 17:26 10次下载
    使用51<b class='flag-5'>单片机</b><b class='flag-5'>控制</b>数码管的动静态显示和<b class='flag-5'>控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>的程序及资料

    单片机上使用开关控制LED的程序免费下载

    本文档的主要内容详细介绍的是在单片机上使用开关控制LED的程序免费下载。
    发表于 09-06 17:26 1次下载
    在<b class='flag-5'>单片机</b>上使用开关<b class='flag-5'>控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>的程序免费下载

    使用51单片机UART通信进行发送和接收数及控制LED的程序说明

    本文档的主要内容详细介绍的是使用51单片机UART通信进行发送和接收数数字字母中文及控制LED的程序说明免费下载。
    发表于 08-28 17:29 1次下载
    使用51<b class='flag-5'>单片机</b>UART通信进行发送和接收数及<b class='flag-5'>控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>的程序说明

    实现单片机控制LED灯循环的proteus仿真电路和程序免费下载

    本文档的主要内容详细介绍的是实现单片机控制LED灯循环的proteus仿真电路和程序免费下载
    发表于 08-26 17:30 16次下载
    <b class='flag-5'>实现</b><b class='flag-5'>单片机</b><b class='flag-5'>控制</b><b class='flag-5'>LED</b>灯循环<b class='flag-5'>亮</b><b class='flag-5'>灭</b>的proteus仿真电路和程序免费下载

    使用51单片机实现按下LED松开的简单按键程序免费下载

    本文档的主要内容详细介绍的是使用51单片机实现按下LED松开的简单按键程序免费下载。
    发表于 08-26 17:30 10次下载
    使用51<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>按下<b class='flag-5'>LED</b><b class='flag-5'>亮</b>松开<b class='flag-5'>灭</b>的简单按键程序免费下载

    使用51单片机按键控制LED和单个IO翻转的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机按键控制LED和单个IO翻转的程序免费下载。
    发表于 07-08 17:41 12次下载
    使用51<b class='flag-5'>单片机</b>按键<b class='flag-5'>控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>和单个IO翻转的程序免费下载

    STM32F103实验二:按键控制LED

    STM32单片机按键控制LED
    发表于 12-16 16:55 62次下载
    STM32F103实验二:按键<b class='flag-5'>控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>

    基于51单片机的PWM控制LED灯渐设计资料源程序

    基于51单片机的PWM控制LED灯渐设计资料源程序
    发表于 04-27 15:09 22次下载

    单片机独立按键控制4个LED

    单片机四个按键分别控制四个LED
    发表于 08-29 09:17 4594次阅读

    stm32按键控制led

    stm32按键控制led  在嵌入式系统中,硬件按键常常被用作开关输入,控制LED
    的头像 发表于 09-02 17:05 1w次阅读