预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

中断的基本概念 8051中断系统的结构 单片机中断系统 8051中断的使用 中断服务程序5.1中断的概念 5.28051的中断源和中断控制寄存器 5.3中断处理的过程 5.4中断响应等待时间 5.5C51中断服务函数 所谓中断,是指计算机在执行某一程序的过程中,由于计算机系统内部或外部的某种原因,CPU必须暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序,待处理结束之后,再回来继续执行被暂停程序的过程。实现这种中断功能的硬件系统和软件系统统称为中断系统。运行过程如图5-1所示。 1、中断的作用 中断技术的引入解决了CPU与外设的速度匹配问题,提高了CPU的工作效率,主要表现在: (1)具有分时处理功能。 (2)具有实时控制功能。 (3)故障自动处理功能。 2、中断系统需要解决问题 中断系统是计算机的重要组成部分。中断系统需要解决以下基本问题。 (1)中断源:中断请求信号的来源。 (2)中断响应与返回。 (3)优先级控制。 1、中断源 中断源是指向CPU发出中断请求的信号来源,中断源可以人为设定,也可以响应突发性随机事件。8051系列单片机有5个中断源,其中2个是外部中断源,3个是内部中断源。 (1)INT0—外部中断0,从P3.2引脚输入的中断请求。 (2)INT1—外部中断1,从P3.3引脚输入的中断请求。 (3)T0—定时/计数器T0,定时器0溢出发出中断请求,计数器0从外部P3.4引脚输入计数脉冲中断请求。 (4)T1—定时/计数器T1,定时器1溢出发出中断请求,计数器1从外部P3.5引脚输入计数脉冲中断请求。 (5)串行口中断,包括串行接收中断RI和串行发送中断TI。2、中断控制寄存器 8051系列单片机涉及中断控制有中断请求、中断允许和中断优先级控制3个方面4个特殊功能寄存器,按图5-2所示从左到右分别如下。 中断请求:定时和外中断控制寄存器TCON、串行控制寄存器SCON。 中断允许控制寄存器IE。 中断优先级控制寄存器IP。2、中断控制寄存器3、中断允许控制寄存器IE中断处理过程分四步:中断请求、中断响应、中断服务和中断返回。如图5-4所示为中断处理流程图。图5-5所示为某中断的响应时序。C51函数的定义实际上已经包含了中断服务函数,但为了明确起见,下面专门给出中断处理函数的具体定义形式: 函数类型函数名([形式参数表])interruptn[usingn] { 局部变量定义 执行语句 } 用汇编语言编写中断服务程序时,程序员必须将中断服务程序放在由中断向量所指定的位置。用C51编程时,只要指出相应的中断号,编译器会根据中断号产生中断向量,关键字interrupt后面的n就是中断号,取值范围为0~31,编译器从8n+3处产生中断向量。 关键字using后面n的取值范围为0~3,分别表示四组工作寄存器R0到R7,如不带该项,则由编译器选择一个寄存器组作为绝对寄存器组访问。【例5-2】每产生一中断,变量var加1,加到12时清0,var小于6时,接P1.0指示灯点亮(即P1.0=1),否则熄灭指示灯。中断系统的应用要解决的问题主要是编制应用程序,编制应用程序包括两大部分内容:第一部分是中断初始化;第二部分是中断服务程序。 1、中断初始化 中断初始化应在产生中断请求前完成,一般放在主程序中,与主程序其他初始化内容一起完成设置。 (1)设置堆栈指针SP。 (2)定义中断优先级。 (3)定义外中断触发方式。 (4)开放中断。 (5)除上述中断初始化操作外,还应安排好等待中断或中断发生前主程序应完成的操作内容。2、中断服务程序 中断服务程序内容要求如下。 (1)在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。 (2)根据需要保护现场。 (3)中断源请求中断服务要求的操作,这是中断服务程序的主体。 (4)若是外中断电平触发方式,应有中断信号撤除操作。若是串行收发中断,应有对RI、TI清0指令。 (5)恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。 (6)中断返回,最后一条指令必须是RETI。在一个单片机系统中,为了实现人对单片机的控制,按键是最常用的输入设备之一。本训练的任务是用按键(采用外部中断方式)去控制彩灯的运行。通过按动按键,彩灯在三种闪亮方式(左移、右移、自定义花样)之间切换。1.概念题 1)8051有几个中断源?CPU响应中断时,其各中断源的入口地址是多少? 2)在8051系列单片机中,外部中断有哪两种触发方式?这两种触发方式所产生的中断过程有何不同,怎样设定? 2.操作题 1)试编写一段对中断系统初始化的程序,使之允许INT0,INT1,T0,串行口中断,且使T0中断为高优先级。