2013年10月22日 星期二

18f4520 ADC通道切換

#include  <p18f4520.h>  //納入微控制器定義檔
#include  <delays.h>   //納入時間延遲函式庫定義檔
#include  <adc.h>   //納入類比訊號轉換函式庫定義檔

// 結構位元定義
#pragma config OSC=HS, BOREN=OFF, BORV = 2, PWRT=ON, WDT=OFF, LVP=OFF 

void main () {
   
 PORTD = 0x00;   // 將PORTD清除關閉LED
 TRISD = 0;     // 將TRISD設為0,PORTD設定為輸出

   ADCON0=0x01;  // 選擇AN0通道轉換,開啟ADC模組
   ADCON1=0x0E;  // 使用VDD,VSS為參考電壓,設定AN0為類比輸入
   ADCON2=0x3A;  // 結果向左靠齊並設定轉換時間為Fosc/32,採樣時間為20TAD

   ADCON0=0x05;  // 選擇AN1通道轉換,開啟ADC模組
   ADCON1=0x0D;  // 使用VDD,VSS為參考電壓,設定AN0、AN1為類比輸入
   ADCON2=0x3A;  // 結果向左靠齊並設定轉換時間為Fosc/32,採樣時間為20TAD

   ADCON0=0x09;  // 選擇AN2通道轉換,開啟ADC模組
   ADCON1=0x0C;  // 使用VDD,VSS為參考電壓,設定AN0、AN1、AN2為類比輸入
   ADCON2=0x3A;  // 結果向左靠齊並設定轉換時間為Fosc/32,採樣時間為20TAD


   while(1) {
   Delay10TCYx(5); //時間延遲以完成採樣
      ConvertADC() ; //進行訊號轉換
      while(BusyADC()); //等待轉換完成
   PORTD = ADRESH ;  //將高位元組結果傳至LED
   }
}

沒有留言:

張貼留言