当前位置:首页 > 单片机 > 单片机
[导读]所谓的中断就是:做事:在做A事情的时候,被打断去做B事情,回来后再返回继续做A事情。程序:在执行A程序的时候,打断转而执行B程序,完成后B程序后继续返回执行A程序。简而言之,如下:52单片机一共有6个中断源,他

所谓的中断就是:
做事:
在做A事情的时候,被打断去做B事情,回来后再返回继续做A事情。
程序:
在执行A程序的时候,打断转而执行B程序,完成后B程序后继续返回执行A程序。

简而言之,如下:


52单片机一共有6个中断源,他们的符号、名称及产生的条件分别解释如下:


6个中断源中,其默认的中断级别如下:


中断允许寄存器_IE

EA=1;开全局中断
ET2=1;打开T2中断(仅52有T2中断)
ES=1;打开串行口中断
ET1=1;打开T1中断
EX1=1;打开外部中断1中断
EX0=1;打开外部中断0中断

中断优先级寄存器_IP

PS=1;串行口中断定义为高优先级
PT1=1;定时器/计数器1中断定义为高优先级
PX1=1;外部中断1中断定义为高优先级
PT0=1;定时器/计数器0定义为高优先级中断
PX0=1;外部中断0中断定义为高优先级
注意:当以上值为零时,则自然被定义为低优先级中断。

定时器/计数器工作方式寄存器_TMOD

GATE:门控位
C/T:模式选择,计数器方式:C/T=1;定时器模式:C/T=0
M0M1:工作方式选择
每个定时器/计数器均有4种工作方式,其主要有M0M1确定:



定时器/计数器控制寄存器_TCON

TF1:定时器1溢出标志位
当定时器1计数满时,有硬件置位,并申请中断,进入中断后,由硬件自动清零。
备注:使用定时器中断,改为无需人工操作,如使用软件查询的时候,查询到改位为1,徐软件清零。
TR1=1;启动定时器1
TF0;定时器0溢出标志,同TF1。
TR0=1;启动定时器0
IE1;IT1=0时,电平触发,INT1脚为底时置1。IT1=1时,跳变沿触发,第一个机器周期采样INT1为低IE置1
IT1=0;电平触发方式,引脚INTI1上低电平有效
IT1=1;跳变沿触发方式,引脚INTI1上的电平从高到低的负跳变沿有效
IE0;外部中断0请求标志,同IE1
IT0:外部中断0触发方式选择位同IT1。

通常定时器初始化过程如下:
对TMOD赋值,以确定T0和T1的工作方式
计算初值,并将初值写入TH0、TL0和TH1、TL1
中断方式时,则对IE赋值,开放中断
使TR0或者TR1置位,启动定时器/计数器定时或者计数

程序对应如下:
//定时器0工作方式1
TMOD=0X01; //定时器0工作方式1(M1M0为01)
TH0=(65536-45872)/256; //装初值,11.0592MHz晶振定时50ms,数为45872
TL0=(65536-45872)%6;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1){}; //程序停止在此处等待中断发生

//定时器0工作方式0
TMOD=0X00; //定时器0工作方式0(M1M0为00)
TH0=(8192-4607)/32; //装初值
TL0=(8192-4607)2;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1){}; //程序停止在此处等待中断发生
备注:(8192-4607)/32对32求模是因为定时器方式0为13位计数器,
计数时只用了TL0的低五位。
五位最多装在32个数,再加1便会进位。与16为计数器装在256个数不同。因此此处对32求模。

//定时器0工作方式2
TMOD=0X02; //定时器0工作方式0(M1M0为02)
TH0=6; //装初值
TL0=6;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1){}; //程序停止在此处等待中断发生

//定时器0工作方式3
TMOD=0X03; //定时器0工作方式0(M1M0为03)
TH0=6; //装初值
TL0=6;
EA=1; //开总中断
ET0=1; //开定时器0中断
ET1=1; //开定时器1中断
TR0=1; //启动定时器0
TR1=1; //启动定时器1
while(1){}; //程序停止在此处等待中断发生
注:TL0占用定时器T1的中断请求标志,因此为了避免冲突,设计程序时,T0的方式3不可用在有中断的场合。

中断方式的写法:
void T0_time() interrupt 1//定时器0中断
{

}

void T1_time() interrupt 3 //定时器1中断
{

}

