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

📄 main1.h

📁 基于485的51单片机多机通讯程序
💻 H
字号:
/*===============================*/
/* Predefined SFR Byte Addresses */
/*===============================*/

/*  BYTE Registers  */
sfr P0    = 0x80;
sfr P1    = 0x90;
sfr P2    = 0xA0;
sfr P3    = 0xB0;
sfr PSW   = 0xD0;
sfr ACC   = 0xE0;
sfr B     = 0xF0;
sfr SP    = 0x81;
sfr DPL   = 0x82;
sfr DPH   = 0x83;
sfr PCON  = 0x87;
sfr TCON  = 0x88;
sfr TMOD  = 0x89;
sfr TL0   = 0x8A;
sfr TL1   = 0x8B;
sfr TH0   = 0x8C;
sfr TH1   = 0x8D;
sfr IE    = 0xA8;
sfr IP    = 0xB8;
sfr SCON  = 0x98;
sfr SBUF  = 0x99;

/*  8052 Extensions  */
sfr T2CON  = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2    = 0xCC;
sfr TH2    = 0xCD;


/*  BIT Registers  */
/*  PSW  */
sbit CY    = PSW^7;
sbit AC    = PSW^6;
sbit F0    = PSW^5;
sbit RS1   = PSW^4;
sbit RS0   = PSW^3;
sbit OV    = PSW^2;
sbit P     = PSW^0;

/*  TCON  */
sbit TF1   = TCON^7;
sbit TR1   = TCON^6;
sbit TF0   = TCON^5;
sbit TR0   = TCON^4;
sbit IE1   = TCON^3;
sbit IT1   = TCON^2;
sbit IE0   = TCON^1;
sbit IT0   = TCON^0;

/*  IE  */
sbit EA    = IE^7;
sbit ET2   = IE^5;
sbit ES    = IE^4;
sbit ET1   = IE^3;
sbit EX1   = IE^2;
sbit ET0   = IE^1;
sbit EX0   = IE^0;

/*  IP  */
sbit PT2   = IP^5;
sbit PS    = IP^4;
sbit PT1   = IP^3;
sbit PX1   = IP^2;
sbit PT0   = IP^1;
sbit PX0   = IP^0;

/*  P3  */
sbit RD    = P3^7;
sbit WR    = P3^6;
sbit T1    = P3^5;
sbit T0    = P3^4;
sbit INT1  = P3^3;
sbit INT0  = P3^2;
sbit TXD   = P3^1;
sbit RXD   = P3^0;

/*  SCON  */
sbit SM0   = SCON^7;
sbit SM1   = SCON^6;
sbit SM2   = SCON^5;
sbit REN   = SCON^4;
sbit TB8   = SCON^3;
sbit RB8   = SCON^2;
sbit TI    = SCON^1;
sbit RI    = SCON^0;

/*  P1  */
sbit T2EX  = P1^1;
sbit T2    = P1^0;

sbit TENA  = P1^5;	//422发送使能

/*  T2CON  */
sbit TF2    = T2CON^7;
sbit EXF2   = T2CON^6;
sbit RCLK   = T2CON^5;
sbit TCLK   = T2CON^4;
sbit EXEN2  = T2CON^3;
sbit TR2    = T2CON^2;
sbit C_T2   = T2CON^1;
sbit CP_RL2 = T2CON^0;

#define	PN	1	//程序号         00-99
#define T01	2	//预送气1时间	0.1-30.0S
#define T02	3	//滞后送气1时间	0.1-30.0S
#define GAS2	4	//气体2开关	ON/OFF
#define T03	5	//预送气2时间	0.1-30.0S
#define T04	6	//滞后送气2时间	0.1-30.0S

