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

    关注

    237

    文章

    22455

    浏览量

    645903
  • 二极管
    +关注

    关注

    144

    文章

    9020

    浏览量

    161393
  • 单片机
    +关注

    关注

    6002

    文章

    43987

    浏览量

    620937
  • 发光二极管
    +关注

    关注

    13

    文章

    1138

    浏览量

    65692
收藏 人收藏

    评论

    相关推荐

    光控和声控及单片机结合控制LED

    请问各位大神有谁做过或者可以给点指导?想做光控和声控及单片机结合控制LED。可以提供电路图和编程吗?感激不尽各位大神
    发表于 03-22 14:33

    安卓手机与蓝牙模块联合调试—— 单片机蓝牙控制LED(上)

    系列博文:(1)安卓手机与蓝牙模块联合调试(一)——蓝牙模块的串口通讯 (2)安卓手机与蓝牙模块联合调试(二)—— 单片机蓝牙控制LED
    发表于 07-01 07:36

    如何用单片机编程实现LED与闪烁呢

    怎样去使用51单片机开发板?怎样去安装51单片机开发板所需软件?如何用单片机编程实现LED
    发表于 10-18 07:11

    如何利用52单片机控制led

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

    如何利用51单片机控制LED变化?

    如何利用51单片机控制LED变化?
    发表于 11-04 06:41

    如何利用STM32F103单片机的按键中断实现led

    如何利用STM32F103单片机的按键中断实现led
    发表于 11-17 08:01

    如何利用单片机控制LED

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

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

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

    利用AVR单片机控制指定LED的方法

    本系列教程以AVR单片机为对象,介绍单片机的快速开发方法。参考教材:《单片机技术及应用项目教程》 栾秋平 电子工业出版社 2019.6 第1版本文介绍控制指定
    发表于 11-24 07:12

    单片机按键是如何控制led

    单片机 按键控制led初始状态按下k1按下k2按下剩余按键再按下k1按下剩余按键代码如下#include void delay(unsi
    发表于 12-01 07:02

    单片机中是如何去控制LED

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

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

    题目概述:单片机用按键控制LED。编程:#include ***it beep=P1^5;***it
    发表于 12-10 08:14

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

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

    AVR单片机实现LED彩灯控制器设计

    本设计外接了两个按钮,一个是选择工作模式,另一个是电源的开关。当你按下模式按钮1.5秒以上时,进入自动模式,会自动演示所有的预设模式。
    发表于 07-25 09:46 1840次阅读

    采用STC12C5A60S2单片机实现LED数字屏的控制设计

    自上世纪90 年代以来, 随着LED 显示技术设计制造水平的不断提高,LED 数字屏逐渐在生产和生活中大量使用,LED 数字屏以其特有的显示介质, 在大面积, 全天候, 高亮度和超高亮度显示屏领域凸现优势。
    的头像 发表于 10-31 09:42 8495次阅读
    采用STC12C5A60S2<b class='flag-5'>单片机</b><b class='flag-5'>实现</b><b class='flag-5'>LED</b>数字屏的<b class='flag-5'>控制</b>设计