目录
一、中断系统的基本概念
二、中断系统的控制
三、中断系统应用举例
1.实现方法
2.程序设计
主要看注释
一、中断系统的基本概念
1、中断源
要让单片机停止当前的程序去做其他事情,需要向它发出请求信号,CPU接收到中断请求信号后才能产生中断。让CPU产生中断的信号称为中断源(又称中断请求源)。
2、中断的优先级别
外部中断INTO(最高)
定时器T0
外部中断INT1
定时器T1
串行口通信中断RI或TI(最低)
3、中断服务函数的格式
函数类型 函数名(形式参数列表)
例如:void Time0(void) interrupt 1 using 0
//定时器T0的中断服务函数,T0的中断编号为1,使用第0组工作寄存器
interrupt后面的n是中断编号,n的取值范围为0~4,using中的m表示使用的工作寄存器组号。
4、中断的处理过程
CPU处理事件的过程称为CPU的中断响应过程,对事件的整个处理过程称为中断处理。再接着继续执行被中断的程序,这称为中断返回。
5、5个中断请求源
( 1 )外部中断请求源 ,由 P3.2 引脚输入。( 2 )外部中断请求源 ,由 P3.3 引脚输入。( 3 )定时器 / 计数器溢出中断请求源 T0 。( 4 )定时器 / 计数器溢出中断请求源 T1 。( 5 )串行口中断请求源 TI 或 RI 。
6、中断源寄存器
80C51单片机的中断源寄存器有2个,即定时器/计数器控制寄存器TCON和串行通信控制寄存器SCON。它们的功能是可以向CPU发出中断请求。
7、中断允许寄存器
80C51单片机有1个中断允许寄存器IE,其功能是控制各个中断请求能否通过,即是否允许使用各个中断。
8、中断优先级控制寄存器
80C51单片机有1个中断优先级寄存器IP,其功能是设置每个中断的优先级。
二、中断系统的控制
1、定时器/计数器控制寄存器TCON
TCON的功能是接收外部中断源(INT0、INT1)和定时器/计时器(T0、T1)送来的中断请求信号。其字节地址为88H,可位操作。该寄存器中有定时器/计数器T0和T1的溢出中断请求标志位TF1和TF0,外部中断请求标志位IE0和IE1。
TCON寄存器中与中断系统有关的各标志位的功能
(1)IT0和IT1:外部中断和的触发方式控制位,可由软件进行置位和复位。
以外部中断为例,IT1=0时, 为低电平触发方式,即“0”到来即触发外中断 ;IT1=1时, 为负跳变触发方式,即由“1”到“0”跳变时触发外中断 。
2、串行通信控制寄存器SCON
SCON的功能主要是接收串行通信口送到的中断请求信号。
3、IE中各位的功能如下
EA :中断允许总控制位ES :串行口中断允许ET1 :定时器 / 计数器 T1 的溢出中断允许位EX1 :外部中断 1 中断允许位ET0 :定时器 / 计数器 T0 的溢出中断允许位EX0 :外部中断 0 中断允许位
(1)用位操作
EA=1; //CPU开总中断
ET0=1; //允许定时器/计数器T0溢出中断
(2)用字节操作
IE=0x82; //IE=1000 0010B,即EA=1,ET0=1
三、中断系统应用举例
1.实现方法
将定时器T0设置为工作方式1,而要使T0作为中断源,必须开总中断开关EA和T0的 “分支”开关“ET0”,然后还要将TR0位置“1”以启动定时器T0。
2.程序设计
主要看注释
#include<reg51.h> sbit D1=P1^7;void main(void) //总函数{EA=1; //开总中断ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1TH0=(65536-46083)/256; //定时器T0的高8位赋初值TL0=(65536-46083)%256; //定时器T0的低8位赋初值TR0=1; //启动定时器T0A=0xfe;D1=A;while(1) ; //无限循环,等待中断}void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数//其后的“1”为定时器T0的中断编号;“0”表示使用第0组工作寄存器 {A=<<1; //数据左移1位if(A!=0xff)A=|1; //数据末位置1 elseA=0xfe; //数据置初始值 D1==A; //实现显示TH0=(65536-46083)/256; //定时器T0的低8位重新赋初值TL0=(65536-46083)%256; //定时器T0的低8位重新赋初值}