51单片机——LED灯

2023-11-17

如下图所示是51单片机的开发板原理图:
我们想要让二极管D1亮,只需要把p20口置低电平即可,只需要把P2寄存器第0位置0
在这里插入图片描述

在这里插入图片描述

LED原理解释:CPU配置寄存器的值来控制硬件电路达到我们预期效果
在这里插入图片描述

例程1:点亮第一个LED

#include <REGX52.H>
void main(){
	P2 = 0xFE; //1111 1110
	//P2_0 = 0;//这种写法也行
}

例程2:LED闪烁

#include<REGX52.H>
void sleep(int i){
	while(i--){
	}
}
void main(){
	while(1){
		P2 = 0xFE;//1111 1110
		sleep(50000);
		P2 = 0xFF;
		sleep(50000);
	}
}

例程3:LED流水灯

#include<REGX52.H>


void sleep(int i){
	while(i--){
		
	}
}

void main(){
	
	while(1){
		//1111 1110 0xFE
		//1111 1101 0xFD
		//1111 1011 0xFB
		//1111 0111 0xF7
		//1110 1111 0xEF
		//1101 1111 0xDF
		//1011 1111 0xBF
		//0111 1111 0x7F
		P2 = 0xFE;//1111 1110
		sleep(50000);
		
		P2 = 0xFD;
		sleep(50000);
		
		P2 = 0xFB;
		sleep(50000);
		
		P2 = 0xF7;
		sleep(50000);
		
		P2 = 0xEF;
		sleep(50000);
		
		P2 = 0xDF;
		sleep(50000);
		
		P2 = 0xBF;
		sleep(50000);
		
		P2 = 0x7F;
		sleep(50000);
	}
}

流水灯优化后:

#include<REGX52.H>
void sleep(int i){
	while(i--){
	}
}
void main(){
	unsigned char LEDNum = 0;
	while(1){
		P2=~(0x01<<LEDNum);
		sleep(50000);
		
		LEDNum++;
		if(LEDNum>=8){
			LEDNum = 0;
		}
	}
}

效果展示:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机——LED灯 的相关文章

  • 无法打开这个应用,查看Microsoft store, 了解有关Nahimic的详细信息

    win s 打开搜索框 输入 Nahimic 鼠标右键单击 打开应用设置 点击 修复 重启电脑
  • 计算机图形学:Bezier曲线的绘制

    1 实验目的 掌握Bezier曲线的定义原理及绘制过程 定义 贝塞尔曲线 Bezier curve 又称贝兹曲线或贝济埃曲线 是应用于二维图形应用程序的数学曲线 一般的矢量图形软件通过它来精确画出曲线 贝兹曲线由线段与节点组成 节点是可拖动
  • 什么是千年虫?计算机如何开始处理日期?都有哪些时间日期格式化?

    目录 千年虫 漏洞 Year 2000 Problem 简称 Y2K 计算机是怎么开始处理日期的么 举例1 时间格式化举例 过滤器 举例2 时间格式化 自定义私有过滤器 日期格式化 高性能计数器演示 OLE时间对象 时间的基本用法 千年虫
  • 【Hello Algorithm】二叉树的递归套路

    本篇博客介绍 介绍二叉树的递归套路算法 二叉树的递归套路 递归思路 判断二叉树是否是平衡二叉树 判断二叉树是否是搜索二叉树 返回二叉树节点的最大距离 验证一棵树是否是满二叉树 寻找最大的BST子树 判断二叉树是否是完全二叉树 判断二叉树的最
  • Shell脚本:expect脚本免交互

    Shell脚本 expect脚本免交互 expect脚本免交互 一 免交互基本概述 1 交互与免交互的区别 2 格式 3 通过read实现免交互 4 通过cat实现查看和重定向 5 变量替换 二 expect安装 1 概述 2 作用 3 e