定时器T2的介绍
其为16位的定时器计数器。
通过设置特殊功能寄存器T2CON的C/T2位,可以将其设定为定时器或者计数器
通过T2CON中的工作模式选择位,可将定时器2设置为三种工作模式:捕获、自动重新装载、波特率发声器。

捕获:捕捉某一瞬间的值,通常用他来测量外部某个脉冲的宽度或周期,使用捕获功能可以非常准确的测试脉冲宽度和周期。

定时器2控制器存器_T2CON

TF2;定时器2溢出时置位,必须由软件清零,当RCLK=1或TCLK=1时,TF2 将不会置位。
EXF2;当EXEN2=1且T2EX(单片机P1.1口)的负跳变产生捕获或重装时,EXF2置位。
定时器2中断使能时,EXF2=1将是CPU进入定时器2的中断服务程序。
EXF2必须用软件清零。在递增(递减)计数模式(DCEN=1),EXF2不会引起中断
RCLK;接收时钟标志
RCLK=1时,定时器2的溢出脉冲作为串行口模式1或模式3的接收时钟,
RCLK=0时,将定时器1的溢出脉冲作为接收时钟。
TCLK;发送时钟标志
TCLK=1时,定时器2的溢出脉冲作为串行口模式1或模式3的发送时钟,
TCLK=0时,将定时器1的溢出脉冲作为发送时钟。
EXEN2;定时器2外部使能标志
EXEN2=1且定时器2未作为串行口时钟时,允许T2EX的负跳变产生捕获获重装,
EXEN2=0时,T2EX的跳变对定时器2无效
TR2;置1启动定时器,置零停止定时器2
C/T2;T2的定时器/计数器选择位
C/T2=1,外部事件计数器(下降沿触发)
C/T2=0,内部定时器
CP/RL2;捕获重装标志
CP/RL2=1且EXEN2=1,T2EX的负跳变产生捕获
CP/RL2=0且EXEN2=0,定时器2溢出或T2EX的负跳变都可是定时器自动重装,
当RCLK=1或TCLK=1时,该位无效且定时器强制为溢出时自动重装。

定时器/计数器2的三中工作模式


定时器2模式控制寄存器

设定自动重装模式为递增还是递减。
T2OE;定时器2使能输出位
DCEN;向下计数使能位

波特率发声器_T2定时器
寄存器T2CON的TCLK和RCLK允许从定时器1或定时器2获得串行口接收和发送的波特率
TCLK=0,定时器1作为串行口发送波特率发生器
TCLK=1,定时器2作为串行口发送波特率发生器

除了波特率发声器模式,T2CON不包含TR2位的设置,TR2为需要单独设置来启动定时器。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中断机制在单片机及嵌入式系统中是重中之重,我们必须深入理解。首先我们要明白一点:CPU执行指令代码,并非一直顺序地逐条执行,而是可能突然跳到某段代码上去的。因为这段代码的优先级更高,或者说它更加紧迫,CPU必须暂时放下手...

关键字: 中断 单片机 嵌入式系统

PIC单片机是基于RISC系统结构的单片机,最初的设计是支持PDP(编程数据处理器)计算机。大量的操作可以用来控制外围设备。PIC单片机比微控制器具有更快的程序执行能力。它是由微芯片技术公司于1889年发明的,是一种8位...

关键字: PIC单片机 定时器 中断

STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等。还支持ISP下载,不用编程器,只要一个MAX2...

关键字: 单片机 看门狗 中断

什么是PIC中断程序呢?形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程...

关键字: PIC 中断 标志位

MCS—51系列单片机内部只需两个外部接中断连源输入端,当外部接连源多于两个时,就必须进行拓宽,下面介绍几种简略的拓宽办法:

关键字: 单片机 软件 中断

最近在浏览星球主题的时候,发现一位球友打卡中断了,就去关心了一下他(瞧我这该死的责任心❤️),结果被他反手就问了下面这个问题。

关键字: 中断 Spring Boot 实战项目

实质上是加一的计数器。外部脉冲让他不断加一,当计数器溢出时,计数器的溢出相应的中断标志位置1,并向CPU发出中断请求。如果定时器/计数器工作为定时模式,则表示时间以到;如果工作于计数模式,则表示计数器、则表示计数值已满。

关键字: 周期 中断

中断的分类和区别

关键字: 轮询 中断

在这篇文章中,小编将为大家带来微控制器的相关报道。

关键字: 微控制器 中断 控制器

TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD =...

关键字: 51单片机 定时器 中断
关闭
关闭