对于从51直接转型来做CC1110的朋友们来说,做键盘可能会遇到点麻烦。麻烦就是无法扫到键值,下面就说说为什么得不到键值。
下面的讨论电路是在I/O上接一个100K的电阻到地,I/O过一开关接AVDD,按键接P11,1有效。在不对I/O相关寄存器进行任何配置的情况下,CC1110的I/O状态是普通I/O口,方向是输入,可是读1来判断键值却得不到,原因是还没有选择下拉,下拉。正确做法是设按键相对应的I/O位为下拉。下面给出简单的代码:
P1SEL &= ~0X01;//普通I/O
P1DIR &= ~0X01;//输入
P1INP &= ~0X01;//有上拉、下拉
P2INP |= 0X40; //选择下拉
好了,以上就是对P11的设置方法,不过还有另一个方法同样可行,而且可节约1条语句,不容易犯错,方法就是I/O设为三态,代码如下:
P1SEL &= ~0X01;//普通I/O
P1DIR &= ~0X01;//输入
P1INP |= 0X01;//三态
文章评论(0条评论)
登录后参与讨论