首页 > 其他分享 >CT107D竞赛板外部中断的基础应用

CT107D竞赛板外部中断的基础应用

时间:2024-01-12 22:12:02浏览次数:30  
标签:竞赛 中断 void Delay CT107D while 60000 寄存器

外部中断的含义

外部中断是单片机实时地处理外部事件的一种内部机制。
当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,
转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。

使用前将J5并到2,3脚,即S5按键接到P32/INT0,S4按键接到P33/INT1

使用方法

  1. 中断源
  2. 掌握特殊寄存器
  3. 中断模板

中断源

该板有5个中断源 中断优先级从0~4
中断号 中断源名称 编号
0 外部中断0 INT0
1 定时/计数器0 TF0
2 外部中断1INT1
3 定时/计数器1 TF1
4 串口中断 R1/T1

掌握特殊寄存器掌握特殊寄存器

image

image
使用方法寄存器使用方法(一般放在中断初始化函数)
使用中断0时,在IE寄存器要将EA(总开关)使能 还要将EX0使能
然后在TCON寄存器选择触发方式
若要调整优先级就需使用IP寄存器
image

中断模板中断模板

image
中断服务函数内要少放驱动程序否则会影响实时性

具体代码:

点击查看代码
#include<STC15F2K60S2.H>

sbit L1 =P0^0;
sbit L8 =P0^7;

void Delay(unsigned int t)
{
	while(t--);
	while(t--);
	while(t--);
}

void SelectHC573()
{
	P2 = (P2 & 0x1f) | 0x80;
}

void Working()
{
	SelectHC573();
	L1 = 0;
	Delay(60000);
	L1 = 1;
	Delay(60000);
}

//====================================
void Init_INT0()
{
	IT0 = 1;
	EX0 = 1;
	EA =1;
}

void ServiceINT0() interrupt 0
{
	L8 =0;
	Delay(60000);
	Delay(60000);
	Delay(60000);
	Delay(60000);
	Delay(60000);
	Delay(60000);
	L8 =1;
}
//====================================
void main()
{
	Init_INT0();
	while(1)
	{
		Working();
	}
}

减少中断函数的写法

点击查看代码
#include<STC15F2K60S2.H>

sbit L1 =P0^0;
sbit L8 =P0^7;

void Delay (unsigned int t)
{
while(t--);
while(t--);
while(t--);
}

void SelectHC573 ()
{
	P2 = (P2 & 0xaf) | 0x80;
}

void Working ()
{
	SelectHC573 ();
	L1 = 0;
	Delay(60000);
	L1 = 1;
	Delay(60000);
	
}
unsigned char hao = 0;
//============================
void Init_INT0 ()
{
	IT0 = 1;//外部中断触发方式选择
	EX0 = 1;//IE寄存器使能
	EA = 1;//总中断开关
}

void ServiceINT0 () interrupt 0
{
	hao =1;
}
void LED ()
{
	if(hao == 1)
	{
		L8 = 0;
		Delay(60000);
		Delay(60000);
		Delay(60000);
		Delay(60000);
		Delay(60000);
		Delay(60000);
		L8 = 1;
	}
	hao = 0;
}
//============================
void main ()
{
	Init_INT0 ();
	while(1)
	{
		Working ();
	  LED ();
	}
}

标签:竞赛,中断,void,Delay,CT107D,while,60000,寄存器
From: https://www.cnblogs.com/yueshengti/p/17955379

相关文章

  • 《算法竞赛》题解---三分
    三分法模板三分法#include<bits/stdc++.h>#defineeps1e-8//或者constdoubleeps=1e-8;--主要是doubleusingnamespacestd;intn;doublea[15],l,r;doublecheck(doublex){ doubleans=0; for(inti=n;i>=0;i--) ans=ans*x+a[i];//秦九韶公式 returnans;}......
  • 《算法竞赛》---三指针
    ----双指针(尺取法)1.找出指定和的整数对----p37(书页)哈希表#include<bits/stdc++.h>usingnamespacestd;inta[100010];intmain(){ios::sync_with_stdio(false);cin.tie();cout.tie();unordered_map<int,bool>q;intn,m;cin>>n>>m;fo......
  • 《算法竞赛》---二分
    整数二分经典模型1.最大值最小化(最大值尽量小)序列划分-----p48#include<bits/stdc++.h>usingnamespacestd;intn,k;//longlongsum;inta[1000000];boolcheck(intx){longlongres=0,cnt=0;res=a[1];for(inti=2;i<=n;i++){if(res+a[i]<......
  • 《算法竞赛》---搜索
    搜索二叉树搜索bfs搜索二叉树---p98#include<bits/stdc++.h>usingnamespacestd;constintN=1e5;intn;chara[100000];structnode{charvalue;intlson,rson;}tree[N];intidx=1;intnewnode(charval){tree[idx].value=val,tree[idx].lson=0,tre......
  • 51单片机中断系统编程
    一.外部中断1.编程思想中断准备:中断初始化函数打开中断开关,选择中断传输方式中断处理:为了便于观察,让我们知道单片机进入中断处理函数,在这里我们选择打开流水灯电路搭建:由于P3^3引脚不便直接接地,我们把P3^3和P3^7连接起来,用P3^7来控制P3^3的电平变化2.实践代码#include<reg52.h>#......
  • DOMException - play() 请求中断
    DOMException- play()请求中断bookmark_border  FrançoisBeaufortGitHub 您刚才在Chrome开发者工具JavaScript控制台中发现了这个意外的媒体错误吗?注意 :未捕获(承诺中)DOMException:play()请求因调用pause()而中断。或注意:未捕获(在承诺中)DOMExceptio......
  • 国内外有哪些数据分析相关的竞赛比赛网站?
    国内外有哪些数据分析相关的竞赛比赛网站?  我来答 分享 举报 3个回答#热议# 在购买新能源车时,要注意哪些?小种稻82023-08-04关注 在国内外,有许多数据分析相关的竞赛比赛网站。这些平台通常提供各种数据科学竞赛,邀请数据科学家、机器学习专家和数据......
  • 大模型训练中断,断点续传助力快速恢复
    深度学习在计算机视觉领域的地位日益显著,其中,YOLOv5(YouOnlyLookOnceversion5)模型因其高效和准确而受到广泛关注。但在实际训练过程中,由于数据集大小、计算资源或意外中断等原因,训练可能会突然中断。这时,如何恢复训练并确保之前的工作不白费,就显得尤为重要。而“断点续传”这一......
  • 荷兰半导体设备供应商在美政府压力下中断向中国发货 | 百能云芯
    据报道,在荷兰新的高阶芯片制造设备出口限制禁令1月全面生效之前,荷兰半导体制造设备供应商ASML已经响应美国政府要求,取消了向中国的部分设备发货。根据ASML官方声明,荷兰政府已经取消了NXT:2050i和NXT:2100i的部分出口许可,影响到了少数中国客户。公司表示,这一举措不会对其财务前景......
  • CT107D单片机蜂鸣器和继电器的基础了解和应用
    在LED的基础上,了解到译码器或非门锁存器而在蜂鸣器和继电器的应用也需使用到他们Y5是控制蜂鸣器和继电器的端口,与LED不同的是多了个芯片ULN2003达林顿管:具有非门的功能。从P0口输入到器件的信号会变化1变00变1P06是蜂鸣器P04是继电器由图知蜂鸣器是低电平打开而因为......