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

📄 interrupt.c

📁 增强型51单片机程序模板
💻 C
字号:
/*********************************************************************************************
文 件 名:
创 建 人:
创建日期:
组成部分:
描    述:
修 改 人:
修改日期:
修改内容:
*********************************************************************************************/

#include "user.h"

#ifdef EINT0
/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
void Eint0_Ini(bit method)
{
	IT0=method;											//设置外部中断方式1为下降沿触发,0为低电平触发
	EX0=1;												//使能外部中断
}
#endif

/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
Eint0() interrupt 0
{
													//添加相应中断操作
}

#ifdef TIME0
/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
void Time0_Ini(void)
{
	TMOD|=0x01;											//定时工作在方式1
	TL0=0x00;											//定时器0计数储存器0低位
	TH0=0x00;											//定时器0计数储存器0高位
	ET0=1;												//全能定时器0中断功能
	TR0=1;												//启动定时器
}
#endif

/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
Timer0() interrupt 1
{
	TL0=0x00;											//定时器重装载
	TH0=0x00;
													//添加任务
}


#ifdef EINT1
/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/

void Eint1_Ini(bit method)
{
	IT1=method;											//设置外部中断方式1为下降沿触发,0为低电平触发
	EX1=1;												//使能外部中断
}
#endif

/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
Eint1() interrupt 2
{
													//添加相应中断操作
}

#ifdef TIME1
/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
void Time1_Ini(void)
{
	TMOD|=0x10;											//定时器1工作在方式1
	TL1=0x00;											//定时器1计数储存器0低位
	TH1=0x4C;											//定时器1计数储存器0高位
	ET1=1;												//全能定时器0中断功能
	TR1=1;												//启动定时器
}
#endif

/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
Timer1() interrupt 3
{
	TL1=0x00;											//定时器重装载
	TH1=0x00;
													//添加相应中断操作
}

#ifdef COM
/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
void Com_Ini(void)
{
	TCLK=1;
	RCLK=1;
	 
	RCAP2L=0xEE;										//方式1和方式3的波特率=fosc/(32-(65535-(RCAP2H,RCAP2L))
	RCAP2H=0xFF; 										
	
//******************串口设置**************************************************//
	SCON=0x50; 											//SM0  SM1  SM2  REN  TB8 RB8  TI RI
	PCON=0x00; 											//TMOD=0;
	
	TR2=1;
	ES=1;
}
#endif

/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
Com(void) interrupt 4
{
	Rec=SBUF;											//收数据至缓冲变量中
	RI=0;												//清除中断标志
}

#ifdef WD
/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
void WD_Ini(void)
{
WDTD=128;								//WDTD
WDOUT=0;							//RST管脚上输出复位信号
WDRE=1;								//使能看门狗
SWDT=1;								//运行看门狗
}

/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
void FeedDog(void)
{
WDT=1;//复位看门狗
}
#endif


/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
void Chip_Ini(void)
{
	EA=0;												//关闭全局中断
							
	#ifdef EINT0
	Eint0_Ini(1);										//初始化外部中断0为边沿触发
	#endif
	
	#ifdef TIME0
	Time0_Ini();
	#endif
	
	#ifdef EINT1
	Eint1_Ini(1);										//初始化外部中断1为边沿触发
	#endif
	
	#ifdef TIME1
	Time1_Ini();
	#endif
	
	#ifdef COM
	Com_Ini();
	#endif
	
	#ifdef SST
		#ifdef WD
		WD_Ini();
		#endif

		#ifdef HardWare_SPI
		HardWareSPI_Ini();
		#endif

	#endif

	EA=1;												//开全局中断
}

⌨️ 快捷键说明

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