⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad1.c

📁 C8051F120 _AD开发过程中的一些代码和文档
💻 C
字号:
 unsigned short A1Results[Num_of_Results]    
      P6SEL|=0xff;
      ADC12CTL0 &=~(ENC);                           //禁止AD转换
      ADC12CTL0 = ADC12ON+REFON+REF2_5V+SHT0_4+MSC; // Setup ADC12, ref., sampling time
                                                    //ADC12ON打开ADC12内核,REFON 内部参考电压
                                                    //REF2_5V 内部参考电压2.5V,
                                                    //SHT0_4采样保持定时器0
      ADC12CTL1 = SHP+CONSEQ_1;                     // 序列通道单次转换
      ADC12MCTL0 = INCH_0+SREF_1;                   // Select channel A1, Vref+
      ADC12MCTL1 = INCH_1+SREF_1;                   // Select channel A2, Vref+
      ADC12MCTL2 = INCH_2+SREF_1;                   // Select channel A3, Vref+
      ADC12MCTL3 = INCH_3+SREF_1;                   // Select channel X4 (A4,A9,A10,A11) , Vref+
      ADC12MCTL4 = INCH_4+SREF_1;                   // Select channel A5, Vref+
      ADC12MCTL5 = INCH_5+SREF_1;                   // Select channel A6, Vref+
      ADC12MCTL6 = INCH_6+SREF_1;                   // Select channel A7, Vref+
      ADC12MCTL7 = INCH_7+SREF_1+EOS;               // Select channel A8, Vref+,最后通道
  
   for (index=0;index<24;index++)
         {
           ADC12CTL0 |= 0x01;     // 开始转换
           ADC12CTL0 &=~0x01;                        // Start conversion
           for (j=0;j<=100;j++); // 延时,准备触发序列中
             {                         //的下一次转换
             }
           while ((ADC12CTL1&0x01)==1);            // 等待整个序列的转换完成      
           A1Results[index] = ADC12MEM0;           // 存通道A1结果,
           A2Results[index] = ADC12MEM1;           // 存通道A2结果,                    
           A3Results[index] = ADC12MEM2;           // 存通道A3结果,   
           A4Results[index] = ADC12MEM4;           // 存通道A4结果,
           A5Results[index] = ADC12MEM5;           // 存通道A5结果,                    
           A6Results[index] = ADC12MEM6;           // 存通道A6结果,
           A7Results[index] = ADC12MEM7;           // 存通道A7结果,
         }
  for(;;)
                          {
                            DAC5618_3(VOut3,0x8000);                    
                            Delay(10000);
                            P3OUT&=~BIT6;
                            P3OUT&=~BIT7;
                            ADC12CTL0 |= ENC;  
                            for (index=0;index<24;index++)
                               {
                                 ADC12CTL0 |= 0x01;                       // 开始转换
                                 ADC12CTL0 &=~0x01;                       // Start conversion
                                 for (j=0;j<=100;j++);                    // 延时,准备触发序列中
                                  {                                       //的下一次转换
                                   }
                                 while ((ADC12CTL1&0x01)==1);             // 等待整个序列的转换完成      
                                 A6Results[index] = ADC12MEM6;            // 存通道A6结果   
                                 }
                            ADC12CTL0&=~ENC; 
                            A6Result=Average(A6Results);                  //第2路4.5A电流平均值 
                            V3=((long int)A6Result*2700)/4095;    
                            if((V3-Vtemp)<50 && V3>Vtemp)                 //实际电压小于设定电压或大于设定电压
                               break;
                            if((Vtemp-V3)<50 && Vtemp>V3)                  //实际电压小于设定电压或大于设定电压
                               break;
                          }   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -