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

📄 main1_zw.c.bak

📁 基于485的51单片机多机通讯程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:
 	EA=1;				//中断总允许
 	
 	temp_c=0;

        pc_ok=0;
	urgent_stop=0;
	main1_err=0;

BEGIN:
	if(urgent_stop==1)
	{		
		urgent_stop=0;
		EX0=1;
	}

	pc_stop=0;
	urgent_stop=0;
	err_ok=1;
	work=0;
	start=0;
	err=0;				//错误编号
	editing=0;			//正在编程
	edit_finish=0;			//编程结束
	p_received=0;
	change_prg=0;
	connect=0;
	break_connect=0;
	in_sector=0;
	nonce_sec=0;			//当前区间号
	FINISH=0;
	CURRENT=0;
	VOLTAGE=0;
	AVC=0;
	decrease=0;
	rot_front=0;
	rot_reverse=0;
	wire_add=0;
	wire_dec=0;
	osc_l=0;
	osc_r=0;
	avc_up=0;
	avc_down=0;
	temp_motor_stop=0;
	motor_stop=0;
	new_switch1=0;
	new_switch2=0;
	new_switch3=0;
	start_again=0;
	need_para=0;
	p_changed=0;
	edited=0;

	POINTER0=0;
	SSUM=0;
	S_ANSW=0;
	POINTER1=0;
	RSUM=0;
	ans=0;
	R_ANSW=0;
	r_byte_nums=4;
	noans_ok=1;
	overtime=0;
	s_p=0;				//1,发送参数


//	rc_forbided=1;

	while(start==0)
	{
		if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
		if(connect==1)
		{
			ini_sbuf(M_PC,answer,OK,0,0);
			s_byte_nums=4;
			TR_noans();
			pc_ok=1;
                        connect=0;
		}
		if(break_connect==1)
		{
			ini_sbuf(M_PC,answer,OK,0,0);
			s_byte_nums=4;
			TR_noans();
			pc_ok=0;
			break_connect=0;
		}
/*
		if(p_forbid==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			p_forbided=1;
			p_actived=0;
			p_forbid=0;
		}
		if(rc_forbid==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			rc_forbided=1;
			rc_actived=0;
			rc_forbid=0;
		}
*/
		if(temp_motor_stop==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			motor_stop=1;
			temp_motor_stop=0;
		}
		if(editing==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();

			while(p_received==0)
			{
				if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
				if(resend==1)
				{
					ini_sbuf(M_PC,answer,S_ANSW,0,0);
					s_byte_nums=4;
					TR_noans();
                                        p_received=0;
					resend=0;
				}
			}
			point=&pp.pn;
			delt=0;
			for(i=2;i<55;i++)
			{
				*(point+i-2)=rbuffer[i+delt]*256+rbuffer[i+delt+1];
				delt++;
			}
			p_received=0;
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();

			while(p_received==0)
			{
				if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
				if(resend==1)
				{
					ini_sbuf(M_PC,answer,S_ANSW,0,0);
					s_byte_nums=4;
					TR_noans();
					p_received=0;
					resend=0;
				}
			}
			point=&pp.k2;
			delt=0;
			for(i=2;i<51;i++)
			{
				*(point+i-2)=rbuffer[i+delt]*256+rbuffer[i+delt+1];
				delt++;
			}
			p_received=0;
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();

			while(p_received==0)
			{
				if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
				if(resend==1)
				{
					ini_sbuf(M_PC,answer,S_ANSW,0,0);
					s_byte_nums=4;
					TR_noans();
					p_received=0;
					resend=0;
				}
			}
			point=&pp.k4;
			delt=0;
			for(i=2;i<53;i++)
			{
				*(point+i-2)=rbuffer[i+delt]*256+rbuffer[i+delt+1];
				delt++;
			}
			pp.sec_num=rbuffer[52];
			p_received=0;
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();

			if(pp.sec_num>0)
			{
				for(j=0;j<pp.sec_num;j++)
				{
					while(p_received==0)
					{
						if(urgent_stop==1)
						{
							if(pc_stop==1)
							{
								ini_sbuf(M_PC,answer,S_ANSW,0,0);
								s_byte_nums=4;
								TR_noans();
								stop=0;
								while(err_ok==0);
							}
							goto BEGIN;
						}
						if(resend==1)
						{
							ini_sbuf(M_PC,answer,S_ANSW,0,0);
							s_byte_nums=4;
							TR_noans();
							resend=0;
							p_received=0;
						}
					}
					p_received=0;
					nonce_sec=rbuffer[2];
					point=&pp.x[nonce_sec][0];
					i=3;
					for(delt=0;delt<30;delt++)
					{
						*(point+delt)=rbuffer[i]*256+rbuffer[i+1];
						i=i+2;
					}
					ini_sbuf(M_PC,answer,S_ANSW,0,0);
					s_byte_nums=4;
					TR_noans();
				}
				
			}
			while(edit_finish==0)
			{
				if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
			}
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			edit_finish=0;
			pc_edit=1;
		}

		if(need_para==1||edited==1||p_changed==1)
		{
			
			if(edited==1||p_changed==1)
			{
				ini_sbuf(M_PC,command,com_receive_p,0,0);
				s_byte_nums=4;
				TR_noans();
			}
			delay(100);
			ini_sbuf(M_PC,program,0,0,0);
			sbuffer[2]=pp.pn%256;
			s_byte_nums=4;
			TR_ans();
			delay(100);
			send_param();
			need_para=0;
			edited=0;
			p_changed=0;
		}
/*			
		if(p_active==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			p_forbided=0;
			p_actived=1;
			p_active=0;
		}
		
		if(rc_active==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			rc_forbided=0;
			rc_actived=1;
			rc_active=0;
		}
*/		
		if(new_switch1==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			new_switch11=1;
			new_switch1=0;
		}
		
		if(new_switch2==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			new_switch22=1;
			new_switch2=0;
		}

		if(new_switch3==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			delt_switch=1;
			new_switch3=0;
		}

		if(urgent_stop==1)
		{
			if(pc_stop==1)
			{
				ini_sbuf(M_PC,answer,S_ANSW,0,0);
				s_byte_nums=4;
				TR_noans();
				stop=0;
				while(err_ok==0);
				stop=1;
			}
			goto BEGIN;
		}
				
	}

