计算机接口与通信第八章_第1页
计算机接口与通信第八章_第2页
计算机接口与通信第八章_第3页
计算机接口与通信第八章_第4页
计算机接口与通信第八章_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章人机接口技术,81 键盘接口控制,键盘由一组按规则排列的按键开关组成,每个按键开关的动作,由键盘控制电路转换成相应的代码(比如键盘位置码),通过键盘接口电路传送给计算机系统,由计算机系统按用户意图作相应的处理。,键盘的种类很多。按键盘的构造原理,可以分为机械式键盘、电容式键盘、薄膜式键盘和电阻式键盘。,按照键盘插口方式,键盘可分为AT键盘(大口)、PS/2键盘(小口)两类。 按键盘按键位置码的识别方式,可以分为两大类:编码键盘和非编码键盘。 编码键盘是键盘电路在某个键被按下后,能提供该键所代表的信息代码。 非编码键盘是一种便宜而广泛用于微机系统的输入设备。这种键盘内部有一个扫描电路,不断

2、地扫描键盘是否有键被按下。此键所代表的键盘信息代码,则由键盘接口及键盘处理软件根据键盘送来的位置信息产生。,811 键盘工作的基本原理, 按键的结构特点 键盘上的按键,其实是仅仅供检测的电路开关,只提供电路逻辑上的通与断。,按键的识别要处理好去抖动和重键两个问题。,机械式按键在按下和释放时,通常伴随着一定时间的触点机械抖动,然后其触点才能稳定下来。 在触点抖动期间,或着由于外界的干扰在电路中产生毛刺期间,检测按键的通与断状态,可能就会导致判别出错。即一次按下或释放被错误的检测为用户多次的键盘操作,或者,干扰毛刺也被检测为用户有效的键盘操作。 计算机中必须做键盘去抖动处理。,目前去

3、抖动的方法有两种:一是用硬件电路来实现,即使用RC滤波电路滤除抖动的波形。另外一种办法就是用软件延时的方法来解决。 软件延时的方法就是通过延时来等候信号稳定,在信号稳定以后再去识别键码。 其过程是在检查到有键按下以后延时一段时间)(1015ms),再检查一次看是否有按键按下。若这一次检查不到,则说明前一次的检查结果是干扰或者抖动,若这一次检查到有按键按下,则说明信号已经稳定,然后判断闭合按键的键码。当闭合按键的键码确定以后,再去检测按键是否被释放,待按键释放以后再进行键盘处理,这样就可以消除释放抖动的干扰。,重键是指两个或两个以上的按键同时按下闭合,或者一个按键按下后还未弹开,另外一个按键已按

4、下。 对重键处理的常用方法有两种: 一是最终检测法:连续不断的对键盘进行扫描,当有多个闭合键时不予识别,仅以最后检查到的一个闭合键为确认键。 二是初检法,它是确认一个闭合键后处于保持状态,只有当该键被释放以后再去处理,并开始识别其他键。, 键码识别,编码式键盘是通过数字电路直接产生对应于按键的ASCII码,目前很少使用。 非编码式键盘将按键排列成矩阵的形式,由硬件或软件随时对矩阵扫描,一旦某一键被按下,该键的行列信息即被转换为位置码并送入主机,再由键盘驱动程序查表,从而得到按键的ASCII码,最后送入内存中的键盘缓冲区供主机分析执行。 非编码式键盘由于其结构简单、按键重定义方便而

5、成为目前最常采用的键盘类型。计算机中使用的主要是非编码键盘。,常用的计算机键盘结构为矩阵键盘,它所需要的接口线数目是行数加列数,而所能够管理的键盘数目则是行数列数。,设8255的片选信号为200H203H。 键盘控制程序如下: 初始化部分: MOV AL,82H ;8255控制字:方式0,PA输出,PB输入 MOV DX,203H OUT DX,AL;写该控制字 扫描键码部分:,MOV AL,0H MOV DX,200H OUT DX,AL ;设各行线为0 INC DX LOP1: INAL,DX ;读列数据 AND AL,0FH ;屏蔽无关位 CMP AL,0FH ;查各列有无为0 JZLO

6、P1 ;无按,继续等待按键(或转出) CALLDELAY ;有按,延时1020毫秒,消除抖动 INAL,DX ;读列数据 AND AL,0FH;屏蔽无关位 CMP AL,0FH ;查各列有无为0 JZLOP1 ;无按,继续等待按键(或转出) MOV BX,0404H ;有,行数送BL,列数送BH MOV CL,0FFH ;设起始键号(CL= -1) MOV AL,11111110B;起始扫描码,0行=0,LOP2:MOV DX,200H;扫描一行 OUT DX,AL RCL AL,1 ;准备下一行数据 MOV AH,AL;保存到AH INC DX ;设PB口地址 IN AL,DX ;读列数据

