2022年单片机课件33_第1页
2022年单片机课件33_第2页
2022年单片机课件33_第3页
2022年单片机课件33_第4页
2022年单片机课件33_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

计算机采用中断控制技术主要用在以下三个方面:(1)故障处理(2)分时操作(3)实时处理7.1中断概述无条件传送方式查询式传送方式中断传送方式直接存贮器存取(DMA)方式。1.计算机与外设交换信息的方式四种传送方式:无条件传送方式CPU认为外设已经处于“准备好”状态。适用:CPU和外设速度相当,如CPU访问存贮器。虽然外设速度较慢,但CPU二次传送间隔长,足使外设已经处于“准备好”状态。查询式传送方式外设有一个反映其工作状态的信息,CPU通过查询该状态信息,了解外设是否已准备好。如外设已准备好,则CPU与外设交换数据,如没有准备好,则CPU等待。

中断传送方式由外设提出请求,在满足一定的条件下,CPU中断现有程序执行,转而为外设服务,服务完后,又继续执行原来程序。直接存贮器存取(DMA)方式外设与存贮器之间直接交换数据。一般用于存贮器与外设有大量数据进行传送,而且外设速度相当快。如硬盘和存贮器进行数据传送。2中断的基本概念例如:输入、输出设备,打印机、键盘等。定时器;串行口;故障源:如电源掉电、存贮出错等。中断源:引发中断的事件称为中断源中断优先级解决多个中断源同时向CPU提出中断请求的问题。方法:硬件优先权编码器;软件排队;

中断嵌套在中断处理过程中又有高优先级别的中断发生。216-x=20000故障源:如电源掉电、存贮出错等。MCS-51单片机有五个中断源。PT1—定时器/计数器T1中断优先级控制位MOVR0,#25;重置初值MOVTL0,#0E0HMOVTH0,#0F0H216-x=20000由外设提出请求,在满足一由外设提出请求,在满足一MOVTH0,#0B1H;重置T0时间常数直接存贮器存取(DMA)方式。MOVIE,#82H;定时器T0/T1:定时器溢出时,TF0/TF1置位,进入中断服务程序后自动清零。外部中断0最高级

中断的开放与关闭开中断:就是允许CPU接受中断源提出的中断请求。关中断:就是不允许CPU接受中断源提出的中断请求。

中断处理过程中断请求:中断源向CPU提出中断请求信号中断响应:CPU检测到中断请求信号在一定的条件下才能响应1.开放中断;2.若CPU正在响应某一个中断,则新的中断源必需是高优先级的中断源;3.当前指令执行完。中断处理;中断返回。MCS-51单片机有五个中断源。由中断源寄存器TCON和SCON的相关位向CPU提出中断请求;由中断允许寄存器IE控制中断的开放/关闭;由中断优先级控制寄存器IP和软件查询控制中断源的中断优先级别;当CPU要为某个中断源服务时能由五个相应的中断入口矢量地址自动转入中断服务程序。7.2MCS-51单片机的中断管理系统两个外中断:INT0(P3.2)和INT1(P3.3);两个片内定时器T0和T1的溢出中断源;一个片内串行口发送或接受中断源。

2.五个中断源TIRI

SCON(98H)9FH9EH9DH9CH9BH9AH99H98HTI/

RI:串口发送/接受中断请求标志外部中断0/中断1:P3.2和P3.3引脚有下跳变或低电平时,IE0/IE1置位;进入中断服务程序后,自动清零。定时器T0/T1:定时器溢出时,TF0/TF1置位,进入中断服务程序后自动清零。串行口:当接受或发送一帧数据后,TI/RI置位。进入中断服务程序后不能自动复位,必须用软件清零。5.中断的开放和关闭由中断允许控制寄存器IE实施EAESET1EX1ET0EX0

IE(A8H)AFHAEHADHACHABHAAHA9HA8H

EA

—中断允许总控制位;ES—串口发送/接受中断允许;ET1/ET0—定时器T1/T0中断允许;EX1/EX0—外中断1/外中断0中断允许;

1:开放中断0:关闭中断假设允许外部中断0中断,定义下跳变触发,禁止其他中断,

。试设置IE的相应值。

