51单片机运行程序,矩阵键盘和外部中断同时用到P3.2这个IO口该怎么解决

2024-11-27 10:33:09
推荐回答(3个)
回答1:

当P3.2口拉低时,中断程序肯定会优先响应,所以进入中断后马上判断是否矩阵键盘动作(先向矩阵键盘的I/O口全部写1,再读P3.2口),若是矩阵键盘动作,则 return; 退出中断,否则执行中断程序;注意外部中断要选下降沿触发,否则中断会一直响应。同样矩阵键盘程序也要注意P3.2口单独为0时不作处理,避免外部中断造成键盘混乱。当然这样的程序肯定会有BUG ,就是几率大小的问题。

回答2:

其实很好解决,矩阵键盘扫描前关闭外部中断 EX0=0;
键盘扫描得到键值后开启外部中断 EX0=1;

回答3:

用到中断的时候打开,不用的时候关闭。