/*************************main()函数*********************/
#include <msp430x14x.h>
#include"uart.h"
#include"BoardConfig.h"
void delay(int xms)
{
uint i,j;
for( i=0;i<xms;i++)
for(j=0;j<1141;j++);//
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;//关狗
BoardConfig(0xb8); //关数码管,流水灯和电平转换
InitUart();
_EINT();
while(1)
{
PutString("#1P500#2P2056T2500\r\n");
delay(1000);
PutString("#1P1056#2P2056T2500\r\n");
delay(1000);
PutString("#1P1500#2P2056T2500\r\n");
delay(1000);
..........//将你在软件上生成的动作代码组按以上方式重复即可
}
}
/***************************main()完********************************/
/**************************UART配置程序块*************************/
#include<msp430x14x.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/************************************
函数名称:InitUart()
功 能:初始化UART端口
参 数:无
返回值:无
************************************/
void InitUart(void)
{
P3SEL |= BIT4 + BIT5;//开启P3.4 3.5的第二功能作为收发管脚
ME1 |= UTXE0 + URXE0;//开启串口0收发模式
UCTL0 |= CHAR;//8—bit模式
UTCTL0 |= SSEL0;//选择ACLK作为串口波特率的时钟源
UBR00 = 0X03;
UBR10 = 0X00;
UMCTL0 = 0X4A;//选择波特率为9600
UCTL0 &= ~SWRST;//取消软件复位端
}
/******************完********************/
/*****************************************
函数名:Send1char()
功能:向pc机发送一个字符
参数:sendchar——要发送的字符
返回值:无
*****************************************/
void Send1Char(uchar sendchar)
{
while(!(IFG1 & UTXIFG0));//等待发送寄存器为空
TXBUF0 = sendchar;
}
/***********************************************
函数名称:putsting()
功能:向pc机发送字符串并换行指令
参数:ptr——指向发送字符串的指针
返回值:无
***********************************************/
void PutString(uchar *ptr)
{
while(*ptr != '\0')
{
Send1Char(*ptr++);
}
}
/**************************UART配置程序块完*************************/
/**************************程序模块化,外部声明*************************/
typedef unsigned char uchar;
typedef unsigned int uint;
void InitUart(void);
void PutString(uchar *ptr);
void Send1Char(uchar sendchar);
/**************************程序模块化,外部声明 完*************************/
/***********************************由于用的是学习板,这部分是学习板的配置文件,参考使用***********************/
//typedef unsigned char uchar;
//typedef unsigned int uint;
//控制位的宏定义
#define Ctrl_Out P3DIR |= BIT3 + BIT6 + BIT7;
#define Ctrl_0 P3OUT &= ~(BIT3 + BIT6 + BIT7)
#define SRCLK_1 P3OUT |= BIT7
#define SRCLK_0 P3OUT &= ~BIT7
#define SER_1 P3OUT |= BIT6
#define SER_0 P3OUT &= ~BIT6
#define RCLK_1 P3OUT |= BIT3
#define RCLK_0 P3OUT &= ~BIT3
//板上资源配置函数
void BoardConfig(uchar cmd)
{
uchar i;
Ctrl_Out;
Ctrl_0;
for(i = 0; i < 8; i++)
{
SRCLK_0;
if(cmd & 0x80) SER_1;
else SER_0;
SRCLK_1;
cmd <<= 1;
}
RCLK_1;
_NOP();
RCLK_0;
}