rzsnb 发表于 2023-11-24 09:39:46

STC15W402AS,怎么比较没反应呢?

本帖最后由 rzsnb 于 2023-11-24 09:53 编辑

如题,用STC15W402AS做了一个简单传感器,光电芯片输出通过单片机第五通道(ADC5)输入,和片内1.27V基准电压比较,单片机IO口输出产生高或低电平,比较没反应,帮忙看看什么原因,

void main()
{
    P0M0 = 0x00;                                  //PxM1.n,PxM0.n   =00--->Standard,    01--->push-pull
    P0M1 = 0x00;                                  //                  =10--->pure input,11--->open drain
    P1M0 = 0x02;
    P1M1 = 0x20;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x81;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x20;
    P5M1 = 0x00;
    P6M0 = 0x00;
    P6M1 = 0x00;
    P7M0 = 0x00;
    P7M1 = 0x00;
    P5   = 0x20;
//   InitUart();                     //初始化串口
//   InitADC();                      //初始化ADC
//   IE = 0xa0;                      //使能ADC中断
                                    //开始AD转换
   Delay(1);
         ADC_CONTR=0x85;
         CMPCR1=0;
         CMPCR2=0;
         CMPCR1|= 0x08;
         CMPCR1&=~0x04;
   CMPCR1&=~0x02;

         CMPCR2&=~0x80;
         CMPCR2&=~0x40;
         CMPCR2|= 0x7F;

    while (1)
      {
         CMPCR1|=0x80;
          while(!(CMPCR1&0x40));
         CMPCR1&=~0x40;
      if(CMPCR1&0x01)
            {
                  P1&=~0x02;
                  P3|= 0x81;
            }
      else
            {
                  P1|= 0x02;
                  P3&=~0x81;
            }
   }
}


梁工 发表于 2023-11-24 12:27:53

先将ADC结果通过串口传给电脑串口助手看看。板上有显示也可以直接显示出来。

rzsnb 发表于 2023-11-24 14:21:20

本帖最后由 rzsnb 于 2023-11-24 14:52 编辑

梁工 发表于 2023-11-24 12:27
先将ADC结果通过串口传给电脑串口助手看看。板上有显示也可以直接显示出来。 ...
正常了,用了例程
页: [1]
查看完整版本: STC15W402AS,怎么比较没反应呢?