本帖最后由 qinkaiabc 于 2013-3-9 11:49 编辑
#include <msp430g2553.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= BIT0+BIT6;
P1OUT &=~BIT0+BIT6;
P1IREN |= BIT3; //一定要
P1IES |= BIT3;
P1IE |= BIT3;
P1IFG &=~BIT3;
_BIS_SR(LPM4_bits + GIE);
}
#pragma vector=PORT1_VECTOR
__interrupt void port(void)
{
P1OUT ^=BIT0+BIT6;
P1IFG &=~BIT3;
}MSP430内部上拉下拉使用注意——IO口测高低电平 MSP430单片机IO口用来检测高低电平时,是不需要外部上拉下拉的,因为其内部有上拉和下拉。 在用作高低电平检测时,需要开启上拉或下拉。如果有效状态为高电平,则需要配置为REN为上拉使能,且配置OUT为0,即设置为下拉。如果有效状态为低电平,则需啊哟配置REN为使能,且OUT位1,即设置为上拉。 如果不开启内部上拉下拉使能,则IO可能出现不固定状态。譬如,当IO被输入高后,外部输入被撤除,但IO寄存器仍然为高。 注意:这里出现的情况是给IO输入高电平后,外部输入撤离,但是IO寄存器IN仍然保持高电平,而是用万用表量电压后,IO变为0.
出现这个情况的原因是IO对地串联了一个3K电阻和100nf电容,外部输入是加在电阻和电容的连接处的。应该是由外部输入时,对电容充电,外部输入撤离后电容保持该电压。
|