//	if(rc_forbided==1)
	{
		ini_sbuf(M_PC,answer,S_ANSW,0,0);
		s_byte_nums=4;
		TR_noans();
	}

	s_p=1;
	while(decrease==0)
	{
/*
		if(need_para==1)
		{
			temp_c++;
			sbuffer1[0]=M_PC;
			sbuffer1[1]=para_pc;
			sbuffer1[2]=FINISH/256;
			sbuffer1[3]=FINISH%256;
			sbuffer1[4]=CURRENT/256;
			sbuffer1[5]=CURRENT%256;
			sbuffer1[6]=VOLTAGE/256;
			sbuffer1[7]=VOLTAGE%256;
			sbuffer1[8]=err;
			sbuffer1[9]=0;
			s_byte_nums=10;
			TR_noans();
			need_para=0;
		}
*/
		if(urgent_stop==1)
		{
			if(pc_stop==0)
			{
				ini_sbuf(M_PC,command,com_urgent_stop,0,0);
				s_byte_nums=4;
				TR_ans();
//				answer_judge();
			}
			if(pc_stop==1)
			{
				ini_sbuf(M_PC,answer,S_ANSW,0,0);
				s_byte_nums=4;
				TR_noans();
				stop=0;
				while(err_ok==0);
			}
			goto BEGIN;
		}
	}
	s_p=0;
/*
	if(rc_forbided==1)
	{
		ini_sbuf(M_PC,answer,S_ANSW,0,0);
		s_byte_nums=4;
		TR_noans();
	}
*/
	while(decrease_ok==0)
	{
/*
		if(need_para==1)
		{
			sbuffer[0]=M_PC;
			sbuffer[1]=parameter1;
			sbuffer[2]=FINISH/256;
			sbuffer[3]=FINISH%256;
			sbuffer[4]=0;
			s_byte_nums=5;
			TR_noans();
			need_para=0;
		}
*/
		if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
	}
/*
	if(pp.b==ON)
	{
		while(return_ok==0)
		{
			if(need_para==1)
			{
				sbuffer[0]=M_PC;
				sbuffer[1]=parameter1;
				sbuffer[2]=FINISH/256;
				sbuffer[3]=FINISH%256;
				sbuffer[4]=0;
				s_byte_nums=5;
				TR_noans();
				need_para=0;
			}
			if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
		}
	}
*/
	goto BEGIN;
}

⌨️ 快捷键说明

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