AT89C51RD2單片機的Modbus+Uart通訊+相序異常檢測算法仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (17.97 KB, 下載次數: 24)
下載附件
2019-6-2 05:50 上傳
0.png (9.16 KB, 下載次數: 26)
下載附件
2019-6-2 05:50 上傳
單片機源程序如下:
#include "include.h"
//-------------------------------------------------
int cnt_2ms=0;
int cnt_4ms=0;
int cnt_100ms=0;
//------------------------------------------------------------------
void main()
{
init_serialcomm();
ModbusInit(&ModbusReg);
UserInit();
SinTab_Init_Func(&SinTabReg);
TestOldPhaseSeq = 0;
TestPhaseSeqCnt = 0;
while(1)
{
GegSinTab_Func(&SinTabReg);
GetDataForGraph(&ModbusReg);
//---------------
cnt_2ms++;
if(cnt_2ms>=2)
{
cnt_2ms=0;
ForModbusTimerTick(&ModbusReg);
}
//----------------
cnt_4ms++;
if(cnt_4ms>=4)
{
cnt_4ms=0;
modbusTx(&ModbusReg);
}
//------------------
cnt_100ms++;
if(cnt_100ms>=10)
{
cnt_100ms=0;
SciModbus(&ModbusReg);
TestPhaseSeqCnt = GM_Negative_Phase_Sequence_Detect_Ex(&TestOldPhaseSeq,SinTabReg.CosRef[AB],SinTabReg.CosRef[BC],SinTabReg.CosRef[CA]);
}
}
}
//------------------------------------------------------------------------
全部資料51hei下載地址:
見2樓
|