51单片机编程6-中断控制

1.基本的概念:

中断源,引起CPU中断的根源;断点;中断返回;

2.中断源51单片机编程6-中断控制_第1张图片

3.与中断有关的寄存器

IE寄存器,TCON寄存器

(1) IE寄存器

中断的允许控制,数据结构为:
在这里插入图片描述

  • EX0(IE.0),外部中断0允许位;
  • ET0(IE.1),定时/计数器T0中断允许位;
  • EX1(IE.2),外部中断0允许位;
  • ET1(IE.3),定时/计数器T1中断允许位;
  • ES(IE.4),串行口中断允许位;
  • EA (IE.7), CPU中断允许(总允许)位。
(2)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溢出中断请求标志位。

5.中断的优先级

51单片机编程6-中断控制_第2张图片

5.中断编码实验

/**********************************
中断实现小灯每个一秒亮一次
***********************************/
#include 
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;
}

你可能感兴趣的:(单片机)