MSP430G2553代码总结

MSP430G2553代码总结

1. 点亮一个LED

// PxOUT 控制IO输出电平, 又决定上下拉电阻的接法
// PxDIR 重置: 00000000 	0->输入, 1->输出
WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
P1DIR = BIT0;               // BIT0 -> 00000001, 使P1.0设置为输出
// P1DIR &= ~BIT0;          // 将P1.0设置为输入状态. ~:按位取反
P1OUT |= BIT0;              // 将P1.0设置为高电平
while(1)
{

}
return 0;

2. LED2闪烁

// 将寄存器/变量某一位置为1: |= (按位或)
// 将寄存器/变量某一位清零: &=  (按位与)
// 不断改变寄存器/变量某一位: ^= (按位异或)
WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
P1DIR |= BIT6;              // 初始化LED2所在的IO口P1.6为输出, BIT6 x1xxxxxx
P1OUT &= ~P1OUT;            // 初始化LED2所在的IO口P1.6为低电平, LED灯初始状态为灭, P1OUT: x0xxxxxx
while(1)
{
    P1OUT ^= BIT6;          // 按位异或运算, 第一次: x1xxxxxx, LED2点亮. 第二次: x0xxxxxx, LED2熄灭.
    __delay_cycles(500000); // 执行时间大致为500ms.
}
return 0;

3. 按键控制LED

// P1IN寄存器是输入寄存器, 能反映外部IO口的电平状态, 只读, 不可赋值
WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
P1DIR |= BIT6;              // 初始化LED2所在的IO口P1.6为输出, BIT6 x1xxxxxx
P1OUT &= ~P1OUT;            // 初始化LED2所在的IO口P1.6为低电平, LED灯初始状态为灭, P1OUT: x0xxxxxx
P1DIR &= ~BIT3;             // 初始化按键所在IO口P1.3为输入
// 使能P1.3口为上拉电阻
P1REN |= BIT3;
P1OUT |= BIT3;
while(1)
{
    if(P1IN & BIT3)         // P1.3口为高电平, 证明没有被按下, 第三位跟随原来的状态, 其余置零
    {
        P1OUT &= ~BIT6;     // 熄灭LED2
    }
    else
    {
        P1OUT |= ~BIT6;     // 点亮LED2
    }
}
return 0;
上一篇:实验分享丨迅为IMX6ULL开发板点亮第一个led灯


下一篇:单片机实验10:矩阵按键控制数码管显示