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

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

3天内不再提示

基于51单片机点亮LED的原理解析

CHANBAEK 来源:透析之眼 作者: AdamChen 2023-10-31 17:37 次阅读

51单片机中,有4个组I/O口,分别是P0、P1、P2、P3;I/O(Input/Output)口,Input表示输入电平信号,Out表示输出电平信号。在数字电路中,电平有高低电平两种,也就是说I/O口,这个端口可以输入或者输出高低电平。

不同数字电路系统中,对于电平的定义的电压不一样。而在STC89C52中5V的系统中(如下图所示),低于0.8V被识别为低电平,而高于2.0V被识别为高电平。

LED电路原理图:

在51单片机系统中,LED正极接电源VCC(5V),负极接串联一个470欧电阻,连接到单片接P2。

图片

LED点亮原理 :

以P20口为例说明,LED可以点亮的原理。

单片机P20口的引脚为高电平,LED连接的VCC为端高电平,没有形成回路,形成不了电流,LED1不会亮。当单片机P20口的引脚为低电平,LED连接的VCC为端高电平,形成回路,形成电流从VCC流向P20口,LED1亮。

C51代码:

新建工程,编写程序。

#include "reg52.h"


sbit led0 = P2^0;


void main(){
    led0 = 0;


}

代码解析:

(1)#include "reg52.h",包含头文件,添加51单片机特殊定义

(2)sbit led0 = P2^0, 声明位变量,并赋值。声明位变量,将P2的第0口赋值给 led0;可以通过,控制led0变量控制P2的第0口电平。

(3)void main(),C语言入口函数,代码执行的入口。

(4)led0 = 0,将P2的第0口电平输出低电平。

注意事项:
编译后可能没有错误,但是没有生成执行文件或者执行文件会没有效果。

(1)新建工程后,并没有选择生成hex文件,需要到下面位置进行设置。

图片

(2)新建文件.c文件,写入代码后没有,将.c文件添加到项目中。需要双击项目文件夹(如箭头所示),将.c添加进入项目。

图片

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

    关注

    237

    文章

    22454

    浏览量

    645894
  • 单片机
    +关注

    关注

    6002

    文章

    43980

    浏览量

    620885
  • 电路原理图
    +关注

    关注

    38

    文章

    344

    浏览量

    37769
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120718
  • 数字电路
    +关注

    关注

    192

    文章

    1397

    浏览量

    79753
收藏 人收藏

    评论

    相关推荐

    如何去点亮基于51单片机LED流水灯

    如何让8个小灯依次一个接一个的点亮?怎样去编写基于51单片机LED流水灯的程序?如何去点亮基于51
    发表于 08-11 08:49

    51单片机是如何点亮LED点阵?

    51单片机是如何点亮LED点阵?
    发表于 09-30 06:02

    C51单片机如何点亮LED灯?

    C51单片机如何点亮LED灯?
    发表于 10-15 06:00

    如何利用51单片机实现led灯的点亮

    如何利用51单片机实现led灯的点亮
    发表于 10-26 07:43

    如何点亮51单片机LED灯?

    如何点亮51单片机LED灯?
    发表于 11-04 07:36

    请问51单片机/STM32单片机/嵌入式Linux是如何点亮LED灯的?

    请问51单片机/STM32单片机/嵌入式Linux是如何点亮LED灯的?
    发表于 11-22 07:44

    51单片机点亮一个LED

    当我们学过51单片机之后就知道在51单片机点亮一个LED很简单一句代码就可以实现。只需要将
    发表于 12-07 06:39

    如何利用51单片机点亮一个LED灯?

    如何利用51单片机点亮一个LED灯?
    发表于 01-24 07:27

    AT89C51单片机点亮LED

    AT89C51单片机点亮LED1、环境要求安装proteus(用来单片机仿真的)安装keli(用来生成
    发表于 11-11 14:36 10次下载
    AT89C<b class='flag-5'>51</b><b class='flag-5'>单片机</b>之<b class='flag-5'>点亮</b><b class='flag-5'>LED</b>

    51单片机——LED灯的点亮

    点亮LED原理单片机点亮LED 利用LED阳极为正阴极为负才会导通
    发表于 11-11 19:21 19次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>——<b class='flag-5'>LED</b>灯的<b class='flag-5'>点亮</b>

    hc06蓝牙模块接51单片机点亮LED

    hc06蓝牙模块接51单片机点亮LED
    发表于 11-20 19:06 48次下载
    hc06蓝牙模块接<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b>

    51单片机实验8:led点阵(2):点亮一个数字图案

    51单片机实验8:led点阵(2):点亮一个数字图案
    发表于 11-23 16:36 5次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>实验8:<b class='flag-5'>led</b>点阵(2):<b class='flag-5'>点亮</b>一个数字图案

    51单片机 点亮一个LED LED闪烁

    (1) //循环 { }}使用51单片机点亮一个LED#include <reg52.h> //51
    发表于 11-23 17:06 5次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b> <b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b> <b class='flag-5'>LED</b>闪烁

    51单片机——点亮一个LED

    51单片机——点亮一个LED灯文章目录51单片机——点亮
    发表于 11-23 18:06 16次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>——<b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>灯

    基于51单片机点亮LED

    入门51单片机第一步,就是学会点亮一个LED灯,这是所有初次接触单片机开发的小伙伴的必经之路,管你现在是不是大牛,当年肯定历经此事。
    发表于 07-11 11:38 1062次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b>灯