8255并行接口键盘实验

8255并行接口键盘实验

ID:20385224

大小:93.37 KB

页数:9页

时间:2018-10-09

8255并行接口键盘实验_第1页
8255并行接口键盘实验_第2页
8255并行接口键盘实验_第3页
8255并行接口键盘实验_第4页
8255并行接口键盘实验_第5页
资源描述:

《8255并行接口键盘实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、四川大学网络教育学院计算机综合实践校外学习中心:成都市学生姓名:专业:电气工程及其自动化层次:专升本年级:09春学实践时间:1、掌握8255A的功能及方式0、1的实现实验目的2、熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。3、利用09H型中断设计一个自己的键盘中断服务程序,程序设计应考虑在退出时不破坏原存的设置。1、8255的工作方式实验内容一片8255内部有3个端口,A门可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。方式0是基木型输入/输出。这种方式和外

2、设交换数据时,8255端口与外设之间不使用联络线。方式1为选通型输入/输出。用这种方式和外界交换数据时,端口和外设之间要有联络信号。方式2是双向数据传送,仅A口有这项功能。当A口工作在方式2时,BU仍可以工作在方式0或方式1,但此时BU方式1只能用查询方式与CPU交换信息。2.、工作方式选择字8255工作方式选择字共8位,存放在8255控制寄存器中。最高位D7为标志位,D7=l表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。3、CU置/复位控制字8255的C口可进行位操

3、作,B卩:可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)。C门置/复位字共8位,各位含义如下:D7D6D5D4D3D2D1DO0000:PC0001:PC11:量位0:复位标志XXX111:PC74、命令字与初始化编程8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:①向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。②当端门预置为方式1或方式2时,再向控制寄存器写入“C门置0/置1控制字”。这一操作的主要目的是使相应

4、端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。注意:“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。③向8255数据寄存器写入“数据”或从8255数据寄存器读出“443”法与流程键盘驱动的主要作用就是实时监测外部按键中断,一旦发现外部有键按下就向内核发送键盘消息实现键盘输入功能。键盘驱动创建了中断服务线程和4个键盘中断事件,每行按键对应一个键盘中断事件。有键被按下吋,中断服务例程得到对应的中断

5、标识符并报告给系统任务调度进程,同时产生键盘中断事件,键盘中断服务线程响应键盘中断事件,开始扫描矩阵键盘。根据产生的中断事件类型不同,可以首先确定被按下键的行位置。巾于键盘被按下后,该键对应的行和列被连通,因此根据判断各列对应的I/O口的电平,可以得到被按下键的列位置;得到按键的准确位置后,通过向操作系统发送键盘消息KEYBD_EVENT,实现一次键盘输入。循环扫描键盘,直到按键被弹起则发送KEYEVENTF_KEYUP事件。响应键盘中断输入的整个流程如图。(开始)创珐中颗服务线《K分中醑,记行位H扫摘键盘记列发送

6、键盘消息KI.YBDEVENT'反送a盘消息KEYEVENTFKliYUP1、在OAL层加入中断源矩阵键盘采用4路I/O口中断,每路中断对应1个中断源。矩阵键盘驱动首先要在OAL层加入这些中断源。以其中一路中断为例:#defineSYSINTR_KEYONE(SYSINTR_FIRMWARE+0)2>中断服务例程(ISR)设计本键盘驱动将GPIO_6、GPIO_7、GPIO_16、GPIO_17四个I/OU作为中断I/OU。存键被按下时将产生一个I/O中断,内核首先进入异常中断处理程序,由它屏蔽所有中断,再调用中断

7、服务例程ISR得到该中断的逻辑中断标识。鉴于ISR的任务比较单一,ISR通常都要求越短、越快越好。矩阵键盘驱动的ISR设计如下:if(v_pGPIOReg>GEDR_x&GPIO_6){//中断触发v.pGPIOReg>GEDR_x=GPIO_6;//清除中断returnSYSINTR.KEYONE;//返回中断标识}其他三路中断的ISR设计与此类似。3、中断服务线程(1ST)设计中断服务例程以键盘中断的逻辑中断标识符形式返回给系统任务调度进程,中断服务线程则在矩阵键盘驱动中负责具体中断处理。因为中断服务例程较小,

8、并且只做很少的处理工作,中断服务线程就必须完成大多数中断处理工作,功能主要包括响应中断、扫描按键位置、发送键盘消息等。矩阵键盘驱动的1ST设计如下:矩阵键盘驱动设计了4个中断事件HANDLEhKEYEvents,分别对应矩阵键盘4行产生的中断。在矩阵键盘驱动的1ST中,调用CreateEvent函数创建4个事件对象,接着调用系统函数InteiTuptlnit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。