单片机专题六输入输出和中断课件_第1页
单片机专题六输入输出和中断课件_第2页
单片机专题六输入输出和中断课件_第3页
单片机专题六输入输出和中断课件_第4页
单片机专题六输入输出和中断课件_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

专题六输入输出和中断系统第五章主讲教师赵晓安计算机科学与软件学院计算机基础教学部主讲教师赵晓安计算机硬件技术基础1输入/输出的基本概念2输入/输出数据的传送方式3中断技术

MCS-51的中断系统学会MCS-51中断程序设计及应用学会与中断有关的硬件连线

本章重点及要求5.1输入/输出的基本概念5.2输入/输出数据的传送方式5.3中断技术5.4MCS-51的中断系统5.5MCS-51对外部中断源的扩展

第五章

输入/输出和中断5.1.1输入/输出设备5.1.2输入/输出传送的信息5.1.3输入/输出接口的作用及其类型5.1.4I/O端口的编址方式5.1输入/输出的基本概念5.2.1无条件传送方式(又称同步传送)5.2.2查询式传送方式(又称条件传送——异步传送)5.2输入/输出数据的传送方式5.2.3中断传送方式5.2.4DMA传送方式5.5.1借用定时器/计时器溢出中断扩展外部中断源(P160利用计数溢出,扩展中断源)来自P3.4(T0)或P3.5(T1)引脚的外部输入计数脉冲相当于中断请求信号5.5.2使用硬件申请软件查询法扩展外部中断源(P161硬件申请,软件查询的方法)5.5MCS-51对外部中断源的扩展5.1.1输入/输出设备

输入设备:

定义:往主机传送信息的设备

常用的输入设备:键盘、鼠标、扫描仪、读卡机等

输出设备

定义:接收主机信息并送出信息呈现给人们的设备

常用的输出设备:显示器、打印机、绘图仪等外设与CPU是通过接口连接CPU接口接口外设1外设2地址总线AB数据总线DB控制总线CB5.1.2输入/输出传送的信息

数据信息

数字量

模拟量

开关量

状态信息表征外设状态

控制信息控制外设启停

在输入时,输入装置的信息是否准备好(Ready);在输出时,输出装置是否有空(Empty),若输出装置正在输出信息,则以Busy指示。

二进制形式表示的数或以ASCⅡ码表示的数或字符。

模拟量必须先经过A/D转换才能输入计算机,计算机的控制输出也必须先经过D/A转换才能控制执行机构。

只要用一位二进制数即可表示的量,如电机的运转与停止,开关的合与断,阀门的打开和关闭等。5.1.3输入/输出接口的作用及其类型接口电路的作用

锁存作用防止由于CPU速度快,外设慢而产生的丢数现象

隔离作用防止DB上的信息重叠

变换作用在CPU与外设之间进行信息类型、电平、传送接收方式变换

联络作用在CPU与外设之间进行联络,Ready,Busy输出接口电路——锁存作用输出接口中必须含锁存器接口电路(锁存器).......锁存信号写选通输出数据DB来自CPU速度匹配输入接口电路——隔离作用输入接口中必须含三态门接口电路(三态门).......读选通信号输入允许输入数据接口电路(三态门).......输入数据DB防止信息重叠1、

I/O接口的种类很多,有两种基本类型串行I/O接口并行I/O接口2、不可编程接口例:74LS273、74LS373、74LS138、74LS2443、可编程接口例:8155、8255、8250、8253I/O接口的类型5.1.4I/O端口的编址方式

统一编址

I/O端口与内存储器采用一套地址,完全象存储器单元一样处理,使用访问存储器的指令。如:movx类指令

独立编址

采用一套与存储器不同的地址,利用/MREQ(存储器请求)和/IORQ(输入输出请求),CPU有专门的I/O指令如:IN,OUT

MCS51系列采用统一编址

片内RAM与P0~P3均用MOV指令

片外RAM与外扩口I/O口均用MOVX指令

接口与端口接口:由一个或多个端口组成。端口:可被独立选通的I/O接口电路,简称口。端口地址:端口在系统中被分配的惟一地址,简称口地址。端口可分为:输入端口——CPU从中读取外设的状态或数据信息输出端口——CPU通过它输出控制信号或数据信息状态端口——CPU从中读取外设的状态信息控制端口——由CPU控制输出控制信号数据端口——可以是输入数据端口或输出数据端口

I/O信息都是通过数据总线传递的。

5.2.1无条件传送方式(又称同步传送)

应用于定时为已知的且固定不变的低速I/O

无需等待的高速I/OmovxA,@DPTRmovx@DPTR,ADB三态门锁存器地址译码器地址译码器来自外设至外设ABRDWR无条件输入输出举例MCS-51单片机内部的I/O口6.1.2P1口

功能:

P1口作通用I/O口

P1口也是一个“准双向”口,作输入口时要先将输出驱动管截止。即先执行一条指令

MOVP1,#0FFH内部结构:如图所示1、无条件传送方式2、查询方式3、中断方式利用P1口实现三种I/O传送方式1、无条件传送方式

1)无条件输出 ORG 8000H LJMP Main ORG 80F0HMain: MOV R7,#0Loop:MOV R6,#0 DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R7,Loop CPL P1.0 CPL P1.1 CPL P1.2 CPL P1.3 CPL P1.4 CPL P1.5 CPL P1.6 CPL P1.7 SJMP Main END8个发光二极管闪亮“0”亮“1”灭思考题若使8个LED循环点亮如何修改程序?1、无条件传送方式

2)无条件输入/输出 ORG8000H AJMPMAINORG8100HMAIN:MOVA,#0FFHMOVP1,AMOVA,P1

SWAPA

MOVP1,A

HERE:SJMPHERE

END

5.2.2查询式传送方式(又称条件传送——异步传送)

CPU查询外设状态信息(Ready,Busy),条件满足时,进行数据传送

程序简单

高速CPU查询低速外设

浪费CPU时间,效率低

输入接口原理图

输出接口原理图

程序流程图查询方式举例输入接口原理图地址译码器QRD三态缓冲器锁存器输入设备5V选通信号RD口地址PORTD译码PORTS译码D6Ready状态信号DB外设准备好,置入状态信号Q=1CPU读数据口时清掉状态信号输出接口原理图外设收到CPU数据后以“应答信号”清掉状态信号CPU写入数据后,置入状态信号Q=1口地址地址译码器QRD5V应答信号WR锁存器输出设备PORTD译码PORTS译码状态线Busy状态信息D6RDDB条件传送方式程序举例Test:movDPTR,#PORTSmovxA,@DPTRanlA,#40HjzTest;(jnzTest)movDPTR,#PORTDmovxA,@DPTR

;输入

(movx@DPTR,A;输出)0/1状态信号D6输入端口状态准备好?传送信息YESNOReady=1Busy=0(A)查询举例2、查询输出 ORG8000H LJMPMain ORG8100H Main:JB P1.7,SETLEDCLRLED:CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP MainSETLED:SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SJMP Main END思考题若当P1.7=0时使7个LED向左/右两个两个的循环点亮,如何修改程序?若当P1.7=1时,使7个LED从中间向左右方向逐个点亮,如何修改程序?5.2.3中断传送方式

中断:要求进行输入、输出的外设,发出就绪信号给CPU,作为中断请求,打断CPU正在进行的工作,即中断CPU正在执行的程序。

中断过程

中断方式与查询方式比较

提高了CPU的效率

CPU与外设可并行工作

CPU可及时响应外部事件中断过程

外设发出中断请求信号CPU(有条件)响应中断进行中断服务(执行中断服务程序,执行响应I/O操作)中断返回(继续执行原程序)中断方式与查询方式CPU占用时间比较打印机打印时间数据传输时间查询等待时间数据传输时间执行主程序中断服务时间中断方式查询方式外设工作

利用DMAC(DMA控制器)实现成组、大批量的数据在内存和外设之间的快速传送。

DMA过程:

优点:速度快

缺点:硬件复杂,成本增加5.2.4DMA传送方式DMA过程

外设向DMAC发DMA申请

DMAC向CPU发BUSRQ

CPU发BUSAK响应

DMAC发存储器地址和读写信号

DMA控制结束,恢复CPU对总线控制BUS外设接口DMACCPU存储器①②③存储器CPUI/O接口外设DMA控制器5.3.1中断的定义及必要性定义:所谓中断是指中央处理器CPU正在处理某件事的时候,外部发生了某一事件,请求CPU迅速处理,CPU暂时中断当前的工作,转入处理所发生的事件,处理完后,再回到原来被中断的地方,继续原来的工作。这样的过程称为中断。必要性及应用中断功能便于实现1.分时操作2.实时处理3.故障处理4.主机与外设之间的速度匹配CPU和外设同时工作;CPU可以通过分时操作启动多个外设同时工作,统一管理。大大提高了CPU的利用率,也提高了输入、输出的速度。

当计算机用于实时控制时,中断是一个十分重要的功能。现场的各个参数、信息,需要的话可在任何时候发出中断申请,要求CPU处理;CPU就可以马上响应(若中断是开放的话)加以处理。这样的及时处理在查询的工作方式是做不到的。

计算机在运行过程中,往往会出现事先预料不到的情况,或出现一些故障:如电源突跳,存储出错,运算溢出等等。计算机就可以利用中断系统自行处理,而不必停机或报告工作人员。

外设中断请求

实时时钟中断请求

控制对象中断源

故障引起的中断

人为设置的中断5.3.2中断源

人为设置的中断,不是随机的,故称为自愿中断。强迫中断引起的中断都是随机。5.3.3中断的分类1.可屏蔽中断(MaskableInterrupt)

2.非屏蔽中断(NonMaskableInterrupt)

3.软件中断(SoftwareInterrupt)

INTNMIMCS-51就是具有可屏蔽中断功能的一类CPU。中断类型中断请求信号

可屏蔽中断INT中断请求输入线上输入非屏蔽中断NMI中断请求输入线上输入软件中断用中断指令使CPU响应中断中断类型CPU响应中断的方式可屏蔽中断开中断指令响应关中断指令屏蔽INT上来的低电平中断请求非屏蔽中断CPU必须予以响应,不能由软件指令屏蔽软件中断CPU只要执行这种指令,完成相应的中断功能5.3.4中断系统的功能

中断系统包括中断源的产生、中断判优、中断查询、中断处理等实现这一全过程的硬件和软件。

中断技术对中断全过程的分析、研究及实现的方法中断判优

多中断源同时发出中断请求,CPU根据中断的优先级判断优先执行的中断请求。

中断嵌套CPU正在执行主程序CPU正在执行低级中断服务程序CPU正在执行高级中断服务程序挂起的中断中断查询

软件查询

硬件查询

中断优先级链式电路

中断优先级编码电路三态门DB+中断请求……ALmovDPTR,#PortImovxA,@DPTRRLCAJCASVRLCAJCBSV……ASV:……BSV:……先查询的优先级高硬件申请软件查询中断处理

中断响应条件

CPU处于开中断状态:51内部有中断允许触发器EAEA=0禁止中断;EA=1开放中断。

中断响应过程

中断响应:停止现行程序,转向中断处理程序入口地址

关中断(MCS-51响应中断后,不自动关中断)

保护断点(自动将断点地址压入堆栈)

执行中断处理程序执行中断处理程序

保护现场保护中断服务程序中用到的寄存器和状态标志的内容

中断服务相应的中断源服务,完成一定的I/O操作

恢复现场完成中断服务后,将保存在堆栈中的现场数据恢复

开中断和中断返回RETI(中断返回指令)pushPSWpushACCpushDPHpushDPL

popDPLpopDPHpopACCpopPSW请看P159图5-22

(1)设置中断请求触发器(又称中断标志触发器)

每个中断源需有一个中断请求触发器,

保持中断请求信号,直至CPU响应这个中断后,才可清除中断请求。当中断请求触发器为“1”状态时(Q=1),表示有中断产生;Q=0表示没有中断产生。中断响应条件CPU响应中断的条件主要有以下几点:设置中断请求的情况CPU中也要有中断标志触发器,有中断请求则置1。(2)需设置中断屏蔽触发器(又称中断允许触发器)

每一个中断源的接口电路中需增加一个中断屏蔽触发器,只有当此触发器为“1”时,中断源的中断请求才能被送出至CPU。具有中断屏蔽的接口电路

(3)中断是开放的

在CPU内部有一个中断允许触发器EA。只有当EA为“1”时(即中断开放时),CPU才能响应中断;若EA为“0”(即中断是关闭的),这时外部有中断请求,CPU不会响应,EA的状态是可以用指令来控制的(称为可编程的)。

(4)需设中断优先级触发器在CPU内部要设置中断优先级触发器,以实现嵌套;在各中断源中也要设一个中断优先级触发器,由指令置位/复位,以表示本中断源在中断系统中的优先级。

(5)CPU在现行指令结束后响应中断在开中断情况下,若中断源有中断请求,CPU也并不是立即响应,只是当正在执行的指令运行到最后一个机器周期T状态时,CPU才采样中断源。若发现有中断请求,则把内部的中断标志锁存器置“1”,然后下一个机器周期不进入取指周期,而进入中断周期。MCS-51的中断系统的结构EX0EX1ET0ET1ESEAPX0PX1PT0PT1PS5.4.1MCS-51的中断源和中断标志MCS-51共有5个中断源

外部中断0

