1、实验三 键盘中断实验一实验目的1熟练运用 MT-IDE 嵌入式开发系统环境、汇编、 C 语言、调试方式。2复习串行通信接口(SCI)的内容。3加强键盘中断基本原理及编程原理的理解。4理解运行课本中的程序代码。5理解“行扫描”法的原理并能进行键值识别和键值编码。6理解键盘接线原理图(如图 3-1) 。实验箱提供一个 16 键键盘,用于键盘中断信号的输入。系统提供两种接线方式:当将键盘接入上一排插孔时为固定接线,键盘接线原理图如图 3-1 所示。当将键盘接入下一排插孔时为手动接线,连线的位置在键盘的左边。二预习要求1仔细阅读本实验指导书。2复习有关的键盘中断和串行通信接口(SCI)的章节。3熟悉
2、GP32 键盘模块的工作方法及编程。4根据实验内容要求编写好程序,为实验做充分地准备。列线 n1 n2 n3 n4MCU 内部上拉电阻图 3-1 键盘接线原理图12345678行线 m1 m2m3m45V接 MCU的 PTA 引脚三实验设备及其连接1PC 机 一台2MT-IDE 嵌入式开发系统 一台3串行通信线 一根4小键盘 一个5万用表 一个四实验内容1理解键盘模块及键盘中断的原理。2运行与理解各子程序。3主程序运行课本的样例程序。4编制一个中断方式的 16 键键盘程序,使用“行扫描”法识别按键。采用键盘中断方式。PTA7-PTA4 为列线(输入) ,定义有内部上拉电阻,PTA3-PTA0
3、为行线(输出) ,没有内部上拉电阻,允许 INTBIER 的 KBIE7-KBIE4 定义为中断输入引脚。要求按下的一个键的键值和键面定义值(键的 ASCII 码值)通过串口在 PC 方软件界面显示,同时用小灯显示按键的键面定义值(键的 ASCII 码值) 。键盘与 MCU 的PTA7-PTA0 相连。PTB7-PTB0 口与小灯相连。五编程提示1按照结构要求写好编程代码和注释。2键盘一般都是矩阵排列的,行和列分别接在 MCU 的 I/O 口上,其中列线通过设置内部上拉电阻接5V,该端口先定义为输入端,行线直接与端口相连,该端口定义为输出端。当键盘上没有被按下时,所有的行线和列线断开,且列线都
4、呈高电平。当键盘上某个键闭合时,则与该键对应的行线和列线短路,对于 16 键键盘,此时行值和列值的组合就是识别这个键的键值的一个字节,PTA0-PTA 3 分别接四根行线,PTA4-PTA 7 分别接四根列线。行扫描法是使键盘的某一行输出为低电平,其余行为高电平,然后读取列值,如果列值中有某位为低电平,则表明该行和列交点处的键被按下;若为全高则再扫描下一行,直至扫描完全部的行线为止。这样就可以确定是哪一行哪一列交点的键被按下。3PTA 端口引脚与键盘中断输入引脚复用,设置键盘中断允许寄存器,当键盘有键被按下时,立即产生中断,中断程序处理按键事件,比如确定哪个键被按下,然后转换为该键的定义值。4键盘的键面标示码(即定义值)与 MCU 识别的键值对应关系通过列表对应起来,即键盘定义表对应表示。当通过“行扫描”法获得某个键的键值时,通过查表法就可以得到它的定义值。5该键盘中断方式程序的主程序主体是一个死循环,且是一个空循环体,所有处理的过程代码放在中断程序中。六实验报告要求1将调试好程序整理到实验报告。回答下列问题2识别是否有键按下以及哪个键被按下有哪些方法?3有哪些方法可以用来消除键盘抖动?