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

📄 interrupt.h

📁 PIC16F887底层驱动(C语言)
💻 H
字号:
/*
****************************************************************************************************
中断函数
****************************************************************************************************
*/
/*
****************************************************************************************************
日志:
		2008-06-30
		创建该文件		
****************************************************************************************************
*/
/*
****************************************************************************************************
函数说明:
		Short_Delay:很短延时,为几个机器周期
		
****************************************************************************************************
*/
void UART_INT(void);				//串口中断处理函数
void SPI_INT(void);					//SPI通讯中断处理函数
/*void PORTB_INT(void);				//PORB端口中断处理函数
void TIMER0_INT(void);				//定时器0中断处理函数
void TIMER1_INT(void);				//定时器1中断处理函数
void TIMER2_INT(void);				//定时器2中断处理函数
//void COMPARE1_INT(void);			//比较器1中断处理函数
//void COMPARE2_INT(void);			//比较器2中断处理函数	
void ADC_INT(void);					//AD转换中断处理函数
void CCP1_INT(void);				//捕获中断1处理函数
void CCP2_INT(void);*/				//捕获中断2处理函数

void UART_INT(void)				//串口中断处理函数
{
	static uint8 Temp=0;
	RCIF=0;
	Temp=RCREG;
	(*Uart_Int)();
}

void SPI_INT(void)				//SPI通讯中断处理函数
{
	uint8 Temp;
	SSPIF=0;
	Temp=SSPBUF;
	
}

/*void PORTB_INT(void)				//PORB端口中断处理函数
{
		
}

void TIMER0_INT(void)				//定时器0中断处理函数
{
	
}

void TIMER1_INT(void)				//定时器1中断处理函数
{
	
}

void TIMER2_INT(void)				//定时器2中断处理函数
{
	
}
//void COMPARE1_INT(void);			//比较器1中断处理函数
//void COMPARE2_INT(void);			//比较器2中断处理函数	

void ADC_INT(void)					//AD转换中断处理函数
{
	
}

void CCP1_INT(void)				//捕获中断1处理函数
{
	
}

void CCP2_INT(void)				//捕获中断2处理函数
{
	
}
*/
void interrupt ISR(void)
{
	Close_Interrupt();				//关中断

	if(RCIF==1)						//串口中断产生
	{
		UART_INT();					//串口中断处理函数
	}

	else if(SSPIF==1)					//SPI通讯中断产生
	{
		SPI_INT();					//SPI通讯中断处理函数
	}

	/*else if(RBIF==1)						//PORB端口中断标志位
	{
		PORTB_INT();				//PORB端口中断处理函数
	}

	else if(T0IF==1)				//定时器0产生中断
	{
		TIMER0_INT();				//定时器0中断处理函数
	}
	
	else if(TMR1IF==1)						//定时器1产生中断
	{
		TIMER1_INT();				//定时器1中断处理函数
	}

	else if(TMR2IF==1)					//定时器2产生中断
	{
		TIMER2_INT();				//定时器2中断处理函数
	}


	else if(CxIF==1)						//比较器1产生中断
	{
		COMPARE1_INT();				//比较器1中断处理函数
	}

	else if(C2IF==1)						//比较器2产生中断
	{
		COMPARE2_INT();				//比较器2中断处理函数
	}

	else if(ADIF==1)						//AD转换中断产生
	{
		ADC_INT();					//AD转换中断处理函数
	}

	else if(CCP1IF==1)					//捕获中断1产生
	{
		CCP1_INT();					//捕获中断1处理函数
	}

	else if(CCP2IF==1)					//捕获中断2产生
	{
		CCP2_INT();					//捕获中断2处理函数
	}*/

	else
	{
		;
	}

	Open_Interrupt();				//开中断
}

⌨️ 快捷键说明

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