⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 169test.c

📁 msp430f169的test程序
💻 C
字号:
#include "msp430x16x.h"
#define S3 BIT2
#define S2 BIT3
#define S1 BIT4

unsigned char cnt=0;
unsigned char T[2];

void Init_Clock() {
  unsigned char i;
  BCSCTL1=0x00;
  do {
    IFG1&=~OFIFG;
    for(i=0;i<100;i++);
  }while((IFG1&OFIFG)==OFIFG);
  BCSCTL2=SELM1+SELS;
}

void Init_Port() {
   P1DIR=BIT0+BIT1;
   P1OUT=0x00;
   P4DIR=BIT2+BIT3;
   P4OUT=BIT2;
   P5DIR=BIT5;
   P5OUT=BIT5;
}

void Delay() {
  unsigned i;
  for(i=0;i<3000;i++)_NOP();
}

void Init_URAT1() {
  U1BR0=0x22;//4M--SMCLK 波特率115200
  U1BR1=0x00;
  U1MCTL=0xed;
  U1CTL=CHAR;//数据宽度8bit
  U1TCTL=SSEL1;
  ME2=URXE1+UTXE1;//使能接收与发送
  IE2=URXIE1;
  P3SEL=BIT6+BIT7;//使能TXD与RXD引脚
  P3DIR=BIT6;//TXD输出
}

void Init_TimerA() {
  TACTL=TASSEL1+MC0+TACLR;//时钟源SMCLK,增计模式,计数器清零
  TACCR0=2000; //4M/2000=2000Hz
  _EINT();//开中断
}

void Send(unsigned char val) {
  U1TXBUF=val;
  while(!(IFG2&UTXIFG1));
}  

void Send_Char() {
  Send(T[0]);
  Send(T[1]);
  Send(' ');
  Send('O');
  Send('K');
  Send('!');
  Send('\n');
}

void Scan() {
  unsigned char i;
  do {
    i=P1IN&(S1+S2+S3);
  }while(i==S1+S2+S3);  //无按键动作
  Delay();   //去抖动
  i=P1IN&(S1+S2+S3);
  if((i&S1)==0){T[0]='S';T[1]='1';Send_Char();} 
  if((i&S2)==0){T[0]='S';T[1]='2';Send_Char();}
  if((i&S3)==0){T[0]='S';T[1]='3';Send_Char();}
  while((P1IN&(S1+S2+S3))!=S1+S2+S3);//按键复位
  Delay();   //去抖动  
}

void Init_System() {
  WDTCTL=WDTPW+WDTHOLD;//关闭WDT
  Init_Clock();//初始化系统时钟
  Init_Port();//初始化端口
  Init_URAT1();//初始化串口
  Init_TimerA();
}
  
void main( ){
  Init_System();
  while(1)Scan();
}

#pragma vector=UART1RX_VECTOR
__interrupt void Run() {
  T[cnt]=U1RXBUF;
  cnt++;
  if(cnt==2) {
    cnt=0;
    if(T[0]=='D'&&T[1]=='1')P1OUT^=BIT0;
    if(T[0]=='D'&&T[1]=='2')P1OUT^=BIT1;
    if(T[0]=='S'&&T[1]=='P')TACCTL0^=CCIE;//使能比较
  }
}

#pragma vector=TIMERA0_VECTOR
__interrupt void Time_A() {
  P4OUT^=0x0c;//1000Hz输出
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -