m0_52839993 2021-05-13 17:00 采纳率: 0%
浏览 234

STC8G1K08A单片机AD 采样

刚入门,做毕设,改了N次程序。

为什么下面的程序运行之后A通道得到的值为0.

AD转换采样五次,算平均值。

void time0_init(void)
{
    //AUXR = 0x80;                  //¶¨Ê±Æ÷0¹¤×÷ÔÚ1Tģʽ£¬Ö»ÓÐSTC1Tµ¥Æ¬»ú²ÅÓеŦÄÜ
    AUXR = 0x00;                    //¶¨Ê±Æ÷0¹¤×÷ÔÚ12Tģʽ£¬ÍêÈ«ÓëAT89CϵÁÐÒ»ÑùµÄ
 
    TMOD = 0x01;                    //¶¨Ê±Æ÷0¹¤×÷ÔÚ1ģʽ£¬16λ
    TL0 = T1MS;                     //¶¨Ê±Æ÷0¼ÆÊý³õʼ»¯µÍ×Ö½Ú
    TH0 = T1MS >> 8;                //¶¨Ê±Æ÷0¼ÆÊý³õʼ»¯¸ß×Ö½Ú
    TR0 = 1;                        //Æô¶¯¶¨Ê±Æ÷0
    ET0 = 1;                        //ʹÓö¨Ê±Æ÷0ÖжϹ¦ÄÜ
    EA = 1;                         //´ò¿ª×ÜÖжÏ

void tm0_isr() interrupt 1 using 1
{    TL0 = T1MS;                     //ÖØÐÂ×°Ôض¨Ê±Æ÷0³õÖµµÍλ
    TH0 = T1MS >> 8;    //ÖØÐÂ×°Ôض¨Ê±Æ÷0³õÖµ¸ßλ
        if(++ct==1000)
        {ct=0;
      p54= !p54;
            get_ADC2ms();
        }
}
void ADCinit()
{ P5n_pure_input(0x01);    //ÉèÖÃÒª×öADCµÄIO×ö¸ß×èÊäÈë
   ch=3;
  ADC_RES=0;
  ADC_RESL=0;
    ADC_CONTR = 0x80 + 3;    //ADC on + channel
     //ADC_CONTR = ADC_POWER | ADC_START | ch;
    ADCCFG = RES_FMT + ADC_SPEED;
    delay_ms(10);
    EADC = 1;                //ÔÊÐíADCÖжÏ
   
}
/*========================================================================
 º¯Êý: void ADC_int (void) interrupt 5
 ÃèÊö: ADCÖжϺ¯Êý. 
 ²ÎÊý: none.
·µ»Ø: none.
 °æ±¾: VER1.0
 ÈÕÆÚ: 2018-4-1
 ±¸×¢: 
========================================================================*/
void ADC_int (void) interrupt 5

    ADC_CONTR &= ~ADC_FLAG;
    adc = (u16)ADC_RES * 256 + (u16)ADC_RESL;    //¶ÁADC½á¹û
    B_ADC_OK = 1;    //±êÖ¾ADCÒÑÍê³É
    ADC_RES  = 0;
    ADC_RESL = 0;
    B_ADC_OK = 0;
}
unsigned long get_ADC2ms()
{if(ch==4)
{ADC_CONTR = 0x80 | ADC_START | 4;
adc1=adc;
}
 if(ch==5)
ADC_CONTR = 0x80 | ADC_START | 5;
adc2=adc;
 if(ch==3)
ADC_CONTR = 0x80 | ADC_START | 3;
adc3=adc;
return 0;
}
unsigned long get_ADC()
{
 ADCinit();
 EA = 1;
 sum1+=abs(adc1);
 //sum2+=adc2;
 //sum3+=adc3;
 Average1=sum1/5;
 //Average2=sum2/5;
 //Average3=sum3/5;
 return 0;
}

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-05-14 18:30
    关注

    你好,我是有问必答小助手。为了技术专家团更好地为您解答问题,烦请您补充下(1)问题背景详情,(2)您想解决的具体问题,(3)问题相关代码图片或者报错信息。便于技术专家团更好地理解问题,并给出解决方案。

    您可以点击问题下方的【编辑】,进行补充修改问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作