×
模拟电路设计 > 详情

清除键盘缓冲区原理

发布时间:2020-07-02 发布时间:
|
有时用户的按键响应可能导致数据丢失或破坏了数据而不能挽回。在这种情况下,消除缓冲区可以消除不恰当或意外的击键,这种击键或许在缓冲区中正等待处理,或许可能发出错误的响应。在其他情况下,清理缓冲区不是好办法,因为这样做会损害超前键入的特性。并不能再使用键盘宏指令。缓冲区可存放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





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
stc89c52引脚图以及引脚功能说明