第八章人机交互设备接口
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
第八章 人机交互设备接口 ■ 本章内容 8.1 键盘接口 8.2 CRT显示器接口 8.3 打印机接口 8.4 鼠标器接口 8.1 键盘接口 ● 编码键盘:内部设有键盘编码器,能识键、生成键码、去抖动、防串键 ● 非编码键盘:只提供键盘矩阵,按键的识别、键码的提供都由软件来完成 1 键盘接口的功能和原理 1)接口功能 ● 去抖动:时间5~20ms,软件延时或硬件完成 ● 防串键:多键同时按下或前一按键未释放又按下新键的处理 ● 按键识别: ● 键码产生:得到反映键功能的键码,查表法 2)接口原理——非编码键盘,行扫描,低有效 ● 是否有键按下:输出扫描码,使所有行线为0,读列线,全1无键按下 ● 去抖动:延时20ms ● 按键识别:逐行扫描确定按键(相应行线为0,读列线,是否非全1)并得键号 ● 产生键码:根据键号查键盘编码表 例:48键盘,8255A作接口,PA作行扫描口,PB读取列值 8255A PA0 PA1 7 F 6 E 5 D 4 C 3 B 2 A 1 9 0 8 +5V 8255A的PA方式0、输出 PB方式0、输入 方式字:82H 设8255A地址300H~303H 程序流程图 8255A初始化 置所有行线为低电平 读取列线值 是否有键按下? N Y 延时,去抖动 行扫描码初值→AH 置行数、列数、键号初值 输出行扫描码 读取列值 当前行有键按下? Y N 键号+1 修改行扫描码 列值右移 N 所有行扫描完? N Y 移出位为0? Y 已得到键号 行扫描法程序流程图 DATA SEGMENT NUM DW n ;延时常数(使延时时间约20ms) BUF DB ? ;存储按键的键号 DATA ENDS … ;8255A初始化 MOV DX,303H MOV AL,82H OUT DX,AL ;检测是否有键按SCAN: MOV DX,300H MOV AL,0 OUT DX,AL ;令所有行线为低电平 MOV DX,301H IN AL,DX ;读取列线值 CMP AL,0FFH JZ WAIT ;所有列线为高,无键按下 ;有键按下,延时去抖动 MOV CX,NUM DLY: LOOP DLY ;按键识KEY: MOV AH,0FEH ;行扫描码初值 MOV BL,4 ;行数 MOV BH,8 ;列数 MOV CL,0FFH ;键号初值设为-1 MOV DX,300H NEXTMOV AL,AH : OUT DX,AL ;输出行扫描码 MOV DX,301H IN AL,DX ;读取列值 CMP AL,0FFH JNZ F_KEY ;找到按键,转去计算键号 ROL AH,1 ;修改扫描码 ADD CL,BH ;按键,使键号取该行末列的键号值 DEC BL JNZ NEXT ;未扫完,进入下一行扫描 JMP SCAN F_KEY: INC CL RCR AL,1 JC F_KEY MOV BUF,CL ;根据键号查找键盘编码表,获取与键功能对应的键码 下别 输入:扫描键盘、扫描传感器、选通输入方式 2. 可编程键盘/LED接口芯片8279 输出:8段LED显示器接口,8个或16个,左(右)入口 1)外部特性(40脚) 面向CPU的信号(15) D0~7、CS、RD、WR A0:端口选择,=0,数据口,=1,命令口或状态口 RESET:复位,高有效,复位后工作于16字符,左入口; 编码扫描键盘,双键互锁;时钟分频系数31 IRQ:中断申请,高有效,通常键盘有数据输入请求时有效 CLK:时钟,为8279提供内部工作时钟 与键盘接口的信号(14) SL0~3:扫描信号,扫描键盘及LED显示器(既与键盘接口,也与LED接口).由编程设定为编码输出或译码输出.编码扫描实现16选1;译码扫描实现4选1 RL0~7:回复信号,返回键盘矩阵或传感器阵列的列信号SHIFT:移位信号,入,高有效,键盘数据D6位,用于扩充键功能(上、下档功能键);传感器输入及选通输入中无效 CNTL/STB:控制/选通信号,入,高有效,键盘输入中,是键盘数据D7位,也用于扩充键功能,(作为控制功能键);选通输入方式,其上升沿将RL0~7上的数据存入先入先出存储器(FIFO RAM) 与LED显示器接口的信号(专用9根) 除了SL0~3外 OUTA0~3、OUTB0~3:A组、B组显示数据输出,与SL0~3同步,两组可独立使用或合并使用 BD:显示消隐信号,出,低有效,显示消隐时,有效.(显示数据切换或执行消隐命令时,显示消隐) 2)内部结构及各部分功能 片内总线 D0~7 CLK RESET 数据缓冲器 WR CS A RD 0I/O控制器 IRQ FIFO RAM状态寄存器 ① I/O控制及数据缓冲器 (I/O控制操作) CS WR RD显示RAM地址寄存器 16×8 显示RAM 控制与定时寄存器 8×8 FIFO RAM 键盘去抖动与控制 显示寄存器 OUTA0~3 OUTB0~3 定时控制 扫描计数器 回复缓冲器 RL0~7 BD SL0~3 8279的内部结构框图 CNTL/STB SHIFT A0 0 1 0 1 操 作 写显示RAM 写命令字 读FIFO RAM或显示RAM 读状态字 0 0 0 0 0 0 1 1 1 1 0 0 ② 控制与定时寄存器及定时控制 控制与定时寄存器:寄存键盘及显示器工作方式,完成控制功能 定时控制:包括基本计数器,首级计数器是可编程N计数器,N由编程指定(2~31),对 CLK分频,获得内部所需100kHz工作时钟;再分频,为键盘及显示器扫描提供扫描时钟 ③ 扫描计数器 4位的计数器,有译码、编码两种方式,由编程设定 译码方式:最低两位经译码,由SL0~3输出,作为键盘及显示器的扫描信号.(任何时刻,SL0~3只有一个信号有效,实现4选1) 编码方式:计数器的状态由SL0~3直接输出,再经外部译码,才能作为扫描信号.(实现16选1) ④ 恢复缓冲器、键盘去抖动及控制逻辑 回复缓冲器:缓冲并锁存回复信号RL0~7的状态 去抖动电路:实现对键盘输入的去抖动 控制逻辑:按命令要求控制去抖动电路,并处理回复信号RL0~7 键盘输入方式,有键闭合时,去抖动电路被置位,延时10ms再检测,并将其位置信息与SHIFT、CNTL的状态一起形成键盘数据,送入FIFO RAM 传感器输入方式,RL0~7的状态直接送入传感器RAM(即FIFO RAM) 选通输入方式,在CNTL/STB的上升沿将RL0~7状态送入FIFO RAM ⑤ FIFO/传感器RAM及其状态寄存器 FIFO/传感器RAM:8×8位,键盘输入方式或选通输入方式作先入先出存储器(FIFO RAM);传感器输入方式被称为传感器RAM,存储传感器阵列中每个传感器的状态 FIFO RAM的状态寄存器:键盘输入方式或选通输入方式,寄存FIFO RAM的工作状态,FIFO RAM不空时,会使IRQ变高;传感器方式,若检测出传感器的状态发生了变化,会使IRQ变高 ⑥ 显示RAM及显示地址寄存器 显示RAM:16×8位,存储字符的字形码,显示时,从OUTA0~3和OUTB0~3输出 显示地址寄存器:显示RAM的内部地址, 可由命令直接设定,或设置为每次读/写后自动加1。 输出端与显示单元中各位的对应关系: D7 D6 D5 D4 D3 D2 D1 D0 CUTA3 CUTA2 CUTA1 CUTA0 CUTB3 CUTB2 CUTB1 CUTB0 (最多88键盘,扩充后可达644键定义,针对键盘数据格式) 键盘数据格式 CNTL SHFT 2个独立开关 3)工作方式 数据输入方式——键盘输入(键扫描)、传感器扫描、选通输入 键扫描:按下一个键时,形成键盘数据,送入FIFO RAM,并产生IRQ(数据读出后撤除) 传感器扫描:FIFO RAM中8个单元用于寄存传感器的现时状态,又称传感器RAM,地址编号与扫描线顺序一致,传感器阵列(最多为8×8位)中某一位状态发生变化时,产生IRQ 选通输入:与8255A通输入端口的功能完全一样,CNTL/STB作为选通信号,上升沿锁存RL0~7到FIFO RAM 显示输出方式——8字符左入口、16字符左入口、8字符右入口、16字符右入口 左入口:显示器位置编号与显示RAM地址一一对应(0号单元显示在0号显示器上),显示时从最左SL2 SL1 SL0 R2 R1 R0 扫描码,键所在行编码, 计数器低3位 回复码,键列线 (RL0~7)编码 位开始 右入口(计算器显示方式):最高位从最右边显示器进入,以后逐次左移 4)命令字(8个,D0~7特征位) ① 设置工作方式 ② 设置分频系数 0 0 1 P 特征位 分频目的:得到100KHz的基本工作时钟 ③ 设置读FIFO/传感器RAM的地址 0 1 0 AI 自动增量 无效 A2 A1 A0 P P P P 00:8字符,左入口 01:16字符,左入口 10:8字符,右入口 11:16字符,右入口 00:键盘,双键锁定 01:键盘,N键轮回 10:传感器扫描 11:选通输入 0:编码扫描 1:译码扫描 0 0 0 D1 D0 K2 K1 K0 扫描方式 特征位 显示方式 输入方式 分频系数N(2~3) 特征位 FIFO RAM 地址 0:读出后地址不变 1:每次读出地址自动加1 键盘方式无效,写0 ④ 设置读显示RAM的地址 0:读出后地址不变 1:每次读出地址自动加1 ⑤ 设置写显示RAM的地址 0:写入后地址不变 1:每次写入地址自动加1 ⑥ 禁写显示RAM/消隐命令 ⑦ 清除命令 1 1 0 CD2 清除显示RAM CD1 CD0 CF 清FIFO RAM CA 总清除 1:相应显示RAM禁止写入 1 0 1 无效 IWA A组禁写 IWB B组 禁写 BLA A组消隐 BLB B组 消隐 特征位 1 0 0 AI 自动增量 A3 A2 A1 A0 0 1 1 AI 自动增量 A3 AAA特征位 显示RAM地址 特征位 显示RAM地址 特征位 清除显示RAM的方式 CD2=1或CA=1 有效 0:全部清0 10:置成20H 11:置成全1 ⑧ 结束中断/设置错误方式 置空FIFO RAM 并复位IRQ 清除FIFO RAM及显示RAM 1 1 1 E 特征位 无效 键盘N键轮回方式,发现多键同时按下,置状 态位S/E,产生中断并阻止写入FIFO RAM 5)状态字(指示FIFO RAM中字符数及是否有错误) DU S/E O U F N2 N1 N0 DU:显示无效标志,由命令清除显示RAM时置1 S/E:键盘输入方式下作特殊错误标志,=1:多键同时按下 O:溢出标志,向已满的FIFO RAM写时置1 U:不足标志,从已空的FIFO RAM读时置1 N2N1N0:FIFO RAM中字符的个数 6)8279芯片应用举例 TP86A单板机系统,8279管理3×8的矩阵键盘和8个8段共阳极数码显示器,8279的地址为0FFF8H和0FFFAH将8279的工作方式设置为:编码扫描键盘输入,双键互锁;8字符,左入口外接时钟频率2.5MHz,分频系数25 要求:在显示器上显示03.12.25 键盘:查询方式检测键盘,有键按下,将键盘数据存入KEY_DATA单元 SEGTAB DATA 数据段各单元定义 SEGMENT ;依次存储0~F及小数点的共阴极段码 DB 3FH,06H,5BH,4FH,66H,6DH,7DH DB 07H,7FH,6FH,77H,7CH,39H,5EH DB 79H,71H,80H ;显示字符存储区 DISPMEM DB 00H,03H,10H,01H,02H,10H,02H,05H KEY_DATA DB ? ENDS DATA 3×8矩阵键盘 TP86A 8279 D0~7 RESET RD WR CLK A0 CS SHIFT CNTL OUTA0~3 RL0 OUTB0~3 SL0 SL1 SL2 SL3 译码器 74LS45 A B C D Y0 Y1 … +5V 74LS06 段驱动器 … Y7 … RL7 … A B C Y0 Y1 Y2 译码器 74LS138 TP86A单板机键盘显示接口电路原理图 程序段 3. PC微机键盘及接口 PC机键盘与主机独立,通过一根5芯电缆与主机箱相连,PS/2接口、USB接口等 PC机键盘组成:单片机、译码器和键盘矩阵,101个按键组成16行×8列的键盘开关矩阵 键盘接口的功能 ● 串行接收键盘送来的扫描码,转换成并行数据并保存 ● 收到一个键的扫描码后产生中断请求 ● 接收CPU的命令,输出到键盘;接收键盘的响应信号 ; 字形码送入显示RAM LEA SI,DISPMEM+7;指向最右端字符 MOV BH,0 ;查表位移量高位清0 MOV CX,8 ;字符个数 MOV DX,0FFFAH MOV AL,00H OUT DX,AL ;显示方式:8字符,左入口 MOV AL,39H OUT DX,AL ;分频系数=25 MOV AL,90H OUT DX,AL ;写显示RAM首址0,自动递增 NEXTMOV DX,0FFF8H MOV BL,[SI] ;取字符值,作查表位移量 MOV AL,SEGTAB[BX];取显示字符的字形码 OUT DX,AL ;字形码写入显示RAM DEC SI ;修改地址指针 LOOP NEXT ;查询是否有键按下,若有,将键盘数据存入内存 MOV DX,0FFFAH WAITIN AL,DX AND AL,07H ;读FIFO RAM的状态字 JZ WAIT ;无键按下,继续检测 MOV AL,40H OUT DX,AL ;有键按下,设置读FIFO RAM MOV DX,0FFF8H IN AL,DX ;读取键盘数据 MOV KEY_DATA,AL ;存储键盘数据 CLKOUT CLOCK 20k +5V DATA DATAOUT 20k 8048 P21 XTAL1 P10 P22 P11 L C1 PC键盘 XTAL2 DB0~6 P20 T1 RESET C2 计数值 选通 键按下 译码器 键开关 阵列 +5V 五芯电缆 PCK LS175 D Q CP CLR +5V LS175 D Q CP Q CLR LS322 QA DI QB PA7 PA6 主机箱 键盘 缓冲区(RAM) ASCII码 扫描码 8088 INTR …… LS04 …… CLOCK +5V DO SE DS S/P LS74 D Q CK Q CLR QH G QH OE CLR PA0 PB7 D0~7 PB6 8255A RESETDRV LS125 IRQ1 8259A PC键盘的接口电路原理图 ● 接口电路的组成 • 单片机8048及键盘矩阵组成的智能化键盘,独立于主机 • 串并转换器74LS322、并行接口芯片8255A和中断触发器组成,在主机箱内 单片机8048:完成对键盘的扫描、编码工作,利用内部的计数器对键盘矩阵扫描,形成按键的扫描码(即行列位置码),再通过串行口送出 5芯电缆:除了来自于主机的电源、地和复位信号外,还有两根双向信号线DATA和CLOCK,分别用于传输数据和时钟信号 CPU响应键盘的硬件中断,在中断服务程序中,由8255A的PA口可以读到键盘扫描码 8.2 CRT显示器接口 1. 概述 CRT(Cathode Ray Tube,阴极射线管)显示器 字符终端 2. CRT显示器原理 CRT显示器组成——电子枪、偏转板和荧光屏 按功能分 图形终端 按显示色彩分 单色 彩色 显示原理:由电子枪把电子束打到涂有一层磷光材料的显示屏上;电子束穿过一连串强磁场,发生偏转打在显示屏的不同位置上,使得磷光材料暂时性地发亮.每个点代表一个像素,控制电子束的电压,就能调整每个点的明暗 电 子 枪:一个或多个,位于CRT的最底端,发射高速电子束.单色显示器只有一个,只能发一个电子束;彩色显示器有红(R)、绿(G)、蓝(B)三个电子枪,能发三束电子 偏转板:分为水平偏转板和垂直偏转板,分别控制电子束打向荧光屏的水平方向和垂直方向 微机系统中,采用光栅扫描技术 电子束的强弱由视频信号(“0”或“1”)控制;扫描发生器产生水平扫描和垂直扫描信号,分别加到显示器的水平和垂直偏转线圈上,以确定电子束射到荧光屏上的位置 … … 扫描开始 水平回扫 3. CRT显示器接口 垂直回扫 CRT的光栅扫描过程 接口电路组成:显示缓冲器RAM、字符发生器、CRT控制器、移位寄存器、视频信号合成器 ● 字符发生器:将字符的ASCII码转换成点阵信号,控制电子束的强弱 就是字符点阵代码存储器——以ASCII码为高位地址、是以扫描行地址为低位地址的只读存储器ROM ● 显示RAM(VRAM):存储要显示的信息 字符显示方式中,存储字符码(ASCII码)和显示属性码,一个字符窗口对应VRAM中的两个单元,偶地址单元存储字符码;奇地址单元存储属性码 图形显示方式中,存储整幅屏幕的点阵图(即:每个点的明暗状态及色彩) 相当于ROM 的高位地址 ASCII码 A9 A8 A7 A6 A5 A4 A 0 1 2 字符ROM 字符选择译码 输 出 缓 冲 器 O4 O3 O2 O1 O0 线 代 码 127 …… 128×5×7 5×7字符点阵 线选地址 ASCⅡ RS2 RS1 RS10 0 0 0 1 42H 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0A 0 1 1 0 1 0 1 0 1 1 1 1 5×7点阵 Q4Q3Q2Q1Q0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 输出码 显示字符时,不是扫描显示出一个完整的字符后再扫描显示下一个字符,而是同时扫描显示一个字符行中的所有字符 N-2 N-1 b7~6 b5~4 b3~2 0 1 2 b1~0 点行向 点列向 显示存储器 图形显示方式示意图 屏幕 图形的显示:显示RAM中的点信息与屏幕上点相对应图形显示方式,不需要字符发生器,存储器中的点信息直接变成串行数据输出 显示字符时,不是扫描显示出一个完整的字符后再扫描显示下一个字符,而是同时扫描显示一个字符行中的所有字符 ● 移位寄存器和视频信号合成器 移位寄存器:并行线代码转换成串行数据送往视频输出电路 视频信号合成器:把字符、图形的点阵信息与水平同步信号、垂直同步信号、消隐信号合成为一种复合的视频信号 ● CRT控制器:CRT接口的核心部件 主要功能 提供读显示RAM的招描地址和屏幕显示的扫描地址 水平同步、垂直同步、消隐信号 锁存器的锁存信号 移位寄存器的串行移位信号(打点时钟) 提供时序控制信号 8.3 打印机接口 1. 打印机的结构及各部分功能——针式打印机 DB0~DB7 ACK BUSY 状态 输出 电路 控制 信号 字符 发生器 ROM 字符 缓冲器 ROM +36V +5V 从微 处理 器 走纸机构 字车电机 数据 缓冲器 内部 数据总线 主微 控制器 I/O 接口 电路 DIP开关 面板 STB 驱动 电路 打印头 接收 Vcc 电源电路 GND 1)打印机构 针式打印机由打印头、字车、色带、电磁传动机构、走纸机构、检测器组成 打印头由电磁机构和打印针组成,功能是将字符数据转换成电磁信号 字车由打印头架及伺服驱动机构组成,功能是驱动打印头产生水平运动 色带机构由色带及色带墨盒组成,其功能是使色带产生与字车平行的运动并相对字车产生相对运动 走纸机构由滚纸筒传动齿轮的步进电机组成,其功能是在垂直方向按行移动纸张即产生走纸运动 检测器进行纸尽检测、初始位置检测 2)控制逻辑电路 电路组成:微处理器、行缓存RAM、ROM、打印头驱动电路 主要功能:接受主机发出的命令和数据,返回主机所需状态信息和应答信号,驱动各个机构执行初始化命令、打印命令和自检命令,并发出检测信号 3)控制面板 4)电源单元 2. 打印机接口方法 1)并行打印机接口标准——Centronics标准 ● 25针打印电缆线引脚 8根数据信号线、2根握手联络信号线STROBE、ACK和1根状态线BUSY 2)接口逻辑结构 BUSY ACK DATA STROBE ● 数据传送时序 5s 0.5s 0.5s 0.5s XDB0~7 数据 收发器 DIR 写数据 索 数据 内部数据总线 锁存器 25针打印数据线 主机系统总线 BUSY 状态 数据 缓冲器 缓冲 器 ACK PE SLCT ERROR STB 写控制 读控制 数据 缓冲器 控制 锁存 驱动器 AUTOFD INIT SLCT IRQ EN AEN 读数据 IOR 读状态 IOW 命令 译码器 XA0~XA12 RESET 接口的功能: 数据缓冲作用——接受主机的数据,在适当的时候再送给打印机;接受主机的控制信息,经缓冲后送给并行设备,控制并行设备工作;接受并保存并行设备的状态,供CPU读取处理 接口的组成: 若干端口寄存器、数据缓冲器、地址译码器和数据驱动部件 3)IBM-PC打印机接口与打印机的连接 3. IBM-PC打印机接口与打印机的连接 1)可编程的并行打印机接口设计 8255A作并行打印机接口(参第7章) 2)不可编程的并行打印机接口设计 ● 8位双向数据端口 输出口:锁存送给打印机的数据 输入口:接口自校验 ● 5位双向控制端口 主机系统 数据/控制/状态 地址(A0~A9) 读/写 并行接口 25 脚插座 36脚插座 并行打印机 写入用于锁存写入的控制字节 读出用于自校验 ● 5位的状态端口 供CPU查询 ACK既可由状态口读出,也可反相后请求中断(8259A的IR7) 接口的驱动程序 D7 BUSY 0:忙 D6 ACK 0:应答 D5 PE 1:无纸 D4 SLCT 1:选中 D3 ERROR 0:出错 D2 D1 无效 D0 D7 无效 ● 查询方式 ● 硬件中断——8259A的IR7 ● 软件中断——BIOS INT 17H D6 D5 D4 INTE 1:允许中断 D3 SLCTIN 1:选择输入 控制字格式 D2 INIT 0:初始化 D1 AUTOFDXT 1:自动 走纸 D0 STOBE 1:选通 状态字格式 8.4 鼠标器接口 鼠标器:控制屏幕上光标运动、实现选择操作 基本原理:将鼠标移动的距离和方向信息转换成脉冲信号计算机;再由驱动程序将脉冲信号转换成鼠标器光标的坐标数据或将鼠标器的移动翻译成能被现行应用程序执行的动作 (串口/并口一般用串口) 按测量位移部件的不同分 分辨率:像素点/厘米(d/cm)——鼠标器移动1厘米所经历的像素点数,是衡量鼠标器性能的重要参数 机械式:在基座凹处安装橡皮包裹的金属球 光电式:基座上装有发光二极管和光敏接收管 光机式:靠发光二极管和光传感器工作,对前两种取长补短 ■ 本章要点 编码键盘与非编码键盘的区别 键盘接口需要完成的功能 非编码键盘采用行扫描法识别按键的硬件连接及软件编程 8279的主要功能和工作方式 8279编码扫描和译码扫描的原理 利用8279控制LED显示器和矩阵键盘 PC键盘的组成、键盘接口的主要工作 CRT显示器的工作原理、字符发生器的工作原理 打印机打印机构的组成及各部分功能 打印机的数据传送时序 用8255A作为打印机接口的硬、软件设计 鼠标器的主要功能及工作原理 鼠标器的种类、分辨率 本文来源:https://www.wddqw.com/doc/5df70d8db3717fd5360cba1aa8114431b90d8e64.html