MSP430F149片内温度

来源:互联网 发布:mac atom菜单栏不见了 编辑:程序博客网 时间:2024/05/17 02:38
#include <msp430x14x.h> 
#define uchar unsigned char
#define uint unsigned int
#define wei_h P5OUT|= BIT5
#define wei_l P5OUT&= ~BIT5
#define duan_l   P6OUT &= ~BIT6
#define duan_h  P6OUT |= BIT6
unsigned int long temp;  
unsigned int long TemperC;//摄氏温度
uchar duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uchar wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar wendu[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void main(void)
{   
  WDTCTL = WDTPW + WDTHOLD;
  ADC12CTL0 = SHT0_2 + REFON + ADC12ON;
  ADC12CTL1 = SHP;
  ADC12MCTL0 = SREF_1 + INCH_10; 
  ADC12IE = BIT0;
  ADC12CTL0 |= ENC;
  P4DIR = 0xff;
  P5DIR = 0xff;
  P6DIR = 0xfF;
  P6OUT|=0X00;
  _BIS_SR(GIE); 
  while(1) 
  { 
    ADC12CTL0 |= ADC12SC;     
    TemperC = (temp - 2777) / 10; 
    wendu[7] = duan[TemperC % 10];
    wendu[6] = duan[TemperC / 10];
    for(uint k=100;k>0;k--)
     for(uchar i=0;i<8;i++)
     {
       P4OUT = wendu[i];
       duan_h;
       duan_l;
       P4OUT = wei[i];
       wei_h;
       wei_l;
       for(uint j =100;j>0;j-- );
       P4OUT = 0x00;
       duan_h;
       duan_l;
       P4OUT = 0xff;
       wei_h;
       wei_l;
       
     }
  } 

#pragma vector=ADC_VECTOR 
__interrupt void ADC12ISR( void ) 

  temp = ADC12MEM0;
}


  


  
1 0
原创粉丝点击