加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

51单片机中断程序编写

2021/07/19
5626
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

硬件型号:TELESKY STC89C51

系统版本:单片机系统

中断示例:

/**********************************
中断实现小灯每个一秒亮一次
***********************************/
#include <reg51.h>
sbit LED=P2^1;
#define uint unsigned int
uint count;
void main(void)
{
TMOD=0x01;
TH0=0xfc;
TL0=0x18;  //定时1ms

ET0=1;        //打开中断允许
EA=1;

TR0=1;             //打开计时器
while(1)
{
if(count==1000)                 
{
LED=~LED;
count=0;
}
}
}

void time0() interrupt 1
{      count++;
        TH0=0xfc;
        TL0=0x18;
}

(图片来源于互联网)

中断允许控制
CPU中断系统的所有中断以及某个中断源的开发和屏蔽是由中断允许寄存器IE控制的。

(图片来源于互联网)  

EA:中断允许总开关控制位。(1:所有中断请求被允许;0:所有中断请求被屏蔽)

ES:串行口中断允许控制位。(1:允许串口中断;0:禁止串口中断)

ET1:定时器/计数器T1的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX1:外部中断1中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

ET0:定时器/计数器T0的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX0:外部中断0中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

中断请求标志 

TCON 的中断标志

(图片来源于互联网)

IT0(TCON.0),外部中断0触发方式控制位。

    当IT0=0时,为低电平触发方式。

    当IT0=1时,为边沿触发方式(下降沿有效)。

IE0(TCON.1),外部中断0中断请求标志位。

IT1(TCON.2),外部中断1触发方式控制位。

IE1(TCON.3),外部中断1中断请求标志位。

TF0(TCON.5),定时/计数器T0溢出中断请求标志位。

TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
 

中断优先级


(图片来源于互联网)   

中断源

(图片来源于互联网)
     

中断响应条件

中断源有中断请求

此中断源的中断允许位为1

CPU开中断(EA=1)

(图片来源于互联网)

相关推荐

电子产业图谱