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

📄 interrupt.c

📁 KEILC51的始终程序,显示年月日
💻 C
字号:
#include "Global.H"
#include "ClockTask.H"

//INT0_InterruptService						  
//=====================
void INT0_InterruptService(void) interrupt 0 using 1
{
	//请求切换任务
	//============
	TaskChangeFlag = 1;
}

//INT1_InterruptService						  
//=====================
void INT1_InterruptService(void) interrupt 2 using 1
{
}

//Timer0_InterruptService
//=======================
void Timer0_InterruptService(void) interrupt 1 using 1
{
	TH0 = 0x00;//重置定时器0计数初值
	TL0 = 0x00;
}

//Timer1_InterruptService
//=======================
void Timer1_InterruptService(void) interrupt 3 using 1
{
}


UNINT Counter_1s = 0;//产生1秒信号的计数器
UNINT Counter_Flash = 0;//控制闪烁计数器
//Timer2_InterruptService
//=======================
void Timer2_InterruptService(void) interrupt 5 using 3
{
	if(TF2)
	{
		//秒信号控制
		//==========
		Counter_1s++;
		if(Counter_1s>=400)
		{//1秒时间到
			Counter_1s = 0;

			SecondFlag = 1;//设置时钟秒信号标志
		}

		//字符闪烁频率控制
		//================
		Counter_Flash++;
		if(Counter_Flash == 200)
		{
			FlashControl = 2;//让闪烁字符消隐
		}
		else if(Counter_Flash>300)
		{
			FlashControl = 1;//让闪烁字符显示
			Counter_Flash = 0;
		}

		//显示键盘控制
		//============
		DisplayKeyboardControl();

		TF2 = 0;//清TF2中断标志
	}//End of TF2

	if(EXF2)
	{//处理外部中断INT2
		EXF2 = 0;//清EXF2中断标志
	}
}

//SerialPort_InterruptService
//===========================
void SerialPort_InterruptService(void) interrupt 4 using 2
{
	if(RI)
	{//处理接收缓冲区满中断
		RI = 0;//清RI中断标志
	}

	if(TI)
	{//处理发送缓冲区空中断
		TI = 0;//清TI中断标志
	}
}

⌨️ 快捷键说明

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