微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > MS1100甲醛浓度传感器读取数值偏小

MS1100甲醛浓度传感器读取数值偏小

时间:10-02 整理:3721RD 点击:
我用STC单片机读取MS1100读取甲醛浓度转换成电压值,转换出来的电压值一直偏小!这是为什么?我使用的是P1.4,请教一下大家~~~
/*----------------------------
Get ADC result
----------------------------*/
GetADCResult(int ch)
{
      ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
      _nop_();                            //Must wait before inquiry
      _nop_();
      _nop_();
      _nop_();
      while (!(ADC_CONTR & ADC_FLAG));  //Wait complete flag
      ADC_CONTR &= ~ADC_FLAG;           //Close ADC
          return (ADC_RES*4+ADC_RESL);     //Return ADC result
}
/*----------------------------
Initial ADC sfr
----------------------------*/
void InitADC()
{
       
       P1ASF = 0xff;                       //Open 8 channels ADC function
          ADC_RES = 0;
          ADC_RESL = 0;                       //Clear previous result
      ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
//      delay(2);           
}

void ADC()
{
         INT16U Shishu=0,shiwei=0,ya=0;
   double c;       
   INT16U cdisplay;
       
         shiwei=GetADCResult(4);
           /*lcd_pos(0x40);                //éè????ê??????aμúò?DDμ?μú1??×?·?
           lcd_wdat('A');
           lcd_pos(0x41);               
           lcd_wdat('=');          
           lcd_pos(0x42);               
           lcd_wdat(shiwei/1000+0x30);          
           lcd_pos(0x43);               
           lcd_wdat((shiwei%1000)/100+0x30);
           lcd_pos(0x44);               
           lcd_wdat((shiwei%100)/10+0x30);
           lcd_pos(0x45);               
           lcd_wdat((shiwei%10)+0x30);*/
           c = ((double)shiwei*(5.50/1024))*100;
           cdisplay = (INT16U) c;
           GraphicDispNum(0, 0,DISPLAY_NORMAL, cdisplay/100);
           GraphicDispNum(0, 5,DISPLAY_NORMAL, cdisplay%100);
           GraphicDispNum(0, 12,DISPLAY_NORMAL, shiwei%100);

为什么不能发帖子了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top