您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第六章 中断与输入输出接口技术
第六章中断与输入/输出接口技术6.1单片机输入/输出概述6.1.1I/O接口电路的功能①设备选中②传送控制和状态信息③数据缓冲与锁存④高级功能6.1.2输入/输出方式1.无条件传送方式2.DMA传送方式3.查询传送方式①在需要从外设输入数据时,微处理器必须查询外设的数据是否准备好传送。②在需要向外设输出数据时,微处理器必须查询外设是否处于“空闲”状态。4.中断传送方式程序查询流程图和中断处理过程的示意图图6-1程序查询流程图图6-2中断处理过程的示意图6.1.3中断技术概述1.中断源在微型计算机系统中,把能够引起中断的事件称为中断源。2.中断优先级既然有多个中断源,就必然存在对中断请求处理顺序的排队问题。当多个中断源同时发出中断请求时,先处理谁,后处理谁,这就是中断优先级。3.中断服务程序CPU响应中断请求之后,专门用来与中断源进行数据传送或进行其他中断处理的程序段。4.中断处理机制6.2MCS-51中断系统图6-3中断系统结构框图6.2.1中断源•8051提供了5种中断源:INT0、INT1、TF0、TF1、TI和RI。•INT0和INT1:它们是外部中断请求,由P3.2、P3.3引脚输入。•TF0和TF1:它们是定时器/计数器T0和T1溢出中断。当T0或T1产生溢出时,产生内部一个中断。•TI和RI:串行口中断,由TI和RI的逻辑或产生。当完成一帧数据的发送或接收时,会对串行口控制器SCON的发送中断标志TI或接收中断标志RI置位,产生中断请求。6.2.2中断控制EA____ESET1EX1ET0EX0IEA8HAFHACHABHAAHA9HA8H地址EA:当EA为0时,禁止所有中断;当EA为1时,则各中断的允许或禁止决定于其对应的控制位。ES:串行口中断允许位。ET1:定时器/计数器T1中断允许位。EX1:外部中断1允许位。ET0:定时器/计数器T0中断允许位。EX0:外部中断0允许位。系统复位时,IE寄存器中的各中断控制位均清零。6.2.3中断优先级•中断优先级寄存器IP的格式如下:______PSPT1PX1PT0PX0IPBCHBBHBAHB9HA8HB8H地址当CPU同时接收到几个优先级相同的中断请求时,则按照下面约定的次序来响应中断,优先级较高的中断得到优先响应。IE0外部中断INT0较高优先级TF0定时器/计数器T0溢出中断IE1外部中断INTlTF1定时器/计数器T1溢出中断RI或TI串行口中断较低优先级6.2.4中断响应与处理•各中断源对应的中断向量表为表6-1所示中断源中断标志中断向量外部中断INT0定时器/计数器T0中断外部中断INT1定时器/计数器T1中断串行口接收和发送中断IE0TF0IE1TF1RI+TI0003H000BH0013H001BH0023H表6-18051的中断向量2.中断处理中断向量即中断服务程序入口地址,由于各中断服务程序入口地址仅相隔8B,不够容纳中断服务子程序,为此可在入口处放置一条长跳转指令,而实际的中断服务程序放在存储区内的任意位置(一般放在主程序后),如下所示:ORG0003H;外部中断INT0中断程序入口地址LJMPINT0;INT0为中断服务程序ORG1000H;主程序首地址MAIN:;主程序:INT0:;外部中断INT0中断服务程序:RETIEND6.3定时器/计数器1.定时功能①因为单片机的系统时钟是稳定可靠的,因此可以通过对系统时钟或系统时钟的分频信号进行计数而达到定时的目的。②当定义为定时方式时,根据定时时间的要求,计算出在一定机器周期情况下需要计数的值,即所谓的时间常数。当加1(或减1)计数器计数到额定值时,产生定时时间到信号,从而实现了定时功能。③8051有两个16位定时器/计数器,称为定时器/计数器0和定时器/计数器1。它们可以工作在计数方式,也可以工作在定时方式。当工作在定时器方式时,在每个机器周期内定时器加1。由于一个机器周期有12个时钟周期,因此,定时器的频率为时钟频率的1/12。2.计数功能①如果不是对单片机内部的系统时钟或它的分频信号计数,而是对来自单片机外部的稳定的脉冲进行计数,这就是计数功能。②当定义为计数方式时,则根据需要计数(外部脉冲)的次数,计算出在不同工作方式下(每种方式计数的位数不同)实际需计数的值,也称为计数初值,当计数器溢出时产生中断请求信号,就实现了计数功能。③当工作在计数器方式时,只要T0或T1引脚上有一个从高到低的负跳变,计数器就加1。8051在每个机器周期的S5P2状态对外部输入信号采样,当前一个机器周期采样到1,而后一个机器周期采样到0时,计数器加1,再在下一个机器周期的S3P1时将计数值装入锁存器。所以,从识别负跳变到完成计数需要2个机器周期即24个时钟周期,即最高计数频率为时钟频率的1/24。6.3.2定时器/计数器的控制1.定时器/计数器方式寄存器(TMOD)TMOD控制定时器/计数器T0、T1的工作方式,其各位的含义如下:GATEC/TM1M0GATEC/TM1M0方式寄存器TMOD地址89H高4位对应于T1低4位对应于T0•TMOD的低4位控制定时器/计数器T0的工作方式,高4位用于控制定时器/计数器T1的工作方式•GATE:当GATE置1时,只有在INT×引脚为高电平且TR×位置1情况下,才开放对应的定时器/计数器;当GATE清0时,只要TR×置1就可开放对应的定时器/计数器(×为0或1)。•C/T:C/T=1为计数方式;C/T=0为定时方式。定时器/计数器工作方式的设置M1M0操作方式00方式0—13位的计数器/定时器01方式1—16位的计数器/定时器10方式2—自动再装入的8位计数器11方式3—只有T0才有,低8位作计数器/定时器,高8位作内部定时器表6-2定时器/计数器工作方式的设置定时器/计数器控制寄存器(TCON)特殊功能寄存器TCON用于寄存对定时器/计数器的控制字,具体定义如下:TF1TR1TF0TR0IE1IT1IE0IT08EH8DH8CH8BH8AH89H88H8FH控制寄存器TCON地址88H•TF1和TF0:溢出中断标志。•TR1和TR0:定时器/计数器运行控制位。•IT1和IT0:当IT×=1时,INT×引脚上的外部负跳变产生中断请求;当IT×=0时,INT×脚上的低电平产生中断请求(×为1或0)。•IE1和IE0:边沿触发中断请求标志。•复位时,TMOD和TCON各位清0。6.3.3定时器/计数器工作方式1.方式02.方式1图6-4定时器方式0工作原理图3.方式3图6-5方式2工作原理图4.方式3图6-6方式3工作原理图6.3.4定时器应用一、定时器/计数器的初始化在使用8051的定时器/计数器前,应对它进行初始化编程,包括如下内容:•确定工作方式——对TMOD赋值。•计算定时初值(时间常数)和计数初值,并装载到TH和TL。•开放或禁止定时器/计数器中断——对IE寄存器赋值。•启动定时器/计数器(置位TCON中TR1或TR0位)。二、时间常数和计数初值的计算1.计数初值的计算主要的问题是应考虑到计数器是加1计数器,并在计数溢出时产生中断,故不能直接将计数值装入计数,而应通过下面公式计算:计数初值X=2n-计数值其中n为在各种工作方式下的计数器的位数。2.时间常数的计算设X为时间常数,T为机器周期(时钟的12分频),故有:定时值=(2n-X)×T因此时间常数X=2n-定时值/T例6-1设单片机fosc=6MHz,定时器/计数器0工作在定时器方式1,定时1ms,求计数初值,并对定时器/计数器初始化编程。解:设计数初值(时间常数)为X,则有(216-X)×12/fosc=1000μsX=216-500=65036=FE0CH因此,TH,TL可置初值为FEH,0CH。初始化程序如下:...MOVA,#01H;定时器/计数器0工作于定时方式1MOVTMOD,A;将工作方式控制字写入TMODMOVTL0,#0CH;送初值MOVTH0,#0FEHSETBET0;允许定时器0中断SETBTR0;开中断例6-2设单片机的fosc=12MHz,要求在P2.0脚上输出周期为200μs的方波,采用查询方式。定时器工作方式2的最长定时时间为256μs,而方波的周期为200μs,只需定时100μs。设定T0工作于方式2,定时时间100μs,查询TF0标志,为高则对P1.0取反,即可获得周期为200μs的方波。解:计算定时器T0初值:(28-X)×12/fosc=100μsX=9CH程序如下:ORG1000HMAIN:MOVA,#02H;定时,方式2MOVTMOD,A;将工作方式字写入TMODMOVTL0,#9CH;置初值MOVTH0,#9CH;置重装载初值SETBTR0;启动定时器LOOP:JZTF0,LOOP;查询TF0是否置1,没有则继续等待CPLP1.0;定时时间到,将P1.0取反CLRTF0;软件清TF0SJMPLOOP;继续循环6.4并行口的扩展6.4.1MCS-51并行口扩展概述并行I/O端口的扩展方法1.采用TTL、CMOS锁存器、缓冲器,如74LS244、74LS245、74LS377等芯片实现。2.采用通用I/O接口芯片,如INTEL公司的8255A、8155等实现。3.采用单片机的串行口扩展,详见第八章。6.4.2简单并行口扩展START:MOVDPTR,#0FEFFH;扩展I/O口地址MOVXA,@DPTR;从74LS244读取开关量MOVX@DPTR,A;输出数据到74LS273发光二极管SJMPSTART;循环6.4.3可编程并行接口扩展芯片8255A一、8255A的内部结构和引脚功能二、8255A的方式控制1.方式选择控制字2.C口置位/复位控制字三、8255A工作方式•1.方式0•方式0是一种基本的输入/输出方式,无需应答联络信号•2.方式1•方式1是选通的输入或输出方式。当8255A的PA口、PB口工作于方式1时,需用PC口作联络应答信号和中断请求信号。方式1常用于中断驱动的联络应答式输入或输出•3.方式2•方式2也叫双向传输方式,8255A只有PA口可被定义为工作方式2,既可往主机发送数据,又可接收来自主机的数据。此时,使用PC7~PC3作为联络信号8255AC口联络信号分配表PC口方式1方式2输入输出输入输出PC0PC1PC2PC3PC4PC5PC6PC7INTRBIBFBSTBBINTRASTBAIBFAI/OI/OINTRBOBFBACKBINTRAI/OI/OACKAOBFAINTRASTBAIBFAINTRAACKAOBFA表6-58255AC口联络信号分配表例6-4•例6-4LED显示接口电路与应用编程:要求在两位数码管上显示00~99的十进制数,每隔1s加1。•解:1.接口电路•图6-142.关于LED数码管LED显示电路有共阳极和共阴极两种接法,部分共阴极接法表如下:字形hgfedcba字形码0001111113FH10000011006H2010110115BH3010011114FH表6-6字形码表3.编程6.4.4多功能可编程RAM/IO扩展芯片8155H一、8155H的内部结构及引脚功能二、8155H的寻址方式与控制1.8155H的地址编码AD0~AD7I/O口寄存器A7A6A5A4A3A2A1A0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX000011001100010101命令/状态寄存器PA口(PA0~PA7)寄存器PB口(PB0~PB7)寄存器PC口(PC0~PC7)寄存器定时器低8位寄存器定时器高6位寄存器表6-78155HI/O口的编址2.8155H命令寄存器3.状态寄存器•INTR:中断请求标志。D0为PA口、D3为PB口的中断请求标志位。•BF:缓冲器满标志。D1为PA口、D4为PB口的缓冲器满标志位。•INTE:中断请求允许标志。D2为PA口、D5为PB口的中断请求允许标志位。•TIMER:定时器/计数器中断请求标志。当达到计数终值时置位,启动新的计数或读状态字后清零三、8155HI/O口的工
本文标题:第六章 中断与输入输出接口技术
链接地址:https://www.777doc.com/doc-3994710 .html