外部中断1

T/C0溢出中断

T/C1溢出中断

串行口中断外部中断请求0、1

中断请求信号输入引脚:外部中断0请求引脚:INT0(P3.2)外部中断1请求引脚:INT1(P3.3)INT08031INT1电平触发:低电平边沿触发:负边沿

中断请求信号

外部中断请求信号触发方式选择(IT0/1位)SETBIT0

外部中断请求标志位、中断允许位、优先级选择位:INT0/1IT0/1=0

IT0/1=11IE0/1EX0/1EAPX0/101高低D7D0TF1TF0IE1IT1IE0IT0TCON

IT0(IT1):外部中断请求0(1)的触发方式选择

IT0=0电平触发方式;IT0=1边沿触发方式

IE0(IE1):外部中断请求0(1)的中断申请标志

IT0=0CPU每个机器周期采样/INT0,若/INT0=1则IE0=0否则/INT0=0,IE0=1申请中断

IT0=1若第一个机器周期/INT0=1,第二个机器周期/INT0=0,则IE0=1申请中断,否则IE0=0

转向中断服务时边沿触发方式下IE由硬件清零

转向中断服务时电平触发方式下硬件不清IE,待申请信号撤消。T/C0、T/C1溢出中断D7D0TF1TF0IE1IT1IE0IT0TCON

TF0:51片内定时/计数器0溢出中断请求标志。

定时/计数器0溢出时,TF0由硬件置1

CPU响应中断时自动清零TF0

TF0也可软件清零

TF1:51片内定时/计数器1溢出中断请求标志串行口中断

RI:串行口接收中断标志

RI=1串行口接收中断

TI:串行口发送中断标志

TI=1串行口发送中断

RI、TI由硬件置位

必须由软件清零

SCOND7D0RITI5.4.2MCS-51对中断请求的控制

总结中断源的各个触发器(p163)表5-1)中断源中断标志1/0中断允许1/0中断级别1/0外部INT0IE0(TCON.1)EX0(IE.0)PX0(IP.0)外部INT1IE1(TCON.3)EX1(IE.2)PX1(IP.2)定时器0TF0(TCON.5)ET0(IE.1)PT0(IP.1)定时器1TF1(TCON.7)ET1(IE.3)PT1(IP.3)串行口RI(SCON.0)TI(SCON.1)ES(IE.4)PS(IP.4)CPU标志EA(IE.7)

寄存器:TCON、SCON、IE、IP

复位后,这四个寄存器均为00H。若设置串行口和定时器/计数器1为高级中断:

SETBPSSETBPT1问:设置后,那个中断源的优先级最高?那个中断源的优先级最低?答:设置后,优先级的顺序为:

TF1RI/TI

INT0TF0

INT1

高级低级同级默认顺序复位后(IP)=00H5个中断源均为低级中断,同级默认顺序:

INT0TF0

INT1TF1

RI/TI5.4.3MCS-51对中断的响应与撤消

MCS-51中断响应的基本条件

MCS-51中断响应过程

MCS-51中断响应时间

MCS-51中断请求的撤消MCS-51中断响应的基本条件

51CPU中断受阻的条件:

CPU正在处理相同或更高级中断

现行的机器周期不是所执行指令的最后一个机器周期

正在执行的指令是访问IE、IP或RETI指令

在执行上述指令后至少再执行一条指令,才可能响应中断。

MCS-51的中断响应的基本条件:

首先要有中断源发出中断申请;

中断总允许位EA=1,即CPU允许所有中断源申请中断;

在中断源寄存器TCON和SCON中,申请中断的中断标志位为1,即此中断源可以向CPU申请中断。A

51CPU自动完成:

CPU先在每个机器周期的S5P2期间,对各中断源重复进行查询,并设置相应的中断标志位。

如果中断响应条件满足,且不存在中断阻断的情况,则CPU就响应中断。

硬件生成长调用指令自动地把断点地址压入堆栈保护,并随之将对应的中断入口装入程序计数器PC,使程序转向该入口地址,以执行中断服务程序。A用户必须完成:

在这些入口地址存放一条无条件跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去。MCS-51响应中断的过程MCS-51的中断响应过程中断源

入口地址

同级中断优先级

IE0

0003H

TF0

000BH

IE1

0013H

TF1

001BH

TI/RI

0023H

中断入口地址表低级中断源的中断服务程序用户编程设计CLREASETBEA5.4.4MCS-51中断系统的初始化及应用1、MCS-51中断系统的初始化中断系统初始化步骤为:

1)CPU开中断或关中断;

