第5章MCS51单片微型计算机的输入输出和中断系统_第1页
第5章MCS51单片微型计算机的输入输出和中断系统_第2页
第5章MCS51单片微型计算机的输入输出和中断系统_第3页
第5章MCS51单片微型计算机的输入输出和中断系统_第4页
第5章MCS51单片微型计算机的输入输出和中断系统_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

计算机基本输入/输出接口概述

计算机在实际应用中,程序、数据或从现场采集到的各种信号要通过输入设备送到计算机中去处理。计算机处理后的结果或各种控制信号要输出到输出装置或执行机构,以便显示、打印或实现各种控制动作。常用的输入装置有键盘和各种现场采集装置;输出装置有打印机、显示器和现场执行机构。I/O设备种类:有电子式、机械式及其它各种形式。速度差异:有秒级、毫秒级、微秒级信号类型:有数字量、模拟量、开关量。数据的格式有串行、并行等。因此,外围设备一般不能与计算机直接相连,必须通过专门的中介电路—接口,才能与CPU进行信息交换。I/O接口:用于连接CPU与I/O设备的所有接口统称为I/O接口。

某些通用集成电路芯片可以用作I/O接口,如74LS373、74LS165等。更大量的I/O接口芯片是专门为计算机设计的,如ADC0809、MAX232、8279等。I/O接口电路应有以下功能:1)数据缓冲:2)信号变换:3)电平转换:4)传送控制命令和状态信息:计算机与外围设备间传送三种信息:数据信息、状态信息和控制信息。如计算机与打印机接口时,首先计算机将待打印的字符代码(数据信息)送入电路锁存,同时通过I/O电路送出控制信息启动打印机接收字符代码并打印一行字符。打印完后,打印机要通过I/O电路向计算机发出打印机“空闲”的状态信息,要求计算机再次输出数据。

输入/输出的编址方式

1.I/O接口与存储器统一编址2.I/O接口单独编址

输入/输出的工作方式1、无条件传送方式2、查询传送方式3.中断传送方式4.直接数据信道传送(DMA)方式

图5-3查询方式输入接口电路

P0.7

····

P0.0

8051

ALE地址锁存器三态缓冲器数据锁存器QRD

DC≥1A7≥1D0 输入装置8位数据VCC选通A3如何编程读取输入装置数据

MOVR0,#0FEH ;指向状态端口TEST:MOVXA,@R0 ;读取状态信息

JNB ACC.0,TEST ;输入装置准备好吗? ;D0=0继续等待

DEC R0 ;数据准备好,指向数据端口

MOVXA,@R0 ;读入数据MCS-51系列单片机输入/输出端口控制MCS-51系列单片机输入/输出概述MCS-51系列单片机有4个8位双向并行输入/输出(I/O)端口:P0、P1、P2和P3,共32位,P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,口线被拉成高电平)。此四个端口都可以做为单独的输入或输出使用,即每一支I/O脚位都可以做输入用,也可以做为输出使用。当做为输出时,则每一只管脚可位编程输出高电平“1”或低电平“0”驱动外部电路。 实际应用中,P0口用于输出外部存储器的低8位地址,并分时复用作为与外部存储器连接的数据总线口;P2口用于输出高8位地址;P3口常用于特殊功能寄存器。只有P1口是留给用户使用的基本I/O口,供用户使用。MCS-51单片机输入输出(I/O)端口编程

