找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5187|回复: 2
收起左侧

DSPIC33fgs504控制的逆变器的proteus仿真与源程序

[复制链接]
ID:362105 发表于 2018-6-30 07:57 | 显示全部楼层 |阅读模式
DSPIC33fgs504控制的逆变器仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)目前还存在一些问题未解决,还不能运行 希望大家一起完善
0.png 0.png

源程序如下:
  1. #include "declare.h"

  2. //************************************************************
  3. //
  4. void DealData(void)
  5. {
  6. if(ReceiveFlag==ReceiveSetting)
  7.    {
  8.     Decode();
  9.     ReceiveFlag=ReceiveSetting+1;
  10.    }  
  11. }

  12. //************************************************************
  13. //
  14. Uchar VerifyData(void)
  15. {Uchar Temp,Sum=0,i;
  16.   
  17.   Temp=FI[2];
  18.    if(Temp>29)
  19.       Temp=29;
  20.    for(i=0;i<Temp;i++)
  21.       Sum+=FI[i];        
  22.    return(!Sum);
  23. }

  24. //************************************************************
  25. //
  26. void Decode(void)
  27. {         
  28.   if(VerifyData())
  29.     {
  30.      switch(FI[3])
  31.         { case MIReadParameter:WriteParameter();
  32.                                ReadData();
  33.                                LED=abc++%2;
  34.                                break;   
  35.         }
  36.       FlagCommunicateError=0;  
  37.     }
  38. }


  39. //************************************************************
  40. //
  41. void WriteParameter(void)
  42. { Uint CurReference,WorkMode;
  43.   Uchar i;
  44.   i = 4;
  45.   DCStartState=FI[i++];
  46.   DCVoltageSet=FI[i++];
  47.   DCVoltageSet*=0x100;
  48.   DCVoltageSet+=FI[i++];
  49.   DCCurrentSet=FI[i++];
  50.   DCCurrentSet*=0x100;
  51.   DCCurrentSet+=FI[i++];
  52.   
  53.   ACStartState=FI[i++];
  54.   ACVoltageSet=FI[i++];
  55.   ACVoltageSet*=0x100;
  56.   ACVoltageSet+=FI[i++];
  57.   ACCurrentSet=FI[i++];
  58.   ACCurrentSet*=0x100;
  59.   ACCurrentSet+=FI[i++];
  60. }

  61. //************************************************************
  62. void ReadData(void)
  63. {
  64.     Uchar i,j,Sum;
  65.     Sum = 0;
  66.      
  67.     i = 0;
  68.     FO[i++]=0xaa;
  69.     FO[i++]=0x55;
  70.     FO[i++]=0;
  71.     FO[i++]=MIReadParameter;
  72.     FO[i++]=DCWorkState;
  73.     FO[i++]=DCProtectState;
  74.     FO[i++]=DCVoltage/0x100;
  75.     FO[i++]=DCVoltage%0x100;
  76.     FO[i++]=DCCurrent/0x100;
  77.     FO[i++]=DCCurrent%0x100;
  78.    
  79.     FO[i++]=ACWorkState;
  80.     FO[i++]=ACProtectState;
  81.     FO[i++]=ACVoltage/0x100;
  82.     FO[i++]=ACVoltage%0x100;
  83.     FO[i++]=ACCurrent/0x100;
  84.     FO[i++]=ACCurrent%0x100;

  85.     FO[2] = i + 1;
  86.     for(j=0;j<i;j++)
  87.           Sum+=FO[j];
  88.     FO[i]=~Sum+1;
  89.    
  90.     CON485=1;
  91.     SendCount=0;
  92.     SendCountMax=i+2;
  93.     U1TXREG=FO[SendCount++];
  94.     //LED=abc++%2;
  95. }

复制代码
目前还存在一些问题未解决,还不能运行 希望大家一起完善
所有资料51hei提供下载:
NBQ.rar (316.82 KB, 下载次数: 100)
回复

使用道具 举报

ID:262075 发表于 2020-11-1 09:56 | 显示全部楼层
不能用,有问题,大家不要下载
回复

使用道具 举报

ID:319585 发表于 2020-11-11 15:30 | 显示全部楼层
这个感觉不错的样子,准备好好搞一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表