R2,R36上拉电阻多大. 如果远大于10K(100K或以上), IO设置为高阻方式,读为0则有对应按键按下, 为1无键按下.
如果上拉电阻不够大, 按键按下时电平不够低(单片机不能识别0), 可用AD的方式识别按键, 检测IO电压, 不按或按下电压是不同的. 看你IO上有电容, 也可用测时间的方式检测按键, 置IO推挽方式, IO置0, 给电容充分放电(注意时间不要太短), 检测时, IO置高阻, 同时打开定时器定时, 检测IO跳为1时的时间, 按键不按或按下的时间应该不同. 后面二种麻烦(如按下检测不了0时才用) |