📄 interrupt.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 + -