?? lpc935ad.c
字號:
/****************************LPC935AD.C*******************************
*程序功能:測試LPC935 AD轉換功能
*轉換模式:單次轉換
*啟動方式:定時器0觸發
**************************************************************************/
/* 對于AD 轉換程序的編寫,主要需要注意的有5點:
1. 管腳的控制(選為AD 轉換器輸入的管腳,均應設置
為僅為輸入狀態,禁止數字功能)。
2. AD轉換工作模式的設置,LPC935 具有6 種模式,
可通過設置ADMODA 獲得相應的轉換模式。
3. AD轉換工作頻率(500KHz—3.3MHz)
及附加功能(DAC 或邊界檢測)的選擇。
4. AD轉換觸發、啟動方式的選擇
(通過設置ADCONx 獲得相應的觸發方式)。
5. 每一次AD 轉換完成,注意將AD 轉換完成標志位清0。
//***************************************************************************/
#include"reg935.h"
#include"UserDef.h"
uchar data lineVolt[3]; //[0] 保存A line volt,[1] 保存B line volt ,[3] 保存C line volt
uchar data lineCurrent[3]; //[0] 保存A line current,[1] 保存B line current ,[3] 保存C line current
/*漏電信息
[0]--漏電情況,1 : 有漏電;0 : 無漏電
[1]--漏電電流值
[2]--漏電線路,1: 表示A相漏電;2: 表示B相漏電; 3:表示C相漏電
*/
uchar data leakageCurrentMsg[3];
void ADConvert(void)
{
//AD0 轉換器
ADINS = 0x01; //選擇00 通道
ADCON0 = START_ADC;
while(!(ADCON0&0x08));
lineCurrent[0] = AD0DAT0;
ADCON0 &= 0xF7; //清除AD 轉換完成標志
ADINS = 0x02; //選擇02 通道
ADCON0 = START_ADC;
while(!(ADCON0&0x08));
lineCurrent[1] = AD0DAT1;
ADCON0 &= 0xF7; //清除AD 轉換完成標志
ADINS = 0x03; //選擇03 通道
ADCON0 = START_ADC;
while(!(ADCON0&0x08));
lineCurrent[2] = AD0DAT2;
ADCON0 &= 0xF7; //清除AD 轉換完成標志
//AD1 轉換器
ADINS = 0x10; //選擇00 通道
ADCON1 = START_ADC;
while(!(ADCON1&0x08));
lineVolt[0] = AD1DAT0;
ADCON1 &= 0xF7; //清除AD 轉換完成標志
ADINS = 0x20; //選擇02 通道
ADCON1 = START_ADC;
while(!(ADCON1&0x08));
lineVolt[1] = AD1DAT1;
ADCON1 &= 0xF7; //清除AD 轉換完成標志
ADINS = 0x40; //選擇03 通道
ADCON1 = START_ADC;
while(!(ADCON1&0x08));
lineVolt[2] = AD1DAT2;
ADCON1 &= 0xF7; //清除AD 轉換完成標志
ADINS = 0x80; //選擇03 通道
ADCON1 = START_ADC;
while(!(ADCON1&0x08));
leakageCurrentMsg[1] = AD1DAT3; //漏電流數值
ADCON1 &= 0x00; //關閉AD 轉換功能
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -