找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2150|回复: 1
打印 上一主题 下一主题
收起左侧

两个继电器分别控制两个水泵的单片机程序 哪位大神能帮忙改下代码

[复制链接]
跳转到指定楼层
楼主
这个代码主要是有两个继电器,分别控制两个水泵,目的就是要实现如图所示的程序。但目前程序只能让两个水泵同时工作,没有停止的时候。谢谢!

IMG_0317.PNG (172.87 KB, 下载次数: 32)

程序流程图

程序流程图

project.zip

1.01 KB, 下载次数: 15

这是程序的hex文件

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:237732 发表于 2017-10-7 23:40 | 只看该作者
                                       
#include"reg52.h"

           sbit  lone=P1^5;
sbit  ltwo=P1^6;

sbit start=P3^0;
sbit stop=P3^1;
sbit AUTO=P3^2;  
sbit hand=P3^3;
sbit forward=P3^4;
sbit reverse=P3^5;
sbit acceleration=P3^6;
sbit deceleration=P3^7;


sbit direction=P1^0; //zhuanfan
sbit RS=P1^1; //on off
sbit PMW=P1^2; //kongzhi

int CYCLE,PWM_ON,count;

void initial()
{
CYCLE=20;
PWM_ON=0;
count=0;
}

void DelayMs(unsigned char z)
{
unsigned int x,y;
for(x=z;x>0;x--)  
for(y=110;y>0;y--);

}

void nit_Timer0(void)
{

TMOD|=0x01;

TH0=(65536-2000)/256;

TL0=(65536-2000)%256;

EA=1;

ET0=1;

TR0=1;

}

void Timer0_isr(void) interrupt 1

{

TH0=(65536-2000)/256;

TL0=(65536-2000)%256;


if(count==PWM_ON)//如果定时等于on的时间说明作用时间结束,输出低电平

{

PMW=0;

}

if(count==CYCLE)//反之低电平时间结束后返回高电平
{

  count=0;

  if(PWM_ON!=0)//如果开启时间是0保持原来状态
  {

   PMW=1;

  }

}
count++;

}


void accelerate()
{

if(PWM_ON==CYCLE)

{

}

else

{PWM_ON++;}

}



mian()
{
     initial();
     Iint_Timer0();
     while(1)
     {
          if(!stop)
          {
             lone=1;
              PWM_ON=0;
              ltwo=1;
               PWM_ON=0;
              while(start)
              {
               RS=0;
                 }
          }
      }


}



回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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