📄 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 + -