51单片机:点亮LED灯
点亮原理
首先我们要明白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灯相关推荐
- 51单片机点亮LED灯以及实现2盏LED灯的交替闪烁
点亮LED灯,根据单片机原理图 将LED灯1和LED灯2介入单片机的口设为低电平即可 代码如下: #include "reg52.h" sbit led1= P3^7; void ...
- 51单片机--点亮LED灯和流水灯
文章目录 前言 LED模块的原理 点亮一个LED灯 LED灯的闪烁 LED流水灯 前言 大家好,这里是诡异森林.我使用的是普中科技的A2的51开发板,适合新手入门.用到的应用是Keil5和Stc-is ...
- 51单片机,点亮LED灯和闪烁
1.关键字sfr与sbit的区别 sfr是定义寄存器的字节地址,sbit是定义可位寻址的位地址 例如:sfr P1 =0x90; sbit A = P1^0 sbit B = P1^1; 2. 单片机 ...
- 用51单片机中断控制LED灯亮灭
用51单片机中断控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k3=P3^2;//位定义按键 void dela ...
- 用51单片机点亮流水灯
用51单片机点亮流水灯的几种方法 1. 直接按位操作一个一个点亮 #include<reg51.h>//头文件 sbit LED0=P2^0; //位定义单片机接LED灯的端口 sbit ...
- 51单片机点亮流水灯
51单片机点亮流水灯 51单片机点亮流水灯 首先介绍开发板easyboard上的LED灯 P1端口通过74HC573连接到LED灯,查询74HC573芯片手册,内部由8个D锁存器构成,当OE为低电平, ...
- 单片机学习笔记————51单片机实现用LED灯和按键来模拟工业自动化设备的运动控制
一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...
- STC89C52单片机 点亮LED灯
点亮LED灯 一.什么是LED LED全称为半导体发光二极管,采用半导体材料制成的,以直接将电能转化为光能,电号转换成光信号的发光器件:其特点是功耗低.高亮度.色彩艳丽.坑振动.寿命长(正常发光8-1 ...
- 51单片机入门:LED灯闪烁(原理图+仿真+程序)
目录 硬件电路设计 仿真电路设计 程序设计 仿真实现 在用51单片机点亮一个LED小灯的基础上,下面尝试将一个LED灯闪烁起来. 硬件电路设计 结合51单片机最小系统的知识,利用AD19画好最小系统电 ...
- 51单片机点亮LED和使用定时器中断控制蜂鸣器发声
初学51单片机第一个实验一般都是以点亮LED灯开始,以下是使用Proteus仿真软件的实验效果. 实验需要仿真仪器: 示波器.LED.电压表.蜂鸣器.AT89C51 实验电路图: 实验代码 ...
最新文章
- vue使用webpack创建项目的命令
- outlook收不到html图片,急!求教高手!用outlook发送HTML格式邮件,图片不能显示是为什么...
- ORACEL游标的使用实例
- LINE: Large-scale Information Network Embedding
- jquery入门(一)
- 用imageMagick的composite合并图片
- mysql触发器如何获取当前表名_MCGS pro组态环境下,如何获取当前用户名,在画面上显示?...
- extjs 日期不显示
- 克服大数据集群的挑战
- exchange EWS 开发随笔二
- U盘病毒专杀工具Usbcleaner
- java打地鼠小游戏
- 2017.7.14 阿里巴巴校招面经
- 二维泊松方程求解-SIP-最速下降法-共轭梯度
- 陈艾盐:春燕百集访谈节目第二十一集
- 基于 GitLab CI 的前端工程CI/CD实践
- 经典网络结构 (八):轻量化网络 (SqueezeNet, MobileNet, ShuffleNet)
- 28岁程序员的2016规划
- Pytorch的nn.Conv2d()参数详解
- 数字IC后端实现TOP Floorplan专家秘籍