键盘使用的编码系统不能只做简单的解释。这些码可能是一个字节或两个字节,在码中是字符码还是硬件控制码之间不存在简单的对应关系。甚至组合键入码并不都生成惟一的码,必须特别小心将它们区分。无论是ASCII码还是扩展码都不是以一种能优化测试和错检的方式加以一致地编号的。因此,键盘输入例程可能比较杂乱一些。
当程序同时接受鼠标和键盘控制时,键盘输入例程必须扩展成通用“事件循环”处理程序。程序不再只是等下一次击键且做出响应。而是当确定有一个键入码后才调用键盘输入例程。,否则它一直监视鼠标位置及按钮状态。
通用键盘输入例程
本例是使用一些标志判断例程在某一时刻是否接受某类输入。这些标志使一个程序可按手头任务的需要调用输入例程。
中断号16h 的功能0在缓冲区中无码时等待键入,鼠标软件不能以这种方式准止其运行,不须不断地查询鼠标驱动程序,寻找鼠标坐标和按钮状态变化。
例8-13 中调用键盘输入函数之前先调用中断16h的功能1(101键选用功能11h),查明是否有键入码,若没有,跳过功能0的调用控制转向鼠标输入码。在键盘缓冲区中有字符时,功能1和功能11h清除处理器的0标志。
例8-13的流程
Ctrl + Break例程
在键盘中断探测到〈Ctrl + Break〉组合时,中断设置一个标志,指示需要启动〈Ctrl + Break〉例程。一般情况下,只有标准DOS输入输出功能能探测到Ctrl + Break(除功能6和功能7中断21h功能1至C)。
例8-14是使用汇编语言说明一个Ctrl + Break例程。它使用中断21h的功能4Ch终止一个程序。
推荐阅读最新更新时间:2023-10-12 20:39
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
- Atmel SAM R21“无线”设计大赛
- 月度原创精选评选2018年7月(总第6期)
- 【免费试用】DFRobot micro:bit编程小车-麦昆
- 报名STM32全国巡回研讨会,打卡轻松得ST开发板
- ST AMG SensorTile开发大赛驾到,重磅大奖与知识兼得,速来~
- 轻松注册TDK,尽享超值好礼!
- 【EEWORLD第三十八届】2012年05月社区明星人物揭晓!
- 下载泰克电源设计测试方案+图文攻略 帮助工程师解决电源效率问题。有好礼
- 【EEWORLD第三十一届】2011年10月社区明星人物揭晓!
- 2022 Digi-Key KOL 视频系列:你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