对于从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;//三态
zigbee_904218839 2008-9-23 17:59
用户1358535 2008-9-23 00:44
用户1358535 2008-9-23 00:43
用户21607 2008-3-3 14:48
zigbee_904218839 2008-3-3 08:47
tang,对不起你,这个周末接待两位朋友,没有给你做DMA程序了。
zigbee_904218839 2008-2-25 10:29
以前没做过,这个周末我再看能不能帮你。
用户21607 2008-2-21 17:03
非常感谢!!!
你搞了DMA那部分没?它到底是怎么传输数据的?是怎么设置的?非常感谢!!!
zigbee_904218839 2008-2-21 14:58
P2INP的D6位是控制P1口上下拉的,PDF里原文如下:Port 1 pull-up/down select. Selects function for all Port 1 pins configured as pull-up/pull-down inputs.
用户21607 2008-2-21 11:53
P2INP |= 0X40; //选择下拉是什么意思?
不是对P2口进行设置了吗?
用户78081 2007-8-2 09:42
晕哦 元件都画错了