#define K1	7	//直流/脉冲	DC/PDC
#define Ignit	8	//引弧方式	HF/TOUCH
#define I11	9	//引弧电流	3.0-50.0A
#define T12	10	//预熔时间	0.1-60.0S
#define I12	11	//预熔电流	5.0-400.0A
#define T13	12	//电流上升时间	0.1-5000.0S/D	?????
#define T13_SD	13
#define T14	14	//峰值时间	0.01-1.00S
#define I14	15	//峰值电流	5.0-400.0A
#define T15	16	//基值时间	0.01-1.00S
#define I15	17	//基值电流	5.0-400.0A
#define DI	18	//电流增量	0.1-10.0A
#define AHF	19	//叠加高频	ON/OFF
#define I16	20	//高频电流	5.0-100.0A
#define F	21	//高频频率	1-1000Hz
#define T16	22	//高频时间	25%-75%
#define N11	23	//开始衰减位置	0.1-5000.0S/D
#define N11_SD	24		
#define T17	25	//衰减时间	1.0-60.0S
#define I17	26	//关断电流	5.0-400.0A

#define K2	27	//焊接方向
#define RN	28	//机头代码	1000-9999
#define D	29	//工件直径	10.0-999.9mm
#define K21	30	//脉动旋转开关	ON/OFF
#define V21_P	31	//旋转速度峰值	25-1250mm/min
#define V21_B	32	//旋转速度基值	25-1250mm/min
#define T21	33	//速度变化时间	0.1-5000.0S/D
#define T21_SD	34
#define DV21	35	//速度增量	1-100mm/min
#define B	36	//焊头自动复位	ON/OFF

#define K3	37	//送丝开关	ON/OFF
#define K31	38	//脉动送丝开关	ON/OFF
#define WN	39	//送丝机型号	1000-9999
#define T31	40	//送丝开始时间/位置0.1-5000.0S/D
#define	T31_SD	41
#define T32	42	//速度变化时间	0.1-5000.0S/D
#define T32_SD	43
#define V31_P	44	//送丝速度峰值	50-2500mm/min
#define V31_B	45	//送丝速度基值	50-2500mm/min
#define DV31	46	//送丝速度增量	1-500mm/min
#define T33	47	//送丝停止位置	0.1-5000.0S/D
#define T33_SD	48
#define V32	49	//回抽丝速度	50-2500mm/min	
#define T34	50	//回抽丝时间	0.1-10.0S
    
#define K4	51	//自动横摆开关	ON/OFF
#define Syn_type 52	//边缘锁定方式	L/R/LR/OFF
#define T41	53	//自动横摆开始时间/位置0.1-5000.0S/D	*****
#define	T41_SD	54
#define T42_L	55	//左边缘停留时间	0.1-5.0S
#define T42_R	56	//右边缘停留时间	0.1-5.0S
#define V41	57	//横摆速度	20-2000mm/min
#define A41	58	//横摆宽度	0.1-100.0mm
#define DC41	59	//横摆中心偏移量	0.1-1.0mm
#define DA41	60	//横摆宽度增量	0.1-1.0mm
#define T43	61	//跨越区间时摆宽变化时间0.1-5000.0S/D
#define T43_SD	62

#define K5	63	//自动弧长开关	ON/OFF
#define PGJ	64	//自动碰工件开关	ON/OFF
#define H51	65	//短路提升高度	0.1-10.0mm
#define T51	66	//自动弧长跟踪开始时间/位置0.1-5000.0S/D	*****
#define	T51_SD	67
#define T52	68	//自动弧长跟踪停止位置0.1-5000.0S/D
#define T52_SD	69
#define AVC_type 70	//自动弧长跟踪方式	P/B/P_B
#define U51_P	71	//弧长电压峰值	5.0-25.0V
#define U51_B	72	//弧长电压基值	5.0-25.0V
#define SENS	73	//灵敏度		1-10
#define DU51	74	//弧长电压增量	0.1-0.9V
#define H52	75	//焊接结束焊枪提升高度0.0-30.0mm

#define NUM_BB	76	//区间数

#define N_BB	77	//x[][0]
#define T13_BB	78	//x[][1]
#define T14_BB	79	//x[][2]
#define I14_BB	80	//x[][3]
#define T15_BB	81	//x[][4]
#define I15_BB	82	//x[][5]
#define AHF_BB	83	//x[][6]
#define I16_BB	84	//x[][7]
#define F_BB	85	//x[][8]
#define T16_BB	86	//x[][9]