(1)用字节操作指令MOVIE,#81H;MOVTCON,#1HEAESET1EX1ET0EX0

IE(A8H)AFHAEHADHACHABHAAHA9HA8HTF1TF0IE1IT1IE0IT0

TCON(88H)8FH8EH8DH8CH8BH8AH89H88H(2)用位操作指令

SETBEA ;CPU开中断SETBEX0;外部中断0允许中断SETBIT0 ;定义边沿触发有两级中断优先权。通过对中断优先级寄存器IP编程设定为高优先级或低优先级。同级的中断源同时申请中断时,CPU内部有一个软件排队查询次序。

PSPT1PX1PT0PX0

IP(B8H)

BCHBBHBAHB9HB8HPS—串行口中断优先级控制位PT1—定时器/计数器T1中断优先级控制位PX1—外部中断1中断优先级控制位PT0—定时器/计数器T0中断优先级控制位PX0—外部中断0中断优先级控制位。中断优先级寄存器IP1:高优先级;0:低优先级

同级的中断源同时申请中断时,CPU内部有一个软件排队查询次序。

外部中断0最高级定时器T0中断外部中断1定时器T1中断串行口中断最低级7.中断响应过程CPU查询到中断源的中断请求;没有同级或更高级的中断正在响应;当前的指令执行完毕;若正在执行RETI或访问IE、IP的指令,则必须再另外执行一条指令后才可以响应中断;CPU响应中断时,将中断点的地址压入堆栈,根据中断源类型转入相应的中断矢量地址。8.中断入口地址如何编写与中断有关的程序:1.在中断矢量地址处安排一条跳转指令。2.中断初始化。开中断;确定中断优先级别;若是外部中断源,应规定是电平触发还是边沿触发方式。初始化程序应安排在主程序中。3.编写中断服务程序。首先保护现场,然后执行中断服务程序,再恢复现场,最后用RETI指令,以实现中断返回。7.3中断系统的应用1)利用定时器扩展外部中断源将定时器T0/T1设置为计数方式,计数初值为最大值,一旦外部计数脉冲输入引脚(P3.4或P3.5)有一个由高到低的下跳变信号,计数器加1后产生溢出中断。。

START:MOVTMOD,#06H;置T0为计数器及工作方式2MOVTL0,#0FFH;置计数初值MOVTH0,#0FFHSETBET0;开中断SETBEASETBTR0;启动T02)利用查询方式扩展外部中断源中断服务程序如下:PUSHPSW;保护现场PUSHACCORLP1,#0FH;P1口低四位置成输入方式MOVA,P1;读入P1口状态JBACC.0,A1ACALLBR1A1:JBACC.1,A2ACALLBR2A2:JBACC.2,A3ACALLBR3A3:JBACC.3,A4ACALLBR4A4:POPACCPOPPSWRETIBR0:…;EK1中断服务程序RETBR1:…;EK2中断服务程序RETBR3:…;EK3中断服务程序RETBR4:…;EK4中断服务程序RET例7.4选用T0方式0产生500μs

定时,在P1,0输出1ms的方波,

晶振fosc=12MHz,要求用中断

方式实现。

START:MOVTMOD,#0MOVTL0,#0CHMOVTH0,#0F0H;定时器初始化SETBEA;开放中断SETBET0SETBPT0;定义高优先级SETBTR0;启动定时器T0SJMP$;模拟主程序,等待中断ORG000BH;定时器T0中断入口LJMPPTFO;转至中断服务程序PTFO:MOVTL0,#0CH;中断服务程序MOVTH0,#0F0HRETI例7.5要求用定时器控制方波输

出,但要求方波的周期为1s,

单片机时钟仍为12MHz。采用定时器定时和软件计数器相结合的办法来实现500ms定时。设定时器定时值为20ms,软件计数器初值为25,每20ms产生一次定时中断,同时软件计数器减1,当软件计数器等于0时,即实现了500ms定时,先计算20ms定时器初值x,采用定时器方式1。216-x=20000x=45536=B1E0H程序设计如下:ORG000BHLJMPINTIMESTART:MOVTMOD,#01H;定时器初始化MOVTH0,#0B1HMOVT

温馨提示

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

评论

0/150

提交评论