(3)定时中断服务子程序及A/D转换子程序。主要完成A/D转换任务,1 ms进行1次处理,每回连续6次采样,采样结果存入指定内存单元。定时中断服务子程序流程如图4所示,A/D转换子程序流程如图5所示。
(4)数据处理子程序。主要完成数字滤波,提高系统抗干扰性能,求A/D转换数据平均值,进行数据比较,确定是否跳闸与报警等。数据处理子程序流程如图6所示。
(5)键盘处理子程序。主要为人机对话提供一个通道,用于设置保护的保护整定值、延时跳闸时间等。
3.2 程序设计
程序采用C语言设计,下面给出A/D转换子程序和数据处理子程序中的核心语句[4]。
(1)A/D转换子程序
void DataConv( )
{ int num;
PORT-D=1; //启动A/D转换
for(num=0;num++;num=6) //采样6次数据
{ Delay();
adresult[num]=AD; //保存A/D转换结果至adresult[]
}
PORT-D=0; //停止A/D转换
}
(2)数据处理子程序
void DataDeal( )
{ int i;
result=0; //保存A/D转换最终数值
for(i=0;i++;i=6)result=result+adresult[i];
//对A/D转换结果进行数字滤波
result=result/6;
if(result>=raluemax‖result<=raluemin) Alarm( );
//若采样值大于给定的最大值或小于给定的最小值,则做报警并进行故障处理
Display( ); //对数据进行实时显示
}
设计的智能继电器性能远远优于传统的继电器产品,设计系统以PIC18F6585单片机为核心构成一个实时数据采集系统,可将采集的数据进行实时分析、运算和处理,获得各种不同的保护特性,易于修改,选择性和配合性好。集测量、监控和保护于一身,可通过通信接口与计算机联网构成智能化的监控保护与信息管理系统,具有较高的工业使用价值。