如何配置R7F0C002按键中断功能—软件设置篇
概要:
RL78集成了针对按键的键中断功能,能通过给键中断输入引脚 (KR0 ~ KR3)输入下降沿或者上升沿来产生键中断(INTKR),本文针对R7F0C002应用说明介绍了键中断功能的使用方法。
对 4×4 的键矩阵进行扫描,并在 2 个 7 段数码管上显示按下的键值。也适用于其他与上面所述的 MCU 具有相同 SFR(特殊功能寄存器)定义的产品。
本篇主要说明软件流程部分及注意事项。
一、软件说明
1.1操作概要
本篇应用说明中,使用了键中断( INTKR)和定时器中断( INTTM00)。
使能全部的扫描线,将全部的键输入设为有效状态,无论哪个键被按下都会产生 INTKR。 INTKR 产生后,依据键扫描判断出被按下的键值。每 30ms 进行一次键检测,当两次检测到的键值一致时,则认为这个键被按下(消抖处理),并在 2 个 7 段数码管上显示该键值。当多个按键同时被按下时, 7 段数码管上显示 FF。如果没有键被按下时, 7 段数码管上显示 00。这个处理持续到所有的按键都没有被按下的时候。
(1) 初始化设置
<设定条件>
• 将 TAU0 通道 0 设置为周期 30ms 的间隔定时器。
• 将键中断检测端口设置为中断允许状态。
• 将键扫描输出端口全部设置为输出状态。
(2) 等待有键按下。
(3) INTKR 发生后,执行键扫描。
(4) 每 30ms 执行一次键扫描,进行消抖处理。
(5) 确定键值后,在 LED 上显示键按下状态。
(6) 如果所有的键都没有被按下,使能全部扫描线,返回(2)等待键输入。
1.2 选项字节设置一览
选项字节的设置,请参见“表 4.1”。
1.3流程图
1.3.1整体流程图
本篇应用说明中参考例程的整体流程,请参见“图 4.1”。
1.3.2初始化函数
初始化函数的流程,请参见“图 4.2”。

1.3.3系统函数
系统函数的流程,请参见“图 4.3”。

1.3.4初始化端口
初始化端口的流程,请参见“图 4.4”。
1.3.5CPU 时钟设置
CPU 时钟设置的流程,请参见“图 4.5”。
1.3.6定时器阵列单元初始化
定时器阵列单元初始化的流程,请参见“图 4.6” 。

1.3.7键中断初始化
键中断初始化的流程,请参见“图 4.7”。
1.3.8主函数处理
主函数流程,请参见“图 4.8” 和“图 4.9” 。

1.3.9允许键中断
允许键中断的流程图,请参见“图 4.1 0”。
1.3.10检测键中断
检测键中断的流程图,请参见“图 4.1 1”。
1.3.11变更 LED 输出
变更 LED 输出的流程图,请参见“图 4.12”。

评论