讨论:一个关于 接受键盘 动作的 程序设计 方法选择

csrwgs 2008-04-29 10:57:25
硬件:模拟PS/2信号.给PC104主板送信号
对按钮响应不是很急.但不能不响应
应用环境: 还有串口中断要响应,而且设计的优先级高.

方法一: 利用键盘中断
方法二: 从网上看到一个程序片段
int getkey()
{
union REGS regs;
regs.h.ah=0;
return int86(0x16,®s,®s);
}
int main(void)
{
while(1)
{
if(bioskey(1)!=0)
{
int i= getkey() ;
printf("%d",i);
}
}

return 0;
}

大家说用哪个好些?

首先说下我的感觉吧.
因为还有高优先级的中断要响应,感觉采用第二种方法在程序设计上更加灵活一些.

还请大家赐教
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuyesuifeng 2008-05-01
  • 打赏
  • 举报
回复
你所说的第一种方法和第二种方法是一回事,第二种方法就是利用了dos的16号中断来接收信号的

方法二返回的int值是键码,键盘上每一个键都有对应码,来查帮用户按了什么键,比如shift键CODE为16
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
什么呀
星羽 2008-04-30
  • 打赏
  • 举报
回复
up 一下
ryfdizuo 2008-04-30
  • 打赏
  • 举报
回复
dos下面的哦。
http://www.encrypter.net/article/c0002.htm
csrwgs 2008-04-29
  • 打赏
  • 举报
回复
另外还有1个问题:
其实用方法二返回的int型我其实看不懂,谁有搞过的麻烦介绍下思路

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