#define D_BB	87	//x[][10]
#define K21_BB	88	//x[][11]
#define V21P_BB	89	//x[][12]
#define V21B_BB	90	//x[][13]
#define T21_BB	91	//x[][14]
#define K3_BB	92	//x[][15]
#define K31_BB	93	//x[][16]
#define T32_BB	94	//x[][17]
#define V31P_BB	95	//x[][18]
#define V31B_BB	96	//x[][19]

#define K4_BB	97	//x[][20]
#define T42L_BB	98	//x[][21]
#define T42R_BB	99	//x[][22]
#define V41_BB	100	//x[][23]
#define A41_BB	101	//x[][24]
#define T43_BB	102	//x[][25]
#define U51P_BB	103	//x[][26]
#define U51B_BB	104	//x[][27]
#define SENS_BB	105	//x[][28]
#define DU51_BB	106	//x[][29]	

/*****NAME*****/
#define M_main		0X10		//主模块
#define M_current	0X20		//电流模块
#define M_RW		0X30		//旋转/送丝模块
#define M_OSC		0X40		//横摆
#define M_AVC		0X50		//弧长模块
#define M_P 		0X60		//面板
#define M_RC		0X70		//线控器

#define M_ALL		0X80		//所有从板
#define M_current_RW	0X90		//电流模块和旋转/送丝模块
#define M_current_P	0XA0
#define M_RW_P		0XB0
#define M_OSC_P		0XC0
#define M_AVC_P		0XD0
#define M_P_RC		0XE0
#define M_PC		0XF0	//PC机
/*****NAME*****/


/*****数据类型*****/
#define parameter1	0x01		//显示弧压或焊接角度(5字节)
#define parameter2	0x02		//显示焊接电流、焊接电压(7字节)
#define edit_sec	0x03		//区间内参数(区间)
//#define infor_sec	0x04		//当前区间号
#define p_in_sec	0x05		//区间内参数(轴)
#define p_out_sec	0x06		//区间外参数(轴)
#define infor		0x07		//信息
#define command 	0X08		//命令
#define parameter 	0X09		//参数
#define err_infor 	0X0A		//出错信息
#define answer 		0X0B		//应答
#define program		0X0C		//程序号
#define para_pc		0x0D		//送给PC机的显示参数(度数、电流、电压、弧压)
//#define para_pc1	0x0E		//送给PC机的显示参数(度数、电流、电压)
#define call_result	0x0F		//点名结果
#define p_section	0x10		//面板进入区间
#define p_edit_finish	0x11		//面板编程结束
/*****数据类型*****/


/**********命令**********/
/***点动***/
#define com_rot_front	0X11	//正转
#define com_rot_reverse	0X12	//反转
#define com_wire_add	0x13	//丝加
#define com_wire_dec	0x14	//丝减
#define com_osc_l	0x15	//左摆/横摆中心左偏
#define com_osc_r	0x16	//右摆/横摆中心右偏
#define com_avc_up	0x17	//弧长控制 上
#define com_avc_down	0x18	//弧长控制 下
#define com_motor_stop	0x19	//停止点动

