2016年9月14日 星期三

DIY - PIC24:PIC24FJ64GA008 A/D 類比數位轉換器程式(五十二)

DIY - PIC24PIC24FJ64GA008 A/D 類比數位轉換器程式(五十二): 

Microchip PIC24FJ64GA008 A/D 類比數位轉換器程式,首先要設定寄存器,然後執行 ADC 轉換,完成後讀取數值,將數值換算出真正的數值,數值資料輸出到 LCD 1602 作出顯示。

Microchip PIC24FJ64GA008 A/D 類比數位轉換器顯示
Microchip PIC24FJ64GA008 A/D 類比數位轉換器模組具有 6 個控制和狀態寄存器
AD1CON1A/D 控制寄存器 1 
AD1CON2A/D 控制寄存器 2
  AD1CON3A/D 控制寄存器 3 
AD1CHSA/D 輸入通道選擇寄存器 
AD1PCFGA/D 埠配置寄存器
  AD1CSSLA/D 輸入掃描選擇寄存器

Microchip PIC24FJ64GA008 A/D 類比數位轉換器 A/D 採樣/轉換序列
Microchip PIC24FJ64GA008 A/D 模組配置
在執行 A/D 轉換時應該遵循以下步驟: 
1. 配置 A/D 模組:
• 選擇參考電壓源來匹配類比引腳上的期望電壓範圍
• 選擇類比轉換時鐘以使所需資料速率與處理器時鐘匹配
• 確定採樣將如何發生
• 確定輸入如何分配到 S/H 通道
• 選擇所需的採樣/ 轉換序列
• 選擇如何將轉換結果送到緩衝器
• 選擇中斷速率
• 打開 A/D 模組 
2. 配置 A/D 中斷(如需要):
• 清零 AD1IF
• 選擇 A/D 中斷優先順序 

Microchip PIC24FJ64GA008 A/D 類比數位轉換器,轉換 1 個通道,自動採樣啟動,手動轉換啟動
Microchip PIC24FJ64GA008 AN0 初始化程式:
// ADC Setup
AD1PCFG = 0xFFFC;  // Configure AN0 and AN1 Analog

AD1CON1 = 0x2202;  // Configure sample clock source
// and conversion trigger mode.
// Unsigned Fraction format (FORM<1:0>=10),
// Manual conversion trigger (SSRC<3:0>=000),
// Manual start of sampling (ASAM=0),
// No operation in Idle mode (ADSIDL=1).
AD1CON2 = 0x0000;  // Configure A/D voltage reference and buffer fill modes.
// Vr+ and Vr- from AVdd and AVss (VCFG<2:0>=000),
// Inputs are not scanned, Interrupt after every sample
AD1CON3 = 0x0100;

AD1CHS = 0x0000;   // Select analog input channel AN0
AD1CSSL = 0;       // No scanning required

IFS0bits.AD1IF = 0;     // Clear A/D conversion interrupt
AD1CON1bits.ADON = 1; // Turn On ADC

Microchip PIC24FJ64GA008 AN0 主程式
unsigned int an0;
unsigned char xlcd_buf[17];

while(1){
AD1CON1bits.SAMP =1;     // Start Sampling
while(!AD1CON1bits.SAMP);

AD1CON1bits.SAMP =0;
while(AD1CON1bits.SAMP);

while(!AD1CON1bits.DONE){  // Wait to complete the conversion
an0 = ADC1BUF0;           // Read the conversion result
SetDDRamAddr(0x40);
WriteStrXLCD("AN0=");
WriteNbXLCD(an0);
WriteStrXLCD(" ");
}

Microchip PIC24FJ64GA008 A/D 類比數位轉換器程式
2016年 9月 14日 天氣報告
氣溫:30.0@ 21:50
相對濕度:百分之 62%
天氣:大致多雲

沒有留言:

張貼留言