320 likes | 550 Views
第八章 人机交互设备接口. 8.1 键盘接口 8.2 显示器及接口电路. 8.1 键盘接口. 1 、键盘分类: ( 1 )按组成键盘的按键的方式分:有机械式、电容式、导电橡胶式、薄膜式等多种 。 ( 2 )键盘按其功能的不同,通常可分成编码键盘和非编码键盘两种基本类型。. 2 .编码键盘 键盘本身带有实现接口主要功能所必需的硬件电 路。不仅能自动检测被按下的键,并完成去抖动、 防串键等功能,而且能提供与被按键功能对应的键 码 ( 如 ASCII 码 ) 送往 CPU 。 3 、 非编码键盘 键盘只简单地提供按键开关的行列矩阵。有关按键
E N D
第八章 人机交互设备接口 8.1键盘接口 8.2显示器及接口电路
8.1 键盘接口 • 1、键盘分类: • (1)按组成键盘的按键的方式分:有机械式、电容式、导电橡胶式、薄膜式等多种 。 • (2)键盘按其功能的不同,通常可分成编码键盘和非编码键盘两种基本类型。
2.编码键盘 键盘本身带有实现接口主要功能所必需的硬件电 路。不仅能自动检测被按下的键,并完成去抖动、 防串键等功能,而且能提供与被按键功能对应的键 码(如ASCII码)送往CPU。 3、非编码键盘 键盘只简单地提供按键开关的行列矩阵。有关按键 的识别、键码的确定与输入、去抖动等功能均由软 件完成。
一、按键的结构与特点 在微机中运用的按键,通常仅需提供逻辑的通与断, 其机械结构往往是比较简单的,构成形式可如下图所 示。 +5V VX
二、键盘接口的功能和原理 下面以机械式触点按键组成的非编码键盘为例,对键盘接口功能和原理进行介绍。 1、接口功能 键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。
(1).抖动:机械式按键在压键时在触点可靠地接通前(1).抖动:机械式按键在压键时在触点可靠地接通前 多次通断
防抖动:有硬件、有软件 软件防抖动通过软件延时(10ms) 硬件防抖动使用RS触发器 U0 无抖动
(2).串键:多键同时按下或一键没按下又有新键按下(2).串键:多键同时按下或一键没按下又有新键按下 解决方法: 双键锁定 、N键巡回 ①双键锁定:当检测到有两个或两个以上的键被按下时,只把最后释放的键当作有效键,并产生相应键码。 ②N键轮回:当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。
(3).按键识别:行扫描法、线反转法 ①行扫描法:该方法的基本思想是,由程序对键盘 进行逐行扫描,通过检测到的列输出状态来确定闭 合键。为此,需要设置输入口、输出口各一个。 ②线反转法:该方法的基本思想是通过行列颠倒两 次扫描来识别闭合键。为此,需要提供两个可编程 的双向输入/输出端口。 (4).键码产生
例如,假定有一个4×4的矩阵键盘通过并行接口芯例如,假定有一个4×4的矩阵键盘通过并行接口芯 片8255A与微机相连。8255A的A口定义为输出口,与 键盘行线相连;B口定义为输入口,与键盘列线相 连。 设8255A口地址为40H,B口地址为41H,控制寄存器 地址为43H。
+5V 键盘接口 8255 E D C F PA3PA2PA1PA0 8 9 A B 4 5 6 7 1 2 3 0 CPU PB0PB1PB2PB3 行扫描法 键值=首列键号+列号
键盘扫描一般步骤: • 判断是否有键按下(行全部清0,读列值是否有0) • 若有键按下,消除抖动,确认有键按下? • 对压下键进行编码(扫描、查表) • 进行键处理 • 键释放,返回第二步
MOV AL,82H ROL AL OUT 43H,AL MOV AH,AL BEGIN:MOV AL,0 IN AL,41H OUT 40,AL AND AL,CL WAIT: IN AL,41H CMP AL,CL AND AL,0FH JNZ L2 CMP AL,0FH ADD CH,BH JZ WAIT MOV AL,AH MOV CX,7FFH DEC BL LO: LOOP LO JNZ L1 ST: MOV BL,04H JMP BEGIN MOV BH,04H L2: INC CH MOV AL,0FEH RCR AL MOV CL,0FH JC L2 MOV CH,0FFH MOV AL,CH L1: OUT 40H,AL JMP LEYTABLE
+5V 8255 E D C F PA3 PA2 PA1 PA0 8 9 A B 4 5 6 7 1 2 3 0 PB4 PB5 PB6 PB7 PB0 PB1 PB2 PB3 线反转法 键0的编码=11101110 键1的编码=11101101
三、PC微机键盘及接口 1、PC微机键盘特点 PC微机常用的键盘有101键的增强型键盘和102键的 扩展键盘。不论键数的多少均具有如下特点: ①键盘由单片机、译码器和16行X 8列的键开关矩阵 三大部分组成。 ②按键采用电容开关,即按键时的上下动作使电容 量发生变化,从而实现开关接通或断开的目的。
③它是一种由单片机扫描、编码的智能化键盘。但③它是一种由单片机扫描、编码的智能化键盘。但 是,它不能直接提供与键功能对应的键值或键码, 必须由主机在键处理程序中将键盘提供的扫描码 转换为反映键功能的ASCII码。 ④它是一个与主机箱分开的独立部件,通过一根五 芯电缆与主机相连接。
2.PC微机键盘的功能 ①串行接受键盘送来的扫描码,完成串并转换后保存 ②收妥一个键盘扫描码后,立即产生一个中断请求信号 ③保存的扫描码可供CPU读取,并通过软件进行相应转换处理 ④接受CPU的命令,输出到键盘,并接受键盘回送的响应信号
+5V SE DS S/P D0 DI OE CLR CLK G OA OB PA7PA6 PB7 PB6 PA0 OH +5V 1 OH CLK DATA RESET GND +5V D CLR R Q D CLK CLR PR IRQ1 Q D CLR R Q PCLK RESET Q 微机键盘接口电路
LS 322 串并转换电路 DI 串行输入,和接口中DATA连接 OA~OH 并行输出,和8255的PA0~PA7连接,供CPU读取 OH是中断源,通过中断请求触发器连8259的IRQ1,作为向CPU提出申请的中断源 PB7 允许读取扫描码(为0),清除中断请求信号(高到低跳变) PB6 为1该接口电路能工作 接口中的CLK经过两级同步和LS322的CLK相连。
工作原理: • 当PB7和IRQ1为0时,LS322接受串行数据(DATA),实现串并转换。 • 收到8位扫描码,LS322的OH为1,使得IRQ1有效,向CPU提出中断申请,同时中断请求触发器的Q端输出0,使DI 为0,通知接口暂时不送扫描码。 • CPU接受到中断请求信号,通过8255的A口读取数据,并使PB7产生1到0跳变,清除LS322和中断请求触发器。
8255初始化 MOV AL,99H;模式0,A口、C口输入 OUT 63H,AL ;B口输出 MOV AL,80H ;PB7=1 OUT 61H,AL MOV AL,40H ;PB7=0,PB6=1 OUT 61H,AL
IRQ1中断服务程序 IN AL,60H PUSH AX IN AL,61H MOV AH,AL OR AL,80H OUT 61H,AL XCHG AH,AL OUT 61H,AL POP AX MOV AH,AL ;AH为键扫描码
PC微机键盘 硬中断 中断号为09H 软中断 中断号为16H(p308 表11.3)
8.2 显示器及接口电路 常用的显示器有LED显示器、液晶显示器、CRT显 示器 LED显示器有7段、米字型
各个LED可按共阳极或共阴极连接,如图下所示。它们应分别用不同的段码,经不同的驱动电路来驱动。各个LED可按共阳极或共阴极连接,如图下所示。它们应分别用不同的段码,经不同的驱动电路来驱动。 对于共阳极显示器,其段驱动电路的输出为低电平时,该段的LED导通并点亮,段驱动电路应能吸收额定的段导通电流。 在共阴极显示器的情况下,其段驱动电路的输出为高电平时,该段的LED导通并点亮,段驱动电路应能供给额定的段导通电流。
+5v 译码/驱动器74LS247 译码/驱动器74LS249 abcdefg abcdefg 段码输入 段码输入 ABCD ABCD 共阴显示 共阳显示
七段LED显示接口 • 动态:各个显示器对应的段码接同一I/O口,灯位控制端由不同I/O口控制。 • 静态:各个显示器的段码由不同的I/O控制,灯位控制端接成固定电平。
静态接口 +5V +5v 译码/驱动器74LS247 译码/驱动器74LS249 abcdefg abcdefg 段码输入 段码输入 ABCD ABCD 共阴静态显示 共阳静态显示
动态接口 abcdefg ABCD 段码输出 七段显示器 I/O口 8 2 灯位控制
段码的转换: • 软件译码 • 专用接口芯片
软件译码 把0~9的十进制数转换成七段码 TABLE DB 40H,79H,24H,30H,19H DB 12H,02H,78H,00H,18H MOV AL,5 MOV BX,OFSET TABLE XLAT TABLE
显示原理 静态显示:把要显示的数的段码送相应的 I/O口,不需要动态扫描 动态显示:选择第一个要显示的LED灯 位,送出该灯位对应的段码,延时1MS, 选择第二个要显示的LED灯位,送出该灯 位对应的段码,延时1MS,依次类推。动 态显示需要不断扫描。