目录
一:电路图
开发板为TI的MSP-EXP430F5529LP
LED1:P1.0 LED2:P4.7
LED负极接地,输入为高电平,则点亮。输入低电平,则熄灭。原理图如下图1-1所示:
图1-1 LED原理图
二:端口初始化
LED1的初始化
/*LED1~P1.0 初始化*/
P1DIR |= BIT0; //初始化LED1的IO口P1.0,设置为输出
P1OUT &= ~BIT0; //设置P1.0初始为低电平
LED2的初始化
/*LED2~P4.7 初始化*/
P4DIR |= BIT7; //初始化为输出
P4OUT &= ~BIT0; //初始化低电平
三:点亮/熄灭
点亮LED,设置输入为高电平
熄灭LED,设置输入为低电平
/*LED1~P1.0*/
P1OUT |= BIT0; //点亮LED1
P1OUT &= ~BIT0; //熄灭LED1
/*LED2~P4.7*/
P4OUT |= BIT7; //点亮LED2
P4OUT &= ~BIT7; //熄灭LED2
引脚输出取反:0 -> 1 1 -> 0
P1OUT ^= BIT0;
P4OUT ^= BIT7;
四:实现功能
LED1和LED2交替闪烁
#include <msp430.h>
int i,j;
/*
* 函数:delay(int ms);
* 功能:延时
* 使用例程:delay(50);//代表延时50ms
*/
void delay(int ms)
{
for( i = 0; i < ms; i ++)
{
for( j = 0; j < 240; j ++);
}
}
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
P1DIR |= BIT0; //初始化LED1的IO口P1.0,设置为输出
P1OUT &= ~BIT0; //设置P1.0初始为低电平
P4DIR |= BIT7; //初始化为输出
P4OUT &= ~BIT0; //初始化低电平
while(1)
{
P1OUT |= BIT0; //赋值,点亮LED1
delay(500);
P1OUT &= ~BIT0; //熄灭LED1
P4OUT |= BIT7; //点亮LED2
delay(500);
P4OUT &= ~BIT7; //熄灭LED2
}
}