1、点亮一个LED
#include <msp430.h>
/**
* main.c
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer 关闭看门狗
/*将P1.0设置为输出,P1DIR是P1口的方向寄存器*/
P1DIR |=BIT0;//按位或运算
/*上面的表示实际上就是P1DIR=PDIR | BIT0 */
/**将P1,0设置为高电平,点亮LED1*/
P1OUT |=BIT0;
/*P1,P1.0-P1.7
P2,P2.0-P2.7
PxDIR 00000000 0->输入,1->输出,00000001 P1.0输出
PxOUT 若P1.7->1 P1.0->0 则1xxxxxx0
PxIN P1.6*/
while(1)
{
}
return 0;
}
3个常用寄存器
目前学到了P1口中的3个寄存器,Input,Output,Direction。
PxDIR
PxDIR是8位方向寄存器,有八个比特位,默认状态是“00000000”,“0”表示输入,“1”表示输出。他表示的是Px各口为输入还是输出。例如,如果想让P1.0口为输出则PxDIR为“00000001”。
PxOUT
PxOUT的功能是控制输出端口的电平。若现在PxDIR状态为“10000001”(则此时1.0和1.7均为输出端),想要P1.0和P1.7分别输出高电平和低电平,该如何操作呢?在CCS中“0”表示低电平,“1”表示高电平,则P1OUT为“0xxxxxx1”
PxIN
以P1.6端口为例,同理,“x1xxxxxx”为高电平,“x0xxxxxx”为低电平