如何配置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”。
![](http://uphotos.eepw.com.cn/1415927710/pics/6bb1ff15882f0083f19cdf9b9b7626f9.jpg)
1.3.3系统函数
系统函数的流程,请参见“图 4.3”。
![](http://uphotos.eepw.com.cn/1415927710/pics/3049f8bb6c4c4c675bdfb98bd23e2046.jpg)
1.3.4初始化端口
初始化端口的流程,请参见“图 4.4”。
1.3.5CPU 时钟设置
CPU 时钟设置的流程,请参见“图 4.5”。
1.3.6定时器阵列单元初始化
定时器阵列单元初始化的流程,请参见“图 4.6” 。
![](http://uphotos.eepw.com.cn/1415927710/pics/68bdde73e66eb585cb644f43ffbd1e78.jpg)
1.3.7键中断初始化
键中断初始化的流程,请参见“图 4.7”。
1.3.8主函数处理
主函数流程,请参见“图 4.8” 和“图 4.9” 。
![](http://uphotos.eepw.com.cn/1415927710/pics/6801be46c579bc241b90a02f40ef2efc.jpg)
1.3.9允许键中断
允许键中断的流程图,请参见“图 4.1 0”。
1.3.10检测键中断
检测键中断的流程图,请参见“图 4.1 1”。
1.3.11变更 LED 输出
变更 LED 输出的流程图,请参见“图 4.12”。
![](http://uphotos.eepw.com.cn/1415927710/pics/9781af1d977f9cfecd8638f2d6b36d21.jpg)
![](https://webstorage.eepw.com.cn/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码