实验三 键盘中断实验报告

苏州大学实验报告

院、系        年级专业     姓名    学号     

课程名称                      成绩     

指导教师         同组实验者      实验日期     

实验名称:         键盘中断实验         

一.实验目的

  通过该实验实习,能够熟练运用MT-IDE嵌入式开发系统环境、汇编和C语言以及调试方式;复习SCI的内容;加强键盘中断的基本原理及编程原理的理解;能够理解“行扫描”法的原理并且运用它进行键盘中断的编程。                                           

二.实验内容

  理解键盘模块和键盘中断点的原理,使用“行扫描”法编写一个中断方式的的键盘程序,并转化成定义值后,通过串口分别发往PC机的VB编写的界面中显示。         

三.实验过程

(一)接线图

(二)基本原理

  GP32A口的8根引脚与键盘中断模块(KBI)的引脚复用。作为KBI引脚时,8个引脚分别称为KBIE7- KBIE0。它们提供了以中断方式识别是否有按键按下的硬件手段。当然,如果不以中断方式识别键盘按键,可以屏蔽键盘中断,把A口作为一般I/O口对待。      

  CPU对键盘扫描可以采取程序控制的随机方式,CPU可以在空闲时扫描键盘。也可以采用定时控制,每隔一定时间,对键盘扫描一次,CPU可以随时响应键盘输入中断。采用中断方式,当键盘上有键闭合时,键盘向CPU请求中断,CPU响应键盘输入中断,对键盘扫描,以识别哪一个键处于闭合状态,并对键盘输入信息作出响应处理。CPU对键盘上闭合键的键号确定,可以根据行线和列线的状态计算求得,也可以通过行线和列线的状态查表求得。 

四.编程

(一)流程图

(二)所用寄存器名称及其各个位

键盘状态和控制寄存器(Keyboard Status and Control Register,INTKBSCR)

键盘中断允许寄存器(Keyboard Interrupt Enable Register,INTBIER)

(三)主要代码段

1.汇编方式:

2.C语言方式:

五.实验问答(根据实验指导书所列举的问题)

1.本实验中用的是键盘中断编程方式,也可以使用查询编程方式,请尽量少修改代码改用查询编程方式重新编写相应的子程序和主程序。提示:注意重键问题。

  答:只要把键盘中断子程序的内容放到主函数的循环中就可以了。同时去掉中断向量表中关于键盘中断的中断设置。                                                      

2.识别是否有键按下以及哪个键被按下有哪些方法?

  答:识别是否有键被按下,主要有查询法、定时扫描法与中断法。而要识别键盘上哪个键被按下主要有行扫描法和行反转法。                       

3.有哪些方法可以用来消除键盘抖动?

  答:当按下一个键时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合位置的情况,当释放一个按键时也会出现类似情况,这就是抖动问题。在软件上,解决抖动问题的方法通常是延迟――等待抖动的消失或多次识别判定。                          

4.课本中的键盘中断编程是如何解决重键问题?

  答:所谓重键就是有两个及两个以上按键同时处于闭合位置的情况。在软件上,处理重键问题通常有连锁法和巡回法。                          

5.课本中的样例直接用小灯检验程序的运行情况。怎样检验?提示:用接线图来说明。

  答:如果小灯的显示结果是按键对应的ASCII码值,说明程序运行正确,否则程序中或硬件上可能有错误。                                     

6.在上题中改用万用表来检验,请加以说明。提示:用接线图来说明。

  答:用万用表来检测PTB口的各个引脚的电压情况也可以得到按键的ASCII码值,依此来判定程序的运行情况。                                                           

六.实验小结

  通过该实验实习,了解单片机的键盘模块,熟悉和掌握了MT-IDE嵌入式开发系统环境及其调试方式,进一步熟悉汇编编程和C语言编程;和理解了课本中的程序代码。    

 

第二篇:实验三键盘实验报告

辽宁工程技术大学上机实验报告

相关推荐