上下拉是否开启是否REN寄存器决定的,而上拉还是下拉是由OUT寄存器决定的,在作为输出时,随着OUT的高低,自动选择上下拉,作为输入的时候,我们也可以人为的付OUT寄存器来得到上下拉。
PxREN寄存器控制拉电阻是否启用,而PxOUT决定了拉电阻是上拉还是下拉,具体的工作原理是这样的
PxDIR=1时输出 | PxREN=1只有拉电阻起作用 | PxOUT=1上拉 |
PxOUT=0下拉 | ||
PxREN=0推挽输出无拉电阻 | PxOUT=1输出高 | |
PxOUT=0输出低 | ||
PxDIR=0时输入 | PxREN=1有拉电阻起作用 | PxOUT=1上拉 |
PxOUT=0下拉 | ||
PxREN=0时IO呈高阻状态 | 高阻状态 |
#include<msp430g2553.h>
voidmain()
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR=0x0001;
P1REN=BIT3; //输入
P1OUT=BIT3; //上拉
while(1)
{
if(P1IN&BIT3)
P1OUT|=BIT0;
else
P1OUT&=~BIT0;
}
}