新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)C語言程序設(shè)計(jì)(14)

PIC單片機(jī)C語言程序設(shè)計(jì)(14)

作者: 時(shí)間:2013-02-05 來源:網(wǎng)絡(luò) 收藏
  RA3 可接參考電壓。

  TRISA=0X07;

  ADCON0=0X81;// 打開通道0 作數(shù)據(jù)采樣

  PORTA=0XFF;

  ADRESH=0;

  ADRESL=0;// 轉(zhuǎn)換結(jié)果寄存器清零

  INTCON=0x00;// 關(guān)閉所有中斷

  GIE=1;// 打開總中斷

  PEIE=1;// 打開第一外圍中斷

  ADIE=1;// 打開AD 中斷

  ADIF=0;// 清除AD 中斷標(biāo)志位

  }

  以下是中斷服務(wù)函數(shù):

  void interrupt AD(void)

  {

  unsigned int ad_1=0;

  // 定義一個(gè)ad 轉(zhuǎn)換結(jié)果寄存器

  if(k16)

  {

  ADIF=0; // 清楚AD 標(biāo)志位

  ad_1=(ADRESH0X03)*256+ ADRESL;

  // 讀取AD 轉(zhuǎn)換結(jié)果

  ad_sum=ad_sum+ad_1;

  k++;

  if(k16)

  ADGO=1; // 啟動(dòng)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 轉(zhuǎn)換的C 程序,初學(xué)時(shí)有些難度,但結(jié)合A/D 轉(zhuǎn)換相關(guān)的專用寄存器功能,也不難理解的,待下次連載15,筆者對A/D 轉(zhuǎn)換方法,還有一些說明的,讀者可以關(guān)注。


上一頁 1 2 3 4 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