2)某中断源中断请求的允许或禁止(屏蔽);

3)设定所用中断的中断优先级;

4)若为外部中断,则应规定低电平还是负边沿的中断触发方式。

解:(1)采用位操作指令

SETBEA;CPU开中断

SETBEX1;开/INT1中断

SETBPX1;令/INT1为高优先级

CLRIT1;令/INT1为电平触发

(2)采用字节型指令

MOVIE,#84H;开/INT1中断

ORLIP,#04H;令/INT1为高优先级

ANLTCON,#OFBH;令/INT1为电平触发IT1=0[例5-1]请写出/INT1为低电平触发的中断系统初始化程序

(1)主程序

主程序除了用来对MCS-51本身中断系统初始化外,还经常用来对具有中断功能的外部扩展的可编程I/O接口、可编程内部定时器/计数器T/C0、T/C1和可编程内部串行口等初始化,程序如下:

ORG0000HAJMPMAIN┆MAIN:;MAIN为主程序首地址┆

复位后,其PC的内容被强迫置成0000H

上电启动,CPU就执行0000H单元的指令

必须在0000H单元放一条跳转到主程序的跳转指令,实现了上电自动转向主程序2、程序设计方法(2)中断服务程序

中断服务程序是一种具有特定功能的独立程序段,它为中断源的特定要求服务,其一般低级中断源程序编写格式如下:

ORGZDRKAJMPINTVS┆INTVS:CLREAPUSHACCPUSH01H┆

SETBEA┆中断服务

CLREAPOP01HPOPACC

SETBEARETI中断服务程序入口地址:ZDRK0003H000BH0013H001BH0023H高级中断服务程序的设计GJZHD:CLREA

保护现场

……

中断处理

……………………

恢复现场

SETBEARETI嵌套RETI完整程序 ORG0000H AJMPMAIN ORG0003H AJMPINT0SV ORG000BH AJMPTC0SV ORG0013H AJMPINT1SV ORG001BH AJMPTC1SV ORG0023HAJMPSSV ORG0100HMAIN:……SJMP$ ORG2000HINT0SV:… RETI ORG3000HTC0SV:……RETI ORG4000HINT1SV:… RETI ORG5000HTC1SV:… RETI ORG6000HSSV:…… RETI注意:

要执行主程序

PC指针必须从

0000H开始执行MCS-51的中断程序设计举例[例5-2]请根据图6-2的支持电路,编出CPU响应INT0上中断时的主程序和中断服务程序。P1口中断方式传送

ORG0000H AJMPMAIN

ORG0003HLJMPINT0SV ORG0100HMAIN:MOVSP#6FH

SETBIT0 SETBEX0 SETBEA

SJMP$;等待中断INT0SV:

PUSHPSW PUSHACC MOVA,#0FFH MOVP1,A MOVA,P1 SWAPA MOVP1,A

POPACC POPPSW

RETI END初始化部分中断嵌套程序设计

ORG0000HAJMPMAINORG0003HLJMPI0SVORG0013HLJMPI1SVMAIN:MOVSP,#60HSETBPX1SETBEX0SETBEX1SETBIT0SETBIT1SETBEASJMP$DLY:

MOVR6,#50HDYL1:MOVR7,#200DJNZR7,$DJNZR6,DYL1RET

ORG1000HI0SV:CLREAPUSHACC

SETBEAMOVA,#0FEHMOVR2,#00HLOOP:MOVP1,AACALLDLY

RLADJNZR2,LOOP

CLREAPOPACC

SETBEARETI

ORG1100HI1SV:CLREAPUSHACCMOVA,#7FHMOVR2,#00HLOOP1:MOVP1,AACALLDLYRRADJNZR2,LOOP1POPACC

SETBEA

RETIEND+5VINT0INT18051R1R2K1K2+5VRLED0P1.0+5VRLED7P1.7……调试:改8000H答:将子程序入口地址压入堆栈,因为它是CALL指令的转移目标地址,而不是CALL的下一条指令地址。问:响应中断后什么地址压入堆栈?答:将SJMP$指令的转移目标地址压入堆栈。即中断在本指令处产生,本指令的目标地址是本指令地址。问:若中断在CALL指令执行后产生,响应中断后什么地址压入堆栈?问:若要控制中断的次数,在主程序中采用

CJNER7,#10,NEXT指令,NEXT标号应写在什么语句上?答:将NEXT标号写在本指令上。即:NEXT:CJNER7,#10,NEXT;等待中断必须在中断服务程序中

温馨提示

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

评论

0/150

提交评论