51单片机流水灯

**led 介绍**
LED是“Light Emitting Diode”的缩写,即发光二极管。它是一种半导体器件,能够将电能转化为可见光。LED灯通常由LED芯片、封装材料、铝基板和灯罩等部件组成。

**LED灯具有以下特点:**

  1. 节能:LED灯具有较高的光电转换效率,能够将大部分电能转化为光能,相比传统白炽灯泡 和荧 光灯具有更低的能耗。
  2. 寿命长:LED灯寿命长,可达数万小时,远远超过传统灯泡,减少了更换灯泡的频率。
  3. 节省空间:LED灯小巧轻便,可以设计成各种形状和尺寸,适用于各种应用场景。
  4. 环保:LED灯不含汞等有害物质,不会产生紫外线和红外线辐射,使用时也不会产生频闪等有害物质。

LED灯广泛应用于室内照明、户外照明、汽车灯具、电子显示屏、指示灯等领域。在电子设计和嵌入式系统中,LED也常用作电路指示灯、状态指示灯、信号灯等。在嵌入式系统中,LED灯通常通过微控制器的GPIO(通用输入/输出)引脚来驱动,通过控制GPIO引脚的电平状态来控制LED的亮灭。这样可以实现LED的闪烁、呼吸灯效果等。 LED的使用非常灵活,能够通过软件编程实现各种照明效果和指示功能。

单片机的工作原理:cpu通过配置寄存器控制我们的硬件电路实现我们的功能

二进制转换为16进制:进制转换关系对应表

点亮51单片机的第一个led灯和让单片机的led灯实现亮灭亮灭的效果(采用16进制的方式实现)

eg1:实现单个LED灯的亮和灭

#include <REGX52.H>// P1 是第一个led晶体管1111 1110 倒数转换为16进制void main(){P1 = 0xFE;  // 点亮第一个单片机的led灯P1 = 0x55; 	// 单片机的亮灭效果while(1){// 添加while循环让单片机停止或者开始}}

eg2:实现单个LED灯的闪烁效果

#include <REGX52.H>
#include <INTRINS.H>void Delay500ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);}void main(){while(1){// 循环实现led灯的亮灭情况P1 = 0xFE;Delay500ms();// 函数的调用P1 = 0xFF;Delay500ms();}
}

eg3:实现单片机的流水灯显示

#include <REGX52.H>
#include <INTRINS.H>void Delay500ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);}void main(){while(1){// 循环实现led灯的亮灭情况P1 = 0xFE; // 1111 1110Delay500ms();P1 = 0xFD; // 1111 1101Delay500ms();P1 = 0xFB; // 1111 1011Delay500ms();P1 = 0xF7; // 1111 0111Delay500ms();P1 = 0xEF; // 1110 1111Delay500ms();P1 = 0xDF; // 1101 1111Delay500ms();P1 = 0xBE; // 1011 1111Delay500ms();P1 = 0x7F; // 0111 1111Delay500ms();}
}

eg4:使用延时函数实现200毫秒的流水灯轮动

