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

📄 init.h

📁 这是我大学4年来做过的竞赛以及老师的科研项目所积累下来的c51源代码
💻 H
字号:
#define timer0_13bit	   		TMOD&=0xf0;
#define timer0_16bit	  		TMOD&=0xf0;//TMOD|=0x01;               
#define timer0_auto_reload		TMOD&=0xf0;//TMOD|=0x02;
#define timer1_13bit	   		TMOD&=0x0f;
#define timer1_16bit	    	TMOD&=0x0f;//TMOD|=0x10;
#define timer1_auto_reload		TMOD&=0x0f;//TMOD|=0x20
#define timer2_auto_reload		CP_RL=0;
#define timer2_capture	     	CP_RL=1;

#define timer2_extern_enable		EXEN2=1;
#define timer2_extern_disable	EXEN2=0;

#define timer0_stop			TR0=0
#define timer1_stop			TR1=0
#define timer2_stop			TR2=0;

#define timer0_start			TR0=1
#define timer1_start			TR1=1
#define timer2_start			TR2=1;

#define	enable()			    EA=1
#define	disable()			    EA=0

#define	int_timer0()			TF0=1
#define	int_timer1()			TF1=1
#define	int_timer2()			TF2=1
#define int1_priority_high   		PX1=1
#define int1_priority_low    		PX1=0

#define int0_priority_high   		PX0=1
#define int0_priority_low    		PX0=0

#define serial_priority_high  		PS=1
#define serial_priority_low  		    PS=0

#define serial1_priority_high 		PS1=1
#define serial1_priority_low 		    PS1=0

#define timer0_priority_high		    PT0=1
#define timer0_priority_low		    PT0=0

#define timer2_priority_high		    PT2=1
#define timer2_priority_low  		PT2=0

#define int0_falling_edge      		IT0=1
#define int1_falling_edge		    IT1=1

#define int0_int_enable	      		EX0=1
#define int1_int_enable	       		EX1=1
#define timer0_int_enable  		    ET0=1
#define timer1_int_enable		    ET1=1
#define timer2_int_enable		    ET2=1
#define serial_int_enable		    ES=1
#define serial1_int_enable     		ES1=1

#define int0_int_disable		        EX0=0
#define int1_int_disable		        EX1=0
#define timer0_int_disable		    ET0=0
#define timer1_int_disable     		ET1=0
#define timer2_int_disable     		ET2=0
#define serial_int_disable     		ES=0
#define serial1_int_disable    		ES1=0

//定义波特率
#define serial_baud_double		PCON=PCON|0x80; 
#define serial_baud_1200      	TMOD&=0x0f;TMOD|=0x20;TH1=0xe8;TR1=1;
#define serial_baud_2400    	TMOD&=0x0f;TMOD|=0x20;TH1=0xf4;TR1=1;
#define serial_baud_4800  		TMOD&=0x0f;TMOD|=0x20;TH1=0xfa;TR1=1;
#define serial_baud_9600  		TMOD&=0x0f;TMOD|=0x20;TH1=0xfd;TR1=1;
#define serial_baud_19200    		
#define TMOD&=0x0f;
#define TMOD|=0x20;
#define TH1=0xfd;
#define TR1=1;
#define PCON=PCON|0x80;

#define serial0_baud_1200		T2CON=0x34;RCAP2H=0xfe;RCAP2L=0xe0
#define serial0_baud_2400		T2CON=0x34;RCAP2H=0xff;RCAP2L=0x70
#define serial0_baud_4800		T2CON=0x34;RCAP2H=0xff;RCAP2L=0xb8
#define serial0_baud_9600		T2CON=0x34;RCAP2H=0xff;RCAP2L=0xdc
#define serial0_baud_19200    	T2CON=0x34;RCAP2H=0xff;RCAP2L=0xee

#define serial1_baud_1200		TMOD&=0x0f;TMOD|=0x20;TH1=0xe8;TR1=1
#define serial1_baud_2400		TMOD&=0x0f;TMOD|=0x20;TH1=0xf4;TR1=1
#define serial1_baud_4800		TMOD&=0x0f;TMOD|=0x20;TH1=0xfa;TR1=1
#define serial1_baud_9600		TMOD&=0x0f;TMOD|=0x20;TH1=0xfd;TR1=1
#define serial1_baud_19200		
TMOD&=0x0f;
TMOD|=0x20;
TH1=0xfd;
TR1=1;
WDCON=WDCON|0x80

#define serial_uart8			    SM0=0;SM1=1;SM2=0
#define serial0_uart8			SM0=0;SM1=1;SM2=0
#define serial1_uart8			SM0_1=0;SM1_1=1;SM2_1=0
#define serial_uart9			    SM0=1;SM1=1;TR1=1

#define	serial_receive_enable		REN=1
#define serial0_receive_enable		REN=1
#define serial1_receive_enable		REN_1=1

#define timer2_speed_3			    CKCON|=0x20
#define timer1_speed_3	       		CKCON|=0x10
#define timer0_speed_3			    CKCON|=0x08

#define use_inter_SRAM			PMR|=0x01
#define	use_extern_PORT			PMR&=(0x01^0xff)


#define movx_ins_9			   CKCON|=0x03;



void	IntTH0(void)	interrupt 3
{

#if	BAUD_RATE==2400
	RELOAD(TH0,0x80);
#endif
	if(tSmpCnt-- == 0)
	{       
		tSmpCnt=2;
		if(tTI) return;
		switch(TxdCnt++)
		{
		case	0:
			tTXD=0;
			break;
		case	9:
			tTXD=1;
			tTI=1;
			TxdCnt=0;
			break;
		default:
			tTXD=tSBUF&0x01;
			tSBUF>>=1;
			break;
		}
	}
}

void	RxdInt0(void)   interrupt 0
{
#if	BAUD_RATE==2400
	TL0=0xef;
#else
	TL0=0xaf;
#endif
	TF0=0;
	rSmpCnt=1;
}

void	IntTL0(void)	interrupt 1
{
#if	BAUD_RATE==2400
	RELOAD(TL0,1);
#endif
	if(rSmpCnt-- == 0)
	{
		rSmpCnt=2;
		switch(RxdCnt++)
	      	{
		case	0:
			if(rRXD==1) RxdCnt=0;
			break;
		default:
			if(RxdCnt>9){ RxdCnt=0;return;}
			rSBUF0>>=1;
			rSBUF0|=rRXD?0x80:0;
			break;
		case	9:
			RxdCnt=0;
			if(rRXD==0) return;
			rSBUF=rSBUF0;
			rRI=1;
		}
	}
}

⌨️ 快捷键说明

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