1 / 70

第 11 章 键盘技术和 LED

第 11 章 键盘技术和 LED . 本章重点 . 键盘的基本工作原理,包括矩阵结构、行扫描法和行反转法识别原理 解决抖动和重键的连锁法和巡回法的原理 LED 显示原理和多位显示原理 微型机系统中键盘子系统的工作原理 扩展键盘扫描电路的工作原理 主机键盘接口的功能和构成 09 H 键盘中断处理程序对各类键的处理 16 H 键盘中断处理程序的功能 键盘缓冲区的工作机制. 11 .1键盘的基本工作原理 . 键盘矩阵 键的识别 抖动和重键问题的解决. 11 .1.1键盘矩阵 . 最简单的键盘结构. 键盘的矩阵式结构. 11 .1.2 键的识别 .

marvel
Download Presentation

第 11 章 键盘技术和 LED

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第11章 键盘技术和LED

  2. 本章重点 键盘的基本工作原理,包括矩阵结构、行扫描法和行反转法识别原理 解决抖动和重键的连锁法和巡回法的原理 LED显示原理和多位显示原理 微型机系统中键盘子系统的工作原理 扩展键盘扫描电路的工作原理 主机键盘接口的功能和构成 09H键盘中断处理程序对各类键的处理 16H键盘中断处理程序的功能 键盘缓冲区的工作机制

  3. 11.1键盘的基本工作原理 键盘矩阵 键的识别 抖动和重键问题的解决

  4. 11.1.1键盘矩阵 最简单的键盘结构

  5. 键盘的矩阵式结构

  6. 11.1.2 键的识别 识别闭合键的方法 • 行扫描法 • 行反转法

  7. 1. 行扫描法的原理 基本原理: • 分行扫描 • 检查是否有键按下 • 若有,确定哪个键被按下

  8. 行线与列线分别接到两个并行端口的示意图

  9. 判断是否有按键 WAIT: MOV AL,00H MOV DX,OUTPORT OUT DX,AL ;往所有行线上输出低电 平 MOV DX,INPORT IN AL,DX ; 读取列值 AND AL,0FFH CMP AL,0FFH ;是否有列线为低电平 JZ WAIT ;否,则循环等待 DONE:CALL DELAY ;是,则延迟去抖动 …

  10. 判断哪一个键被按下的流程

  11. 扫描法判断闭合键的程序: PROG: MOV BL,0 ;键号初值为0 MOV CL, 0FEH ;送扫描初值 MOV DL, 8 ;计数值为行数 FROW: MOV AL, CL OUT ROWPORT,AL ;扫描一行 ROL AL, 1 MOV CL, AL ;修改扫描值 IN AL, COLPORT CMP AL, 0FFH ;读进列值,并判别是否有哪条列线接地 JNZ FCOL ;有列线接地,则转FCOL MOV AL, BL ADD AL, 8;如没有列线接地,则使键号=键号+列数/行 MOV BL, AL DEC DL ;是否各行都扫完 JNZ FROW ;未扫完,则扫下一行 JMP DONE ;已扫完,则转DONE FCOL: RCR AL,1 JNC PROCE ;如此列接地,则转PROCE INC BL JMP FCOL;如未找到接地的列线,则转FCOL继续寻找 PROCE: ;键命令处理程序 DONE: ;后续处理程序

  12. 2. 行反转法的原理 行线、列线分别接并行口 行线输出0,列线输入x 列线输出读得的值x,行线输入y yx组合代表按下的键 查表法识别按键 重键问题

  13. 行反转法的工作示意图 (a)行线输出,列线输入 (b) 列线输出,行线输入

  14. 行反转法的键盘连接

  15. 行反转法的流程

  16. ST: MOV AL,82H • OUT PORT1,AL; PORT1是8255A的控制口地址,设控制字,A口为输出,B为输入 • WAIT1: MOV AL,0 • OUT PORTA, AL ;往端口A输出全0 • IN AL, PORTB ;输入列值 • AND AL, 0FFH • CMP AL, 0FFH ;看是否有键闭合 • JZ WAIT1 ;如无闭合键,则等待 • PUSH AX • PUSH AX ;保留列值 • CALL DELAY ;延迟20ms • MOV AL, 90H • OUT PORT1, AL;将8255A的A口设置为输入,B口设置为输出 • POP AX • OUT PORTB,AL ;将读得的列值输出到端口B • IN AL, PORTA ;读进行值 • POP BX • MOV AH, BL ;使AH中为列值,而AL中为行值 • MOV SI, TABLE+3FH ;取键码表末地址 • MOV CX, 40H ;CX作为键计数器 • LOOP1: CMP AX,〔SI+0〕;行值列值与键码表比较 • JZ KEYPRO ;如相等,则转键命令处理 • DEC SI • DEC SI ;修改表指针和键计数器 • DEC CX • JNZ LOOP1 ;未比较完,则再比 • JMP ST ;如已比较完,但没有在键码表中找到相同码,则重新开始找 • KEYPRO: … • ;键命令处理 • TABLE: DW 0FEFEH ;键码表开始,K0键 • DW 0FEFDH ;K1键 • DW 0FEFBH ;K2键 • DW 0FEF7H ;K3键

  17. 11.1.3抖动和重键问题的解决 (1)抖动:用延迟来解决 (2)重键: a) A键先按后放,B键后按先放 b) A键先按先放,B键后按后放 c) A键、B键同时按下,但A键先放

  18. 重键识别方法 连锁法 巡回法

  19. 连锁法 在所有的键释放后,只承认此后闭合的第一个键,此键闭合时按下的其他键均不作识别 • 一个键按下,识别 • 读取A • 识别A • 舍弃

  20. 连锁法程序流程图 在所有的键释放后,只承认此后闭合的第一个键

  21. 巡回法 等前面所识别的键释放后,就可对其他键识别 检测释放 • 一个键按下,识别 • 识别A键 • b1. A,B同一行,识别A • b2. A,B不同行,识别A,B • c1. B处于小行号,识别B • c2. B初始大行号,识别A,B

  22. 巡回法的流程图 等前面所识别的键释放后,就可对其他键识别

  23. 11.2 LED数字显示 LED的工作原理 多位显示问题

  24. 11.2.1 LED的工作原理 七段式LED显示部件 (a)典型的七段式LED器件 (b) 共阳极LED (c) 共阴极LED

  25. 共阳级结构:数码显示端低电平有效 共阴极结构:数码显示端高电平有效

  26. LED的外部连接电路(共阴极)

  27. 数据用LED显示的译码方法: 专用芯片译码 软件译码

  28. 用专用芯片完成段译码的示意(共阳极)

  29. 软件译码举例(显示1位数字) DISP: MOV BX,OFFSET DATA MOV AL,[BX] ;要显示的数字 MOV BX,OFFSET LEDADD;代码表首址 XLAT ;将数字转换成显示代码 MOV DX,PORT OUT DX,AL ;将显示代码送显示, … LEDADD: DB 40H ;0的显示代码 DB 79H ;1的显示代码 DB 24H ;2的显示代码 …

  30. 11.2.2多位显示问题的解决 硬件:公用的驱动电路 软件:扫描方法

  31. 多位显示的扫描和驱动电路

  32. 8位LED显示的流程图

  33. 11.3键盘和LED设计实例 设计要求: • 连接7×8=56键的键盘 • 连接6个LED • 设计1个定时装置,显示分和秒 • 按下某些特定键时,实现指定的功能

  34. 计时器的显示部分

  35. 计时器的键盘部分

  36. 本系统直接使用的端口地址 计数器8253: 控制口地址 00D6H 计数器0的地址 00D0H 计数器1的地址 00D2H 计数器2的地址 00D4H

  37. 中断控制器8259A: ICW1、OCW2、OCW3写入地址 00C0H ICW2、ICW3、ICW4、OCW1写入地址 00C2H OCW1的读出地址 00C2H 并行接口8255A: 控制口地址 00E6H A端口地址 00E0H B端口地址 00E2H C端口地址 00E4H

  38. 计时器软件的两个主要部分: 显示程序 键盘扫描程序

  39. 设计方案 将键盘扫描程序、键命令的识别和处理程序作为主程序 将计时程序和显示程序作为中断处理程序

  40. 计时器主程序的流程图

  41. 计时器中断处理程序的流程图

  42. 11.4微型机的键盘子系统 两部分: • 键盘本身 • 主机的键盘接口 键盘子系统的示意图

  43. 11.4.1扩展键盘和键盘控制器 扩展键盘、键盘扫描码和系统扫描码 扩展键盘的工作原理 扩展键盘的连接信号

  44. 1. 扩展键盘、键盘扫描码和系统扫描码 (1)扩展键盘 (2)键盘扫描码 • 接通扫描码 • 断开扫描码 • 83键盘 • 84/101/102/104 (3)系统扫描码

  45. 2. 扩展键盘的工作原理 16行×8列的键盘扫描电路

  46. 3. 扩展键盘的连接信号 • 键盘通过五芯插头和主机板上的键盘接口相连 • 键盘和主机串行传输 • 键盘不直接接电源

  47. 11.4.2主机的键盘接口电路 主机键盘的接口功能: • 接收键盘的串行扫描码 • 将串行扫描码转为并行扫描码,再转为系统扫描码 • 向CPU发中断请求 • 接收CPU的键盘自检命令或复位命令,并传输到键盘

  48. 主机的键盘接口

  49. 11.5键盘中断处理程序 09H键盘中断处理程序 有键按下时,发生中断,执行09H中断服务处理程序,处理按键,把键码存储到键盘缓冲区中 16H键盘中断处理程序 应用程序或操作系统调用int 16h

  50. 键的分类 • 第一类ASCII码键 • 第二类ASCII码键 • 不能用ASCII码表示的组合键和功能键 • 特殊命令键

More Related