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