当前位置: 首页 > news >正文

51单片机学习日志-5

上一个实验通过对代码进行修改,但硬件条件保持不变,从而改变了实验现象,这就是编程代码的力量,而下面的要进行的实验是通过对上一个实验的修改,从而达到控制多个发光二极管的功能。首先是硬件电路的连接,之前的实验实现了通过单片机对一个发光二极管的控制,而如果需要控制更多的发光二极管,只需要通过其他的引脚连接上其他的发光二极管就行,如果单独来看某一个引脚的话,都可以实现之前类似的控制效果,但是如果要通过单片机控制这么多的发光二极管,需要对整体有一个把握,也就是说在给I/O端口寄存器赋值时需要考虑到整体的效果,例如需要那几个发光二极管点亮,哪几个是熄灭的,由于出现了很多个发光二极管,所以这里会有很多种情况,而具体要表现出那种情况,则是要进行选择,而此时我们就可以通过定义一个变量来对这种情况分类,从而达到变化的目的。截屏2026-03-26 19.38.58
如图所示,是将单片机连接三个发光二极管的电路图,也就是在原来一个发光二极管的基础上增加了两个,这样就需要用三个引脚进行操控,而对于对应代码上的变化是需要对这三个引脚进行模式配置,而在配置之后,就能够使用引脚寄存器的赋值来对引脚电平进行控制了,而这里由于是对多个发光二极管进行控制,所以其实可以通过对整个引脚寄存器进行赋值来解决,而之前则是仅仅通过改变寄存器中的某一位的数值来改变对应引脚的输出,这个观念需要转换一下。而为了能够将发光二极管的状态进行管理,可以通过构造变量的方式来进行一一对应,其实也可以直接用和之前类似的方式,通过将不同状态进行延时,从而达到变化的目的,而这里用到另一种方法,也即通过单一变量和状态之间的关系,进行状态的变换,注意这里只是通过改变编程的方式来实现相同的效果,所以硬件的连接以及主函数之外的准备工作是不变的。截屏2026-03-26 19.51.30
截屏2026-03-26 19.51.40
截屏2026-03-26 19.52.52
截屏2026-03-26 19.52.59
截屏2026-03-26 19.53.07
截屏2026-03-26 19.53.14
在原来代码的基础上,主函数中定义了一个变量,通过在大循环中不断变化这个变量的值,并采用选择条件语句,就可以实现单片机在不同状态下切换的效果,在进行大循环之前,先将通过寄存器将所有的发光二极管关闭,当进入循环之后,对变量进行选择,变量的不同值对应着不同的状态,这里用到了switch函数,而在其他情况下,就将所有的发光二极管关闭,在选择对应的状态之后,不要忘记要进行延时,延时结束后需要对变量进行改变,从而为下一次的选择做好准备,这就是这段代码运行的逻辑。

http://www.jsqmd.com/news/540288/

相关文章:

  • 信息访问 vs. 推理能力:LLM Agent 性能归因的实验分析
  • LightGBM vs XGBoost:从参数设计看两大梯度提升库的哲学差异
  • 邢台做白发转黑哪家好?黑奥秘服务超200万案例见证 - 美业信息观察
  • 大模型学习指南:从入门到精通,收藏这份演变路线图!
  • 【GUI-Agent】阶跃星辰 GUI-MCP 解读---(5)---命令解析和工具映射
  • 2026计算机毕业设计选题全攻略:从热门方向到技术选型,助你轻松通关
  • 5步掌握三维智能分割:面向开发者的SAMPart3D全流程指南
  • 5步打造企业级数字人创作平台:从本地化部署到场景落地全指南
  • 跨专业、非科班想转行学AI?先搞懂4件事,别让努力白费了!
  • 西安养老机构深度解析:九九养老如何以医养结合构建本土服务标杆 - 深度智识库
  • HunyuanVideo-Foley实战案例:为AI生成视频自动匹配Foley音效工作流
  • 坐标注意力:移动端视觉任务的高效注意力创新方案
  • BilibiliDown:你的专属B站视频管家,轻松下载与管理海量内容
  • ai赋能stm32开发:借助快马平台实现边缘端语音识别应用
  • 机电一体化毕业设计实战:从选题到嵌入式控制系统的完整开发流程
  • Node.js毕设实战:从零搭建一个高可用的RESTful API服务(新手避坑指南)
  • DirectX修复工具与传统修复方法全面对比分析 为何它是最佳选择
  • Flutter项目在Android Studio高版本运行报错?三步搞定build.gradle配置
  • OpenDroneMap(ODM)免费无人机照片转3D模型:从入门到精通的完整指南
  • 解决时间序列数据稀缺性:Time-Series-Library的智能增强方案
  • 2025 Fira Code字体macOS效率倍增指南:从安装到高级定制全攻略
  • 智控协同递推网络:一种融合结构化知识、大模型与概率递推的人机协同Web智能体系
  • SKUA-GOCAD 22 完整安装教程(Windows版)
  • Comsol多重法诺共振拟合:探索与实践
  • Python3.7环境下rasterio安装避坑指南:解决GDAL版本冲突与清华源配置
  • Stable-Diffusion-V1-5 数据管道构建:使用Python处理训练数据集与生成结果
  • OpenClaw+GLM-4.7-Flash:24小时自动化监控网页更新
  • springboot同城二手物品交易配送系统的设计与实现
  • Cesium(十) 动态修改白模颜色、白模渐变色、白模光圈特效、白模动态扫描光效、白模着色器
  • 魔兽争霸3卡顿闪退终极解决方案:WarcraftHelper完整使用指南