51单片机入门————LED灯的控制
LED的电路图
通过原理图看出,LED灯是接单片机芯片的P20~P27的
一共有8个LED,51单片机也是8字节的
P2=0x01
0xFE————1111 1110
P2=0xFE可以表示把在P2端的第一个灯点亮
1 表示高电平
0表示低电平
当为0的时候形成一个完整回路,电流从高电平流向低电平
所以我们要把LED灯对应的引脚置为0,这样就可以点亮LED灯了
点亮第一个LED灯
我们知道了点亮LED灯需要把对应的引脚置为0,下面我们来通过代码实现
从图片我们可以看出,我们确实点亮了第一个LED灯
那么我们点亮全部的LED灯的操作一个是 0000 0000 对应的16进制是0x00
我们现在通过控制P2端的8个位来控制LED灯,我们也可以通过控制一个位来控制灯的亮灭
这两个操作,都可以将第五个LED灯点亮
LED灯的闪烁
通常我们在大街小巷可以看到闪烁的LED灯,然后他们的闪烁周期也不相同,我们如何通过单片机控制
我们引入时间延时的概念
时间延时的设置我们可以在STC-ISP生成
我们来演示一下
生成了代码我们拷贝到软件上
这个代码就可以不停的闪烁我们的第五个LED灯
我们设计不同周期的闪烁每次都去STC-ISP生成会比较麻烦,那么我们是不是可以设计一个自定义的函数来实现你想要的闪烁时间
自定义延时的设计
首先我们在STC-ISP生成一个1毫秒的延时
void Delay1ms() //@12.000MHz
{unsigned char i, j;i = 2;j = 239;do{while (--j);} while (--i);
}
我们通过修改这个1毫秒的延时来实现
#include <REGX52.H>void Delay(long xms) //@12.000MHz
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}void main()
{while(1){P2_4=0;Delay(500);P2_4=1;Delay(500);}}
我们怎么设计的呢,通过传一个常量,常量表示多少毫秒,然后传入1毫秒的函数,让这个函数循环1毫秒的延时,这样就可以做到,自定义延时了
独立按键
了解按键工作的时候,我们先看看它的电路原理图
通俗的说就是当你摁下开关,开关接通,松开开关,开关断开
下面我们来编写程序来实现利用独立按键控制灯的亮灭
这个程序的作用就是按一下独立按钮然后第一个灯就亮了
上面就是独立按钮和LED灯的使用
我们如何避免按键的抖动呢,我们可以通过时间延时来消除,按键抖动时的不稳定接通
void Delay(long xms) //@12.000MHz
{unsigned char i, j;while(xms){i = 2;j = 239;do{while (--j);} while (--i);xms--;}
}void main()
{while(1){P2_0=1;if(P3_1==0){Delay(10);while(P3_1==0);Delay(5);P2_0=0;Delay(500);}}
}
LED灯的使用与按钮
#include <REGX52.H>void Delay(long xms) //@12.000MHz
{unsigned char i, j;while(xms){i = 2;j = 239;do{while (--j);} while (--i);xms--;}
}void main()
{while(1){int i=0;int j=0;int ret1=1;int ret2=0x80;for(i=0;i<8;i++){P2=~(ret1<<i);Delay(500);}for(j=0;j<8;j++){P2=~(ret2>>j);Delay(500);}}
}
功能:LED灯从第一个灯依次到第八个灯亮,然后再从第八个灯亮到第一个灯(倒着)
相关文章:
51单片机入门————LED灯的控制
LED的电路图通过原理图看出,LED灯是接单片机芯片的P20~P27的一共有8个LED,51单片机也是8字节的P20x010xFE————1111 1110P20xFE可以表示把在P2端的第一个灯点亮1 表示高电平0表示低电平当为0的时候形成一个完整回路,电流从高电平流向低电平…...
J - 二进制与、平方和(线段树 + 维护区间1的个数)
2023河南省赛组队训练赛(二) - Virtual Judge (vjudge.net) 请你维护一个长度为 n 的非负整数序列 a1, a2, ..., an,支持以下两种操作: 第一种操作会将序列 al, al 1, ..., ar 中的每个元素,修改为各自和 x…...
BertTokenizer的使用方法(超详细)
导入 from transformers import BertTokenizer from pytorch_pretrained import BertTokenizer以上两行代码都可以导入BerBertTokenizer,transformers是当下比较成熟的库,pytorch_pretrained是google提供的源码(功能不如transformers全面) 加载 tokenizer BertT…...
深度学习编译器CINN(3):编译过程中遇到的问题总结
目录 问题一:No module named XXXX 问题描述 分析与解决方案 问题二:catastrophic error: cannot open source file "float16.h"...
yum 安装mysql8数据全过程
mysql8安装方式:(使用官方yum仓库) 1. wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm 安装 yum install mysql80-community-release-el7-4.noarch.rpm 2、生成yum源缓存 每次当我们编写了,…...
内网vCenter部署教程一
PS:因为交换机链路为trunk,安装先登录ESXI,将端口组改为管理vlan ID(1021) 一、双击镜像,打开文件夹,目录为F:\vcsa-ui-installer\win32,双击installer.exe 二、先设置语言为中文 三、点击下一步 四、选择需要安装esxi的主机。 五、设置Vcenter虚拟机的密码...
java 进阶—线程的常用方法
大家好,通过java进阶—多线程,我们知道的什么是进程,什么是线程,以及线程的三种创建方式的选择 今天,我们来看看线程的基础操作 start() 开启线程 public class Demo implements Runnable {Overridepublic void run…...
hadoop的运行模式
作者简介:大家好我是小唐同学(๑><๑),好久不见,为梦想而努力的小唐又回来了,让我们一起加油!!! 个人主页:小唐同学(๑><๑)的博客主页 目前…...
服务器(centos7.6)已经安装了宝塔面板,想在里面安装一个SVN工具(subversion),应该如何操作呢?
首先,在登录进入宝塔面板,然后点击左侧终端,进入终端界面,如下图:------------------------------------------如果是第一次使用会弹出输入服务器用户名和密码,此时输入root账号和密码,即可进入…...
从智能进化模型看用友BIP的AI平台化能力
随着人工成本的上升,智能和自动化技术的成熟,企业在越来越多的场景开始应用自动化技术来替代相对标准及有规则的工作,同时利用智能算法来优化复杂工作及决策,获得竞争优势。 不同于阅读、聊天、搜索等面向终端用户的应用场景&…...
项目管理的主要内容包括哪些?盘点好用的项目管理系统软件
阅读本文您将了解:1、项目管理的主要内容包括哪些2、好用的项目管理软件 项目管理是为了实施一个特定目标,所实施的一系列针对项目要素的管理过程,包括过程、手段以及技术等。 通过项目管理,我们能够提前安排和控制项目的时间、…...
Allegro如何查看PCB上器件的库路径操作指导
Allegro如何查看PCB上器件的库路径操作指导 在做PCB设计的时候,有时需要检查PCB上器件使用的库的路径是否正确,Allegro支持快速将PCB上所有器件的库路径都列出来 如下图 如何显示这个报表,具体操作如下 点击Tools点击Report...
笔记【尚硅谷】大数据Canal教程丨Alibaba数据实时同步神器
视频教程:【尚硅谷】大数据Canal教程丨Alibaba数据实时同步神器教程资料:https://pan.baidu.com/s/1VhGBcqeywM6jyXJxtytd1w?pwd6666,提取码:6666本套教程以Canal的底层原理展开讲解,细致地介绍了Canal的安装部署及常…...
如何重定向命令行日志信息到指定txt文件?
如果你想把命令行的输出重定向到指定的txt文件,你可以使用一些符号来实现。例如,你可以在命令后面加上>或>>符号,然后指定文件名。例如: command > output.txt 这样就会把command的标准输出保存到output.txt文件中&…...
物理机不能访问虚拟机kali的web服务解决方案记录
目录 环境 问题描述 解决方案 知识补充 效果测试 其他思路 环境 kali(nat模式),物理机,可互ping 问题描述 kali的web服务器不能在物理机上访问。 1.本机能ping通虚拟机 2.虚拟机也能ping通本机 3.虚拟机能访问自己的web …...
服务器配置 | 在Windows本地显示远程服务器绘图程序
文章目录方法1:在MobaXterm的终端输入指令方法2:在Pycharm中运行前提概要,需要在本地Windows端显示点云的3d可视化界面 对于点云的3d可视化一般有两种方法,open3d显示或者是mayavi显示。这两个库都可以使用pip install来实现安装…...
从0开始学python -47
Python CGI编程 -2 GET和POST方法 浏览器客户端通过两种方法向服务器传递信息,这两种方法就是 GET 方法和 POST 方法。 使用GET方法传输数据 GET方法发送编码后的用户信息到服务端,数据信息包含在请求页面的URL上,以"?"号分割…...
【数据结构】八大经典排序总结
文章目录一、排序的概念及其运用1.排序的概念2.常见排序的分类3.排序的运用二、常见排序算法的实现1.直接插入排序1.1排序思想1.2代码实现1.3复杂度及稳定性1.4特性总结2.希尔排序2.1排序思想2.3复杂度及稳定性2.4特性总结3.直接选择排序3.1排序思想3.2代码实现3.3复杂度及稳定…...
BI的能力边界:能解决的企业问题和不擅长的领域
数字化转型本就需要借助信息化相关技术、思想来完成,所以说信息化建设同样是数字化转型过程中非常重要的一环,而这就是商业智能BI和数字化转型的关系 BI 能解决的企业问题 数据是企业的重要资产,也是企业商业智能BI的核心要求。通常&#x…...
金三银四面试必备,“全新”突击真题宝典,阿里腾讯字节都稳了
前言招聘旺季就到了,不知道大家是否准备好了,面对金三银四的招聘旺季,如果没有精心准备那笔者认为那是对自己不负责任;就我们Java程序员来说,多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基础知识点考…...
MYSQL 基础篇 | 02-MYSQL基础应用
文章目录1 MySQL概述2 SQL2.1 SQL通用语法2.2 SQL分类2.3 DDL2.3.1 数据库操作2.3.2 表操作2.4 DML2.4.1 添加数据2.4.2 修改数据2.4.3 删除数据2.5 DQL2.5.1 基础查询2.5.2 条件查询2.5.3 聚合查询2.5.4 分组查询2.5.5 排序查询2.5.6 分页查询2.5.7 综合练习2.6 DCL2.6.1 管理…...
CSS实现checkbox选中动画
前言 👏CSS实现checkbox选中动画,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现步骤 定义css变量,–checked,表示激活选中色值 :root {--checked: orange; }创建父容器…...
工业机器人编程调试怎么学
很多人觉得工业机器人很难学学,实际上机器人涉及的知识远比PLC要少。现简单说明一下初学者学习工业机器人编程调试的流程,以AUBO机器人为例: 首先我们需要知道工业机器人的调试学起来不难,远比编程更简单,示教器上的编…...
Java并发包提供了哪些并发工具类?
第19讲 | Java并发包提供了哪些并发工具类? 通过前面的学习,我们一起回顾了线程、锁等各种并发编程的基本元素,也逐步涉及了 Java 并发包中的部分内容,相信经过前面的热身,我们能够更快地理解 Java 并发包。 今天我要…...
systemctl 启动/停止/重新加载 nginx
systemctl 启动/停止/重新加载 nginx 一、新建nginx.service脚本 sudo vim /usr/lib/systemd/system/nginx.service然后按iii进入编辑模式,粘贴如下内容,其中/usr/local/nginx/是进行make && make install之后的文件夹路径,需要根据…...
SSRF学习 3
目录 <1> 什么是SSRF? <2> 通常SSRF会发生在哪些位置? <3> 测试流程 <4> Weblogic-ssrf 复现 (1) 漏洞存在点 (2) 注入HTTP头,利用Redis反弹shell (3) 修复方案 <1> 什么是SSRF? SSRF(Serv…...
Mysql(数据库基础篇)
👌 棒棒有言:也许我一直照着别人的方向飞,可是这次,我想要用我的方式飞翔一次!人生,既要淡,又要有味。凡事不必太在意,一切随缘,缘深多聚聚,缘浅随它去。凡事…...
一种全新的图像变换理论的实验(五)——研究目的替代DCT和小波
一、前言 目前在大量的灰度图像测试下,基本确定变换系数ratio取值0-25之间时,逆变化后的图还能基本保障效果,而且越接近0效果越好。本文还是以lenna.bmp灰度图为例,实验不再逆变换,而是把变换后的数据直接输出为bmp的…...
vue3、vite、pinia 快速入门
准备 开发工具及插件IDE:vscode,WebStorm插件:Auto Close Tag、Auto Rename Tag、Live Server通过“!”快速生成html模板正式学习安装vue通过CDN的方式导入vue<script src"" target"_blank">https://unpkg.com/vue3/dist/vue.…...
bae wordpress 3.8/新浪舆情通
版本:myeclipse6.5 设置项目默认编码1.myEclipse默认的新项目的编码是GBK变为UTF-8:Window->Preferences->General->Workspace->Text file encoding 将其改为UFT-8即可.js和jsp统一UTF-8:优化myEclipse启动速度 1.禁用myeclipse updating indexes ,用…...
企业网站管理系统的设计与实现/淘宝关键词查询工具
七、radio 单选框radio-group 属性名类型默认值说明bindchangeEventHandle radio-group中的选中项发生变化时触发change事件,event.detai {value : 选中项radio的valueradio 属性名类型默认值说明valueString radio标识。当该radio选中时,radio-group的…...
网站建设分几模块/上海最新新闻事件今天国内
>>,>>>,<<的用法: * <<:左移 左边最高位丢弃,右边补齐0 * >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1 * >>>:无符号右移 无论最高位是0还是1,左边补齐0 代…...
wordpress 提示要安装/soe搜索优化
作为2017世界物联网博览会的重要活动之一,由中国经济信息社江苏中心研撰的《2016-2017中国物联网发展年度报告》(下称《年报》)近日在无锡发布。《年报》认为,我国智慧城市步入实质发展阶段,企业广泛参与、营收能力增强。 2016年以来,我国智慧城市建设开放合作特征进一步凸显,B…...
wordpress redis更新/报个电脑培训班要多少钱
在今天的病毒里,需要谨慎防范“橘色诱惑”变种cht和“多面杀手”变种at。 英文名称:Trojan/Chifrax.cht 中文名称:“橘色诱惑”变种cht 病毒长度:88691字节 病毒类型:*** 危险级别:★★ 影响平台࿱…...
网站公众号信息化建设工作计划/竞价排名采用什么计费方式
1.RLC电路 特征方程: s2 (R/L) s 1/LC 0 (s2 2αs ω20 0) 振荡频率: wd √ (ω20 - α2) α代表了阻尼 品质因数: Q ω0/ 2α Q代表经过多少周期后震荡停止 2.电容电压先上升还是下降? 下降,因为电感的…...