1.27k likes | 1.38k Views
第八章 人机接口技术. 1 、键盘接口控制 2 、鼠标接口 3 、 LED 显示器接口 4 、视屏显示接口 5 、打印机接口 6 、触摸屏原理和接口 7 、光笔接口. 键盘接口控制. 键盘由一组按规则排列的按键开关组成,每个按键开关的动作,由键盘控制电路转换成相应的代码(比如键盘位置码),通过键盘接口电路传送给计算机系统,由计算机系统按用户意图作相应的处理。. 键盘的种类很多。按键盘的构造原理,可以分为机械式键盘、电容式键盘、薄膜式键盘和电阻式键盘。. 按照键盘插口方式,键盘可分为 AT 键盘(大口)、 PS/2 键盘(小口)两类。
E N D
第八章 人机接口技术 • 1、键盘接口控制 • 2、鼠标接口 • 3、LED显示器接口 • 4、视屏显示接口 • 5、打印机接口 • 6、触摸屏原理和接口 • 7、光笔接口
键盘接口控制 • 键盘由一组按规则排列的按键开关组成,每个按键开关的动作,由键盘控制电路转换成相应的代码(比如键盘位置码),通过键盘接口电路传送给计算机系统,由计算机系统按用户意图作相应的处理。
键盘的种类很多。按键盘的构造原理,可以分为机械式键盘、电容式键盘、薄膜式键盘和电阻式键盘。键盘的种类很多。按键盘的构造原理,可以分为机械式键盘、电容式键盘、薄膜式键盘和电阻式键盘。
按照键盘插口方式,键盘可分为AT键盘(大口)、PS/2键盘(小口)两类。按照键盘插口方式,键盘可分为AT键盘(大口)、PS/2键盘(小口)两类。 • 按键盘按键位置码的识别方式,可以分为两大类:编码键盘和非编码键盘。 • 编码键盘是键盘电路在某个键被按下后,能提供该键所代表的信息代码。 • 非编码键盘是一种便宜而广泛用于微机系统的输入设备。这种键盘内部有一个扫描电路,不断地扫描键盘是否有键被按下。此键所代表的键盘信息代码,则由键盘接口及键盘处理软件根据键盘送来的位置信息产生。
键盘工作的基本原理 • 8.1.1.1 按键的结构特点 • 键盘上的按键,其实是仅仅供检测的电路开关,只提供电路逻辑上的通与断。
机械式按键在按下和释放时,通常伴随着一定时间的触点机械抖动,然后其触点才能稳定下来。机械式按键在按下和释放时,通常伴随着一定时间的触点机械抖动,然后其触点才能稳定下来。 • 在触点抖动期间,或着由于外界的干扰在电路中产生毛刺期间,检测按键的通与断状态,可能就会导致判别出错。即一次按下或释放被错误的检测为用户多次的键盘操作,或者,干扰毛刺也被检测为用户有效的键盘操作。 • 计算机中必须做键盘去抖动处理。
目前去抖动的方法有两种:一是用硬件电路来实现,即使用RC滤波电路滤除抖动的波形。另外一种办法就是用软件延时的方法来解决。目前去抖动的方法有两种:一是用硬件电路来实现,即使用RC滤波电路滤除抖动的波形。另外一种办法就是用软件延时的方法来解决。 • 软件延时的方法就是通过延时来等候信号稳定,在信号稳定以后再去识别键码。 • 其过程是在检查到有键按下以后延时一段时间)(10~15ms),再检查一次看是否有按键按下。若这一次检查不到,则说明前一次的检查结果是干扰或者抖动,若这一次检查到有按键按下,则说明信号已经稳定,然后判断闭合按键的键码。当闭合按键的键码确定以后,再去检测按键是否被释放,待按键释放以后再进行键盘处理,这样就可以消除释放抖动的干扰。
重键是指两个或两个以上的按键同时按下闭合,或者一个按键按下后还未弹开,另外一个按键已按下。重键是指两个或两个以上的按键同时按下闭合,或者一个按键按下后还未弹开,另外一个按键已按下。 • 对重键处理的常用方法有两种: • 一是最终检测法:连续不断的对键盘进行扫描,当有多个闭合键时不予识别,仅以最后检查到的一个闭合键为确认键。 • 二是初检法,它是确认一个闭合键后处于保持状态,只有当该键被释放以后再去处理,并开始识别其他键。
键码识别 • 编码式键盘是通过数字电路直接产生对应于按键的ASCII码,目前很少使用。 • 非编码式键盘将按键排列成矩阵的形式,由硬件或软件随时对矩阵扫描,一旦某一键被按下,该键的行列信息即被转换为位置码并送入主机,再由键盘驱动程序查表,从而得到按键的ASCII码,最后送入内存中的键盘缓冲区供主机分析执行。 • 非编码式键盘由于其结构简单、按键重定义方便而成为目前最常采用的键盘类型。计算机中使用的主要是非编码键盘。
常用的计算机键盘结构为矩阵键盘,它所需要的接口线数目是行数加列数,而所能够管理的键盘数目则是行数×列数。常用的计算机键盘结构为矩阵键盘,它所需要的接口线数目是行数加列数,而所能够管理的键盘数目则是行数×列数。
设8255的片选信号为200H~203H。 • 键盘控制程序如下: • 初始化部分: • 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: • IN AL,DX ;读列数据 • AND AL,0FH ;屏蔽无关位 • CMP AL,0FH ;查各列有无为0 • JZ LOP1 ;无按,继续等待按键(或转出) • CALL DELAY ;有按,延时10~20毫秒,消除抖动 • IN AL,DX ;读列数据 • AND AL,0FH ;屏蔽无关位 • CMP AL,0FH ;查各列有无为0 • JZ LOP1 ;无按,继续等待按键(或转出) • 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 ;读列数据 • AND AL,0FH ;屏蔽无关位 • CMP AL,0FH ;查本扫描行有无列为0 • JNZ LOP3 ;有,出LOP3查本行键号 • ADD CL,4 ;无,键号+4,准备查下一行 • MOV AL,AH ;重取下一行扫描码 • DEC BL ;行数-1 • JMP LOP2 ;返回,扫描下一行
LOP3: INC CL ;键号+1(预置时比实际小1) • RCR AL,1 ;循环右移一位 • JC LOP3 ;最低位=1,返回再找 • LOP4: ;等待按键松开 • IN AL,DX ;读列数据 • AND AL,0FH ;屏蔽无关位 • CMP AL,0FH ;查各列有无为0 • JNZ LOP4 ;按,继续等待按键松开 • MOV AL,CL ;键号送AL • CMP AL,0 ;查是否0号键 • JZ KEY0;是,转0号键处理 • CMP AL,1 ;查是否1号键 • JZ KEY0;是,转1号键处理 • ······
PC键盘接口 • PC系列键盘是用于各种微型计算机的键盘,从最初的83键基本键盘到现在的常用的带有Windows菜单控制键的104键的键盘。 • 当前,使用较多的是电容式键盘。 • 在实际的系统设计中,为了更有效的利用CPU的运行时间,减少CPU对键盘管理所用的时间,在通用的微机系统中常用专用硬件电路来完成键盘扫描、去抖动、键码查询的工作,CPU只是在有键按下时直接处理由编码键盘送来的键码值。
PC机键盘是一个典型的非编码键盘,由专用的智能电路(8048单片机)做键盘控制器完成键盘扫描,键码的识别,最后送出键盘扫描码。PC机则用一个8042或者8742键盘控制器接受和发送有关键盘信息。PC机键盘是一个典型的非编码键盘,由专用的智能电路(8048单片机)做键盘控制器完成键盘扫描,键码的识别,最后送出键盘扫描码。PC机则用一个8042或者8742键盘控制器接受和发送有关键盘信息。
数据字节送到键盘控制器的输出缓冲器中时,键盘控制器8042使其输出口P24变高,向主机送出中断请求信号IRQ1,请求主机系统进行读取,数据字节送到键盘控制器的输出缓冲器中时,键盘控制器8042使其输出口P24变高,向主机送出中断请求信号IRQ1,请求主机系统进行读取, • 键盘上的8048单片机通过5芯插座与主机板上的键盘接口联结。 • PC机的键盘接口电路的8042通过TEST0 (CLK)和TEST1(DATA)端口接受来自键盘的时钟和串行的键盘数据,检查键盘数据的奇偶性,并把它变换成扫描码,以便作为它的输出缓冲器中的一个数据字节,向系统传送。
向主机送出中断请求信号IRQ1,请求主机系统进行读取时,DATA(P27)=0,告诉键盘,目前不允许它继续送出扫描码。向主机送出中断请求信号IRQ1,请求主机系统进行读取时,DATA(P27)=0,告诉键盘,目前不允许它继续送出扫描码。 • 等到中断服务程序将此扫描码读入后,8742的P24=0、P27=1,允许键盘再送入扫描码。 • 键盘送出的数据由键盘提供的时钟(CLK)进行同步。键盘也可以接受数据,通过8042的输出口P26和P27,将CLK和DATA信号送到键盘。
PC机键盘接口电路安装在主机系统板上,通过5芯接口电缆与键盘连接。PC机键盘接口电路安装在主机系统板上,通过5芯接口电缆与键盘连接。
PC/XT与8255的接口电路如下: • 口A: 在加电自检时为输出,输出当前检测部件的标志信号;其在正常工作时为输入,用来读取键盘扫描码。 • 口B: 工作于输出方式,用于对键盘串并转换、RAM和I/O通道检验以及扬声器等的启动和控制。 • 口C:为输入方式,高4位为状态测试位,低4位用来读取系统板上系统配置开关DIP的状态。
在PC机的ROM BIOS中,对键盘初始化和键盘中断的程序(PC机内8255地址是60H~63H)为: • MOV AL,99H • OUT 63H,AL • ……… • MOV AL,0C8H • OUT 61H,AL • MOV AL,48H • OUT 61H,AL
PC机采用硬中断IRQ1(INT 09H)来实现键盘扫描码的读取、ASCII码转换以及组合键等的识别。 • 在IRQ1键盘中断服务程序中,对扫描码进行读取和对键盘接口进行控制的程序为: • KEY_IN: IN AL,60H ;读入键盘数据端口 • TEST AL,80H;按键是否松开 • JNZ KEY_IN ;未松开,返回等待(防止重键) • PUSH AX • IN AL,61H;读键盘状态端口(8255PB口)
MOV AH,AL • OR AL,80H;置PB7=1 • OUT 61H,AL;清除中断触发器 • XCHG AH,AL ;恢复PB读入数据 • OUT 61H,AL;恢复PB7=0,PB6=1,允许接收下一个键 • POP AX ;恢复读入的键盘扫描码 • MOV AH,AL ;键盘扫描码送AH • XLATB: • ……… ;查表,将扫描码转换为ASCII码
鼠标接口 • 8.2.1概述 • 由于图形用户界面的发展,鼠标已经成为微机的标准硬件输入设备。 • 功能是将用户在使用鼠标作平面运动过程中产生的x方向和y方向的位移量,通过鼠标接口传送给计算机,在计算机中再转换成显示屏幕上的坐标数据。 • 按结构分,常用的鼠标有机械式鼠标和光电式鼠标两种。机械式鼠标结构简单,价格便宜,而光电式鼠标精度高、可靠性高。
按接口分,常用的鼠标有串行通信接口鼠标和USB接口鼠标。按接口分,常用的鼠标有串行通信接口鼠标和USB接口鼠标。 • 图8-7为鼠标的基本结构框图
串行通信鼠标一般采用RS-232标准接口进行通信。这种鼠标不需要专门的电源线,由标准的RS-232串行通信接口电路里中的RTS提供驱动,SGND作为地线,使用TxD作为数据发送线,DTR作为联络信号线,进行鼠标器的控制。串行通信鼠标一般采用RS-232标准接口进行通信。这种鼠标不需要专门的电源线,由标准的RS-232串行通信接口电路里中的RTS提供驱动,SGND作为地线,使用TxD作为数据发送线,DTR作为联络信号线,进行鼠标器的控制。 • 在串行通信鼠标的接口板上有微处理器,其作用是判断鼠标是否启动,在鼠标工作时,控制输出在x、y方向的串行位移数据。 • 大多数鼠标采用7位数据位、1位停止位、无奇偶校验方式,以1200/2400bps的速率发送数据。
各种鼠标的数据格式都有差别,Microsoft公司制定的两键鼠标数据的标准格式如表8-1示。其中LB、RB分别表示鼠标的左键和右键按下。X7~X0、Y7~Y0表示相对于上次的位移量。鼠标位移量的基本单位为米基(Mickeys),1米基=0.0005英寸,而三个字节的每个字节的D6位表示字节间的时序关系。各种鼠标的数据格式都有差别,Microsoft公司制定的两键鼠标数据的标准格式如表8-1示。其中LB、RB分别表示鼠标的左键和右键按下。X7~X0、Y7~Y0表示相对于上次的位移量。鼠标位移量的基本单位为米基(Mickeys),1米基=0.0005英寸,而三个字节的每个字节的D6位表示字节间的时序关系。
鼠标的精度与图形显示器有关,其坐标的纵横向取值范围与显示器的最大分辨率一致。如表8-1所示。鼠标的精度与图形显示器有关,其坐标的纵横向取值范围与显示器的最大分辨率一致。如表8-1所示。
8.2.2 鼠标驱动 • 鼠标驱动程序 • 在计算机中,鼠标已经是标准输入设备,所以在系统中都配有鼠标的标准驱动程序。并在系统建立时加载。 • 一旦系统中加载了鼠标驱动程序,则用户每当移动一下鼠标或按动一下鼠标按钮,就会产生一次INT 33H中断。鼠标驱动程序处理这次中断,设置相应的内部变量,然后返回。
在DOS下的鼠标驱动程序若是MOUSE .SYS,则必须设置在CONFIG.SYS文件中,加如下1行: • DEVICE=MOUSE.SYS • 若鼠标驱动程序是 MOUSE.COM。则必须设置在AUTOEXEC.BAT文件中。加如下1行: • MOUSE • 若是在Windows环境下,则鼠标驱动程序为MOUSE.DRV,由于在图形界面下,鼠标是必要的输入设备,所以系统自动加载,无须用户设置。
鼠标的编程应用 • Microsoft为鼠标提供了一个软件中断指令int 33H,只要在系统中加载了鼠标驱动程序,在应用程序中就可以对它直接调用,对鼠标进行操作。 • int 33H有多种子功能,可通过在AX中设置功能号来选择。常用int 33H功能调用如表8-3
LED显示器接口 • LED七段发光二极管显示器是工业控制设备面板信息显示的主要器件,它分共阴极连接和共阳极连接两种。
数码管以7个发光二极管组成一个“8”字的各段,另有一个发光二极管用于小数点的显示。数码管以7个发光二极管组成一个“8”字的各段,另有一个发光二极管用于小数点的显示。 • 对共阴极连接的数码管,每段笔划的二极管在1电平时亮,0电平不亮;共阳极连接时则刚好相反。 • 用于微机接口时,应根据数码管笔划与数据线的连接进行适当的编码,通过输出适当的编码,使数码管的某些笔划的亮与不亮,构成显示所需的数字和字符。
图8-9为常见的两种7段数码管的应用连接接口电路。图8-9为常见的两种7段数码管的应用连接接口电路。
图8-10是利用8255A控制的,对S1~S3组合开关的状态,用LED共阴极数码管进行显示的接口电路图。图8-10是利用8255A控制的,对S1~S3组合开关的状态,用LED共阴极数码管进行显示的接口电路图。 • 开关S1~S3拨定为某一状态时,其对应的二进制数值由LED数码管显示出来。
对应C语言程序如下: • #include <stdio.h> • main(){ • char led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07} //设LED字码表 • unsigned char led_index; • outportb(0x203,0x90); //8255A初始化:方式0,A口输入,B口输出 • outportb(0x203,0x08); //设PC4(INTEA)=0(关中断) • outportb(0x201,0); //开始,先关闭LED显示 • while(!kbhit( ) ){ //当键盘按下时,程序退出 • led_index=inportb(0x200); //读A口 • led_index=led_index&0x07; //得到开关状态 • outportb(0x201,led[led_index]) //查LED编码表并由B口输出,显示 • } • }
以上电路功能也可以用中断方式编程实现,复位按钮用于产生STBA,8255A的INTRA可作为8259的中断请求信号。以上电路功能也可以用中断方式编程实现,复位按钮用于产生STBA,8255A的INTRA可作为8259的中断请求信号。 • 作业:对以上电路功能要求,试用中断方式编程实现。(可用汇编语言、C语言均可)
视屏显示接口 • 视频显示是重要的人机交互方式,计算机系统通过显示接口在显示设备上以多种方式输出各种信息,比如,以字符、表格、图形和图象的形式显示计算机信息处理的结果。 • 在微机中最常用的显示设备是CRT(Cathod-Ray Tube)显示终端。 • 本节讨论计算机视频显示的基本原理。
显示器的工作原理 • 显示终端的技术不断成熟,实际上CRT显示终端本身就含有CPU的控制系统。 • 按色彩形式分:单色和彩色显示器。 • 按视频信号的输入形式分:数字式和模拟式显示器。 • 按分辨率分:高分辨率和低分辨率显示器。 • 按显示方式分:MDA、CGA、EGA、VGA、SVGA及XGA等几种方式。
按显象管屏幕分类:显示器可以分为球面显示器、平面直角显示器、纯平显示器等。按显象管屏幕分类:显示器可以分为球面显示器、平面直角显示器、纯平显示器等。 • 显示部件是一个与彩色电视显像管类似的CRT显像管。显像管的荧光屏上涂有一层薄薄的发光涂层,电子枪发射的电子束轰击发光涂层就能产生光信号,通过控制电子束就可以在屏幕上显示出文字或图像。
荧光粉在电子束的撞击下发出不同颜色和亮度的光点。荧光粉在电子束的撞击下发出不同颜色和亮度的光点。 • 电子枪由灯丝、阴极、栅极、阳极、聚焦极等部件组成。电子枪的灯丝通电后产生热量使阴极加热,变热的阴极将释放出大量的电子;栅极用于控制这些电子通过栅极进入阳极区域进而撞击显示屏的电子数量,阳极实现对电子束的加速,确保电子束有足够的动能以提高显示屏的显示亮度;聚焦极用于对电子束进行聚焦,形成一条很细的电子束,打在显示屏上形成一个很小的亮点。
球面CRT显像管的断面是一个球面,它在水平和垂直方向上都是弯曲的,弯曲的球面造成了图像的严重失真,并使实际的显示面积小于标称面积;同时弯曲的屏幕还容易造成反光现象,严重影响视觉效果。球面CRT显像管的断面是一个球面,它在水平和垂直方向上都是弯曲的,弯曲的球面造成了图像的严重失真,并使实际的显示面积小于标称面积;同时弯曲的屏幕还容易造成反光现象,严重影响视觉效果。 • 平面直角显示器是对球面显示器的改进,显像管的曲率比球面显像管小,屏幕表面接近平面,四个角都是直角,因此画面比较平坦,可获得较低的眩光和反射,再加上屏幕涂层等新技术的采用,显示器的显示质量有了明显的提高。目前主流显示器都属于平面直角显示器。
纯平显示器按显象管的特征又分为柱面显象管和完全平面显象管两大类。柱面显像管的屏幕在垂直方向上完全笔直,在水平方向上仍然有一点弧度,它实现的是“视觉纯平”,而不是真正的“物理纯平”。纯平显示器按显象管的特征又分为柱面显象管和完全平面显象管两大类。柱面显像管的屏幕在垂直方向上完全笔直,在水平方向上仍然有一点弧度,它实现的是“视觉纯平”,而不是真正的“物理纯平”。 • 按显示屏的结构分:CRT阴极射线管式和LCD液晶式显示器。 • 现在基本上使用的是CRT和LCD。
显示接口卡与显示器之间的数据联接采用9根(单色显示)或15根(彩色显示)数据线连接。并用D型插头与显示接口卡进行物理连接。显示接口卡与显示器之间的数据联接采用9根(单色显示)或15根(彩色显示)数据线连接。并用D型插头与显示接口卡进行物理连接。