Microchip PIC24FJ64GA008 A/D 類比數位轉換器程式,首先要設定寄存器,然後執行 ADC 轉換,完成後讀取數值,將數值換算出真正的數值,數值資料輸出到 LCD 1602 作出顯示。
Microchip PIC24FJ64GA008 A/D 類比數位轉換器顯示 |
• AD1CON1:A/D 控制寄存器 1
• AD1CON2:A/D 控制寄存器 2
• AD1CON3:A/D 控制寄存器 3
• AD1CHS:A/D 輸入通道選擇寄存器
• AD1PCFG:A/D 埠配置寄存器
• AD1CSSL:A/D 輸入掃描選擇寄存器
Microchip PIC24FJ64GA008 A/D 類比數位轉換器 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),1:0>
// Manual conversion trigger (SSRC<3:0>=000),3:0>
// 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),2:0>
// 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%
天氣:大致多雲
沒有留言:
張貼留言