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

📄 msp430f149-

📁 MSP430F149实验板实验代码
💻
字号:

#include<msp430x14x.h>
#define uchar unsigned char
#define uint unsigned int
 unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 //unsigned char table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint result;
uint i;
 uchar nn;
void delay()
{
  uint time;
  uint time1;
  for(time=0x0fff;time>0;time--)
  {
    for(time1=0x00ff;time1>0;time1--)
    {
      ;
    }
  }
}
void show(uint number )
{
  uint data;
  uint data1;
  uchar num1;
  uchar num2;
  uint data2;
  uchar num3;
  uint buffer;
  data=number*3/4096;
  buffer=number*3%4096;
  data1=buffer*10/4096;
  buffer=buffer*10%4096;
  data2=buffer*10/4096;
  num3=(uchar)data2;
  num1=(uchar)data;
  num2=(uchar)data1;
  switch(num1)
  {
  case 0x00:num1=table[0]+0x80;break;
  case 0x01:num1=table[1]+0x80;break;
  case 0x02:num1=table[2]+0x80;break;
  case 0x03:num1=table[3]+0x80;break;
  case 0x04:num1=table[4]+0x80;break;
  case 0x05:num1=table[5]+0x80;break;
  case 0x06:num1=table[6]+0x80;break;
  case 0x07:num1=table[7]+0x80;break;
  case 0x08:num1=table[8]+0x80;break;
  case 0x09:num1=table[9]+0x80;break;
  }
 //num1 &= 0xfe;
  switch(num2)
  {
  case 0x00:num2=table[0];break;
  case 0x01:num2=table[1];break;
  case 0x02:num2=table[2];break;
  case 0x03:num2=table[3];break;
  case 0x04:num2=table[4];break;
  case 0x05:num2=table[5];break;
  case 0x06:num2=table[6];break;
  case 0x07:num2=table[7];break;
  case 0x08:num2=table[8];break;
  case 0x09:num2=table[9];break;
  }
   switch(num3)
  {
  case 0x00:num3=table[0];break;
  case 0x01:num3=table[1];break;
  case 0x02:num3=table[2];break;
  case 0x03:num3=table[3];break;
  case 0x04:num3=table[4];break;
  case 0x05:num3=table[5];break;
  case 0x06:num3=table[6];break;
  case 0x07:num3=table[7];break;
  case 0x08:num3=table[8];break;
  case 0x09:num3=table[9];break;
  }
   switch(nn)
   
    {
    case 0x00:P4OUT=~num1;P6OUT = BIT5;  break;
    case 0x01:P4OUT=~num2;P6OUT = BIT4;  break;
    case 0x02:P4OUT=~num3;P6OUT = BIT3;  break;
    case 0x03:P4OUT=0xc1;P6OUT = BIT2;  break;
    } 
    nn++;
    if(nn>3)
    {
      nn=0;
    }
  
}
void initsys(void)
{
  BCSCTL1 &= ~XT2OFF; //开启晶振
  uchar j;
  do
  {
    IFG1 &= ~OFIFG;    //消除标志位
    for(j=0xee;j>0;j--)
    {
      ;
    }
  }
  while((IFG1&OFIFG)!=0);
  BCSCTL2 |= SELM_2 + SELS;  //选择时钟
}

void danduo(void)           // 单通道多次
{
  P6SEL |= 0x01;                  //通道
  ADC12CTL0 |= SHT0_8 + MSC + ADC12ON;       // 多次
  ADC12CTL1 |= SHP + CONSEQ_2;     // 单通道多次
  ADC12MCTL0 |= INCH_0;          // A0
  ADC12IE |= 0x01;                 // 中断A0
  ADC12CTL0 |= ENC;              //设定完毕
  _EINT();                      //开启总中断
  
  ADC12CTL0 |= ADC12SC;
}

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  uint dd;
  initsys();
  danduo();
  P4DIR |= 0xff;
  P6DIR |= 0xfc;
  
  while(1)
  {
    dd=8000;
    while(dd--);
    show(result);
  }
  
  
 
}
#pragma vector=ADC_VECTOR
__interrupt void ADC12(void)
{
  //单通道单次
  //result[0] = ADC12MEM0;
  //result = ADC12MEM0;
  
  /*//序列通道单次
  result[0]=ADC12MEM0;
  result[1]=ADC12MEM1;
  result[2]=ADC12MEM2;
  result[3]=ADC12MEM3;*/
  //单通道多次
  
    result = ADC12MEM0;
   //show(result[0]);
  
  //序列通道多次
   
  while((ADC12IFG & BIT0)!=0);
  
}

⌨️ 快捷键说明

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