⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.bak

📁 本人设计的电磁脉冲油泵的控制程序
💻 BAK
字号:
#include <REG52.H>
#include<stdio.h>
#include<intrins.h>
#include<string.h>
#include<IOsetup.h>
 

extern void ShowNum(unsigned char number);
extern void key(void);



bit  keyflag;
bit  keyflag1;   

uchar keynet;
uchar number;
uint numb;
uchar keynum;
uint time;
uchar ID; 
uint num; 
uint period;
uchar high;
uchar tcount,second,minute,hour;
char i;

uint idata fueltab[15]={
							850,	//1HZ
							499,	//2HZ
							331,	//3HZ
							249, 	//4HZ
							199,	//5HZ
							164,	//6HZ
							140,	//7HZ
							124,	//8HZ
							108,	//9HZ
							98,		//10HZ
							88,		//11HZ
							81,		//12HZ
							75,		//13HZ
							69,		//14HZ
							65,		//15HZ
						};
/////////////////////////////////延时程序/////////////////////////////////
void delay(uint t)
{
	while(t--)
	{
		_nop_();
		_nop_();
		_nop_();
		_nop_();
	}
} 
  
////////////////////////////////////////////////////////////////
main()
{

	TMOD=0x11;
	keynum=10;
    TH0=0xfc;
	TL0=0x18;
	TH1=0x3c; 
	TL1=0xb0;
    high=30;
	time=0;
	number=0;
	numb=0;
	fuel=1;
    keyflag1=1;
	keynet=0;
	i=0;
   	EA=1;
	ET0=1; 
    ET1=1; 
///////////////////////////////////////设定工作时间//////////////////////////////////
	while(1){   
		         TR0=0;
				 TR1=0;
	             ShowNum(keynum);
		         if(setnum==0&&keyflag==0)
				 {
					 keyflag=1;fuel=1;
				     keynum=keynum+10;
					 if(keynum>90)keynum=10;            
		             while(1)
					 {
					 	if(setnum==1){keyflag=0;break;}			
					 }
				 }	         
				 if(SW==0&&keyflag==0)
				 {
				 	keyflag=1;fuel=1;
	               	while(1)
					{
						if(SW==1){keyflag=0;break;}
					}
				   	TR0=0;
					TR1=0;
					second=0;
					tcount=0;
					break;
			     }
			 }
////////////////////////////////////////////设定通电时间////////////////////////////////////			 
	 while(1){   
		         TR0=0;
		         ShowNum(high);
		         if(setnum==0&&keyflag==0)
				 {
				//	 keyflag=1;fuel=1;
				     high=high+5;
					 if(high>50)high=10;            
		             while(1)
					 {
					 	if(setnum==1){keyflag=0;break;}			
					 }
				 }	         
				 if(SW==0&&keyflag==0)
				 {
				 	keyflag=1;fuel=1;
		           	while(1)
					{
						if(SW==1){keyflag=0;break;}
					}
				   	TR0=0;
					break;
			     }
	 		} 
////////////////////////////////主循环///////////////////////////////////
	while(1)
	{
	key();
	if(keyflag1==1)  //SW open
	   { 
	   	if(i>14){i=0;}
		else
		{
			TR0=0;
			period=fueltab[i];
			TR0=1;
			num=i+1;
		}
		ShowNum(num);
		
	   }

//////////////////////////到达设定运行时间,停止运行/////////////////////////////////
	   if(keynet==1)
	   { 
	   		
			TR0=1;
			TR1=1;
			ShowNum(num);
			if(second>=keynum)
			{
				fuel=1;
				TR0=0;
				TR1=0;
				ShowNum(keynum);
			}
			keyflag1=0;
		}
////////////////////////////中断程序1////////////////////////////////// 
	}
}


void t0(void) interrupt 1 using 1
{
	TH0=0xfc;
	TL0=0x18;	//1ms定时 
	time++;
	if(time>period)
		{
			time=0;
	//		numb++;
		}
	else
		{
	     if(time>high){fuel=1;}
		 else         {fuel=0;}
	     } 
}



/////////////////////中断程序2///////////////////////////////
void t1(void) interrupt 3 using 2
{ 
	tcount++; 
	if(tcount==20)
		{ 
			tcount=0; 
			second++; 
		} 
	TH1=0x3c; 
	TL1=0xb0; 
}
/////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -