欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: MSP430 ADC采集 LCD1602顯示 [打印本頁]

作者: 51hei電控200522    時(shí)間: 2019-6-7 23:02
標(biāo)題: MSP430 ADC采集 LCD1602顯示
MSP430采集ADC數(shù)據(jù),0-3.3V,采用LCD1602顯示。三張運(yùn)行截圖證明切實(shí)有效。
(1)0.8V


(2)1.3V


(3)3.2V



main文件代碼:
  1. void Init_ADC(void)
  2. {
  3.   ADC12CTL0 = SHT0_2 + ADC12ON;             // Set sampling time, turn on ADC12
  4.   ADC12CTL1 = SHP;                          // Use sampling timer
  5.   ADC12IE = 0x01;                           // Enable interrupt
  6.   ADC12CTL0 |= ENC;                         // Conversion enabled
  7.   P6DIR = 0xFE;                            // P6.0, i/p
  8.   P6SEL|= 0x01;                            // P6.0-ADC option select
  9. }

  10. /*******************************************
  11.   函數(shù)名稱:Trans_val
  12.   功 能:將16進(jìn)制ADC轉(zhuǎn)換數(shù)據(jù)變換成三位10進(jìn)制
  13.   真實(shí)的模擬電壓數(shù)據(jù),并在液晶上顯示
  14.   參 數(shù):Hex_Val--16進(jìn)制數(shù)據(jù)
  15.   n--變換時(shí)的分母等于2的n次方
  16.   返回值 :無
  17. ********************************************/

  18. void Trans_val(uchar ptr[6],uint Hex_Val)
  19. {
  20.   unsigned long caltmp;
  21.   uint Curr_Volt;
  22.   caltmp = Hex_Val;
  23.   caltmp = (caltmp<<5) + Hex_Val; //caltmp = Hex_Val * 3
  24.   Curr_Volt = caltmp>> 12; //Curr_Volt = caltmp / 2^n
  25.   // 參考電壓為3.3V,所以計(jì)算公式應(yīng)該為Hex_val*3.3/2^n
  26.   // 乘除計(jì)算通過移位來進(jìn)行可以有效的提高程序運(yùn)行效率
  27.   ptr[2] = (Curr_Volt / 10)+0x30; //個(gè)位
  28.   ptr[4] = (Curr_Volt % 10)+0x30; //小數(shù)位
  29. }

  30. void Time0_Init()
  31. {
  32.     TACTL=TASSEL_1+ ID_3+ MC_1;
  33.     CCTL0=CCIE;
  34.     CCR0=1024;
  35. }

  36. void main(void)
  37. {
  38.   WDTCTL=WDTPW + WDTHOLD; // 關(guān)閉看門狗
  39.   P6SEL|= 0x03;                            // P6.0-ADC option select
  40.   
  41.   ADC12CTL0 = SHT0_8 + ADC12ON + MSC;         // Set sampling time, turn on ADC12
  42.   ADC12CTL1 = SHP+CONSEQ_1;                 // Use sampling timer
  43.   
  44.   ADC12MCTL0 = INCH_0;
  45.   ADC12MCTL1 = INCH_1 + EOS;

  46.   ADC12IE|= BIT1;                           // Enable interrupt
  47.   ADC12CTL0 |= ENC;                         // Conversion enabled
  48.   ADC12CTL0 |= ADC12SC;       // Start convn, software controlled

  49.   P1DIR=0xFF;            // 設(shè)置方向
  50.   P1SEL=0;            // 設(shè)置為普通I/O 口
  51.   
  52.   P2DIR=0xFF;            // 設(shè)置方向
  53.   P2SEL=0;            // 設(shè)置為普通I/O 口

  54.   P2OUT=0x00;
  55.   P1OUT=0x00;
  56.   delayms(200);  
  57.   Time0_Init();  
  58.   LCD_init();
  59.    
  60.   _BIS_SR(LPM0_bits+ GIE);//進(jìn)入低功耗睡眠模式
  61.   while(1)
  62.   {   
  63.     ADC12IE|=BIT1;      
  64.     ADC12CTL0 |= ENC;
  65.     ADC12CTL0 |= ADC12SC;
  66.    
  67.     LCD_dsp_string(1,1,(char*)ad0);//在第一行第一列顯示"LCD TEST"
  68.    
  69.     delayms(20);
  70.   }
  71. }

  72. // ADC12 interrupt service routine
  73. #pragma vector=ADC12_VECTOR
  74. __interrupt void ADC12_ISR (void)
  75. {   
  76.   temp0 = ADC12MEM0;
  77.   Trans_val(ad0,temp0);
  78.   
  79.   temp1 = ADC12MEM1;
  80.   Trans_val(ad1,temp1);
  81.   
  82.   LPM0_EXIT;
  83. }
復(fù)制代碼



Msp430 ADC采集.zip

142.15 KB, 下載次數(shù): 45, 下載積分: 黑幣 -5


作者: xshhh    時(shí)間: 2019-7-19 15:05
不得行




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1