引言

在嵌入式开发的世界里,即使只是一颗小小的LED灯,也能成为无尽创意的舞台。

当你的开发板上仅有一颗LED时,如何让它呈现出丰富多彩的闪烁效果?

接下来,让我们通过对RL78/G15的编程实践,为这颗简单的LED注入灵动的“生命力”。

LED工作机制:从“亮”与“灭”说起

LED(发光二极管)是一种半导体光源,当有电流通过时就会发光。在开发板上,我们可以通过控制GPIO引脚的高低电平来实现这一过程:

高电平(HIGH):LED点亮

低电平(LOW):LED熄灭

LED的工作模式看似简单,但当我们巧妙地融入"时间"这个维度,在程序中控制亮灭的节奏、频率和规律,一颗LED就能呈现出丰富多彩的变化。

快闪与慢闪——节奏的艺术

1慢闪模式:沉稳的心跳

慢闪模式是LED最基础的闪烁模式,如同平静而沉稳的心跳,传递着稳定、可靠的信号,非常适合用作状态指示灯,向用户传达“系统正常运行”的信息

2快闪模式:紧急的警报

当闪烁频率加快,LED瞬间变得“急促”起来,常用于警告、报警或提醒场景。

相同的硬件,不同的节奏,却能传递出截然不同的信息。在程序开发中,我们可以通过调整延时函数的参数,控制LED闪烁节奏,轻松切换LED的“情绪”。

摩斯码——让LED“开口说话”

如果说闪烁频率帮助LED传达“情绪”,那么摩斯码则是赋予LED“语言”的能力。

摩斯码原理

短闪(点):点亮0.2秒

长闪(划):点亮0.6秒

间隔:熄灭0.2秒(字符内)/0.6秒(字符间)

通过长短闪烁的巧妙组合,LED能够“说出”字母、数字甚至完整的单词。例如,字母"S"由三个短闪(···)组成,字母"O"由三个长闪(---)组成,当它们连在一起,就成了国际通用的求救信号"SOS"(···---···)。

呼吸灯——赋予LED“生命”

如果说前面的模式是“数字化”的开关控制,那么呼吸灯则是“模拟化”的艺术呈现。

1什么是呼吸灯?

LED从熄灭状态逐渐转换到最高亮度,再从最高亮度逐渐熄灭,循环往复,如同生物呼吸般自然流畅。

2技术实现:PWM(脉宽调制)

通过快速开关LED并调整“亮”的时间占比,人眼会产生亮度变化的错觉:

占空比10%:低亮度

占空比50%:中等亮度

占空比90%:最高亮度

呼吸灯常见于高端电子产品的待机指示,它传递的不仅是状态信息,更是一种细腻而优雅的用户体验。

相信各位对LED的不同模式的设置原理有了基本的了解,那么如何在开发板上实现这些模式呢?下面让我们一同探索。

开发环境与硬件准备

1所用微控制器

RL78/G15

2开发板

RL78/G15 Fast Board

3集成开发环境

v2025-07(瑞萨电子开发)

RL Smart V1.14.0

CC-RL v1.15.01

4硬件连接注意事项:

RL78G15开发板LED编程_mode 3_LED摩斯码实现方法

如上图所示,开发板上的J10、J11和J12跳线帽均需要连接2-3,这样才能使用E2 Lite进行调试。

相关外围功能和用途

在开发板上有两个LED:LED1和LED2,选取LED1作为控制对象,通过查看原理图可知,LED1对应的RL78/G15输出引脚为P20,LED1正极接VDD,负极接P20,因此,只要控制P20引脚电平高低,就可以控制LED1的亮灭。

LED摩斯码实现方法_RL78G15开发板LED编程_mode 3

此外,控制LED的快闪慢闪、摩斯码模式、呼吸灯模式需要引入 Timer模块和PWM模块。各模块的功能和用途见下表:

外围功能

用途

Timer模块

产生定时中断

PWM模块

生成脉宽调制信号

在Smart 中对这两个模块做如下设置:

设置IT模块 value为100ms

LED摩斯码实现方法_mode 3_RL78G15开发板LED编程

设置PWM模块Cycle value为2ms,选取 3作为slave,占空比设置为90%

mode 3_RL78G15开发板LED编程_LED摩斯码实现方法

在引脚配置页面,将TO03对应引脚配置为P20

RL78G15开发板LED编程_mode 3_LED摩斯码实现方法

软件流程

实现LED不同模式的代码流程如下图所示,首先定义参数“”,通过设置“”,调用不同的函数,实现LED不同模式控制。

“=0”时,调用(),LED进入快闪模式

“=1”时,调用(),LED进入慢闪模式

“=2”时,调用(),LED显示“SOS”摩斯码

“=3”时,调用(),LED进入呼吸灯模式

mode 3_RL78G15开发板LED编程_LED摩斯码实现方法

下面两个流程图分别对应LED的快闪模式和慢闪模式,在这两个模式下,只需要利用 Timer模块,调整LED延时时间即可实现。

mode 3_LED摩斯码实现方法_RL78G15开发板LED编程

RL78G15开发板LED编程_LED摩斯码实现方法_mode 3

下方是LED摩斯码和LED呼吸灯的流程图,LED显示摩斯码通过调整延时时间实现,而LED的呼吸灯模式则是通过调整PWM中的占空比实现。

RL78G15开发板LED编程_LED摩斯码实现方法_mode 3

mode 3_LED摩斯码实现方法_RL78G15开发板LED编程

工程示例

按照上述流程,实现LED不同模式的示例工程如下:

工程中使用的函数如下表所示:

函数名称

功能

()

启动IT模块

t()

启动PWM模块

EI()

使能中断

t(void)

IT中断

( )

延时函数

(void)

PWM中断

(void)

LED快闪模式

(void)

LED慢闪模式

(void)

LED闪烁SOS摩斯码

(void)

LED呼吸灯模式

结尾

从基础的快慢闪烁,到能"说话"的摩斯码,再到充满生命感的呼吸灯,每一种模式都是逻辑思维与创意表达的结晶。希望你也能从中获得启发,点亮更多创意的“灯泡”。