找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7259|回复: 7
收起左侧

STC 单片机做太阳能逆变器离网控制器主控

  [复制链接]
ID:196617 发表于 2017-5-4 18:44 | 显示全部楼层 |阅读模式
本帖最后由 xuzuxiong 于 2017-5-4 18:48 编辑

这是最初版的,不会发帖,接下来做全触摸版的,会加入一系列传感器,人机界面直接彩屏显示,电瓶电压,电流功率,开机时间,雨天时间,灯光控制,温度检测,市电电压电流,逆变电压电流,功能逐步完善。

运行中

运行中

市电检测

市电检测

控制切换

控制切换

正常运行中

正常运行中

现在的没拍照

现在的没拍照

这是之前的

这是之前的

太阳能控制器.zip

43.15 KB, 下载次数: 107, 下载积分: 黑币 -5

程序

评分

参与人数 2黑币 +112 收起 理由
1109 + 12 很给力!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-5-4 18:57 | 显示全部楼层
楼主的源码:
  1. #include<reg51.h>
  2.    
  3. #include <intrins.h>
  4. long  int s=10   ;
  5. char  x=10, k=1,c=10;
  6. //long int cnt=0,js=0,ys=0 ;                                          

  7. sfr P5 = 0xC8;
  8. sbit bj=P1^4;
  9. sbit led=P1^5;
  10. sbit QH=P1^2;
  11. sbit kg=P3^3;
  12. sbit sd=P1^3;
  13. sbit xt=P5^5;
  14. sbit sdjc=P1^0;
  15. sbit ybjc=P1^1;
  16. sbit hw=P5^4;
  17. sbit sdzs=P3^0;
  18. sbit ybzs=P3^1;

  19. void Delay1000ms()                //@33.000MHz
  20. {
  21.         unsigned char i, j, k;

  22.         _nop_();
  23.         _nop_();
  24.         i = 126;
  25.         j = 101;
  26.         k = 169;
  27.         do
  28.         {
  29.                 do
  30.                 {
  31.                         while (--k);
  32.                 } while (--j);
  33.         } while (--i);
  34. }

  35. void Delay100ms()                //@33.000MHz
  36. {
  37.         unsigned char i, j, k;

  38.         _nop_();
  39.         _nop_();
  40.         i = 13;
  41.         j = 139;
  42.         k = 12;
  43.         do
  44.         {
  45.                 do
  46.                 {
  47.                         while (--k);
  48.                 } while (--j);
  49.         } while (--i);
  50. }

  51. void main()
  52. {
  53.    P1=0XFF;
  54.    P3=0XFF;
  55.   
  56.   // kg=1;
  57.         TMOD = 0x01;
  58.         TH0 = 0xCD;
  59.         TL0 = 0xD4;
  60.         TR0 = 1;
  61.         EA = 1;
  62.         ET0 = 1;


  63.   while(1)
  64.   {
  65.   while(c)
  66.   {
  67.   kg=0;
  68.   c--;
  69.   }


  70.   while(x)
  71.   { xt=~xt;
  72.   Delay1000ms();
  73.   x--;

  74.   }
  75.   xt=~xt;
  76. Delay100ms();
  77.   if(ybjc==1)
  78.   {  QH=0; }
  79. if(ybjc==0)
  80.   {
  81.   QH=1;

  82.   }
  83.   if((ybjc==0)&&(sdjc==0))
  84.    {
  85.         Delay1000ms();
  86.         bj=0;
  87.         kg=1;
  88.         xt=0;
  89.         QH=1;
  90.         while(k)
  91.         {
  92.         xt=0;
  93.         if(ybjc==1)
  94.         {k=0;}
  95.         if(sdjc==1)
  96.         {k=0; }
  97.         kg=0;
  98.         }
  99.    }
  100.   if((kg==0)&&(ybjc==0))
  101.           {
  102.         s=20;
  103.         kg=1;
  104.         while(s)
  105.         {
  106.         xt=~xt;
  107.         Delay1000ms();
  108.         Delay1000ms();
  109.         s--;
  110.         }
  111.    kg=0;
  112.    Delay1000ms();
  113.          xt=~xt;
  114.    Delay1000ms();
  115.         xt=~xt;
  116.    Delay1000ms();
  117.    xt=~xt;  
  118.    Delay1000ms();
  119.          xt=~xt;
  120.    Delay1000ms();
  121.         xt=~xt;
  122.    Delay1000ms();
  123.    xt=~xt;
  124.    Delay1000ms();
  125.          xt=~xt;
  126.    Delay1000ms();
  127.         xt=~xt;
  128.    Delay1000ms();
  129.    xt=~xt;
  130.         Delay1000ms();
  131.          xt=~xt;
  132.    Delay1000ms();
  133.         xt=~xt;
  134.    Delay1000ms();
  135.    xt=~xt;

  136. if((kg==0)&&(ybjc==0))
  137.    {
  138.    kg=1;
  139.    QH=1;
  140.    s=400;
  141.    }
  142. if((kg==0)&&(ybjc==1))
  143.    {
  144.    kg=0;
  145.    QH=0;
  146.    s=0;
  147.    }

  148.    
  149.    while(s)
  150.    {
  151.    xt=~xt;
  152.    Delay1000ms();
  153.    Delay1000ms();
  154.    Delay1000ms();
  155.    s--;
  156.    }
  157.    kg=0;
  158.    s=10;
  159.    while(s)
  160.             {
  161.          Delay1000ms();
  162.          s--;
  163.          }
  164.   if(ybjc==1)
  165.            {QH=0; }
  166.         else
  167.         {
  168.          QH=1;
  169.          kg=1;
  170.          s=4000 ;
  171.          while(s)
  172.          {
  173.    Delay1000ms();
  174.    Delay1000ms();
  175.    Delay1000ms();
  176.          xt=~xt;
  177.    Delay1000ms();
  178.    Delay1000ms();
  179.    Delay1000ms();
  180.    s--;
  181.    if(s==1)
  182.    {c=10; }

  183. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
回复

使用道具 举报

ID:196617 发表于 2017-5-4 19:06 | 显示全部楼层
没有注释应为这次没有准备发帖的,自己做的就没有备注,等我做升级版的时候在发。
回复

使用道具 举报

ID:157057 发表于 2017-5-4 19:36 | 显示全部楼层
xuzuxiong 发表于 2017-5-4 19:06
没有注释应为这次没有准备发帖的,自己做的就没有备注,等我做升级版的时候在发。

楼主能发一下原理图吗?谢谢。
回复

使用道具 举报

ID:184914 发表于 2017-5-5 22:51 | 显示全部楼层
可以 可以
回复

使用道具 举报

ID:61135 发表于 2017-7-6 10:39 | 显示全部楼层
这不是正弦波的吧?
回复

使用道具 举报

ID:620287 发表于 2019-10-11 08:18 来自手机 | 显示全部楼层
有原理图吗?只有程序弄不了。
回复

使用道具 举报

ID:71535 发表于 2020-2-4 12:20 | 显示全部楼层

非常认真负责的管理员
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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