新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > PIC单片机C语言程序设计(14)

PIC单片机C语言程序设计(14)

作者:时间:2013-02-05来源:网络收藏
  RA3 可接参考电压。

  TRISA=0X07;

  ADCON0=0X81;// 打开通道0 作数据采样

  PORTA=0XFF;

  ADRESH=0;

  ADRESL=0;// 转换结果寄存器清零

  INTCON=0x00;// 关闭所有中断

  GIE=1;// 打开总中断

  PEIE=1;// 打开第一外围中断

  ADIE=1;// 打开AD 中断

  ADIF=0;// 清除AD 中断标志位

  }

  以下是中断服务函数:

  void interrupt AD(void)

  {

  unsigned int ad_1=0;

  // 定义一个ad 转换结果寄存器

  if(k16)

  {

  ADIF=0; // 清楚AD 标志位

  ad_1=(ADRESH0X03)*256+ ADRESL;

  // 读取AD 转换结果

  ad_sum=ad_sum+ad_1;

  k++;

  if(k16)

  ADGO=1; // 启动AD

  }

  if(k==16)

  {

  ad_1=ad_sum/16;

  if( b>16)

  {

  if(ad_1>ad_temp)

  ad_1=ad_1-ad_temp;

  else if(ad_1ad_temp)

  ad_1=ad_temp-ad_1;

  else if(ad_1==ad_temp)

  ad_1=0;

  AD_

  value=(float)(ad_1);

  }

  d=1;

  ad_sum=0;

  k=0;

  if(b32)

  {

  b++;

  ADGO=1;

  }

  if(b==15)

  ad_temp=ad_1;

  }

  }

  上述A/D 转换的C 程序,初学时有些难度,但结合A/D 转换相关的专用寄存器功能,也不难理解的,待下次连载15,笔者对A/D 转换方法,还有一些说明的,读者可以关注。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