【51单片机】如何设置中断函数(场景:在定时器工作完跳转到中断程序时,怎么识别我们的中断程序在哪里呢?)

前言

大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁

  • 本章是【利用定时器和中断实现一个简单项目】中的一部分,感兴趣的老铁可以跳转传送门查看
  • 传送门

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

六.设置中断函数

  • 引入:在定时器工作完跳转到中断程序时,怎么识别我们的中断程序在哪里呢?
    在这里插入图片描述

1.中断号

  • 在函数后加上关键字如图所示,即可标记
    在这里插入图片描述

2.中断函数设置演示

  • 注意看void Timer0_Routine() interrupt 1
#include <REGX52.H>
#include "Timer0.h"
#include "Key.h"
#include <INTRINS.H>

unsigned char KeyNum,LEDMode;

void main()
{
   
	P2=0xFE;
	Timer0Init();
	while(1)
	{
   
		KeyNum=Key();		//获取独立按键键码
		if(KeyNum)			//如果按键按下
		{
   
			if(KeyNum==1)	//如果K1按键按下
			{
   
				LEDMode++;	//模式切换
				if(LEDMode>=2)LEDMode=0;
			}
		}
	}
}

void Timer0_Routine() interrupt 1   //中断函数
{
   
	static unsigned int T0Count;
	TL0 = 0x18;		//设置定时初值
	TH0 = 0xFC;		//设置定时初值
	T0Count++;		//T0Count计次,对中断频率进行分频
	if(T0Count>=500)//分频500次,500ms
	{
   
		T0Count=0;
		if(LEDMode==0)			//模式判断
			P2=_crol_(P2,1);	//LED输出
		if(LEDMode==1)
			P2=_cror_(P2,1);
	}
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 08:36:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 08:36:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 08:36:02       82 阅读
  4. Python语言-面向对象

    2024-02-19 08:36:02       91 阅读

热门阅读

  1. C#面:列举ASP.NET页面之间传递值的几种方式

    2024-02-19 08:36:02       54 阅读
  2. C/C++输出输出相关问题

    2024-02-19 08:36:02       56 阅读
  3. kubeasz部署k8s集群

    2024-02-19 08:36:02       54 阅读
  4. 20240217-您能到达的最远建筑物

    2024-02-19 08:36:02       42 阅读
  5. C++——数据类型笔记

    2024-02-19 08:36:02       45 阅读
  6. 常见的Web前端开发框架推荐

    2024-02-19 08:36:02       52 阅读
  7. 摆(行列式、杜教筛)

    2024-02-19 08:36:02       45 阅读
  8. Kubernetes基础(十八)-k8s存储对象Persistent Volume

    2024-02-19 08:36:02       39 阅读
  9. Eureka和Nacos

    2024-02-19 08:36:02       45 阅读