关于矩阵键盘多按键同时按下的问题

关于矩阵键盘多按键同时按下的问题,我是初学51单片机和C语言,前段时间学过矩阵按键后就有一个关于电脑键盘多按键的问题。 就是一般教程里面的矩阵键盘的程序都是行列扫描反转来检测位的,…

关于矩阵键盘多按键同时按下的问题,我是初学51单片机和C语言,前段时间学过矩阵按键后就有一个关于电脑键盘多按键的问题。
就是一般教程里面的矩阵键盘的程序都是行列扫描反转来检测位的,然后松开按键通过while程序来检测,但是遇到多按键的问题就无解了。比如我想按下1键的时候1数码管显示1,不松手再按下4则4数码管显示4,再不松手按7数码管7显示7,哪个按键松开则关掉哪个。
再比如像电脑键盘,要输入大写A,如果只按照教程的按键程序,当我们按下shift的时候,由于没有松手,那程序会一直卡在while,那么按下A和其他键的时候是无法检测的。如果不写松手检测程序,我查了一下现在键盘大多使用的是第二套扫描码,也就是通断都发数据,那如果不写松手检测,也就不会发送断码,那输入也是有问题的。更不用说Ctrl+Alt+这种组合按键了,那更没法用了。
想了几天也没有头绪,希望有经验的大神能帮我解惑。谢谢!关于矩阵键盘多按键同时按下的问题插图

作者: soufei

为您推荐


Fatal error: Can't use function return value in write context in /www/wwwroot/www.qianrushi.com.cn/wp-content/themes/news/footer.php on line 115