点亮原理

首先我们要明白LED在单片机中的工作原理才能写出使其点亮的代码。请先看原理图:

VCC(电源)连接LED(D1~D8)的阳极,IO口P20~P27进电阻(RP9、RP10)依次连接LED(D1~D8)的阴极。电阻有限流保护LED的作用。

LED(发光二极管)只有在电流方向正确时才会被点亮;也就是说要让电流从“大头”进、“小头”出(阳极接正极,阴极接负极),才能成功点亮。

那么要如何实现呢?例如:我要点亮“D2”,只需要让P21口输出一个低电平(0)、VCC(电源)输出一个高电平(1),如此就实现了LED的点亮条件。

下面介绍两个方法,点亮LED灯

方法一

在写代码前我们还需了解一个知识、,sbit。sbit是定义特殊功能的寄存器的位变量(具体用法可自行去了解)。此处用法为:sbit 变量名=地址值;例如:sbit LED=P2^0 说明P2^0是变量LED的地址值,把地址赋给变量。

代码如下:

#include<reg52.h>    //51或者52都可以sbit LED=P2^1;       //注意P21口的写法,用keil的话,sbit要用在函数声明之前,原因很简单,自己想吧void main()
{while(1)        //死循环结构,让主程序一直运行{LED=0;        //使P21口输出低电平,以此点亮D2}
}

方法二

同样还是点亮第二个LED。试想一下如果P2口除了P21口都是高电平(1),只有P21低电平(0),是不是可以实现同样的功能呢?代码如下:

P2=0xFD;   //二进制1111 1101的16进制是0xFD,0x表示16进制

再来解释下为什么是0xFD(1111 1101):

单片机的每组IO口的电平状态都储存在一个单独的8位寄存器中(不知道概念的,可以去看看单片机的工作原理),1和0就对应IO口的高低电平。P2口对应的寄存器叫做“P2寄存器”,如果P2口除了P21口都是高电平(1),只有P21低电平(0),寄存器储存的值如下表:(注意IO口的顺序!)

7 6 5 4 3 2 1 0
1 1 1 1 1 1 0 1

也就是1111 1101,换算成16进制就是0xFD(大小写无所谓,小冉习惯了大写),0x表示16进制。

如直接1111 1101的话,会被识别成十进制,所以用16进制。

将所有东西集成到一个代码上的话,诸君请看:

#include <reg52.h>void main()
{while(1){P2=0xFD; }
}

然后将hex文件烧入单片机就点灯成功了。

51单片机:点亮LED灯相关推荐

  1. 51单片机点亮LED灯以及实现2盏LED灯的交替闪烁

    点亮LED灯,根据单片机原理图 将LED灯1和LED灯2介入单片机的口设为低电平即可 代码如下: #include "reg52.h" sbit led1= P3^7; void ...

  2. 51单片机--点亮LED灯和流水灯

    文章目录 前言 LED模块的原理 点亮一个LED灯 LED灯的闪烁 LED流水灯 前言 大家好,这里是诡异森林.我使用的是普中科技的A2的51开发板,适合新手入门.用到的应用是Keil5和Stc-is ...

  3. 51单片机,点亮LED灯和闪烁

    1.关键字sfr与sbit的区别 sfr是定义寄存器的字节地址,sbit是定义可位寻址的位地址 例如:sfr P1 =0x90; sbit A = P1^0 sbit B = P1^1; 2. 单片机 ...

  4. 用51单片机中断控制LED灯亮灭

    用51单片机中断控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k3=P3^2;//位定义按键 void dela ...

  5. 用51单片机点亮流水灯

    用51单片机点亮流水灯的几种方法 1. 直接按位操作一个一个点亮 #include<reg51.h>//头文件 sbit LED0=P2^0; //位定义单片机接LED灯的端口 sbit ...

  6. 51单片机点亮流水灯

    51单片机点亮流水灯 51单片机点亮流水灯 首先介绍开发板easyboard上的LED灯 P1端口通过74HC573连接到LED灯,查询74HC573芯片手册,内部由8个D锁存器构成,当OE为低电平, ...

  7. 单片机学习笔记————51单片机实现用LED灯和按键来模拟工业自动化设备的运动控制

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  8. STC89C52单片机 点亮LED灯

    点亮LED灯 一.什么是LED LED全称为半导体发光二极管,采用半导体材料制成的,以直接将电能转化为光能,电号转换成光信号的发光器件:其特点是功耗低.高亮度.色彩艳丽.坑振动.寿命长(正常发光8-1 ...

  9. 51单片机入门:LED灯闪烁(原理图+仿真+程序)

    目录 硬件电路设计 仿真电路设计 程序设计 仿真实现 在用51单片机点亮一个LED小灯的基础上,下面尝试将一个LED灯闪烁起来. 硬件电路设计 结合51单片机最小系统的知识,利用AD19画好最小系统电 ...

  10. 51单片机点亮LED和使用定时器中断控制蜂鸣器发声

      初学51单片机第一个实验一般都是以点亮LED灯开始,以下是使用Proteus仿真软件的实验效果.   实验需要仿真仪器:   示波器.LED.电压表.蜂鸣器.AT89C51 实验电路图: 实验代码 ...

最新文章

  1. vue使用webpack创建项目的命令
  2. outlook收不到html图片,急!求教高手!用outlook发送HTML格式邮件,图片不能显示是为什么...
  3. ORACEL游标的使用实例
  4. LINE: Large-scale Information Network Embedding
  5. jquery入门(一)
  6. 用imageMagick的composite合并图片
  7. mysql触发器如何获取当前表名_MCGS pro组态环境下,如何获取当前用户名,在画面上显示?...
  8. extjs 日期不显示
  9. 克服大数据集群的挑战
  10. exchange EWS 开发随笔二
  11. U盘病毒专杀工具Usbcleaner
  12. java打地鼠小游戏
  13. 2017.7.14 阿里巴巴校招面经
  14. 二维泊松方程求解-SIP-最速下降法-共轭梯度
  15. 陈艾盐:春燕百集访谈节目第二十一集
  16. 基于 GitLab CI 的前端工程CI/CD实践
  17. 经典网络结构 (八):轻量化网络 (SqueezeNet, MobileNet, ShuffleNet)
  18. 28岁程序员的2016规划
  19. Pytorch的nn.Conv2d()参数详解
  20. 数字IC后端实现TOP Floorplan专家秘籍

热门文章

  1. npz、npy数据集文件转换图片
  2. form表单回车会自动提交
  3. 高数——齐次方程中齐次的解释
  4. 秘密打印机涉密计算机之间,涉密打印机与涉密计算机之间应该怎么连接
  5. Axure RP 8基础原件介绍
  6. 深度学习数据增强方法总结
  7. Overture五线谱乐理小课堂——音程 (上)
  8. Day4.数据可视化拓展图形的绘制
  9. 手机端html5自动调用touch事件,移动端中touch事件的详解
  10. Go语言——没有对象的面向对象编程