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

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

用单片机点亮一颗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.rkmt.cn/news/28736.html

相关文章:

  • 2025.10.23总结 - A
  • 大模型 | VLA 初识及在自动驾驶场景中的应用
  • DM8 安装包 for linux_x86
  • 模拟can通信
  • 202501软件工程第二次团队作业
  • 题解:P14174 【MX-X23-T4】卡常数
  • 解题报告-拯救计划(概率 DP)
  • 编程与数学 03-009 Linux 操作系统应用 22_Linux 故障排除与问题克服
  •  pytorch 66页实验题
  • 完整教程:微信小程序学习(一)
  • nginx反向代理测试搭建
  • 深入解析:【算法】【数学】 练习题目列表
  • 深入解析:链表的核心思想
  • AI元人文构想:参与“自由与责任”哲学思考——岐金兰之实验
  • 实用指南:用户研究:用户研究和数据分析的根本联系与区别
  • 完整教程:状态管理库 Zustand 的接入流程与注意点
  • 塔吊施工环境与附属设施监测!思通数科 AI 卫士筑牢全场景安全防线
  • 第二十二篇
  • CSharp: Convert CSV to XLS Using Open XML SDK
  • 负载均衡及三种软件负载
  • Android Handler的runWithScissors手段
  • 完整教程:ImmuCellAI 免疫浸润分析
  • Deepoc具身智能模型:为传统机器人注入“灵魂”,重塑建筑施工现场安全新范式 - 指南
  • P5285 [十二省联考 2019] 骗分过样例
  • Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试及其解决方法
  • 2025.10.23考试记录
  • 2025小型低温/工业/风冷/一体式螺杆冷冻机厂家推荐:东莞凯诺机械专业制冷解决方案
  • noipd8t2 - Slayer
  • OJ模拟面试3(异步判题架构)
  • 破局内容运营效率:2025 微信编辑器 10 款深度测评