本系统键盘采用扫描方式的矩阵结构,用于数据输入。矩阵由行线与列线交叉构成:P1.0、P1.1作为列线并兼作键盘输入端,P1.2~P1.5作为行线兼控制输出端。设计时将列线接上拉电阻,静态时列线为高电平;有键按下时对应列线被拉低。利用P1.0、P1.1的中断功能设置为低电平触发,一旦按键闭合即触发中断进入服务程序获取键值。
扫描流程:先将P1.2~P1.5置为输出、P1.0~P1.1置为输入并使能低电平中断;随后依次将P1.2、P1.3、P1.4、P1.5单独拉低,其余行置高。若某行有键按下,则对应列线为低电平触发中断;若该行无键,则两列均为高电平。由于扫描周期仅数微秒,而按键闭合时间至少数十毫秒,任何按键均能被可靠扫描到。需注意按键存在机械抖动,程序中必须加入消抖处理,以免一次按键被误判为多次触发。