随机推荐

  • RuntimeError: one of the variables needed for gradient computation has been modified by an inplace o

    RuntimeError one of the variables needed for gradient computation has been modified by an inplace operation torch cuda F
  • 牛客每日刷题

    作者简介 我是18shou 一名即将秋招的java实习生 个人主页 18shou 系列专栏 牛客刷题专栏 在线刷题面经模拟面试 目录 题目 思路 题解 题目 给定一个长度为 n 的字符串 请编写一个函数判断该字符串是否回文 如果是回文请返回
  • computed计算属性和data_computed与watched选项的比较

    computed 通过属性计算而得来的属性 1 支持缓存 只有依赖数据发生改变 才会重新进行计算 computed 属性值会默认走缓存 计算属性是基于它们的响应式依赖进行缓存的 也就是基于data中声明过的数据通过计算得到的 2 不支持异步
  • 3.python学习笔记——Python数据类型转换

    有时候 我们需要对数据内置的类型进行转换 数据类型的转换 你只需要将数据类型作为函数名即可 以下几个内置的函数可以执行数据类型之间的转换 这些函数返回一个新的对象 表示转换的值 int x base 将x转换为一个整数 float x 将x
  • Modern C++ for C 程序员 第4部分

    文章目录 面向 C 程序员的 Modern C 系列第4部分 Lambdas 扩展我们的索引器 容器和算法 查找 STL中的查找算法 更多的容器 Boost容器 Boost MultiIndex 总结 这是bert hubert的系列文章
  • opencv3特征检测的配置与使用

    官网下载opencv for Linux 和opencv contrib opencv版本 3 4 1 编译安装 编译选项为 cmake D OPENCV EXTRA MODULES PATH
  • 在colab中运行shell

    只需要在cell单元格第一行加上 shell 然后按运行按钮 就可以将单元格的内容当做shell执行了 参考例子 https colab research google com drive 1N7p0B 7QWEQ9TIWRgYLueW03
  • 背景的偏移与定位和背景固定

    background position背景的偏移 背景图片默认是贴着元素的左上角显示 通过background position可以调整背景图片在元素中的位置 可选值 该属性可以使用 top right left bottom center
  • java resultset 最后一行_Java:删除选定的行ResultSet,从数据库中删除最后一行?

    谢谢 Germann 我解决了它 我将提供解决方案 以便其他人可以从中获得帮助 你是对的resultSet absolute 返回布尔值 但它也将光标移动到其参数resultSet absolute table getSelectedRow
  • html2canvas 绘制海报清晰度

    场景 使用html2canvas绘制海报 生成海报比较模糊 解决方案 方案一 增大dpi dpi DPI是指某些设备分辨率的度量单位 DPI越低 扫描的清晰度越低 DPI越高 清晰度越高 由于受网络传输速度的影响 web上使用的图片都是72
  • springboot整合mybatis时Could not resolve type alias 'xxx'

    注意 不管用下列哪种解决方法 都要在启动类中加入 总结 springboot整合mybatis要扫描三个东西 mapper接口类 映射文件xxxmapper xml 实体类 指定mapper接口类的位置 MapperScan basePac
  • Windows Terminal 配置(Neovim配置)

    Neovim的意义 vim是在linux上非常好用的编辑器 IDE 毕竟高度可配置 如果你是一名linux的开发人员 当切换到windows上时可以通过通过这个快速适应 配置完成后你可以直接在powershell中通过vim的命令进行编辑文
  • ceph集群换盘

    一引言 某地项目运行两年后磁盘批量报错 利用smartctl检测发现出现大量扇区错误 但并未达到彻底无法读写程度 统计下来发现数量接近40块 考虑批次换盘 坏盘期间为了保证不影响业务 需拟定一个较好的方案 二 方案 在查阅一堆资料后 发现无
  • 地图切片工具集合

    最近比较感兴趣地图瓦片生成 搜到不少有用的工具 发现以下三种已经比较成熟 文档齐全 当然还有很多专门的工具或者更好而且没有发现 欢迎补充 MapTiler gdal2tiles GUI版 目前版本为alpha 能够切成符合tms标准格式的瓦
  • 数据库中的关键字——字段(列)、记录(元组)、表、主键、外键

    一 字段 列 某一个事物的一个特征 或者说是属性 其中姓名就是员工的一个属性 可称之为字段 二 记录 元组 事物所有特征的组合 可以描述一个具体的事物 三 表 记录的组合 表示 同一类 事物的组合 四 主键 能唯一标识信息的事物 在说主键之
  • JAVA基础原理篇_1.1—— 关于JVM 、JDK以及 JRE

    目录 一 关于JVM JDK以及 JRE 1 JVM 2 JDK 3 JRE 二 为什么说 Java 语言 编译与解释并存 2 2 将高级编程语言按照程序的执行方式分为两种 2 2 Java的执行过程 2 3 所以为什么Java语言 编译与
  • Win7缺少d3dcompiler_43.dll文件如何处理?

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个d3dcompiler 43 dll文件进行安装
  • 使用tar --checkpoint提权操作 详解--checkpoint-action的参数及作用

    如果管理员给予了某个普通用户tar命令的超级管理员操作 那么我们可以使用tar命令进行提权 命令如下 sudo u root tar cf dev null exploit checkpoint 1 checkpoint action ex
  • error:03000086:digital envelope routines::initialization error

    error 03000086 digital envelope routines initialization error 问题原因分析 1 node版本问题 2 具体错误原因 ERR OSSL EVP UNSUPPORTED 错误SSL
  • 51单片机——LED灯

    如下图所示是51单片机的开发板原理图 我们想要让二极管D1亮 只需要把p20口置低电平即可 只需要把P2寄存器第0位置0 LED原理解释 CPU配置寄存器的值来控制硬件电路达到我们预期效果 例程1 点亮第一个LED include