导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[讨论]8051F005 ADC[ZhouYongliang]

 *第23469篇: [讨论]8051F005 ADC

  
楼 主:ZhouYongliang 2008年11月4日16:31
 [讨论]8051F005 ADC
/************************ ADC 通道切换函数 *************************** 
* 名称: Switch_Gate
* 说明: 交叉数据采样
* 功能: 通道切换交叉启动 ADC
* 调用: 无
* 输入: 无
* 返回值: I_Scale , V_Scale ,A_Scale
*********************************************************************/
void Switch_Gate(void) 
{
 ES = 0;
     Frequency = 0; 
       I_Scale = 0;
       V_Scale = 0;
       A_Scale = 0;
                     Chnnl = 'A';
  for (;Frequency   <= 149;)
      {
     switch (Chnnl)
   {
      case 'A': 
        AMX0SL = 0x00;    // ADC 电流通道
     ADC0CN = 0xbc;    // 启动 ADC 
      ADC0CN = 0xb0;    // 启动 ADC 
     EIE2 = 0x02;      // 开 ADC 中断
                 break;
      case 'B': 
        AMX0SL = 0x01;    // ADC 电压通道
     ADC0CN = 0xbc;    // 启动 ADC 
      ADC0CN = 0xb0;    // 启动 ADC 
     EIE2 = 0x02;      // 开 ADC 中断
                 break;
      case 'C': 
        AMX0SL = 0x02;    // ADC 电源电压通道
     ADC0CN = 0xbc;    // 启动 ADC 
      ADC0CN = 0xb0;    // 启动 ADC 
     EIE2 = 0x02;      // 开 ADC 中断
                 break;
   }
            } 
  I_Scale /= 50.0; 
  V_Scale /= 50.0; 
  A_Scale /= 50.0;
  ES = 1;
return;
}
/************************ ADC 中断函数 ****************************** 
* 名称: ADC_Serve
* 说明: 读取采样数据
* 功能: 保存采样数据
* 调用: 无
* 输入: 无
* 返回值: V_Scale 电压值积、 I_Scale 电流值积  V_power  电源电压值积
*********************************************************************/
void ADC_Serve(void) interrupt 15
{
EIE2 = 0x00;                // 关 ADC 中断
     switch (Chnnl)
   {
      case 'A': 
           I_Scale += ADC0;
                    Chnnl = 'B';
                    break;
      case 'B': 
           V_Scale += ADC0;
                    Chnnl = 'C';
                    break;
      case 'C': 
              A_Scale += ADC0;
              Chnnl = 'A';
                    break;
   }
 Frequency ++;
return;
}


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:LPC2388开发板闪亮登场

[下一篇主题]:[讨论]