51单片机学习笔记——LED闪烁和流水灯

  • 任务分析

首先要知道LED闪烁主要是怎么工作的,闪烁亮灭自然是一下为高一下为低,亮灭的频率则需要延时来进行控制。

上节已经知道了如何点亮那延时如何做呢首先先编写主框架

这样是否可以通过循环将LED灯一直循环闪烁。

以为while一直在循环所以其实是可以闪烁的,但由于扫描的周期过快,人的肉眼无法看见闪烁,因此需要添加延时。

那么延时如何做呢?

首先打开下载软件,找到软件延时计算器

根据需要的时间修改参数,注意晶振赔率,不知道晶振频率的小伙伴可以看板子上的白色小金属壳上的字,我使用的上写的是Y11.0592。

同时8051指令集选项需要找到使用对应板子型号的选项。

完成后点击生成代码再复制到程序中即可

由于复制的代码是一个打包好的函数,我们在主程序中使用需要将函数进行调用。

注意需要使用延时需要包含#include <INTRINS.H>)

之后进行下载调试即可,注意生产程序文件,如何下载具体看第一节

  • 流水灯

根据LED的闪烁我们知道了如何让LED一下亮一下灭,还可以通过控制延时的数字大小控制亮灭时间的长短。

那流水灯应该如何做呢?

流水灯其实就是第一个亮灭灭了之后第二个亮之后以此类推循环下去。

延时函数闪烁已经介绍过了,我们可以通过对于十六进制的计算来控制每一个LED

LED亮则给0灭则给1这是因为单片机内部给LED模块的电平的原因。

如果每次需要一个延时就复制一段程序那我们的主程序太复杂了,我们可以通过给函数传参的方式改变每次需要延时的值。

将原来延时函数里括号的内容改为传送一个无符号的整形s,无符号整形的取值范围为0~65535由于时间没有负的正好符合我们的要求。

函数的内容也需要重新生成,生成一个一毫秒的函数,这样我们需要多少毫秒就可以将我们需要的秒数直接打到调用函数的括号里了不用在另外去下载器生成新的延时代码。

由于是可更改可传参的函数,但是我们延时函数里的内容只是延时一次一毫秒的内容,我们可以做一个while循环,每执行完一行s--这样定了多少秒就减多少次即可完成功能(程序图片第七行)

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

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

相关文章

[Java基础揉碎]final关键字

目录 介绍 在某些情况下&#xff0c;程序员可能有以下需求&#xff0c;就会使用到final final注意事项和讨论细节 1) final修饰的属性又叫常量&#xff0c;一般用XX_XX_XX来命名 2) final修饰的属性在定义时&#xff0c;必须赋初值&#xff0c;并且以后不能再修改&#…

【Android 内存优化】Koom核心内存指标分析

文章目录 源码Runtime.getRuntime()/proc/self/status/proc/meminfo 附总结 获取内存的指标有很多&#xff0c;假如我们要写一个用于监控APP内存泄漏的框架的话&#xff0c;主要获取哪些指标呢&#xff1f; 这篇文章来研究下KOOM里面获取到是哪些指标。 下面正文开始&#xff…

Spring Cloud五:Spring Cloud与持续集成/持续部署(CI/CD)

Spring Cloud一&#xff1a;Spring Cloud 简介 Spring Cloud二&#xff1a;核心组件解析 Spring Cloud三&#xff1a;API网关深入探索与实战应用 Spring Cloud四&#xff1a;微服务治理与安全 文章目录 一、Spring Cloud在CI/CD中的角色1. 服务注册与发现&#xff1a;自动化管理…

Java安全 反序列化(4) CC1链-LazyMap版

Java安全 反序列化(4) CC1链-LazyMap版 实验环境:存在漏洞的版本 commons-collections3.1-3.2.1 jdk 8u71之后已修复不可利⽤ 文章目录 Java安全 反序列化(4) CC1链-LazyMap版一.跟踪挖掘CC1_LazyMap原理二.完整CC1_Lazy版Poc 接着上一篇文章我们通过ChainedTransFormer实现任意…

Linux uustat命令教程:UUCP状态查询和控制(附案例详解和注意事项)

Linux uustat命令介绍 uustat&#xff08;UUCP status inquiry and control&#xff09;命令在Linux中用于显示关于UUCP系统的各种类型的状态信息。它也可以用于取消或重新激活由uucp或uux发出的请求。默认情况下&#xff0c;uustat显示所有排队等待调用用户的作业&#xff0c…

client-go中ListAndWatch机制,informer源码详解

文章首发地址&#xff1a; 学一下 (suxueit.com)https://suxueit.com/article_detail/s9UMb44BWZdDRfKqFv22 先上一张&#xff0c;不知道是那个大佬画的图 简单描述一下流程 client-go封装部分 以pod为例 、先List所有的Pod资源&#xff0c;然后通过已经获取的pod资源的最大版…

SQLiteC/C++接口详细介绍sqlite3_stmt类(八)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;七&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;九&#xff09; 27、sqlite3_column_int 函数 sqlite3_column_int 用于返…

0.2W超精密金属膜电阻器-陶瓷封装-塑封

高精度欧姆值&#xff0c;温度系数低 长期稳定性&#xff0c;无感设计 UPSC 欧姆范围&#xff1a;40 Ω 至 5 MΩ UPR 欧姆范围&#xff1a;10 Ω 至 5 MΩ 温度系数&#xff1a;2 ppm/C 至 25 ppm/C 符合 RoHS 规范 由EE1/10(RE55)成品高精密金属膜电阻器选配组装而成&am…

ubuntu20.04 编译瑞芯微rv1126问题集锦

1、camera_engine_rkisp is in the dependency chain of app_demo that has added it to its _DEPENDENCIES variable without selecting it or depending on it from Config.in. Stop. 解决方案&#xff1a; 注释&#xff1a;rv1126/buildroot/package/rockchip/app_demo/Con…

go-zero处理本地事务

go-zero处理本地事务&#xff0c; sqlx.SqlConn 提供了基础的事务机制,官方代码 var conn sqlx.SqlConnerr : conn.TransactCtx(context.Background(), func(ctx context.Context, session sqlx.Session) error {r, err : session.ExecCtx(ctx, "insert into user (id, na…

java数据结构与算法刷题-----LeetCode75. 颜色分类

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 双指针两次遍历2. 三指针 1. 双指针两次遍历 解题思路&#…

以行动激发消费活力,加多宝引领高品质消费浪潮

2024年“315”期间&#xff0c;加多宝携手全国多地市场监督管理局、消费者协会等单位&#xff0c;围绕今年“激发消费活力”主题&#xff0c;积极配合各地相关政府部门开展系列宣传活动&#xff0c;以实际行动呼吁切实保护消费者合法权益&#xff0c;共建诚信消费环境&#xff…

<商务世界>《第17课 餐桌礼仪禁忌》

1 习俗禁忌 中国人认为饮食与个人命运几乎是息息相关的&#xff0c;用饭时犯了禁忌&#xff0c;便会惹来衰运。例如吃鱼&#xff0c;当吃完了一面鱼身&#xff0c;不要用筷子把整条鱼翻转至另一面&#xff0c;他们认为若翻鱼时弄破鱼身&#xff0c;便意味著渔船会翻沉&#xf…

Python综合实战案例-数据清洗分析

写在前面&#xff1a; 本次是根据前文讲解的爬虫、数据清洗、分析进行的一个纵隔讲解案例&#xff0c;也是对自己这段时间python爬虫、数据分析方向的一个总结。 本例设计一个豆瓣读书数据⽂件&#xff0c;book.xlsx⽂件保存的是爬取豆瓣⽹站得到的图书数据&#xff0c;共 6067…

在fstab文件中配置UUID方式自动挂载数据盘、swap、目录(**)

linux如何挂在硬盘&#xff0c;自动挂载和手动挂载&#xff08;详细说明&#xff09;https://gitcode.csdn.net/65eedcea1a836825ed7a06f4.html 解决linux重启后磁盘挂载失效的问题 https://blog.csdn.net/sugarbliss/article/details/107033034 linux /etc/fstab 文件详细说…

前端并发控制

本文讲解Promise&#xff0c;callback&#xff0c;RxJS多种方式实现并发限制 1.Promise 目前来说&#xff0c;Promise是最通用的方案&#xff0c;一般我们最先想到Promise.all&#xff0c;当然最好是使用新出的Promise.allsettled。 下面简单介绍下二者的区别&#xff0c;假…

Android Audio相关

AudioManager AudioService的Bp端&#xff0c;调用AudioManager>AudioService&#xff08;代码实现&#xff09; AudioService 继承自IAudioService.Stub&#xff0c;为Bn端 AudioSystem AudioService功能实现都依赖于AudioSystem&#xff0c;AudioService通过AudioSys…

Attention Is All You Need若如爱因斯坦的相对论,Transformer模型则堪称E=MC^2之等量公式

Transformer模型已经成为当前所有自然语言处理NLP的标配&#xff0c;如GPT&#xff0c;Bert&#xff0c;Sora&#xff0c;LLama&#xff0c;Grok等。假如《Attention Is All You Need》类比为爱因斯坦的侠义相对论&#xff0c;Transformer模型则堪称EMC^2之等量公式。 看过论文…

[BT]BUUCTF刷题第6天(3.24)

第6天 Web [极客大挑战 2019]PHP Payload&#xff1a; O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}这道题考点是网站源码备份文件泄露和PHP反序列化&#xff0c;有篇介…

SpringBoot Starter解析

conditional注解解析 介绍 基于条件的注解作用: 根据是否满足某一个特定条件决定是否创建某个特定的bean意义: Springboot实现自动配置的关键基础能力 常见的conditional注解 ConditionalOnBean: 当容器中存在某个Bean才会生效ConditionalOnMissingBean: 不存在某个Bean才会…