7、AND AL,0FH;屏蔽无关位 CMP AL,0FH ;查本扫描行有无列为0 JNZ LOP3 ;有,出LOP3查本行键号 ADD CL,4;无,键号+4,准备查下一行 MOV AL,AH;重取下一行扫描码 DEC BL;行数1 JMP LOP2;返回,扫描下一行,LOP3:INCCL;键号1(预置时比实际小1) RCR AL,1;循环右移一位 JCLOP3;最低位=1,返回再找 LOP4: ;等待按键松开 INAL,DX ;读列数据 AND AL,0FH ;屏蔽无关位 CMP AL,0FH ;查各列有无为0 JNZLOP4 ;按,继续等待按键松开 MOV AL,CL;键号送AL CMP A

8、L,0;查是否0号键 JZ KEY0;是,转0号键处理 CMPAL,1;查是否1号键 JZKEY0;是,转1号键处理 ,812 PC键盘接口,PC系列键盘是用于各种微型计算机的键盘,从最初的83键基本键盘到现在的常用的带有Windows菜单控制键的104键的键盘。 当前,使用较多的是电容式键盘。 在实际的系统设计中,为了更有效的利用CPU的运行时间,减少CPU对键盘管理所用的时间,在通用的微机系统中常用专用硬件电路来完成键盘扫描、去抖动、键码查询的工作,CPU只是在有键按下时直接处理由编码键盘送来的键码值。,PC机键盘是一个典型的非编码键盘,由专用的智能电路(8048单片机)做键盘控制器完成键

9、盘扫描,键码的识别,最后送出键盘扫描码。PC机则用一个8042或者8742键盘控制器接受和发送有关键盘信息。,键盘上的8048单片机通过5芯插座与主机板上的键盘接口联结。,PC机的键盘接口电路的8042通过TEST0 (CLK)和TEST1(DATA)端口接受来自键盘的时钟和串行的键盘数据,检查键盘数据的奇偶性,并把它变换成扫描码,以便作为它的输出缓冲器中的一个数据字节,向系统传送。 当把这个数据字节送到键盘控制器的输出缓冲器中时,键盘控制器8042使其输出口P24变高,向主机送出中断请求信号IRQ1,请求主机系统进行读取,,这时,DATA(P27)=0,告诉键盘,目前不允许它继续送出扫描码。

10、 等到中断服务程序将此扫描码读入后,8742的P24=0、P27=1,允许键盘再送入扫描码。 键盘送出的数据由键盘提供的时钟(CLK)进行同步。键盘也可以接受数据,通过8042的输出口P26和P27,将CLK和DATA信号送到键盘。,PC机键盘接口电路安装在主机系统板上,通过5芯接口电缆与键盘连接。,在PC机的ROM BIOS中,对键盘初始化和键盘中断的程序(PC机内8255地址是60H63H,见书P81图2-14)为: MOVAL,99H OUT 63H,AL MOVAL,0C8H OUT 61H,AL MOVAL,48H OUT 61H,AL,PC机采用硬中断IRQ1(INT 09H)来实

11、现键盘扫描码的读取、ASCII码转换以及组合键等的识别。 在IRQ1键盘中断服务程序中,对扫描码进行读取和对键盘接口进行控制的程序为: KEY_IN:INAL,60H;读入键盘数据端口 TEST AL,80H;按键是否松开 JNZ KEY_IN;未松开,返回等待(防止重键) PUSH AX IN AL,61H;读键盘状态端口(8255PB口),MOVAH,AL ORAL,80H;置PB7=1 OUT61H,AL;清除中断触发器 XCHGAH,AL;恢复PB读入数据 OUT61H,AL;恢复PB7=0,PB6=1,允许接收下一个键 POPAX;恢复读入的键盘扫描码 MOVAH,AL;键盘扫描码送

12、AH XLATB: ;查表,将扫描码转换为ASCII码,82 鼠标接口,821概述 由于图形用户界面的发展,鼠标已经成为微机的标准硬件输入设备。 功能是将用户在使用鼠标作平面运动过程中产生的x方向和y方向的位移量,通过鼠标接口传送给计算机,在计算机中再转换成显示屏幕上的坐标数据。 按结构分,常用的鼠标有机械式鼠标和光电式鼠标两种。机械式鼠标结构简单,价格便宜,而光电式鼠标精度高、可靠性高。,按接口分,常用的鼠标有串行通信接口鼠标和USB接口鼠标。 图8-7为鼠标的基本结构框图,串行通信鼠标一般采用RS-232标准接口进行通信。这种鼠标不需要专门的电源线,由标准的RS-232串行通信接口电路里中

