找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2688|回復(fù): 1
收起左側(cè)

兩個(gè)繼電器分別控制兩個(gè)水泵的單片機(jī)程序 哪位大神能幫忙改下代碼

[復(fù)制鏈接]
ID:237732 發(fā)表于 2017-10-7 23:32 | 顯示全部樓層 |閱讀模式
這個(gè)代碼主要是有兩個(gè)繼電器,分別控制兩個(gè)水泵,目的就是要實(shí)現(xiàn)如圖所示的程序。但目前程序只能讓兩個(gè)水泵同時(shí)工作,沒(méi)有停止的時(shí)候。謝謝!

程序流程圖

程序流程圖

project.zip

1.01 KB, 下載次數(shù): 15

這是程序的hex文件

回復(fù)

使用道具 舉報(bào)

ID:237732 發(fā)表于 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)//如果定時(shí)等于on的時(shí)間說(shuō)明作用時(shí)間結(jié)束,輸出低電平

{

PMW=0;

}

if(count==CYCLE)//反之低電平時(shí)間結(jié)束后返回高電平
{

  count=0;

  if(PWM_ON!=0)//如果開(kāi)啟時(shí)間是0保持原來(lái)狀態(tài)
  {

   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;
                 }
          }
      }


}



回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表