清除键盘缓冲区原理
时间:04-16
来源:互联网
点击:
有时用户的按键响应可能导致数据丢失或破坏了数据而不能挽回。在这种情况下,消除缓冲区可以消除不恰当或意外的击键,这种击键或许在缓冲区中正等待处理,或许可能发出错误的响应。在其他情况下,清理缓冲区不是好办法,因为这样做会损害超前键入的特性。并不能再使用键盘宏指令。缓冲区可存放15个键入码,为每个键入码在存储器中提供两个字节。包括转换码、单字节的ASCII码和双字节的扩展码。
对单字节码,第一字节放ASCII码,第二字节 放扫描码;对扩展码,第一字节存放ASCII 0, 第二字节通常放扩展码的扫描码。但并不是绝对的因为功能键与换挡键组合后可产生一个扩展码。
键盘缓冲区设计成一个环行队列,称为先进先出的(FIFO)算法缓冲区。实际是两个指针跟踪计数器记录着当前在缓冲器中代码串的“头”和“尾”。
键盘缓冲区设在BIOS数据区,BIOS数据区的开始地址:0040:2000。
32字节缓冲区:0040:001E开始
头指针:0040:001A
尾指针:0040:001C
中断21h功能6的子功能FFh返回键入码,如果不存在有效代码将不等待。没有键入 码时,设0标志。不断调用中断直到没有键入码返回为止。
P223例8-1 清理键盘缓冲区
KEY-FOUND:
MOV AH , 6h
MOV DL , 0FFh
INT 21h
JNZ KEY-FOUND
对单字节码,第一字节放ASCII码,第二字节 放扫描码;对扩展码,第一字节存放ASCII 0, 第二字节通常放扩展码的扫描码。但并不是绝对的因为功能键与换挡键组合后可产生一个扩展码。
键盘缓冲区设计成一个环行队列,称为先进先出的(FIFO)算法缓冲区。实际是两个指针跟踪计数器记录着当前在缓冲器中代码串的“头”和“尾”。
键盘缓冲区设在BIOS数据区,BIOS数据区的开始地址:0040:2000。
32字节缓冲区:0040:001E开始
头指针:0040:001A
尾指针:0040:001C
中断21h功能6的子功能FFh返回键入码,如果不存在有效代码将不等待。没有键入 码时,设0标志。不断调用中断直到没有键入码返回为止。
P223例8-1 清理键盘缓冲区
KEY-FOUND:
MOV AH , 6h
MOV DL , 0FFh
INT 21h
JNZ KEY-FOUND
- 智能手机键盘控制器的一种实现方法(03-03)
- CSR开发无线触控键盘 大举抢攻移动、穿戴式市场(12-21)
- 2.4GHz无线鼠标键盘接收器的设计(一)(06-16)
- 2.4GHz无线鼠标键盘接收器的设计(二)(06-14)
- 2.4GHz无线鼠标键盘接收器的设计(二)(06-16)
- I2C总线键盘电路以及驱动程序设计(05-25)