#include <REGX52.H>
#include <INTRINS.H>void Delay500ms(unsigned int xms)		//@11.0592MHz 单片机的系统中int 表示的是16位的,在计算机中是32位或者是64位的
{unsigned char i, j;while(xms){i = 2;j = 239;do{while(--j);}while(--i);xms--;}}void main(){while(1){// 循环实现led灯的亮灭情况P1 = 0xFE; // 1111 1110Delay500ms(200); // 自定义200毫秒P1 = 0xFD; // 1111 1101Delay500ms(200);P1 = 0xFB; // 1111 1011Delay500ms(200);P1 = 0xF7; // 1111 0111Delay500ms(200);P1 = 0xEF; // 1110 1111Delay500ms(200);P1 = 0xDF; // 1101 1111Delay500ms(200);P1 = 0xBE; // 1011 1111Delay500ms(200);P1 = 0x7F; // 0111 1111Delay500ms(200);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/637796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle篇—19c新特性自动索引介绍

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

Go 知识slice

Go 知识slice 1. 什么是slice2. slice 基础2.1 定义 2.2 实现原理2.2.1 make 创建2.2.2 切片 创建 2.3 操作2.3.1 append 追加2.3.2 表达式切片2.3.3 扩展表达式2.3.4 扩容2.3.5 拷贝 3. 测试一下3.1 len && cap3.2 append && 扩容3.3 切片表达式 1. 什么是sli…

Vue2移动端项目使用$router.go(-1)不生效问题记录

目录 1、this.$router.go(-1) 改成 this.$router.back() 2、存储 from.path&#xff0c;使用 this.$router.push 3、hash模式中使用h5新增的onhashchange事件做hack处理 4、this.$router.go(-1) 之前添加一个 replace 方法 问题背景 &#xff1a; 在 Vue2 的一个移动端开发…

Docker安装与启动

Docker概述 Docker是一个快速交付应用、运行应用的技术&#xff1a; 可以将程序及其依赖、运行环境一起打包为一个镜像&#xff0c;可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器&#xff0c;各个应用互不干扰启动、移除都可以通过一行命令完成&#xff0c;方便…

AttributeError: module ‘numpy‘ has no attribute ‘float‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

YOLOv5改进系列(27)——添加SCConv注意力卷积(CVPR 2023|即插即用的高效卷积模块)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

【Docker】安装Nginx容器并部署前后端分离项目

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Docker实战》。&#x1f3af;&#x1f3af; &…

爬虫requests+综合练习

Day2 - 1.requests第一血_哔哩哔哩_bilibili requests作用&#xff1a;模拟浏览器发请求 requests流程&#xff1a;指定url -> 发起请求 -> 获取响应数据 -> 持续化存储 爬取搜狗首页的页面数据 import requests# 指定url url https://sogou.com # 发起请求 resp…

Three.JS教程1 环境搭建、场景与相机

Three.JS教程1 环境搭建、场景与相机 一、Three.JS简介二、环境搭建1. 开发准备2. 安装 three.js3. 新建文件index.htmlmain.js 4. 关于附加组件5. 启动 三、创建场景1. 场景的概念2. 相机的概念3. 相机的几个相关概念&#xff08;1&#xff09;视点&#xff08;Position&#…

【redis13】集群前奏:sentinel模式

1.哨兵sentinel引入背景 我们现在来思考一个问题&#xff1a;如何实现服务的高可用。我们首先想到至少要满足两个要求&#xff1a;1.服务端能够实现主从自动切换&#xff1b;2.对于客户端来说&#xff0c;如果发生了主从切换&#xff0c;则能够自动连接到最新的master节点。 我…

S/MIME电子邮件证书申请指南

近年来&#xff0c;邮件安全问题日益突出&#xff0c;电子邮件成为诈骗、勒索软件攻击的重灾区。恶意邮件的占比屡创新高&#xff0c;邮件泄密事件更是比比皆是。在如此严峻的网络安全形势下&#xff0c;使用S/MIME电子邮件证书进行邮件收发是当今最佳的邮件安全解决方案之一。…

【PICO】【Unity】【VR】如何对打包后的PICO项目有效Debug

【背景】 PICO项目打包后再运行就看不到Console了。当然,会有各类专业的Debug工具。 有一类Debug的工具是Preview形式下展示Debug信息,但是发现Preview成功不见得打包也成功。 打包后也会有一些Debug工具,不过这里我给出自己的简单解决办法。 【解决方案】 Unity Console…

Java毕业设计-基于jsp+servlet的大学生学业规划咨询服务平台管理系统-第84期

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于jspservlet的大学生学业规划咨询服务平台管理系统&#xff1a;前端 jsp、jquery、ajax&#xff0c;后端 servlet、jdbc&#xff0c;角色分为管理员、学生&#xff1b…

Linux——进程等待

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、为什么要进程等待二、进程等待的方法1、wait方法2、waitpid方法 三、获取子进程status 一…

pxe高效批量网络装机 以及安装教程

系统装机的三种引导模式 1.pe 2光驱 3.网卡 打开本机桌面 可以看见背景图片 查看配置文件内容 文件时引导选项的功能 pxe原理&#xff1a; 先根据dhcp找到IP地址、和引导程序的地址&#xff0c;还提供客户机tftp地址&#xff0c;因为tftp是小文件&#xff0c;容量小&#…

【占用网络】FlashOcc:基于2D卷积的占用预测模型

前言 FlashOcc是一个它只需2D卷积就能实现“占用预测模型”&#xff0c;具有快速、节约内存、易部署的特点&#xff0c;偏工程方向的工作。 它首先采用2D卷积提取图形信息&#xff0c;生成BEV特征。然后通过通道到高度变换&#xff0c;将BEV特征提升到3D空间特征。 对于常规…

攻防世界——Shuffle

32bit打开 main函数F5 下班

SpringBoot+Email发送邮件

引言 邮件通知是现代应用中常见的一种通信方式&#xff0c;特别是在需要及时反馈、告警或重要事件通知的场景下。Spring Boot提供了简单而强大的邮件发送功能&#xff0c;使得实现邮件通知变得轻而易举。本文将研究如何在Spring Boot中使用JavaMailSender实现邮件发送&#xf…

Unity中URP下的SimpleLit的 Lambert漫反射计算

文章目录 前言一、Lambert漫反射计算11、MixRealtimeAndBakedGI 函数有三个重载2、3号 调用了 2号3、1号调用了 SubtractDirectMainLightFromLightmap函数4、我们重点来看 Lambert漫反射的实现部分5、其余部分 二、Lambert漫反射计算21、LightingLambert 前言 在之前的文章中&…

Python小项目:还在为备份烦恼?这个tkinter项目帮你解决!

文章目录 1 引言2 Tkinter概览3 设计备份软件的界面4 文件夹选择逻辑5 备份方案介绍5.1 完全备份5.2 增量备份5.3 镜像备份 完整代码&#xff1a; import tkinter as tk from tkinter import filedialog, messagebox import os import shutil import filecmpdef choose_source(…