收藏 分销(赏)

2022年单片机4.ppt

上传人:二*** 文档编号:12595798 上传时间:2025-11-08 格式:PPT 页数:57 大小:895.54KB 下载积分:5 金币
下载 相关 举报
2022年单片机4.ppt_第1页
第1页 / 共57页
本文档共57页,全文阅读请下载到手机保存,查看更方便
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,5.1 中断概述,5.1.1 微机的输入/输出方式,单片机系统中,CPU和外部设备之间不断进行信息的传输。通常CPU和外设之间的信息传送方式一般有以下几种方式:,程序控制方式,中断方式,直接存储器存取(DMA)方式,1、程序控制方式,信息传送过程是在程序控制下进行。,可以分为以下两种方式。,无条件传送方式,:当外设已准备就绪,那就,不必查询外设的状态而进行信息传输,,称为无条件传送方式。,此种信息传送方式只适用于简单的外设。如开关和数码段显示器等。,条件查询传送方式,:CPU通过执行程序不断读取并测试外部设备状态,,如果输入设备处于准备好状态或输出设备为空闲状态时,则CPU执行传送信息指令。,由于条件传送方式是CPU在不断查询外部设备的当前状态后才进行信息传送,所以,也称为,“,查询式传送”,。,5.1.1 微机的输入/输出方式,2、中断控制方式,外部设备与CPU之间以中断信号作为数据交换的控制信号,。当外部设备需要与CPU进行数据交换时,由接口部件向CPU发出一个请求信号,CPU响应这一中断请求后,便可在中断服务程序中完成一个字节或一个字的信息交换。,中断控制方式一般用低速外部设备与CPU之间的信息交换。,中断控制方式每操作一次,CPU要打断原来执行的程去执行一段中断服务程序,对速度较高的外部设备将会产生信息丢失,因此不能采用。,3、DMA控制方式(直接存储器存取),DMA控制方式主要用于存储器和外设之间直接传送。,一般是数据块为单位传送数据的方式。当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA控制器接收到这一请求后,向CPU发出总线请求信号。,CPU响应DMA的请求,把总线使用权赋给DMA控制器,,外设利用DMA通道直接将数据写入存储器或将数据从存储器中读出,传送过程不需要CPU参与,。,当这批数据传送后,DMA控制器再向CPU发出“结束中断请求”,CPU响应这一中断请求,即可收回总线使用权。,采用DMA控制方式,CPU只需在数据传送结束时响应一次中断,减轻了CPU的负担,系统的速度会大大增加,。,1、中断,当CPU正在处理某段程序的时候,外部或者内部发生的某一事件请求CPU迅速去处理,于是CPU暂时中断当前的工作,去处理所发生的事件。处理完该事件后,再返回到原来被中断的地方继续原来的工作,,此过程称为中断,。,2、中断源,引起CPU中断的内部或外部事件就是中断源。,3、中断请求,中断源向CPU发的处理请求即中断请求或中断申请。,4、中断响应,CPU暂时中止正在处理的事情,转去处理突发事件的过程,称为,中断响应,。,5.1.2 中断的概念,5、其他概念,实现中断功能的部件称为,中断系统,,又称中断机构。CPU响应中断后,处理中断事件的程序称,中断服务程序,。,在CPU暂时中止执行的程序,转去,执行中断服务程序时PC值即为断点地址,。,CPU执行完中断服务程序后回到断点的过程称为,中断返回。,6、中断的功能,中断是计算机的一项重要技术,计算机引入中断后,大大提高了它的工作效率和处理问题的灵活性,主要功能有以下几个方面。,使CPU与外设同步工作,实现实时处理,故障及时处理,5.2 中断系统的结构及控制,主要内容,5.2.1 MCS-51的中断结构,5.2.2 MCS-51的中断源,5.2.1 MCS-51单片机的中断结构,MCS-51单片机的中断结构如图5-2所示,此图以89C52单片机为对象。,89C52单片机的中断系统提供6个中断源,两个中断优先级,。主要由与中断有关的5个特殊功能寄存器和硬件查询电路等组成。,特殊功能寄存器主要用于控制中断的开放和关闭、保存中断信息、设置中断的优先级别。,硬件查询电路主要用于判定6个中断源的自然优先级别,。中断系统的结构如图5-2所示,:,图5-2 89C52单片机的中断系统结构,5.2.2 MCS-51的中断源,MCS-51中断系统主要是对6个中断源进行管理,依次为:,外部中断,0,(,);,外部中断,1,(,);,定时器,/,计数器,0,;,定时器,/,计数器,1,;,定时器,/,计数器,2,;,串行口中断;,CPU,主要是通过以下几个特殊寄存器对中断源进行管理。,定时器控制寄存器TCON,TCON为定时器/计数器T0和T1的控制器,同时也锁存T0和T1的溢出中断标志及外部中断0和1的中断标志等。,与中断有关的位如下所示。,各控制位的含义:,1、TF1:定时器/计数器T1溢出中断请求标志位。Timer Full,当启动T1计数后,T1从初值开始加1计数,计数器最高位产生溢出时,由硬件使TF1置1,并向CPU发出中断请求。当CPU响应中断时,硬件将自动对TF1清0。,2、TF0:定时器/计数器T0溢出中断请求标志位。含义与TF1类同。,TF1,TF0,IE1,IT1,IE0,IT0,TCON,(88H),8FH 8EH 8DH 8CH 8BH 8AH 89H 88H,各控制位的含义,3、IE1:外部中断1(P3.3)的中断请求标志。,Interrupt Enable,当检测到外部中断引脚1 上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应中断请求时,由硬件使IE1清0。,4、IE0:外部中断0(P3.2)的中断请求标志,其含义与IE1类同。,5、IT1:外部中断1的中断触发方式控制位。Interrupt trigger,IT1=0时,外部中断1程控为电平触发方式。,CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。若外部中断1请求为低电平,则使IE1置1;若为高电平,则使IE1清0。,IT1=1时,外部中断1程控为边沿触发方式。,CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使IE1置1。直到CPU响应该中断时,才由硬件使IE1清0。,6、IT0:外部中断0的中断触发方式控制位。其含义与IT1类同。,串行口控制寄存器SCON,SCON为串行口控制寄存器,其低2位锁存串行口的接收中断和发送中断标志RI和TI。,SCON中TI和RI的格式如所示。,其控制位的含义,1、TI:串行口发送中断请求标志。Transmit Interrupt,CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。,2、RI:串行口接收中断请求标志。Receive Interrupt,在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须在中断服务程序中由软件对RI清0。,TI,RI,SCON,(98H),9FH 9EH 9DH 9CH 9BH 9AH 99H 98H,二、中断允许,寄存器IE,1、中断允许寄存器IE的格式。,2、中断允许寄存器IE中各位的含义。,EA中断允许总控制位。,EA=0,屏蔽,所有的中断请求;,EA=1,CPU,开放,中断。,对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位的状态。这就是所谓的两级控制。,ES串行口中断允许位。,Enable Serial,ES=0,,,禁止串行口,中断;,ES=1,,,允许串行口,中断。,ET1定时器/计数器T1的溢出中断允许位。,Enable Timer,ET1=0,,,禁止T1,中断;,ET1=1,,,允许T1,中断。,EX1外部中断1的溢出中断允许位。,Enable External,EX1=0,,,禁止外部中断1,中断;,EX1=1,,,允许外部中断1,中断。,ET0定时器/计数器T0的溢出中断允许位。,ET0=0,,,禁止T0,中断;,ET0=1,,,允许T0,中断。,EX0外部中断0的溢出中断允许位。,EX0=0,,,禁止外部中断0,中断;,EX0=1,,,允许外部中断0,中断。,EA,ET2,ES,ET1,EX1,ET0,EX0,AFH AEH ADH ACH ABH AAH A9H A8H,例5-1 假设允许INT0、INT1、T0、T1中断,试设置IE的值。,解:(1),用C语言字节操作指令,:,IE=0 x8f;,(2),用C语言位操作指令,EX0=1;/允许外部中断0中断,ET0=1;/允许定时/计数器0中断,EX1=1;/允许外部中断1中断,ET1=1;/允许定时/计数器1中断,EA=1/开总中断控制,汇编语言,(1),用字节操作指令,:,MOV IE,#8FH,(2),用位操作指令,:,SETB EX0;允许外部中断0中断,SETB ET0;允许定时/计数器0中断,SETB EX1;允许外部中断1中断,SETB ET1;允许定时/计数器1中断,SETB EA;开总中断控制位,SETBEA;CPU开中断,某一中断源中断请求的允许与禁止。,MOV SP,#0DFH;设置堆栈指针,对应8个中断标志,6个中断允许和优先级控制位。,sbit P1_1=P11;,P1=0 x55(d4);/驱动LED发光,汇编程序:,ORG 0000H,SJMPMAIN;,上电,转向主程序,ORG0003H;,外部中断,0,入口地址,LJMPINSER;,转向中断服务程序,ORG0030H;,主程序,MAIN,:,SETBEX0;,允许外部中断,0,中断,SETBIT0;,选择边沿触发方式,SETBEA;CPU,开中断,HERE,:,SJMPHERE;,等待中断,ORG0200H;,中断服务程序,INSER,:,MOV A,#0F0H,MOV P1,A;,设为输入,MOV A,P1;,取开关数,SWAP A;A,的高、低四位互换,MOV P1,A;,输出驱动,LED,发光,RETI;,中断返回,END,5.4 中断应用举例,例,5-4,如图,5-10,所示,此中断电路可实现系统的故障显示。当系统的各部分正常工作时,四个故障源的,输入,均为,低电平,,,显示灯全不,亮。当有某个部分,出现故障,时,则相应的,输入,线由,低电平变为高电平,,相应的发光,二极管亮,。,C语言程序,:,#include,sbit P1_0=P10;,sbit P1_1=P11;,sbit P1_2=P12;,sbit P1_3=P13;,sbit P1_4=P14;,sbit P1_5=P15;,sbit P1_6=P16;,sbit P1_7=P17;,void main(),P1=0 x55;/P1.0,P1.2,P1.4,P1.6为输入,P1口其他引脚输出,EX0=1;/允许外部中断0中断,IT0=1;/选择边沿触发方式,EA=1;/CPU开中断,while(1);/等待中断,void int0_server()interrupt 0,if(P1_0)P1_1=1;,if(P1_2)P1_3=1;,if(P1_4)P1_5=1;,if(P1_6)P1_7=1;,中断服务程序也可写为:,void int0_server()interrupt 0,unsigned char data d;,P1=0 x55;,d=P1;,P1=0 x55(d1);,汇编程序:,ORG0000H,LJMPMAIN;,上电,转向主程序,ORG0003H;,外部中断,0,入口地址,LJMPINSER;,转向中断服务程序,MAIN:,MOV SP,#0DFH;,设置堆栈指针,ANLP1,#55H,SETBEX0;,允许外部中断,0,中断,SETBIT0;,选择边沿触发方式,SETBEA;CPU,开中断,HERE:,SJMPHERE;,等待中断,INSER:,JNBP1.0,L1;P1.0=0,,转,L1,SETBP1.1;,是引起的中断,使相应的二极管亮,L1:JNBP1.2,L2;,继续查询,L2:JNBP1.4,L3,L3:JNBP1.6,L4,L4:RETI;,中断返回,END,【,例】,红外报警控制系统,P3.2接红外探头,P1.0控制继电器(继电器控制报警器);P1.1接一复位按键。,要求如下:当单片机接收到红外探头的报警信号,使继电器闭合、报警器发出声响。直至按下复位按键,停止声响报警。原理图如图4.1.6所示。,解:利用中断程序,使P1.0输出低电平,经光耦使8050导通,继电器线圈得电工作。,主程序主要完成清除功能,一旦检测到P1.1为低电平,表示按钮SA被按下,P1.0输出高电,则停止报警。,程序清单:,ORG0000H,LJMPMain;跳转主程序,ORG0003H,LJMPIN0pro;跳转中断服务程序,Main:SETBIT0;中断初始化,SETBEX0,SETBEA,MOVP1,#0FFH;置输入方式,Continue:NOP,JNBP1.1,Out;P1.1=0,有键按下,SJMPContinue,Out:SETBP1.0;关报警,LJMPContinue;,INT0pro:CLRP1.0;继电器吸合,开报警,RETI,END,#include,sbit P1_0=P10;,sbit P1_1=P11;,Void main(),IT0=1;,EA=1;,EX0=1;,While(P1_1);,Void,int0_server,()interrupt 0,while(P1_1=1),P1_0=0;,P1_0=1;,见PROTUES仿真“报警”,本章小结,本章介绍了中断的基本概念,中断的结构、控制、相应过程、以及中断的应用。,89C52,单片机内部有,6,个中断源,它们分别是外部中断,0,、外部中断,1,、定时器,0,,,1,,,2,和串行口。对应,8,个中断标志,,6,个中断允许和优先级控制位。,不同中断源有不同的中断入口地址,读者在编制程序时一定要注意正确区分中断源,从而保证中断功能的正确实现。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服