![第5章 80C51单片机的中断与定时_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/054279cf-fd0f-4823-bd8c-7c74a7b8b276/054279cf-fd0f-4823-bd8c-7c74a7b8b2761.gif)
![第5章 80C51单片机的中断与定时_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/054279cf-fd0f-4823-bd8c-7c74a7b8b276/054279cf-fd0f-4823-bd8c-7c74a7b8b2762.gif)
![第5章 80C51单片机的中断与定时_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/054279cf-fd0f-4823-bd8c-7c74a7b8b276/054279cf-fd0f-4823-bd8c-7c74a7b8b2763.gif)
![第5章 80C51单片机的中断与定时_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/054279cf-fd0f-4823-bd8c-7c74a7b8b276/054279cf-fd0f-4823-bd8c-7c74a7b8b2764.gif)
![第5章 80C51单片机的中断与定时_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/054279cf-fd0f-4823-bd8c-7c74a7b8b276/054279cf-fd0f-4823-bd8c-7c74a7b8b2765.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5 5章章 80C5180C51单片机的中断与定时单片机的中断与定时教学基本要求教学基本要求:(1 1)、了解单片机系统有关中断的概念;)、了解单片机系统有关中断的概念;(2 2)、了解单片机定时器)、了解单片机定时器/ /计数器的功能;计数器的功能;(3 3)、熟悉与中断控制有关的控制寄存器的功能及用法;)、熟悉与中断控制有关的控制寄存器的功能及用法;(4 4)、熟悉与定时)、熟悉与定时/ /计数控制有关的控制寄存器功能及用法;计数控制有关的控制寄存器功能及用法;(5 5)、掌握单片机中断系统的应用方法;)、掌握单片机中断系统的应用方法;(6 6)、掌握单片机定时器)、掌握单片机定时器/
2、 /计数器的应用方法;计数器的应用方法;教学重点教学重点:(1 1)、单片机中断系统的中断服务流程;)、单片机中断系统的中断服务流程;(2 2)、单片机定时器)、单片机定时器/ /计数器的工作方式计数器的工作方式0 0、2 2;教学难点教学难点: (1 1)、中断采样、中断查询、中断响应、中断撤消)、中断采样、中断查询、中断响应、中断撤消5.1 5.1 中断概述中断概述(1 1)有关中断的概念)有关中断的概念 (a a)中断中断 当中央处理器当中央处理器CPUCPU正在处理某件事情的时候,外界发生了紧正在处理某件事情的时候,外界发生了紧急事件请求,要求急事件请求,要求CPUCPU暂停当前的工作
3、,转而去处理这个紧急事暂停当前的工作,转而去处理这个紧急事件。处理完毕后,再回到原来被暂停的地方,继续原来的工作,件。处理完毕后,再回到原来被暂停的地方,继续原来的工作,这样的过程称为中断。这样的过程称为中断。 (b b)中断嵌套中断嵌套 即指在中断过程中又发生了新中断的现象。即指在中断过程中又发生了新中断的现象。 (c c)中断源)中断源 向向CPUCPU发出中断请求的来源。发出中断请求的来源。 (d d)中断请求或中断申请)中断请求或中断申请 中断源要求中断源要求CPUCPU为其服务的请求。为其服务的请求。 (e e)中断查询)中断查询 即指即指CPUCPU通过测试各中断控制寄存器中各标志
4、位的状态,以通过测试各中断控制寄存器中各标志位的状态,以确定有没有中断请求发生以及是哪一个中断源提出中断请求的过确定有没有中断请求发生以及是哪一个中断源提出中断请求的过程。程。 (f f)中断响应)中断响应 即指即指CPUCPU对中断源提出的中断请求的接受,发生在中断查询对中断源提出的中断请求的接受,发生在中断查询之后。之后。 (g g)中断处理或中断服务)中断处理或中断服务 中断处理就是执行中断服务程序。中断处理就是执行中断服务程序。 (h h)中断返回)中断返回 中断返回是指中断返回是指CPUCPU在执行完中断服务程序后,返回原来暂停在执行完中断服务程序后,返回原来暂停的地方(断点),继续
5、执行原来程序的过程。的地方(断点),继续执行原来程序的过程。5.2.1 5.2.1 中断中断源与中断向量源与中断向量 80C5180C51单片机共有单片机共有3 3类类5 5个中断源,即外部中断个中断源,即外部中断2 2个、定时中断个、定时中断2 2个和串行中断个和串行中断1 1个。个。(1 1)外中断)外中断 (a a)由外部信号引起,共有)由外部信号引起,共有2 2个中断源,即外部中断个中断源,即外部中断“0”0”和和外部中断外部中断“1”1”。由。由/INT0/INT0(P3.2P3.2)和)和/INT1/INT1(P3.3P3.3)引入。)引入。 (b b)外中断的两种信号触发方式(通
6、过有关控制位定义)外中断的两种信号触发方式(通过有关控制位定义) 电平方式:低电平有效电平方式:低电平有效脉冲方式:脉冲下降沿有效,高低电平状态都应至少维持一个脉冲方式:脉冲下降沿有效,高低电平状态都应至少维持一个 机器周期。机器周期。5.2 80C515.2 80C51单片机的中断系统单片机的中断系统(2 2)定时中断)定时中断 定时中断是定时中断是为满足定时或计数的需要设置为满足定时或计数的需要设置的。的。80C5180C51单片机单片机共有共有2 2个定时器个定时器/ /计数器中断源,即计数器中断源,即T/C0T/C0和和T/C1T/C1。 定时器定时器/ /计数器内部的计数结构对脉冲信
7、号进行计数,当计计数器内部的计数结构对脉冲信号进行计数,当计数结构发生计数溢出时,即表明定时时间到或计数值已满,此时数结构发生计数溢出时,即表明定时时间到或计数值已满,此时就以计数溢出信号作为中断请求信号,向就以计数溢出信号作为中断请求信号,向CPUCPU申请中断,同时置申请中断,同时置位一个溢出标志位,作为单片机接受中断请求的标志。位一个溢出标志位,作为单片机接受中断请求的标志。 定时器定时器/ /计数器作为定时功能使用时,计数结构需要的计数计数器作为定时功能使用时,计数结构需要的计数脉冲信号来自单片机内部。脉冲信号来自单片机内部。 定时器定时器/ /计数器作为计数功能使用时,计数结构需要的
8、计数计数器作为计数功能使用时,计数结构需要的计数脉冲信号来自单片机外部,由脉冲信号来自单片机外部,由T0T0(P3.4P3.4)、)、T1T1(P3.5P3.5)引入。)引入。(3 3)串行中断)串行中断 串行中断是为串行数据传送的需要设置的。每当串行口接收串行中断是为串行数据传送的需要设置的。每当串行口接收或发送完一组串行数据时,就产生中断请求信号向或发送完一组串行数据时,就产生中断请求信号向CPUCPU申请中断。申请中断。80C5180C51单片机的中断向量列表单片机的中断向量列表 外部中断外部中断0 0003H 0 0003H 定时定时/ /计数器计数器0 000BH0 000BH 外部
9、中断外部中断1 0013H 1 0013H 定时定时/ /计数器计数器0 001BH0 001BH 串行发送中断串行发送中断 0023H 0023H 串行接收中断串行接收中断 0023H0023H5.2.2 5.2.2 中断中断控制控制 所谓所谓中断中断控制就是控制就是指指单片机单片机提供给用户使用的中断控制提供给用户使用的中断控制的的手手段,用户段,用户可可通过设置通过设置中断中断控制寄存器的控制寄存器的状态位来使用中断系统。状态位来使用中断系统。 中断中断控制的控制的本质本质就是利用指令就是利用指令对中断控制寄存器进行操作对中断控制寄存器进行操作。 80C5180C51具有具有4 4个相关
10、个相关的的控制寄存器:控制寄存器:TCONTCON,IEIE,IPIP,SCONSCON。 (1 1)定时器控制寄存器()定时器控制寄存器(TCONTCON) TCONTCON的功能:用于保存外部中断请求以及定时器的功能:用于保存外部中断请求以及定时器/ /计数器的计数器的计数溢出信号。计数溢出信号。 TCONTCON的字节地址:的字节地址:88H88H;位地址:;位地址:8FH8FH88H88H。 TCONTCON的内容及格式如下:的内容及格式如下:位地址位地址8FH8EH8DH8CH8BH8AH89H88H位符号位符号TF1TR1TF0TR0IE1IT1IE0IT0 与中断控制有关的控制位
11、共有与中断控制有关的控制位共有6 6位:位:(a a)IE0IE0、IE1IE1:外中断请求标志位:外中断请求标志位 CPUCPU采样采样/INT0/INT0,/INT1/INT1端,如出现有效中断请求端,如出现有效中断请求信号信号,则由,则由硬件硬件电路对该位自动电路对该位自动置置1 1。在中断响应后,由硬件在中断响应后,由硬件电路对该位电路对该位自自动清动清0 0。 (b b)IT0IT0、IT1IT1:外中断请求触发方式控制位:外中断请求触发方式控制位 IT0IT0(IT1IT1)=1=1,脉冲方式(后沿负跳有效);,脉冲方式(后沿负跳有效); IT0IT0(IT1IT1)=0=0,电平
12、方式(低电平有效);,电平方式(低电平有效); 由软件置由软件置1 1或清或清0 0,即人工编程。,即人工编程。 例:例: SETB IT0SETB IT0;或;或CLR IT0CLR IT0;(C C)TF0TF0、TF1TF1:计数溢出标志位:计数溢出标志位 当计数结构产生溢出时,由硬件电路对该位自动置当计数结构产生溢出时,由硬件电路对该位自动置1 1; 当转向中断服务时,再由硬件电路对该位自动清当转向中断服务时,再由硬件电路对该位自动清0 0。 计数溢出标志位的使用有两种情况:计数溢出标志位的使用有两种情况: 1 1)采用中断方式时,作中断请求标志位使用;)采用中断方式时,作中断请求标志
13、位使用; 2 2)采用查询方式时,作查询状态位来使用,必须利用软件)采用查询方式时,作查询状态位来使用,必须利用软件对该位清对该位清0 0。 (2 2)串行口控制寄存器(串行口控制寄存器(SCONSCON) SCONSCON的功能:用于串行数据通信的控制。的功能:用于串行数据通信的控制。 SCONSCON的字节地址:的字节地址:98H98H;位地址:;位地址:9FH9FH98H98H。 SCONSCON的内容及格式如下:的内容及格式如下:位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号位符号SM0SM1SM2RENTB8RB8TIRI 与中断控制有关的控制位共有与中断控制有关
14、的控制位共有2 2位:位:(a a)TITI:串行口发送中断请求标志位:串行口发送中断请求标志位 发送完一帧串行数据后,由发送完一帧串行数据后,由硬件电路对该位自动硬件电路对该位自动置置1 1,在转,在转向中断服务程序后,用软件向中断服务程序后,用软件对该位对该位清清0 0。(b b)RIRI:串行口接收中断请求标志位:串行口接收中断请求标志位 接收完一帧数据后,由接收完一帧数据后,由硬件电路对该位自动硬件电路对该位自动置置1 1,在转向,在转向中断服务程序后,用软件对该位清中断服务程序后,用软件对该位清0 0。 TITI、RIRI标志位的使用有两种情况:标志位的使用有两种情况: 1 1)采用
15、中断方式时,作中断请求标志位使用;)采用中断方式时,作中断请求标志位使用; 2 2)采用查询方式时,作查询状态位来使用;)采用查询方式时,作查询状态位来使用; 无论采用何种方式,都必须利用软件对该位清无论采用何种方式,都必须利用软件对该位清0 0。(3 3)中断允许控制寄存器(中断允许控制寄存器(IEIE) IEIE的功能:的功能:中断系统的开关中断系统的开关。 IEIE的字节地址:的字节地址:0A8H0A8H;位地址:;位地址:0AFH0AFH0A8H0A8H。 IEIE的内容及格式如下:的内容及格式如下:位地址位地址AFHAFHAEHAEHADHADHACHACHABHABHAAHAAHA
16、9HA9HA8HA8H位符号位符号EAEA/ / /ESESET1ET1EX1EX1ET0ET0EX0EX0 与中断控制有关的控制位共有与中断控制有关的控制位共有6 6位:位:(a a)EAEA:中断允许总控制位:中断允许总控制位 EA=0EA=0:中断总禁止;:中断总禁止; EA=1EA=1:中断总允许;:中断总允许;(b b)EX0EX0、EX1EX1:外部中断允许控制位:外部中断允许控制位 EX0EX0、EX1=0EX1=0:禁止外中断;:禁止外中断; EX0EX0、EX1=1EX1=1:允许外中断;:允许外中断;(c c)ET0ET0、ET1ET1:定时器:定时器/ /计数器中断允许控
17、制位计数器中断允许控制位 ET0ET0、ET1=0ET1=0,禁止定时(或计数)中断;,禁止定时(或计数)中断; ET0ET0、ET1=1ET1=1,允许定时(或计数)中断;,允许定时(或计数)中断;(d d)ESES:串行中断允许控制位:串行中断允许控制位 ES=0ES=0,禁止串行中断;,禁止串行中断; ES=1ES=1,允许串行中断;,允许串行中断; 注意:注意: 1 1)MCS-51MCS-51单片机复位后(单片机复位后(IEIE)=00H=00H,即中断系统处于禁止,即中断系统处于禁止状态;状态; 2 2)单片机在中断响应后不会自动关闭中断,需使用有关指)单片机在中断响应后不会自动关
18、闭中断,需使用有关指令禁止中断,即以软件方式关闭中断。令禁止中断,即以软件方式关闭中断。(4 4)中断优先级控制寄存器(中断优先级控制寄存器(IPIP) IPIP的功能:决定各中断源的优先权。的功能:决定各中断源的优先权。 IPIP的字节地址:的字节地址:0B8H0B8H;位地址:;位地址:0BFH0BFH0B8H0B8H。 IPIP的内容及格式如下:的内容及格式如下:位地址位地址BFHBFHBEHBEHBDHBDHBCHBCHBBHBBHBAHBAHB9HB9HB8HB8H位符号位符号/ / / /PSPSPT1PT1PX1PX1PT0PT0PX0PX0 与中断控制有关的控制位共有与中断控制
19、有关的控制位共有5 5位:位:(a a)PX0PX0:外部中断:外部中断0 0优先级设定位;优先级设定位; (b b)PT0PT0:定时中断:定时中断0 0优先级设定位;优先级设定位;(c c)PX1PX1:外部中断:外部中断1 1优先级设定位优先级设定位 ;(d d)PT1PT1:定时中断:定时中断1 1优先级设定位优先级设定位 ;(e e)PSPS:串行中断优先级设定位;:串行中断优先级设定位; 为为0 0的位优先级为低,为的位优先级为低,为1 1的优先级为高。的优先级为高。5.2.3 5.2.3 中断优先级控制中断优先级控制 中断优先级是为中断嵌套服务的。中断优先级是为中断嵌套服务的。M
20、CS-51MCS-51单片机具有两级优单片机具有两级优先级,因此它具备两级中断服务嵌套的功能,其中断优先级的控先级,因此它具备两级中断服务嵌套的功能,其中断优先级的控制原则是:制原则是:(a a)低优先级中断请求不能打断高优先级的中断服务,但高优)低优先级中断请求不能打断高优先级的中断服务,但高优先级中断请求可以打断低优先级的中断服务,实现中断嵌套。先级中断请求可以打断低优先级的中断服务,实现中断嵌套。(b b)如一个中断请求已被响应,则同级的其它中断响应将被禁如一个中断请求已被响应,则同级的其它中断响应将被禁止。止。即同级不能嵌套。即同级不能嵌套。(c c)如果同级的多个中断请求同时出现,则
21、按如果同级的多个中断请求同时出现,则按CPUCPU查询次序确定查询次序确定那个中断请求被响应。那个中断请求被响应。 查询次序:查询次序: 外部中断外部中断00定时中断定时中断00外部中断外部中断11定时中断定时中断11串行中断串行中断 中断优先级控制,除了中断优先级控制寄存器之外,还有两中断优先级控制,除了中断优先级控制寄存器之外,还有两个不可寻址的优先级状态触发器:个不可寻址的优先级状态触发器: 一个用于指示某一高优先级中断正在进行服务,从而屏蔽其一个用于指示某一高优先级中断正在进行服务,从而屏蔽其它高优先级中断;另一个用于指示某一低优先级中断正在进行服它高优先级中断;另一个用于指示某一低优
22、先级中断正在进行服务,从而屏蔽其它低优先级中断,但不能屏蔽高优先级的中断。务,从而屏蔽其它低优先级中断,但不能屏蔽高优先级的中断。中断初始化与中断控制寄存器状态设置中断初始化与中断控制寄存器状态设置 MCS-51 MCS-51单片机的中断系统在使用之前,必须在单片机的应用程序初始化部单片机的中断系统在使用之前,必须在单片机的应用程序初始化部分进行设置,具体情况如下:分进行设置,具体情况如下:(a a)外部中断:中断总允许、外中断允许、中断触发方式设定、中断优先级)外部中断:中断总允许、外中断允许、中断触发方式设定、中断优先级设定设定(b b)定时中断:中断总允许、定时中断允许、中断优先级)定时
23、中断:中断总允许、定时中断允许、中断优先级设定设定;(c c)串行中断:中断总允许、串行中断允许、中断优先级)串行中断:中断总允许、串行中断允许、中断优先级设定设定。 MCS-51 MCS-51单片机中断系统的单片机中断系统的4 4个控制寄存器既可以进行字节寻址,又可进行个控制寄存器既可以进行字节寻址,又可进行位寻址,对位状态的设置,既可以使用字节操作指令,又可以使用位操作指令位寻址,对位状态的设置,既可以使用字节操作指令,又可以使用位操作指令。 例:设要开放外中断例:设要开放外中断0 0,则可以使用以下指令:,则可以使用以下指令: MOV IE MOV IE, #81H #81H;或;或 S
24、ETB EA SETB EA; SETB EX0SETB EX0; 80C5180C51单片机中断系统内部结构图单片机中断系统内部结构图 5.2.4 5.2.4 中断中断响应过程响应过程 中断中断响应过程发生在中断查询之后,包括中断响应、中断处响应过程发生在中断查询之后,包括中断响应、中断处理、中断返回三个阶段。因此,必须首先研究中断查询。理、中断返回三个阶段。因此,必须首先研究中断查询。 所谓中断查询就是指所谓中断查询就是指CPUCPU通过测试通过测试TCONTCON和和SCONSCON中各标志位的中各标志位的状态,以确定有没有中断请求发生以及是哪一个中断源提出中断状态,以确定有没有中断请求
25、发生以及是哪一个中断源提出中断请求的过程。请求的过程。 中断请求标志位的置位方式由于单片机中断类型的不同而存中断请求标志位的置位方式由于单片机中断类型的不同而存在差异。在差异。 (a a)对于外中断,必须通过采样的方法把外中断请求信号锁)对于外中断,必须通过采样的方法把外中断请求信号锁定在定在TCONTCON的相应标志位中;的相应标志位中; (b b)对于定时中断和串行中断,可以通过硬件电路直接置位)对于定时中断和串行中断,可以通过硬件电路直接置位的方法将的方法将TCONTCON和和SCONSCON中各自的中断请求标志位置中各自的中断请求标志位置“1”1”。(1 1)中断采样(针对外中断)中断
26、采样(针对外中断) 中断请求采样:即如何识别外部中断请求信号并把它锁定在中断请求采样:即如何识别外部中断请求信号并把它锁定在TCONTCON的相应标志位中。的相应标志位中。 采样时刻:在每个机器周期的采样时刻:在每个机器周期的S5P2S5P2(第(第5 5状态,第状态,第2 2节拍)时节拍)时刻,对刻,对/INT0/INT0(P3.2P3.2)和)和/INT1/INT1(P3.3P3.3)引脚进行。)引脚进行。 对于电平方式的外中断请求,采样为高对于电平方式的外中断请求,采样为高IE0IE0(IE1IE1)0 0,为低为低IE0IE0(IE1IE1)1 1; 对于脉冲方式外中断请求,采样先高后
27、低对于脉冲方式外中断请求,采样先高后低IE0IE0(IE1IE1)1 1;否则;否则IE0IE0(IE1IE1)0 0。 (2 2)中断查询)中断查询 中断查询:中断查询:CPUCPU对中断请求标志位的查询来获悉有无中断请对中断请求标志位的查询来获悉有无中断请求发生求发生以及是哪一个中断源提出中断请求;以及是哪一个中断源提出中断请求; 查询次序:按优先级顺序进行;查询次序:按优先级顺序进行; 查询时刻:每个机器周期的最后一个状态查询时刻:每个机器周期的最后一个状态S6S6,一旦查到有中,一旦查到有中断请求发生,接着就从相临的下一个机器周期的断请求发生,接着就从相临的下一个机器周期的S1S1状态
28、开始进行状态开始进行中断响应。中断响应。(3 3)中断响应)中断响应 中断响应的主要内容:由硬件电路自动生成一条长调用指令中断响应的主要内容:由硬件电路自动生成一条长调用指令LCALL addr16(LCALL addr16(即程序存储器中相应中断区的入口地址即程序存储器中相应中断区的入口地址) ),生成,生成LCALLLCALL指令后,就由指令后,就由CPUCPU执行,从而转移到真正的中断服务程序。执行,从而转移到真正的中断服务程序。 中断响应是有条件的,并不是查询到的所有中断请求都能被中断响应是有条件的,并不是查询到的所有中断请求都能被立即响应,当存在下列情况之一时,中断响应被封锁:立即响
29、应,当存在下列情况之一时,中断响应被封锁: (a a)CPUCPU正处在为一个同级或高级的中断服务中正处在为一个同级或高级的中断服务中; (b b)查询中断请求的机器周期不是当前指令的最后一个机器查询中断请求的机器周期不是当前指令的最后一个机器周期;周期; (c c)当前指令是返回指令()当前指令是返回指令(RETRET,RETIRETI)或访问)或访问IEIE,IPIP指令。指令。 MCS-51 MCS-51单片机对中断查询结果不作记忆,当有新的查询结果单片机对中断查询结果不作记忆,当有新的查询结果出现时,因为以上原因而被拖延的查询结果将不复存在,其中断出现时,因为以上原因而被拖延的查询结果
30、将不复存在,其中断请求也就不能再被响应了。请求也就不能再被响应了。 中断响应的条件:中断响应的条件: (a a)有中断源发出有效的中断请求信号;)有中断源发出有效的中断请求信号; (b b)EA=1EA=1,即,即CPUCPU开总中断;开总中断; (c c)申请中断的中断源的中断允许位为)申请中断的中断源的中断允许位为1 1,即没有屏蔽;,即没有屏蔽; (d d)中断响应没有被封锁。)中断响应没有被封锁。(4 4)中断响应时间)中断响应时间 即指从查询中断请求标志位到转向中断区入口地址所需的即指从查询中断请求标志位到转向中断区入口地址所需的机器周期数。机器周期数。 最短响应时间:最短响应时间:
31、3 3个机器周期(个机器周期(1 1个查询机器周期和个查询机器周期和2 2个个LCALLLCALL指令机器周期)指令机器周期); 最长响应时间:最长响应时间:8 8个机器周期(个机器周期(2+4+22+4+2)。 一般的中断响应时间在一般的中断响应时间在3 38 8个个机器周期机器周期之间。之间。(5 5)中断处理)中断处理 即执行中断服务程序的过程。即执行中断服务程序的过程。(6 6)中断返回)中断返回 指指CPUCPU在执行完中断服务程序后,返回原来暂停的地方(断在执行完中断服务程序后,返回原来暂停的地方(断点),继续执行原来程序的过程。点),继续执行原来程序的过程。中断中断请求的撤消问题
32、请求的撤消问题 中断响应后,中断响应后,TCONTCON或或SCONSCON中的中断请求标志应及时清除,否中的中断请求标志应及时清除,否则就意味着中断请求依然存在,弄不好就会造成中断的重复查询则就意味着中断请求依然存在,弄不好就会造成中断的重复查询和响应,因此,必须在中断响应后及时清除中断请求信号(即将和响应,因此,必须在中断响应后及时清除中断请求信号(即将中断请求标志位清中断请求标志位清0 0)。)。(1 1)定时中断请求的撤消)定时中断请求的撤消 定时中断定时中断的的中断中断请求是由请求是由硬件硬件电路电路自动自动撤消的(撤消的(即硬件即硬件电路电路自动把标志位(自动把标志位(TF0TF0
33、或或TF1TF1)清)清0 0),无需用户干预。),无需用户干预。(2 2)脉冲方式外部中断请求脉冲方式外部中断请求的撤消的撤消 外部中断请求外部中断请求的撤消包括两项内容:的撤消包括两项内容: (a a)中断标志位的清)中断标志位的清0 0; (b b)外)外部中断请求部中断请求信号的撤消;信号的撤消; 对于对于脉冲方式的外部中断请求,脉冲方式的外部中断请求,其其标志位(标志位(IE0IE0或或IE1IE1)的清)的清0 0是由硬件电路自动完成的;由于中断请求信号是脉冲信号,因是由硬件电路自动完成的;由于中断请求信号是脉冲信号,因此,中断请求信号也是自动撤消的。此,中断请求信号也是自动撤消的
34、。(3 3)电平)电平方式外部中断请求方式外部中断请求的撤消的撤消 对于电平对于电平方式方式的的外部中断请求外部中断请求,其其标志位(标志位(IE0IE0或或IE1IE1)的清)的清0 0是由硬件电路自动完成的;由于中断请求信号是低电平信号,是由硬件电路自动完成的;由于中断请求信号是低电平信号,因此,必须借助因此,必须借助外电路外电路将其拉高,否则,在以后的机器周期采样将其拉高,否则,在以后的机器周期采样时又会将标志位(时又会将标志位(IE0IE0或或IE1IE1)置)置“1”1”,造成重复中断响应。,造成重复中断响应。 结合硬件电路,只需在中断服务程序中增加两条指令就可在结合硬件电路,只需在
35、中断服务程序中增加两条指令就可在P1.0P1.0口线上产生一个负脉冲,将中断请求低电平信号撤消:口线上产生一个负脉冲,将中断请求低电平信号撤消: ORL P1ORL P1, #01H#01H; P1.0P1.0输出高电平输出高电平 ANL P1ANL P1, #0FEH#0FEH;P1.0P1.0输出低电平输出低电平 (4 4)串行)串行中断中断软件撤消软件撤消 串行中断的标志位串行中断的标志位TITI,RIRI,硬件硬件电路电路不会不会将其将其自动清自动清0 0,因为在中断响应,因为在中断响应后,还需测后,还需测试试TITI,RIRI的状态,以判定是接收还是发送操作,然后才能清除。应的状态,
36、以判定是接收还是发送操作,然后才能清除。应使用软件方法进行,加在中断服务程序中。使用软件方法进行,加在中断服务程序中。5.2.5 5.2.5 中断服务程序中断服务程序 中断中断服务流程服务流程(1 1)现场保护和现场恢复现场保护和现场恢复 现场保护:现场保护: 为了使中断服务程序的执行不破坏为了使中断服务程序的执行不破坏CPUCPU中寄存器或存储单元的原有内容,中寄存器或存储单元的原有内容,以免在中断返回后影响主程序的运行,须把以免在中断返回后影响主程序的运行,须把CPUCPU中有关寄存器或存储单元的内中有关寄存器或存储单元的内容推入堆栈中保护起来。这个过程称现场保护容推入堆栈中保护起来。这个
37、过程称现场保护。 现场恢复:现场恢复: 中断服务结束后,在返回主程序前,把保存的现场内容从堆中断服务结束后,在返回主程序前,把保存的现场内容从堆栈中弹出,以恢复寄存器或存储单元的原有内容栈中弹出,以恢复寄存器或存储单元的原有内容。 现场保护现场保护和和现场恢复现场恢复利用利用PUSHPUSH、POPPOP指令实现,指令实现,现场保护现场保护一一定要位于中断处理程序前面,而定要位于中断处理程序前面,而现场恢复现场恢复一定要位于中断处理程一定要位于中断处理程序后面。序后面。(2 2)开中断和关中断开中断和关中断 开中断开中断即中断允许,即中断允许,关中断关中断即中断屏蔽。在现场保护和即中断屏蔽。在
38、现场保护和现场现场恢复恢复的过程中,即使有更高级的中断请求,也不允许中断嵌套。的过程中,即使有更高级的中断请求,也不允许中断嵌套。(3 3)中断处理)中断处理(4 4)中断返回)中断返回 利用利用RETIRETI指令指令把程序运行从中断服务程序转回到被中断的把程序运行从中断服务程序转回到被中断的主程序上去,这条指令位于中断服务程序的最后一条指令主程序上去,这条指令位于中断服务程序的最后一条指令。 RETIRETI指令执行时,首先将响应中断时置位的优先级触发器复指令执行时,首先将响应中断时置位的优先级触发器复位,然后将断点地址从堆栈中弹出送位,然后将断点地址从堆栈中弹出送PCPC,接着,接着CP
39、UCPU从断点处重新从断点处重新执行被中断的主程序。执行被中断的主程序。断断 点点主主程程序序继继续续执执行行主主程程序序响响 应应 中中 断断 请请 求求返返 回回 主主 程程 序序中中断断服服务务程程序序返回返回响响应应低低级级中中断断请请求求返返回回主主程程序序RETI低低级级中中断断程程序序断断点点响响应应高高级级中中断断请请求求返返回回低低级级中中断断程程序序断断点点主主程程序序继继续续执执行行主主程程序序继继续续执执行行高高级级中中断断服服务务程程序序返回返回DSDCLK外外中中断断0请请求求信信号号80C51P1.0INT0Q返回返回1IT00IT01INT0T0T1TXRXTC
40、ONIEEX0EAIPPX01111100000PSPT1PX1PT0SCON中中断断标标志志源源允允许许总总允允许许硬硬件件查查询询矢矢量量地地址址矢矢量量地地址址自自然然优优先先级级自自然然优优先先级级IT10IT11INT1IE0TF0IE1TF1TIRIEX0EX1 1ET1ES优优先先级级高高级级中中断断请请求求PC低低级级中中断断请请求求PC80C5180C51单片机中断系统内部结构图单片机中断系统内部结构图返回返回把把PC断断点点地地址址压压入入堆堆栈栈相相应应中中断断源源的的中中断断入入口口地地址址送送入入PC硬硬件件自自动动完完成成关关中中断断断断点点地地址址由由堆堆栈栈弹弹
41、入入PC中中断断返返回回恢恢复复现现场场开开中中断断关关中中断断中中断断服服务务开开中中断断保保护护现现场场YYN执执行行主主程程序序执执行行一一条条指指令令中中断断源源发发中中断断申申请请中中断断响响应应条条件件满满足足中中断断受受阻阻NNY返回返回课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础单片机C语言程序设计一:C51C51对对标准标准C C的扩展的扩展1 1、 C51C51数据类型数据类型n 数据类型数据类型就是就是数据的格式数据的格式,它决定数据的,它决定数据的值域值域范围范围、占用存储单元的个数
42、占用存储单元的个数及能及能参与哪种运算参与哪种运算。 n 编写编写C51C51程序,先要确定数据类型、储存分区程序,先要确定数据类型、储存分区n 应尽可能采用无符号格式(应尽可能采用无符号格式(unsignedunsigned) n C51C51中,多字节数据采用中,多字节数据采用“大端对齐大端对齐”格式格式课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础数据类型长度(位)取值范围字符型signed char8-128127unsigned char80255整 型signed int16-3276832767
43、unsigned int16065535长整型signed long32-2147488364821474883647unsigned long3204294967295浮点型float321.75494E-383.402823E+38位 型bit10,1sbit10,1访问SFRsfr80255sfr1616065535C51C51数据类型表数据类型表课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 在在编程时,为了书写方便,经常用简化的缩写形编程时,为了书写方便,经常用简化的缩写形式来定义数据类型。其方法是
44、在源程序开头使用式来定义数据类型。其方法是在源程序开头使用#define#define语句自定义简化的类型标识符。语句自定义简化的类型标识符。 例如:例如: #define uchar unsigned char #define uchar unsigned char #define uint unsigned int #define uint unsigned int 这样,在编程中,就可以用这样,在编程中,就可以用ucharuchar代替代替unsigned unsigned charchar,用,用uintuint代替代替unsigned intunsigned int来定义变量。来定义
45、变量。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础2021-11-2235n bitbit定义定义位变量名字,编译器在位寻址区位变量名字,编译器在位寻址区自自动动分配分配该位变量;该位变量;n SbitSbit声明声明SFRSFR区位变量的名字和地址,地址区位变量的名字和地址,地址是确定的。是确定的。 (或位寻址区变量的某确定位(或位寻址区变量的某确定位)说明:说明:sbitsbit CY = 0 xD7; CY = 0 xD7;bit flag1 = 0;bit flag1 = 0;含义:含义:赋值赋值含
46、义:含义:声明声明课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础sfrsfr用于声明字节型(用于声明字节型(8 8位)的位)的SFRSFR;sfr16sfr16用于声明字型(用于声明字型(1616位)的位)的SFRSFR。如:如: sfrsfr P0 = 0 x80; P0 = 0 x80; sfr16 DPTR = 0 x82; sfr16 DPTR = 0 x82;课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础2 2、C
47、51C51数据的数据的存储类型存储类型 KEIL C51KEIL C51完全支持完全支持80518051单片机的硬件结构单片机的硬件结构,该,该编译器通过将变量、常编译器通过将变量、常量定义成不同的存储类型的方法,将他们定义在不同的存储区中。量定义成不同的存储类型的方法,将他们定义在不同的存储区中。存储器类存储器类型型长度长度(位)(位)对应单片机存储器对应单片机存储器bdata1片内片内RAM位寻址区,共位寻址区,共128位。(亦能字节访问)位。(亦能字节访问)data8直接寻址,共直接寻址,共128字节。字节。idata8间接寻址,共间接寻址,共256字节。字节。pdata8片外片外 RA
48、M分页间址,共分页间址,共256字节。(字节。(MOVX Ri)xdata16间接寻址,共间接寻址,共64k字节。(字节。(MOVX DPTR)code16ROM间接寻址,共间接寻址,共64k字节。(字节。(MOVC A,A+DPTR)n经常使用的变量应该置于片内经常使用的变量应该置于片内RAMRAM中,要用中,要用bdatabdata、datadata、idataidata来定义来定义n不常使用的变量或规模较大的变量应该置于片外不常使用的变量或规模较大的变量应该置于片外RAMRAM中,要用中,要用pdatapdata、xdataxdata来定义来定义课程:单片机技术课程:单片机技术 教材:单
49、片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础带存储类型的变量的定义的一般格式为带存储类型的变量的定义的一般格式为 数据类型数据类型 存储类型存储类型 变量名变量名变量存储类型定义举例:变量存储类型定义举例:char data var1; /char data var1; /* * var1 var1定位在内部定位在内部RAMRAM* */ /bit bdata flags; /bit bdata flags; /* * flags flags定位在内部定位在内部RAMRAM的位寻址区的位寻址区* */ /float idata x,y,z; /fl
50、oat idata x,y,z; /* *x,y,zx,y,z变量变量定位在内部定位在内部RAMRAM,但,但只能采只能采 用间址用间址寻址方式寻址方式* */ /unsigned int pdata i; /unsigned int pdata i; /* *无符号整型变量无符号整型变量i i定位在外部定位在外部 RAMRAM,并用,并用MOVX RiMOVX Ri访问访问* */ /unsigned char xdata v1044unsigned char xdata v1044; / /* *无符号三维数组变无符号三维数组变 量,量, 定位在外部定位在外部RAMRAM,并,并占据占据1
51、0104 44=1604=160字节存储空间字节存储空间* */ /课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 如果定义时略去存储类型标志符,编译器会自动选择默如果定义时略去存储类型标志符,编译器会自动选择默认的类型,由认的类型,由SMALLSMALL,COMPACTCOMPACT和和LARGELARGE存储模式指令限制。存储模式指令限制。编译模式默认存储分区特 点SMALLdata小模式。 变量默认在片内RAM。空间小,速度块。COMPACTpdata紧凑模式。变量默认在片外RAM的页(256字节,页号
52、由P2口决定)。LARGExdata大模式。 变量默认在片外RAM的64KB范围。空间大,速度慢。char char varvar; /SMALL/SMALL模式时,模式时,varvar定位于定位于datadata存储区存储区 /COMPACT/COMPACT模式时,模式时,varvar定位于定位于pdatapdata存储区存储区 /LARGE/LARGE模式时,模式时,varvar定位于定位于xdataxdata存储区存储区 课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 3 3、80C5180C51特殊功
53、能寄存器特殊功能寄存器(SFR)(SFR)的的C51C51定义定义 80C5180C51单片机中,地址范围为单片机中,地址范围为80H80HFFHFFH的单元为的单元为SFRSFR寄存器。寄存器。 为了能直接访问这些为了能直接访问这些SFRSFR,KEIL Cx51KEIL Cx51提供了一种自主形式提供了一种自主形式的定义方法,这种定义方法与标准的定义方法,这种定义方法与标准C C语言不兼容,只适用于对语言不兼容,只适用于对80518051系列单片机进行系列单片机进行C C语言编程。语言编程。 特殊功能寄存器特殊功能寄存器C51C51定义的一般语法格式如下:定义的一般语法格式如下:sfr s
54、fr_name =int constantsfr sfr_name =int constant; “ “sfr”sfr”是定义语句的关键字,其后必须跟一个是定义语句的关键字,其后必须跟一个80C5180C51单片单片机真实存在的特殊功能寄存器名,机真实存在的特殊功能寄存器名,“=”=”后面必须是一个整型常后面必须是一个整型常数,不允许带有运算符的表达式,是特殊功能寄存数,不允许带有运算符的表达式,是特殊功能寄存“sfr_name”sfr_name”的字节地址,这个常数值的范围必须在的字节地址,这个常数值的范围必须在SFRSFR地址范围内,位于地址范围内,位于0 x800 x800 xFF0 x
55、FF。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 例如:例如:sfr SCON=0 x98sfr SCON=0 x98;/ /* * 串口控制寄存器地址串口控制寄存器地址98H 98H * */ /sfr TMOD=0 x89sfr TMOD=0 x89;/ /* * 定时定时/ /计数器方式控制寄存器地址计数器方式控制寄存器地址89H 89H * */ / 80C51 80C51系列单片机的特殊功能寄存器的数量与类型不尽相同,系列单片机的特殊功能寄存器的数量与类型不尽相同,因此建议将所有特殊的因此建议将
56、所有特殊的“sfr”sfr”定义放入一个头文件中,该文件定义放入一个头文件中,该文件应包括应包括MCS-51MCS-51单片机系列机型中的单片机系列机型中的SFRSFR定义。定义。 C51C51编译器的编译器的“reg51.h”reg51.h”头文件就是这样一个文件。头文件就是这样一个文件。 对于位寻址的对于位寻址的SFRSFR中的位,中的位,C51C51的扩充功能支持特殊位的定的扩充功能支持特殊位的定义,像义,像SFRSFR一样不与标准一样不与标准C C兼容,使用兼容,使用sbitsbit来定义位寻址单元。来定义位寻址单元。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课
57、程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 第一种格式:第一种格式: sbit bit-name = sfr-nameint constantsbit bit-name = sfr-nameint constant; “ “sbit”sbit”是定义语句的关键字,后跟一个寻址位符号名是定义语句的关键字,后跟一个寻址位符号名( (该该位符号名必须是位符号名必须是80C5180C51单片机中规定的位名称单片机中规定的位名称) ),“=”=”后的后的“sfr-name”sfr-name”必须是已定义过的必须是已定义过的SFRSFR的名字,的名字,“”后的整常数后的整常数是寻址位
58、在特殊功能寄存器是寻址位在特殊功能寄存器“sfr-name”sfr-name”中的位号,必须是中的位号,必须是0 07 7范围中的数。范围中的数。 例如:例如: sfr PSW=0 xD0 sfr PSW=0 xD0 ; / /* * 定义定义PSWPSW寄存器地址为寄存器地址为D0H D0H * */ / sbit OV=PSW2 sbit OV=PSW2 ; / /* * 定义定义OVOV位为位为PSW.2PSW.2,地址为,地址为D2H D2H * */ / sbit CY=PSW7 sbit CY=PSW7 ; / /* * 定义定义CYCY位为位为PSW.7PSW.7,地址为,地址为
59、D7H D7H * */ /课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 第二种格式:第二种格式: sbit bit-name =int constantint constantsbit bit-name =int constantint constant; “ “=”=”后的后的int constantint constant为寻址地址位所在的特殊功能寄存为寻址地址位所在的特殊功能寄存器的字节地址,器的字节地址,“”符号后的符号后的int constantint constant为寻址位在特殊功为寻址位在
60、特殊功能寄存器中的位号。能寄存器中的位号。 例如:例如: sbit OV=0 xD02 sbit OV=0 xD02 ;/ /* * 定义定义OVOV位地址是位地址是D0HD0H字节中的第字节中的第2 2位位 * */ / sbit CY=0 xD07 sbit CY=0 xD07 ;/ /* * 定义定义CYCY位地址是位地址是D0HD0H字节中的第字节中的第7 7位位 * */ /课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 第三种格式:第三种格式: sbit bit-name = int consta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023六年级英语下册 Review Module Unit 2说课稿 外研版(三起)001
- 2025合同模板销售事务处理制度A范本
- 2023三年级英语下册 Unit 4 Food and Restaurants Lesson 23 How Much Are They说课稿 冀教版(三起)001
- 3 植物长在哪里 说课稿-2024-2025学年科学一年级上册教科版
- 15分享真快乐(说课稿)-部编版道德与法治一年级下册001
- 养老护工合同范本
- Unit2 Morals and virtues Reading for writing说课稿-2023-2024学年人教版高中英语必修第三册
- 1 观潮说课稿-2024-2025学年四年级上册语文统编版
- 2024年五年级英语上册 Module 2 Unit 2 How much cheese did you buy说课稿 外研版(三起)
- 路面挖补施工方案
- DB31 SW-Z 017-2021 上海市排水检测井图集
- 日语专八分类词汇
- GB/T 707-1988热轧槽钢尺寸、外形、重量及允许偏差
- GB/T 33084-2016大型合金结构钢锻件技术条件
- 高考英语课外积累:Hello,China《你好中国》1-20词块摘录课件
- 化学选修4《化学反应原理》(人教版)全部完整PP课件
- 茶文化与茶健康教学课件
- 降水预报思路和方法
- 虚位移原理PPT
- QE工程师简历
- 辅音和辅音字母组合发音规则
评论
0/150
提交评论