尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

玩转单片机之智能车小露——LED闪烁实战
📅 发布时间:2026/6/20 0:28:12

用单片机点亮一颗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。

相关新闻

  • 2025.10.23总结 - A
  • 大模型 | VLA 初识及在自动驾驶场景中的应用
  • DM8 安装包 for linux_x86

最新新闻

  • Koodo Reader语音朗读:让眼睛休息,让耳朵工作的阅读新方式
  • 3个隐藏参数彻底释放DBeaver数据导入潜能
  • Chili3D:如何在浏览器中实现专业级3D CAD建模的完整技术解析
  • d2s-editor:如何用可视化工具解决暗黑破坏神2存档编辑难题
  • CANN/GE Local Operator特性分析
  • Onekey Steam清单下载器:3分钟学会游戏文件备份与管理

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号