P1口既可以做输入端口又可以做输出端口。在我们所用的实验板中,P1口通过反向驱动电路ULN2003控制数码管工作。试根据实验板I/O控制端口原理图,设计通过89S51单片机的P1口控制二极管发光(要求用软件延时使其产生动态效果)。根据硬件原理,通过P1口可控制发光二极管及蜂鸣器工作。I/O口控制原理图如图5-5所示。硬件电路分析:图中反向驱动放大器ULN2003接发光二极管阴极,发光二极管阳极通过限流电阻接+5V电源(限流电阻的计算应以发光二极管亮度满足要求即可。电流小,亮度不够;电流大,耗电、影响二极管寿命,一般二极管电流为15mA左右)。J2为3列8行排针,排针的1、4、7、10、13、16、19接ULN2003的输入,3、6、9、12、15、18、21、24为排针的中间引脚,2、5、8、11、14、17、20、23接89S51的P1口。要由编程控制发光二极管发光,ULN2003必须输出低电平,而ULN2003的输入必须接89S51的P1口,才能通过软件编程控制二极管发光,所以应借助短路环将J2中的(1、2)、(4、5)、(7、8)、(10、11)、(19、20)短接。将J15中的(1、2)、(4、5)用短路环短接。硬件电路检测。线路接好后,用万用表电阻档检测89S51的P10、P11、P12、P13、P14、P15、P16是否与ULN2003的输入1、2、3、4、5、6、7接通。若接通,硬件电路连接正常,若不通,应检查线路硬件故障,直至接通为止(注意:不能测P10、P11、P12、P13与ULN2003的输出端)软件编程分析:1)通过置位指令或字节传送指令使P10~P16输出为“1”时,通过ULN2003输出为“0”,则LED亮、蜂鸣器叫;当P1口输出为“0”时,LED熄灭、蜂鸣器停。2)要让二极管发光,必使P1端口为高电平

SETBP1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6或MOVP1,#7FH软件延时子程序:入口参数R7、R6,

出口:参数无DELAY: MOV R7,#0FH ;2usDELA0: MOV R6,#20H ;2usDELA1: NOP ;1us DJNZ R6,DELA1 ;2us

DJNZ R7,DELA0 ;2us RET ;2us软件延时子程序的执行时间计算:晶振选12MHZ2+[2+(1+2)*32+2]*15+2=1504us若需要其它的延时时间可在上述程序中再加循环层或减少循环层。实验二I/O端口实验计算机中的中断请求与控制

1、CPU中断请求与控制 当CPU正在处理某件事情时,发生了更紧急的事件请求CPU处理,此时,CPU暂停当前工作,转去处理紧急事件即响应中断服务程序。中断服务程序处理完后,CPU回到原工作地点继续原来的工作,这一过程称为中断。如图5-4所示图5-4中断响应过程2、中断的优点

1)计算机与其他设备多任务同时工作、分时操作,提高了计算机的利用率;2)实时处理控制系统中的各种信息,提高了计算机的灵活性;3)使计算机及时处理故障等突发事件,提高了可靠性。图5-6中断系统的结构框图中断系统有五个中断源外部中断源1)INT0(入口地址0003H),外部中断0。由P3.2端口线引入,低电平或下降沿引起。2)INT1(入口地址0013H),外部中断1。由P3.3端口线引入,低电平或下降沿引起。内部中断源3)T0(入口地址000BH):定时/计数器0中断,由T0回零溢出引起。4)T1(入口地址001BH)

:定时/计数器1中断,由T1回零溢出引起。5)TI/RI(入口地址0023H):串行I/O中断,完成一帧字符发送/接收引起。中断控制所涉及的寄存器1、定时控制寄存器TCON每一种工作方式的启动、计数、停止及溢出标志由TCON控制。定时器控制字TCON的格式如下:TF0TR0IE1IT1IE0IT0TR1TF1D5D4D3D2D1D0D6

D7外部中断1的触发工作方式外部中断1的中断请求标志位定时器0、1的启动及定时时间到标志位外部中断0的中断请求标志位外部中断0的触发工作方式触发方式:边沿触发、电平触发IT0=1INT0为边沿触发IT0=0,INT0为电平触发IT1=1INT1为边沿触发IT1=0,INT1为电平触发IE0=0,INT0无中断请求IE1=0,INT1无中断请求IE0=1,INT0有中断请求IE1=1,INT1有中断请求根据硬件设计软件设置(1)边沿(跳变)触发方式:

根据具体硬件电路设计,在P3.2管脚有一由高到低电平变化,看边沿触发的电平变化。5V0V软件置位IT0SETBIT0机器周期机器周期CPU响应外部中断的过程: CPU检测到INT0电平由高到低变化时,自动置位IE0=1,并响应外部中断0的申请,首先自动清除IE0(即使IE0=0),并到外部中断0的入口地址:0003H执行中断服务程序。(2)电平触发方式:电平触发方式,看图硬件电路设计,软件CLRIT00VCPU响应中断为止2、中断允许寄存器IE(A8H)