13、的RTS提供驱动,SGND作为地线,使用TxD作为数据发送线,DTR作为联络信号线,进行鼠标器的控制。 在串行通信鼠标的接口板上有微处理器,其作用是判断鼠标是否启动,在鼠标工作时,控制输出在x、y方向的串行位移数据。 大多数鼠标采用7位数据位、1位停止位、无奇偶校验方式,以1200/2400bps的速率发送数据。,各种鼠标的数据格式都有差别,Microsoft公司制定的两键鼠标数据的标准格式如表8-1示。其中LB、RB分别表示鼠标的左键和右键按下。X7X0、Y7Y0表示相对于上次的位移量。鼠标位移量的基本单位为米基(Mickeys),1米基=0.0005英寸,而三个字节的每个字节的D6位表示字

14、节间的时序关系。,鼠标的精度与图形显示器有关,其坐标的纵横向取值范围与显示器的最大分辨率一致。如表8-1所示。,8.2.2 鼠标驱动 鼠标驱动程序 在计算机中,鼠标已经是标准输入设备,所以在系统中都配有鼠标的标准驱动程序。并在系统建立时加载。 一旦系统中加载了鼠标驱动程序,则用户每当移动一下鼠标或按动一下鼠标按钮,就会产生一次INT 33H中断。鼠标驱动程序处理这次中断,设置相应的内部变量,然后返回。,在DOS下的鼠标驱动程序若是MOUSE .SYS,则必须设置在CONFIG.SYS文件中,加如下1行: DEVICE=MOUSE.SYS 若鼠标驱动程序是 MOUSE.COM。则必须设置在AUT

15、OEXEC.BAT文件中。加如下1行: MOUSE 若是在Windows环境下,则鼠标驱动程序为MOUSE.DRV,由于在图形界面下,鼠标是必要的输入设备,所以系统自动加载,无须用户设置。, 鼠标的编程应用,Microsoft为鼠标提供了一个软件中断指令int 33H,只要在系统中加载了鼠标驱动程序,在应用程序中就可以对它直接调用,对鼠标进行操作。 int 33H有多种子功能,可通过在AX中设置功能号来选择。常用int 33H功能调用如表8-3,83 LED显示器接口,LED七段发光二极管显示器是工业控制设备面板信息显示的主要器件,它分共阴极连接和共阳极连接两种。,数码管以7个发

16、光二极管组成一个“8”字的各段,另有一个发光二极管用于小数点的显示。 对共阴极连接的数码管,每段笔划的二极管在1电平时亮,0电平不亮;共阳极连接时则刚好相反。 用于微机接口时,应根据数码管笔划与数据线的连接进行适当的编码,通过输出适当的编码,使数码管的某些笔划的亮与不亮,构成显示所需的数字和字符。,图8-9为常见的两种7段数码管的应用连接接口电路。,其对应编码如表8-5所示。,图8-10是利用8255A控制的,对S1S3组合开关的状态,用LED共阴极数码管进行显示的接口电路图。 开关S1S3拨定为某一状态时,其对应的二进制数值由LED数码管显示出来。,对应C语言程序如下: #include m

17、ain() char led=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07 /设LED字码表 unsigned char led_index; outportb(0 x203,0 xb0); /8255A初始化:方式0,A口输入,B口输出 outportb(0 x203,0 x08); /设PC4(INTEA)=0(关中断) outportb(0 x201,0); /开始,先关闭LED显示 while(!kbhit)() /当键盘按下时,程序退出 led_index=inportb(0 x200);/读A口 led_index=led_inde

18、x/得到开关状态 outportb(0 x201,ledled_index)/查LED编码表并由B口输出,显示 ,以上电路功能也可以用中断方式编程实现,复位按钮用于产生STBA,8255A的INTRA可作为8259的中断请求信号。 作业:对以上电路功能要求,试用中断方式编程实现。(可用汇编语言、C语言均可),84 视屏显示接口,视频显示是重要的人机交互方式,计算机系统通过显示接口在显示设备上以多种方式输出各种信息,比如,以字符、表格、图形和图象的形式显示计算机信息处理的结果。 在微机中最常用的显示设备是CRT(Cathod-Ray Tube)显示终端。 本节讨论计算机视频显示的基本原理。,VGA方式CRT显示系统工作原理框图,841 显示器的工作原理,显示终端的技术不断成熟,实际上CRT显示终端本身就含有CPU的控制系统。 按显示屏的结构分:CRT阴极射线管式和LCD液晶式显示器。 按色彩形式分:单色和彩色显示器。 按视频信号的输入形式分:数字式和模拟式显示器。 按分辨率分:高分辨率和低分辨率显示器。 按显示方式分:MDA、CGA、EGA、VGA、SVGA及XGA等几种方式。 现在基本上使用的是CRT和LCD。,显示接口卡与显示器之间的数据联接采

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论