/***流程***/
#define com_calling	0x1A	//点名
#define com_sendP	0X1B	//传送参数
#define com_pfinish	0x1C	//参数传送完成
#define com_switch	0x1D
#define com_edit	0x1E	//编程
#define com_efinish	0x1F	//编程完成
#define com_copyEXP	0X21	//复制专家参数
#define com_judge	0x22	//判断当前机头、送丝机与上次使用情况是否相同
#define com_start	0x23	//焊接开始
#define com_pgj		0x24	//自动碰工件
#define com_open_gas1	0x25	//开gas1
#define com_open_gas2	0x26	//开gas2
#define com_ignit	0x27	//引弧过程
#define com_ignit_ok	0x28	//引弧成功
#define com_pre_melt_ok 0x29	//预熔结束
#define com_i_slope_ok  0x2A	//电流上升结束
#define com_wire	0x2B	//开始送丝
#define com_osc		0x2C	//开始横摆
#define com_avc		0x2D	//自动弧长
#define com_sector	0x2E	//进入区间
#define com_stopR	0X2F	//停止旋转
#define com_stopW	0x31	//停止送丝
#define com_stop_avc	0x32	//停止弧长控制
#define com_decrease	0x33	//衰减
#define com_decrease_ok 0x34	//衰减完成 
#define com_close_gas1	0x35	//关gas1
#define com_close_gas2	0x36	//关gas2
#define com_lift	0x37	//枪提升
#define com_ask_lift_ok 0x38	//询问焊枪提升是否结束
#define com_lift_ok	0x39	//枪提升完成
#define com_return	0x3A	//自动回位
#define com_return_ok	0x3B	//自动回位完成
#define com_goto_begin	0x3C	//焊接完成,程序重新初始化
#define com_urgent_stop	0x3D	//急停
#define com_rc_demand	0x3E	//向线控器要命令

/***过程调整***/
#define com_current_add	0x3F	//电流加
#define com_current_dec	0x41	//电流减
#define com_breadth_add	0x42	//摆宽加
#define com_breadth_dec	0x43	//摆宽减 
#define com_weld_simu	0x44	//焊接
#define com_wire_on_off	0X45	//送丝开

/***通信***/
#define com_need_para	0x46	//要求对方传送参数
#define com_resend	0x47	//重发送
#define com_demand	0x48	//查询
/**********命令**********/


/*****应答*****/
#define OK		0X49
#define FAIL		0X4A
#define complete	0x4B	//完成
/*****应答*****/


/*****信息*****/
#define IgnitFail	0x4C	//引弧失败
#define commuFail	0x4D	//通讯失败
#define systemErr	0x4E	//电源出错
#define overTemp	0x4F	//过温
#define lackWater	0x51	//缺水
#define lackGas1	0x52	//缺气1
#define lackGas2	0x53	//缺气2
/*****信息*****/

#define com_connect	0x54	//联机
#define com_connect_fail	0x55	//联机失败
#define com_forbid_p	0x56	//禁止面板
#define com_forbid_rc	0x57	//禁止线控器
#define com_close_water	0x58	//关水	
#define com_p_active	0x59	//激活面板
#define com_rc_active	0x5A	//激活线控器
#define com_start_again 0x5E	//再次启动
#define com_delt_switch 0x5F	//增量选择 0-峰值 1-峰基值 2-基值
#define com_receive_p	0x61	//接收参数
#define com_need_finish	0x64	//焊接度数

#define PDC	1
#define DC	0
#define HF	1
#define TOUCH	0
#define ON	1
#define OFF	0
#define L	1
#define R	2
#define LR	3
#define SP	0
#define SB	1
#define SPB	2
#define CW	0
#define CCW	1

typedef struct 
	{
	unsigned int pn,t01,t02,gas2,t03,t04,k1,ignit,i11,t12,i12,t13,t13_sd,t14,i14,
                     t15,i15,di,ahf,i16,f,t16,n11,n11_sd,t17,i17,
                             
		     k2,rn,d,k21,v21_p,v21_b,t21,t21_sd,dv21,b,
		     k3,k31,wn,t31,t31_sd,t32,t32_sd,v31_p,v31_b,dv31,t33,t33_sd,v32,t34,
			     
		     k4,syn_type,t41,t41_sd,t42_l,t42_r,v41,a41,dc41,da41,t43,t43_sd,
		     k5,pgj,h51,t51,t51_sd,t52,t52_sd,avc_type,u51_p,u51_b,sens,du51,h52,
		     
		     sec_num,x[10][30];
	}PROGRAM;
              
xdata PROGRAM pp  _at_ 0x0400;		//可变参数

⌨️ 快捷键说明

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