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

📄 interrupt.c

📁 C51学习书
💻 C
字号:
/*************************************************/

/**************中断服务***********************/

/*************2003年1月24日*********************/

/************WROTE BY WANGSW********************/

/*
主要为硬件中断服务和中断优先级控制

中断服务程序一般为内部函数,但现在的系统也支持外部函数,
建议为内部函数.
中断默认优先级:
/INT0,	T0,	  /INT1,	  T1,		UART,	T2


*/
#include "reg52x2.h"  
#include "define.h"

#include "interrupt.h"





/**********************************/
/*
static void Int0(void) interrupt 0
{
EX0=0;
IE0=0;

EX0=1;
}
*/


/******************************************************************************************
*函数名:		interrupt_server_init
*参数:			bInt			外部中断源标识
				bEnable			外部中断源允许标识
				bEdgeEnable		外部中断源电平/负边沿触发选择标识
*返回值:		无
*描述:			外部中断服务初始化
*编写:			王绍伟
*版本信息:		V1.0			2003年8月15日
******************************************************************************************/
extern void interrupt_init(bool bInt, bool bEnable, bool bEdgeEnable)
{
	if(!bInt)
	{
		IE0 = 0;		/*中断标记位*/
		IT0 = bEdgeEnable;
		EX0 = bEnable;
	}
	else
	{
		IE1 = 0;		/*中断标记位*/
		IT1 = bEdgeEnable;
		EX1 = bEnable;
	}
}


/******************************************************************************************
*函数名:		interrupt_server_priority
*参数:			无
*返回值:		无
*描述:			中断服务优先级设定
*编写:			王绍伟
*版本信息:		V1.0			2003年8月15日
******************************************************************************************/
extern void interrupt_priority(void)
{
//UART
	PS = 1;
	SETBIT(IPH, 4);		/*PSH=1*/

//TIMER2
	PT2 = 0;
	SETBIT(IPH, 5);		/*PT2H=1*/
	
//TIMER1
	PT1 = 0;
	RESETBIT(IPH, 3);	/*PT1H=0*/

//INT1
	PX1 = 0;
	RESETBIT(IPH, 2);	/*PX1H=0*/

//TIMER0
	PT0 = 0;
	RESETBIT(IPH, 1);	/*PT0H=0*/
	
//INT0
	PX0 = 0;
	RESETBIT(IPH, 0);	/*PX0H=0*/
}


⌨️ 快捷键说明

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