工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->综合电路图->如何配置R7F0C002按键中断功能—软件设置篇

如何配置R7F0C002按键中断功能—软件设置篇

作者:angelazhang 时间:2015-11-09

概要:

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”。









评论

技术专区