玩转单片机之智能车小露——LED闪烁实战

news/2025/10/23 21:45:37/文章来源:https://www.cnblogs.com/loganxiang/p/19161617

用单片机点亮一颗LED非常简单,让一颗LED闪烁也很简单,比如写一段下面这样的程序:

while(1){ 				// 无限循环LED1 = 0; 			// 点亮LEDdelay_ms(300); 		// 延时300msLED1 = 1; 			// 熄灭LEDdelay_ms(300); 		// 延时300ms
}

但是在实用程序中真的会采用这样的方式让LED闪烁吗?
显然不能,空闲时间都用来延时,那单片机除了闪烁LED还能干什么呢?
不用延时,就只能使用定时器和中断控制LED点亮和熄灭。

定时中断里闪烁LED

要求LED闪烁时点亮200ms然后熄灭800ms/1800ms/4800ms,可以编写在100ms定时函数中调用的回调函数:

//在100ms定时函数中调用
void SystickCallbackLED(void){static uint8 i = 0;if(LEDMode & 0x02){			//所有闪烁模式第2位为1if(++i > 2)				//亮200ms其余时间熄灭LED = FALSE;if(i > LEDFlashCycle){i = 0;LED = TRUE;}}
}

其中LEDFlashCycle代表闪烁总周期(单位100ms),根据不同的需求进行设置。

LED模式及闪烁周期选择

使用LEDSetMode()函数设置LED模式,可选择常亮、熄灭(直接控制LED),或以不同周期闪烁(设置闪烁总周期)。

#define     LED_MODE_OFF        0x00
#define     LED_MODE_ON         0x01
#define     LED_MODE_FLASH1S    0x02
#define     LED_MODE_FLASH2S    0x03
#define     LED_MODE_FLASH5S    0x06uint8 LEDMode;
uint8 LEDFlashCycle;void LEDSetMode(uint8 mode){LEDMode = mode;switch(mode){case(LED_MODE_OFF):LED = FALSE;break;case(LED_MODE_ON):LED = TRUE;break;case(LED_MODE_FLASH_1S):LEDFlashCycle = 10;break;case(LED_MODE_FLASH_2S):LEDFlashCycle = 20;break;case(LED_MODE_FLASH_5S):LEDFlashCycle = 50;break;default:break;}
}
  • 本文采用的单片机为STC32G系列,感兴趣的朋友可以参考测试,或去Gitee上下载例程。
  • 下载地址:https://gitee.com/loganxiang/lgxsmartcar ,参考led.h/led.c。

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

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

相关文章

ord() 函数

ord() 函数以一个字符(长度为 1 的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。 ord() 函数的语法: ord(c)…

2025.10.23总结 - A

今天上了数据结构还有体育,加油

树状数组求逆序对

统计对于每个i<j,求a[i]>a[j]的数量 在每一次更新(update)树状数组时,以元素的值作为树状数组的索引,更新的值为 +1,代表个数。 在每一次获取(query)逆序对数时,存在于树状数组中的元素的索引值都比当前…

大模型 | VLA 初识及在自动驾驶场景中的应用

一、VLA 简介 1.1 VLA 定义 VLA (Vision Language Action)是一种多模态机器学习模型,结合了视觉、语言和动作三种能力,旨在实现从感知输入直接映射到控制动作的完整闭环能力。VLA 强调一体化多模态端到端架构,非感…

Redis中的分布式锁之SETNX底层实现

https://blog.csdn.net/qq_39032307/article/details/148683477

2025家纺摄影公司推荐,南通鼎尚摄影专注产品视觉呈现

2025家纺摄影公司推荐,南通鼎尚摄影专注产品视觉呈现 家纺摄影行业面临的技术挑战 随着电商行业的蓬勃发展,家纺摄影行业正面临着前所未有的技术挑战。据统计,超过70%的线上消费者表示,产品图片质量直接影响其购买…

ExPRT.AI如何预测下一个将被利用的漏洞

本文详细介绍了CrowdStrike Falcon Exposure Management中的ExPRT.AI引擎如何利用实时对手信号、观测到的攻击行为以及基于专有威胁情报训练的AI来预测最可能被利用的漏洞,帮助安全团队优先处理最关键的安全风险。How…

求函数

求函数 题目描述 牛可乐有 $n$ 个一次函数,第 $i$ 个函数为 $f_i(x) = k_i \times x + b_i$。 牛可乐有 $m$ 次操作,每次操作为以下二者其一:$1$ $i$ $k$ $b$ 将 $f_i(x)$ 修改为 $f_i(x) = k \times x + b$。 $2$ …

AI元人文构想的跨学科研究:技术实现与人文影响分析——对自由与责任的再框架化(DeepSeek基于Ai元人文系列文章研究)

AI元人文构想的跨学科研究:技术实现与人文影响分析——对自由与责任的再框架化 ——DeepSeek基于Ai元人文系列文章研究引言:AI元人文构想的理论基础与概念界定1.1 概念起源与核心内涵 “AI元人文”构想由学者岐金兰提…

Python---简易编程解决工作问题

近期在做一些很简单但是很繁琐的工作,就考虑使用Python来进行开发一些工具。 首先是下载安装Pythonhttps://www.python.org/downloads/release/python-3140/检查是否安装成功:python --version检测pip是否正常:pip …

DM8 安装包 for linux_x86

下载地址 https://8ma.co/res/VWXE40M2 ◀ ◀ ◀.zstitle { width: 280px; text-align: center; font-size: 26px } .zsimgweixin { width: 280px } .zsimgali { width: 280px; padding: 0px 0px 50px 0px } .zslef…

日总结 16

Git 是一款分布式版本控制系统,核心作用是追踪文件(尤其代码)的修改历史、管理多版本,并支持多人高效协作。它通过记录每一次修改(可随时回退到任意历史版本)、分支功能(实现并行开发不冲突)、分布式特性(本地…

MPK(Mirage Persistent Kernel)源码笔记(1)--- 基础原理

MPK(Mirage Persistent Kernel)源码笔记(1)--- 基础原理 目录MPK(Mirage Persistent Kernel)源码笔记(1)--- 基础原理0x00 概要0.1 传统LLM推理框架的瓶颈0.2 MPK的流程重构0.3 MPK的关键优势0x01 问题1.1 现有…

背包dp(1)

背包dp(1)Posted on 2025-10-23 21:24 tttfred 阅读(0) 评论(0) 收藏 举报做到了一个题,发现对背包问题理解有点浅,应该说是忘了 Dutch Democracy 给你一个数集,你要找到出满足以下两个条件的子集的个数 1.和…

模拟can通信

实验一 模拟can通信 1、虚拟CAN接口创建 实车上算法一般通过ros进行通信,车辆和控制器之间则通过can通信实现。 can信号的发送和接收一般是需要载体的,我们一般都有can0和can1设备可以使用,在电脑上创建这个设备: …

202501软件工程第二次团队作业

202501软件工程第二次团队作业智能天气出行助手 —— 基于MCP协议的自然语言交互系统这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering这个作业要求在哪里 https://edu.cnblogs.co…

题解:P14174 【MX-X23-T4】卡常数

题目传送门 超级水题 , 谁都可以拿的经验 考察贪心 + 堆(最简单的用优先队列实现)题面 给定 $ n$ 个数组和每个数组的常数 \(x\) 和长度 \(l\) , 给定每个数组的 $a_i $ 、 \(b_i\) , 定义是可以实施 \(k\) 次把某个…

比赛题解 总结

1.[HNOI2003] 操作系统 思路 此题是一道大模拟,主要根据任务优先级来计算最后执行此任务的时间,此时我们可以进行分类讨论:当此任务的到达时间大于等于上一个未执行完任务的结束时间,上一个任务就一定能运行完,因…

解题报告-拯救计划(概率 DP)

拯救计划 题目背景 有一天,地球护卫队的 P 队长得知,邪恶的 Y 星球要向地球发起侵略。正义感责任感极强的小 P 怎么可能允许这类事情发生。为了小 W,同时也为了保卫地球,小 P 准备动员所有力量殊死一战,正当小 P …

解码Linux文件IO之库的制作与应用

程序编译的四个核心阶段 程序从源代码(.c/.cpp)到可执行文件,需经过预处理、编译、汇编、链接四个步骤,每个步骤生成不同中间文件,最终输出可执行程序。预处理作用:展开预处理指令(#include/#define/#if等)、删…