led点亮

工作原理


如图,二极管阳极连接电阻,二极管阴极连接单片机引脚。D0对应P20,D1对应P21,,,,,,,都通过P2孔进行控制。
二极管:

电源正极连接到二极管阳极,负极连接到阴极,二极管正常工作。所以,原理图中,引脚为低电平,连接的是二极管的阴极,阳极通过与电阻连接,电阻连接的是高电平,所以二极管正常工作。电阻的作用为保护二极管。

程序编写
#include"reg52.h"
sbit LED=P2^0;  /*sbit用于定义变量。LED为自定义变量。将P2.0(注意不要写成P2.0,应写为P^0)孔赋给变量LED*/
void main()
{
while(1)
{
LED=0;/*由二极管的工作原理可得,二极管接P2.0孔,所以该孔为低电平,为0*/
}
}

LED闪烁实验

  • 工作原理
    在点亮LED灯的基础之上。
    原理上基本与点亮LED灯工作原理相同。
    自定义一个延时函数。
    主函数先点亮灯,在调用延时函数,在熄灭灯,然后在调用延时函数,将这些放入循环一直执行。完成
  • 代码
#include "reg52.h"
typedef unsigned char u8; //重定义字符型变量
typedef unsigned int u16; //重定义整型变量/*自定义延时函数*/
void dealy(u16 i)
{
while(i--);
}
sbit led=P2^0;void main()
{while(1){led=0;    //点亮,阴极接低电平dealy(50000);led=1;  //熄灭,阴极接高电平dealy(50000);}
}

LED流水灯

工作原理

1.在LED点亮、LED闪烁实验的基础之上。
2.移位函数
crol(a,b):循环左移函数,a为左移的值,b为左移的位数。
cror(a,b):循环右移函数,a为右移的值,b为右移的位数。
移位函数包含在instrins.h库函数里面。
3.c语言中十六进制的表示

  • Ox代表的是十六进制的前缀,不用读。例如OXaaOxbb,只看aa,bb就行。
  • 十六进制到二进制转换
    十六进制表示:每一位有不同的数码0~9,A(10),B(11),C(12),D(13),E(14),F(15)
    十六进制转二进制:将十六进制的每一位转化为二进制即可。例如8FA,=>1000 1111 1010
  • 运作过程
  • 先看原理图

    LED原理图(阳极解高电平),阴极通过电阻接接引脚

    引脚默认接高电平,所以,初始时灯为熄灭状态。
  • 流水实现
    利用十六进制位位移函数实现左移和右移
    crol(0xfe,1):0xfe转化为二进制为1111 1110;1代表位数
    f代表原理图中的4个高位引脚,e代表4个低位引脚。
    1111 1110 =>p0=0(低电平,灯亮)
    1111 1101 =>左移,p1=0,第二个灯亮
    1111 1011 =>p2
    …………
    crotl(oxfe,1):与左移原理相同(从0111 1111 开始向右移)
  • 代码实现
#include <reg52.h>
#include <intrins.h>
typedef unsigned char u8; //重定义全局字符型变量
typedef unsigned int u16; //重定义全局整型变量
#define led P2//宏定义LED为p2端口
/*延时函数*/
void dealy(u16 i)
{
while(i--);
}void main()
{u16 i;                   //定义变量iP2=0xfe;               //点亮第一个LED灯,即1111 1110.dealy(50000);       //延时450mswhile(1){for(i=0;i<7;i++)                //8个LED灯,利用for循环一直执行{ led=_crol_(led,1);            //  1111~1110~0111 1111,左移dealy(50000);}for(i=0;i<7;i++)               //8个LED灯,利用for循环一直执行{ led=_cror_(led,1);            //0111 1111~1111 1110    ,右移dealy(50000);}}}

51单片机LED点灯实验(闪烁,点亮,流水灯)相关推荐

  1. 51单片机 | LED点阵实验 | 点亮一个点 | 显示数字 | 显示图像

    文章目录 一.LED点阵介绍 二.硬件设计 三.软件设计 1.LED点阵(点亮一个点) 2.LED点阵(显示数字) 3.LED点阵(显示图像) 四.实验现象 1.LED 点阵(点亮一个点) 2. LE ...

  2. 51单片机LED点阵实验(74HC595)

    实验目的:用8*8的LED点阵显示一颗爱心. 实验仪器:普中开发板(非广告) 实验背景:出于一些原因,最近在看Arduino,但仍觉得51好玩.遂,一边看Arduino,一边整理51. 8*8的LED ...

  3. 51单片机LED 1秒闪烁

    1.单片机晶振的脉冲的频率和周期为 F = f/12 = 11.0592M/12 = 0.9216MHZ      T = 1/F = 1.085us 2.在主频为11.0592M时,每计一个脉冲为1 ...

  4. 基于51单片机的8个小彩灯花样流水灯proteus仿真汇编语言

    仿真电路如下图所示: 部分代码: ORG 0000H AJMP START ORG 0003H AJMP INTR0 ORG 0013H AJMP INTR1 START:MOV IE,#85H MO ...

  5. 51单片机 LED点亮、闪烁以及流水灯实现

    文章目录 一.Keil创建项目 二.Proteus搭建虚拟仿真电路 三.LED点亮 四.LED闪烁 五.流水灯实现 1. 流水灯(库函数法) 2. 流水灯(左移法) 3. 流水灯(右移法) 4. 流水 ...

  6. 51单片机LED模拟交通灯

    51单片机LED模拟交通灯 文章目录 51单片机LED模拟交通灯 实验环境 仿真图 代码解析 效果演示 实验环境 实验软件: Keil5 + Proteus7 实验元件: AT89C51 * 1, L ...

  7. 基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计

    基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计 必看!!视频讲解 基于51单片机的LED彩灯霓虹灯心形流水灯设计 这里写目录标题 1 开发环境 2 功能说明介绍 3 仿真图 4 ...

  8. 51单片机的仿真实验——1602显示屏显示万年历与温度

    实验内容: 1:数字钟设计 2:基于DS18B20的温度测量模块设计 问题描述: 之前笔者写过一篇用数码管显示日历与温度的实验记录(51单片机的仿真实验--数码管显示日历与温度).但是数码管在仿真软件 ...

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

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

最新文章

  1. web---html+css+js登录界面
  2. 【若依(ruoyi)】获取mainContent的宽高
  3. hive olap 数据仓库_数据仓库系统的实现和使用(含OLAP重点讲解)
  4. pfsense 2.2RC版本应用
  5. springboot细节挖掘(配置Swagger2)
  6. 架构部署002--城域网_骨干网
  7. SpringBoot 2.3.x gradle源码构建
  8. Butterfly美化
  9. 如何屏蔽百度网盟广告
  10. Linux报错:tar: Error Is Not Recoverable: Exiting Now
  11. 使用wkhtmltopdf 将网页转PDF
  12. 微信内测新功能(深度清理),瞬间释放几个G内存!
  13. uni-app安卓禁止截屏,一行代码
  14. Java JVM 动态方法调用指令 invokedynamic 实现分析(以 Lambda 表达式实现原理为例)...
  15. Toast的高级自定义方式-循序渐进带你了解toast
  16. 数据在网络中是如何传输的
  17. 梦幻诛仙微信181服务器,《梦幻诛仙》手游数据互通服务器大全
  18. arduino 休眠 节能_魔法书3:让 Arduino 慢下来 20倍省电
  19. fallout3 辐射3 难句囧翻译1
  20. android学习之路(九)---- android相册Gallery2

热门文章

  1. ruby crawler Anemone
  2. 【vscode基于clangd实现Android/Linux代码跳转】
  3. java byte 图片浏览器直接显示_以Spring Boot的方式显示图片或下载文件到浏览器的示例代码...
  4. 区块链与数字货币关系,区块链显然不等同数字货币
  5. NVE-01-2015-11090:SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808) [端口: 443]
  6. Mjpeg-streamer源码学习笔记-Main-守护进程Daemon(二)
  7. [bzoj1191][二分图匹配]超级英雄Hero
  8. Delphi压缩解压文件,无需第三方控件
  9. requests进阶
  10. 切矢量瓦片iserver发布面丢失问题