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

📄 public.h

📁 医疗设备中激光手术台程序源代码
💻 H
字号:
#ifndef _PUBLIC_H_
#define _PUBLIC_H_

typedef unsigned long DWord;
typedef unsigned char Byte;
typedef unsigned int  Word;

persistent union {
unsigned int int_val;
unsigned char byte_val[2];
}uint;


#define HIGH	1
#define LOW	0
#define TRUE	1
#define FALSE	0
#define ON	1
#define OFF	0

#define EN_TIMER1()		TMR1IE = 1
#define DIS_TIMER1()	TMR1IE = 0

#define nop() 		asm("nop")

persistent union 
{
	struct 
	{
		unsigned pp1:1;//d0
		unsigned pp2:1;//d1
		unsigned pp3:1;//d2
		unsigned pp4:1;//rb3
		unsigned pp5:1;//rb4
		unsigned pp6:1;//rb5
		unsigned pp7:1;
		unsigned pp8:1;
	} PdBK1;
	unsigned char PdBK2;
}PdBK3;
#define BUZZ	PdBK3.PdBK1.pp1//RD0
#define HVPOWON	PdBK3.PdBK1.pp2//RD1
#define AIRPUMP	PdBK3.PdBK1.pp3//RD2
#define EMIT	PdBK3.PdBK1.pp4//RD3
#define OPSHUT	PdBK3.PdBK1.pp5//RD4
#define SPON	PdBK3.PdBK1.pp6//RD5
#define AIM 	PdBK3.PdBK1.pp7//RD6
//#define ENCK	PdBK3.PdBK1.pp8//RD7
#define PdBK	PdBK3.PdBK2

#define p_water_level		RB0
#define p_temp			RB1
#define p_flow			RB2
#define p_foot			RB3
#define p_shut_k		RB4
#define p_remote		RB5
#define p_hvfail		RB6
#define p_mode			RC0
#define p_runi			RC1
#define p_power			RD1

#define p_led5			RD1	// POWERON
#define p_led7			RD3	// EMIT	只有pled7受控
#define p_led8			RD2	// AIRP		


persistent  union 
{
struct {
unsigned CkWl:1;//d0
unsigned CkTemp:1;//d1
unsigned CkFlow:1;//d2
unsigned CkFoot:1;//rb3
unsigned CkShutk:1;//rb4
unsigned CkRemote:1;//rb5
unsigned CkHvfail:1;
unsigned CkLeakage:1;
	}Astatus; //11110000
unsigned char Cstatus;
}Stin;

#define WATERLEVEL	Stin.Astatus.CkWl
#define WATERTEMP	Stin.Astatus.CkTemp
#define FLOW		Stin.Astatus.CkFlow
#define FOOT		Stin.Astatus.CkFoot
#define SHUT_K		Stin.Astatus.CkShutk
#define REMOTE		Stin.Astatus.CkRemote
#define HVFAIL		Stin.Astatus.CkHvfail
#define LEAKAGE		Stin.Astatus.CkLeakage

#define WLCHG	Stxor&1
#define WTCHG	Stxor&2
#define FLCHG	Stxor&4
#define FTCHG	Stxor&8
#define SKCHG	Stxor&0x10
#define RMCHG	Stxor&0x20
#define HFCHG	Stxor&0x40
#define LKCHG	Stxor&0x80



#define DAHERR 1
#define	DALERR 2
#define NO_POWER_HVPS 3
#define ERR_FOOT 4  //FOOT
#define ERR_WL 5
#define ERR_HVFAILL 6
#define ERR_LEAKAGE 7 //LASER TUBE 
#define ERR_FLOWH 8
#define ERR_FLOWL 9
#define ERR_HVFAILH 0x10
#define ERR_TEMP 0x11
#define ERR_REMOTE 0x12
#define ERR_DRIVE 0x13
#define ERR_FDSJ_LONG 0x14
#define ERR_SUPERI 0x15
#define ERR_POWERMETER 0x16
#define ERR_SHUT_ON 0x17
#define ERR_SHUT_OFF 0x18
#define ERR_NO_POWER 0x19
#define ERR_IAD_OFFSET 0x20
#define ERR_PAD_OFFSET 0x21
#define ERR_HAVEI_NOLASER 0x22
#define ERR_SHUIBONG	0x24
#define ERR_SELF_CHECK 	0x25
#define ERR_MAX_FREQ	0x26	// 设定频率超过最大频率500Hz
#define ERR_MIN_FREQ	0x27	// 频率低于最低频率20Hz
#define ERR_PULSE_OVER_CIRCLE 0x28	//	高电平时间超过周期出错


#define MAX_CNT			16
#define MAX_FREQ		500
#define MIN_FREQ		20
#define MIN_FREQ_CNT	50000	// 20hz
#define MIN_PULSE_TIME	10		// 10us

#define uart_send_start()	TXEN = 1
#define uart_send_stop()	TXEN = 0
#define uart_rec_start()	CREN = 1
#define uart_rec_stop()		CREN = 0

#define buzz_on()		RD0 = 1
#define buzz_off()		RD0 = 0
#define power_on()		p_power = 0
#define power_off()		p_power = 1

#define SEND_CNT		1

//命令宏定义
#define CHANGE_CHANEL			0
#define PWM_ADD_NUM				1
#define PWM_AUTO_ADD_ONE		2
#define CLR_PWM_AUTO_ADD_ONE	3
#define PWM_SET_NUM				4
#define PWM_SET					5	// 脉冲模式设置,共一下六种
		#define MODE0		0		// 	第0种
		#define MODE1		1	
		#define MODE2		2	
		#define MODE3		3	
		#define MODE4		4	
		#define MODE5		5	
		#define TMR2_SET	6
		
			#define FREQ_SET		0
			#define PULSE_TIME_SET	1
			#define T2CON_SET		2
			#define PR2_SET			3
			#define PR2_AUTO_ADD_ONE	4
			#define PULSE_AUTO_ADD_ONE	5
#define RUNI_SET				6
		#define RUNI_PUSLE_SET		0
		#define RUNI_FREQ_SET		1
		
static volatile unsigned int TMR1T	@ 0x0E;
static volatile unsigned int CCPR2T	@ 0x1B;


persistent static volatile Byte bank1
	rec_data[MAX_CNT],rec_cnt,send_cnt,send_data_len,trans_data[MAX_CNT],err_code;

persistent static volatile Word bank1
	pwm_data;
	
persistent static volatile Word  
	ccpr2_pulse_time,ccpr2_freq_cnt,ccpr2_freq;
	
persistent static  volatile bit 
	b_rec_ok,b_pwm_auto_add,bOptic,b_end;

//bank1 Byte rec_data[MAX_CNT];




#define cmd_type	rec_data[1]



#endif 


⌨️ 快捷键说明

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