IE在特殊功能寄存器中,字节地址A8H,位地址分别是A8H~AFH。IE控制CPU对中断源总的开放或禁止以及每个中断源是否允许中断。其格式如图所示。3、SCON串行口寄存器

SCON串行口寄存器的位状态锁存发送TI、接收RI中断标志TIRI用于串行通讯TI(SCON.1):串行口发送中断标志位。当CPU将一个数据写入串行口发送缓冲区SBUF时,就启动发送。每发送完一个串行帧,由硬件置位TI。此时,若ES=1、EA=1(中断允许),CPU响应串口发送中断服务。若EA、ES某一个不为1,则不允许中断,此时只能通过查询方式判断发送结束。RI(SCON.0):串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位,若EA=1、ES=1,CPU响应串口接收中断服务。若EA、ES某一个不为1,则不允许中断,此时只能通过查询方式判断接收结束。4、中断优先寄存器IP(B8H)

IP在特殊功能寄存器中,字节地址为B8H,位地址分别是B8H~BFH,IP用来锁存各中断源优先级的控制位,其格式如图所示。中断优先级顺序最高最低

INT0T0INT1T1串行口中断优先原则A)几个中断同时请求时,响应高优先级。B)正在处理低级中断时,有高级请求即停止低级中断,响应高级中断。C)正在进行的中断不响应同级或低级中断。中断响应过程单片机在每个机器周期的S5P2期间,顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断处理。中断得到响应后自动清除中断标志,由硬件自动生成一条长调用指令LCALLaddr16将程序计数器PC内容压入堆栈保护,然后将对应的中断入口地址装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。P1P2S1机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2响应中断请求的条件1)CPU开中断,即IE寄存器的中断允许位EA=12)该中断源发出中断请求,即中断源对应的中断请求标志位为“1”3)该中断的中断允许位=1,即该中断没有被屏蔽4)无同级或更高级中断正在服务下列任何一种情况存在中断申请将被封锁:(1)CPU正在执行一个同级或高一级的中断服务程序。(2)当前正在执行的那条指令还未执行完。(3)当前正在执行的指令是RETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。中断请求撤除中断返回之前必须撤除中断请求,否则将会再次引起中断。注:(1)对T0、T1、跳变触发的外部INT0INT1,CPU响应中断后会自动复位TF0、TF1、IE0、IE1,从而自动撤除中断请求。

(2)对串行、T2中断,内部无自动复位,要由软件清除RI、TI、TF2

如:CLRRI(TI、TF2)中断服务程序的编写:A)在中断服务程序入口地址单元应放一条长转移指令,以使中断服务程序灵活的安排在64K程序存储器的任何地方。B)硬件提供的LCALL指令只是将PC的断点压入堆栈,而对其他寄存器(PSW、A)内容未作保护,所以在中断服务程序中首先应用软件保护现场,在中断服务之后、中断返回前恢复现场,以免丢失相关内容。C)中断服务程序的最后一条指令必须是RETI中断服务程序设计采用中断时,程序设计采用主程序和中断服务程序两部分主程序:(1)设置中断允许控制寄存器IE,允许相应的中断请求源中断(2)设置中断优先级寄存器IP,确定并分配所使用的中断源的优先级(3)对外部中断,要设置中断请求触发方式IT1或IT0中断服务程序:处理中断请求,中断返回。ORG 0000HLJMP MAINORG 中断入口地址1LJMP 中断服务程序名1ORG 中断入口地址2LJMP 中断服务程序名3MAIN: 主程序中断服务程序名1:中断服务程序

RETI中断服务程序名2:中断服务程序

RETI中断服务程序流程MCS-51响应中断后,即转入中断服务程序,中断服务执行时,应注意如下问题(1)现场保护与恢复防止进入中断服务中时主程序的有关信息被破坏。(2)关中断与开中断防止在执行中断时,高一级中断进入应关中断,执行完本中断后,在开中断。(3)中断处理

完成相应的中断任务。(4)中断返回中断返回RETI,RETI不同于RET,RETI是中断服务程序结束的标志,CPU执行RETI指令时,首先应将中断优先级触发器清零,然后将保护的PC指针重新送入PC,使主程序能够得以在原来中断处继续执行程序。注意:RETI

温馨提示

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

评论

0/150

提交评论