51单片机中断系统课件_第1页
51单片机中断系统课件_第2页
51单片机中断系统课件_第3页
51单片机中断系统课件_第4页
51单片机中断系统课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机技术及应用基于汇编及C51程序设计第5章 51单片机中断系统主 要 章 节5.1 中断的基本概念5.2 51单片机的中断系统5.3 51单片机中断系统的编程与应用2022/7/14215.1 中断的基本概念1 中断的概念 什么是中断?2 中断源及中断请求3 中断优先权控制4 中断允许与中断屏蔽5 中断响应与中断返回2022/7/1431断点地址5.2 51单片机的中断系统5.2.1 51单片机的中断系统总体结构2022/7/14415.2.2 51单片机的中断源1. 外部中断 和 外部引脚P3.2和P3.3两种触发方式:电平触发及跳变(边沿)触发定时/计数器控制寄存器TCONIT0(IT

2、1):触发方式控制位。0:电平触发方式;1:边沿触发方式。IE0(IE1):中断请求标志位。2022/7/1451TCON D7D6D5D4D3D2D1D0(88H) TF1TR1TF0TR0IE1IT1IE0IT02. 定时/计数器T0和T1中断 TF0 TF13. 串行口中断 TI RI5.2.3 两级中断允许控制中断允许寄存器IE2022/7/1461IED7D6D5D4D3D2D1D0(A8H)EAET2ESET1EX1ET0EX0置“1”,允许;清“0”,禁止5.2.4 两级优先级控制中断优先级寄存器IP2022/7/1471IPD7D6D5D4D3D2D1D0(B8H)PT2PSP

3、T1PX1PT0PX0置“1”,高优先级;清“0”,低优先级。同级中断源的优先级顺序2022/7/1481中断源优先级顺序外部中断0定时/计数器T0中断外部中断1定时/计数器T1中断串行口中断定时/计数器T2中断最高最低二级中断嵌套。对于中断优先级和中断嵌套,51单片机有以下3条规定。(1)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后,CPU才响应新的中断请求。(2)正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。(3)CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。202

4、2/7/14915.2.5 中断响应1.中断响应的条件(1)无同级或高级中断正在处理。(2)现行指令执行到最后一个机器周期且已结束。(3)若现行指令为RETI或访问IE、IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。2022/7/141012.中断响应过程(1) 根据中断请求源的优先级高低,对相应的优先级状态触发器置“1”。(2) 保护断点,即把程序计数器PC的内容压入堆栈保存。(3) 清除内部硬件可清除的中断请求标志位(IE0、IE1、TF0、TF1)。(4) 把被响应的中断服务程序入口地址送入PC中,从而转入相应的中断服务程序执行。2022/7/14111中断服务程序的入口

5、地址表2022/7/14121中断源入口地址外部中断00003H定时/计数器0000BH外部中断10013H定时/计数器1001BH串行口0023H定时/计数器2(仅52子系列有)002BH5.3 51单片机中断系统的编程与应用5.3.1 51单片机中断系统的编程初始化编程一般过程如下:1) 中断总体允许控制位置1,开放总中断。2) 相应中断源的允许控制位置1,开放对应中断。3)设置中断优先级。4)如果是外部中断,设置相应的触发方式。初始化程序放在主程序中,一般放在主程序开始位置处,设置堆栈指针编写中断服务程序2022/7/141315.3.2 51单片机中断系统的应用【例5-1】利用外部中断

6、统计外部事件的次数2022/7/14141主程序中开放外中断 ,设置为边沿触发方式。2022/7/14151汇编程序如下:ORG 0000H ;复位地址LJMP MAIN ;转主程序ORG 0003H ;外部中断0入口LJMP INT0 ;转中断服务功能程序ORG 0100H ;主程序MAIN: SETB EA ;开总中断SETB EX0 ;开外部中断0中断SETB IT0 ;设外部中断0为边沿触发方式,下降沿触发MOV R3,#0 ;计数器清0HERE:SJMP HERE ;无其他任务,等待ORG 0200H ;中断服务功能程序INT0: CLR EA ;关中断PUSH PSW ;保护现场P

7、USH ACCINC R3 ;计数器加1MOV P1,R3 ;送P1口输出POP ACC ;恢复现场POP PSWSETB EA ;开中断RETI ;中断返回ENDC语言程序:2022/7/14161#include /包含特殊功能寄存器库#define uchar unsigned charuchar a = 0 x00; /定义计数器,初值为0void main(void)IE = 0 x81;/开总中断,开外部中断0中断IT0 = 1;/设外部中断0为边沿触发方式,下降沿触发while(1); /无其他任务,等待void int0(void) interrupt 0 /外部中断0中断函数

8、a += 1;/计数器加1P1 = a; /送P1口输出【例5-2】外中断在工业控制系统中实现多路监控。某工业监控系统,具有温度1超限、温度2超限、压力超限、PH值超限等多路监控功能。每一路监控完成相应的处理。如PH值超限,在小于7时向CPU申请中断,CPU响应中断后使P3.0引脚输出高电平,经驱动,使加碱管道电磁阀接通1秒钟,以调整PH值。2022/7/14171多个中断通过中断加查询的方法 “线与”2022/7/14181主程序中开放外中断 ,设置为边沿触发方式。中断中只设计了PH值超限情况的处理程序。2022/7/14191汇编语言程序:ORG0000HLJMPMAINORG 0013H

9、 ;外部中断1中断服务程序入口LJMPINT1 ORG 0100H ;主程序MAIN:SETBEA;外部中断1初始化SETBEX1 ;开总中断,开外部中断1,选择边沿触发方式,下降沿触发SETBIT1START:MOVP1,#0FFH;等待中断SJMP STARTORG 0200H ;外部中断1中断程序INT1:CLR EA ;关中断PUSHACC;保护现场PUSHPSWJNB P1.0,EXT0 ;查询中断源,转对应的中断服务子程序JNB P1.1,EXT1JNB P1.2,EXT2JNB P1.3,EXT3EXIT:POPPSW;恢复现场POPACCSETB EA ;开中断RETI2022

10、/7/14201;温度1超限中断程序EXT0: SJMPEXIT ;温度2超限中断程序EXT1: SJMPEXIT ;压力超限中断程序EXT2: SJMPEXIT ;PH值超限中断程序EXT3:SETB P3.0 ;接通加碱管道电磁阀ACALL DELAY ;调延时0.5秒子程序ACALL DELAY ;调延时0.5秒子程序CLR P3.0 ;1秒钟到关加碱管道电磁阀SJMPEXIT 2022/7/14211C语言程序:#include #include #define uchar unsigned charsbit P10=P10; /特殊功能位定义sbit P11=P11;sbit P12

11、=P12;sbit P13=P13;sbit P3_0=P30;/延时0.5s函数void delay()uchar i,j;for(i=0;i250;i+)for(j=0;j250;j+) _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();2022/7/14221/ 外部中断1中断服务函数void int1() interrupt 2/查询中断源,进行相应的中断处理if (P10=1) ; /执行温度1超限的处理程序if (P11=1) ; /执行温度2超限的处理程序if (P12=1) /执行PH值超限的处理程序 P30=1; /接通加碱管道电磁阀delay();delay()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论