#include "msp430x14x.h"
#include <stdio.h>
typedef unsigned int uint;
typedef unsigned char uchar;
unsigned char data[]={0x12,0x00,0x50,0x50};
uint j=1;
uint i=1;
void UART0_Init(void);
void Delay_Ms(uint x)
{
uint i;
while(x--)for(i=0;i<20;i++);
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
P1DIR |= BIT2+BIT3+BIT4+BIT7;//把P1口的2,3,4,7设置为输出模式
P1OUT|=BIT2;//P1.2位置1,
P1OUT^=BIT2;//P1.2输出高电平,
P1OUT|=BIT3;//P1.3位置1
P1OUT|=BIT7;//P1.7位置1
P1OUT^=BIT7;//P1.7输出高电平,
P1OUT|=BIT4;//P1.4位置1
P2DIR|=BIT0;//把P2口的0设置为输出模式
P2OUT|=BIT0; //P2.0位置1
UART0_Init();
while(1);
}
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
while (!(IFG1 & UTXIFG0));
if(RXBUF0==0xaa)
{
if(j==1){
P1OUT|=BIT7;//取反p1.4 默认为低电平 取反后首先输出高电平
j=0;
P2OUT^=BIT0;
}
if(i==0)
{
P1OUT^=BIT2;
P1OUT^=BIT3;
i=1;
}
Delay_Ms(100000);
if(j==0){
P1OUT^=BIT7;//取反p1.4 默认为低电平 取反后首先输出高电平
j=1;
P2OUT^=BIT0;
}
}
if(RXBUF0==0xbb)
{
if(j==1){
P1OUT|=BIT7;//取反p1.4 默认为低电平 取反后首先输出高电平
j=0;
P2OUT^=BIT0;
}
if(i==1)
{
P1OUT^=BIT2;
P1OUT^=BIT3;
i=0;
}
Delay_Ms(100000);
if(j==0){
P1OUT^=BIT7;//取反p1.4 默认为低电平 取反后首先输出高电平
j=1;
P2OUT^=BIT0;
}
}
__low_power_mode_off_on_exit();
}
void UART0_Init(void)
{
P3SEL |= BIT4;
P3SEL |= BIT5;
P3DIR |= BIT4;
ME1 |= UTXE0 + URXE0; // 使能USART0的发送和接受
UCTL0 |= CHAR; // 选择8位字符
UTCTL0 |= SSEL0; // UCLK = ACLK(32768HZ)
UBR00 = 0x03; // 波特率9600
UBR10 = 0x00; // 波特率9600
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // 初始化UART状态机
IE1 |= URXIE0; // 使能USART0的接收中断
_BIS_SR(LPM3_bits + GIE);
}
|