




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章MCS-51的内部资源定时/计数器串行通信及其接口中断
4.1定时/计数器4.1.0定时/计数器的概述4.1.1定时/计数器的结构与原理4.1.2定时/计数器的控制4.1.3定时/计数器的工作方式及应用4.1.4编程举例
4.1.0概述
1.定时与计数计数:就是数(动词)数(名词)即数数数电中有,加法(+1)或减法(-1)计数器。若计数器的输入CP脉冲来自固定频率源,也可以用作为定时器。即:定时长度=Tcp*N
定时、延时2.软件延时与硬件延时软件延时:编程硬件延时:数字电路脉冲电路定时:单稳态软硬件延时:在编程控制下的定时/计数器,它能贡献延时功能,占用CPU时间少4.1.1定时/计数器的结构和工作原理MCS-51单片机内部设有两个16位可编程定时/计数器,简称为定时器0(T0)和定时器1(T1)。16位的定时器/计数器分别由两个8位寄存器组成,即:T0由TH0和TL0构成,T1由TH1和TL1构成。每个寄存器均可单独访问,用于存放定时初值或计数初值的。一个8位的模式控制寄存器TMOD
,设定定时器的工作模式一个8位的状态控制寄存器TCON。控制定时器的启动与停止,并保存T0、T1的溢出和中断标志
控制信号(启动)选择方式开关GATE为选通门C/T=0,定时,
/INTx是与中断有关的引脚信号信号来自晶振频率/12
TRx为定时/计数器的运行控制位C/T=0,计数控制信号为“1”时开关闭合来自外部事件信号控制信号=(/GATE+/INTx)•TRx
停止由计数器溢出中断控制1定时器/计数器的结构2定时/计数器的原理1)定时/计数器的定时功能计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的时钟频率有关。因一个机器周期等于12个时钟周期,所以计数频率应为系统时钟频率的十二分之一。如果晶振频率为12MHz,则机器周期为1
s。通过改变定时器的定时初值,并适当选择定时器的长度(8位、13位或16位),可以调整定时时间。
2)定时/计数器的计数功能
通过外部计数输入引脚T0(P3.4)和T1(P3.5)对外部信号计数,外部脉冲的下降沿将触发计数。因检测一个由1至0的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的二十四分之一。如果晶振频率为12MHz,则最高计数频率为0.5MHz。为了确保给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。外部信号最高计数频率?3定时器/计数器的应用
定时器/计数器具有定时和计数两种功能,应用范围如下1.定时与延时控制方面可产生定时中断信号,以设计出各种不同频率的信号源;产生定时扫描信号,对键盘进行扫描以获得控制信号,对显示器进行扫描以不间断地显示数据。2.测量外部脉冲方面对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也可实现自动计数。3.监控系统工作方面对系统进行定时扫描,当系统工作异常时,使系统自动复位,重新启动以恢复正常工作。4.1.2定时/计数器的寄存器
1模式控制寄存器TMOD2状态控制寄存器TCON1定时器模式寄存器TMOD
定时器方式寄存器TMOD的作用是设置T0、T1的工作方式TMOD的格式:各位的功能说明:(1)GATE:门控位。GATE=0:软件启动定时器,即用指令使TCON中的TR1(TR0)置1即可启动定时器1(定时器0)。GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR1(TR0)置1时,只有外部中断/INT0(/INT1)引脚输入高电平时才能启动定时器1(定时器0)。
(2)
C/T:功能选择位。C/T=0时,以定时器方式工作。C/T=1时,以计数器方式工作。(3)M1、M0:方式选择位。
定时器工作方式选择位定义
M1M0工作方式功能描述00方式013位计数器01方式116位计数器10方式2自动重装初值8位计数器11方式3定时器0:分为两个独立的8位计数器定时器1:无中断的计数器2定时器控制寄存器TCON
TCON的作用是控制定时器的启动与停止,并保存T0、T1的溢出和中断标志。TF1(TCON.7):定时器1溢出标志位。当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断(2)TR1(TCON.6):定时器1启停控制位。GATE=0时,用软件使TR1置1即启动定时器1,若用软件使TR1清0则停止定时器1。GATE=1时,用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1。(3)TF0(TCON.5):定时器0溢出标志位。其功能同TF1
(4)
TR0(TCON.4):定时器0启停控制位。其功能同TR1
(5)IE1(TCON.3):外部中断1请求标志位。(6)
IT1(TCON.2):外部中断1触发方式选择位。(7)IE0(TCON.1):外部中断0请求标志位。(8)IT0(TCON.0):外部中断0触发方式选择位。4.1.3定时/计数器的工作模式
2.模式1(16位)TFl是定时器溢出标志。当满足条件(TRl=1)AND(GATE=0)为真时,接通计数输入。当计数值由全1再增1变为全0时,使TFl置1,请求中断。若TR1=1和GATE=1?
则THl+TLl是否计数取决于/INT引脚的信号,当由0变1时,开始计数,当/INTl由1变0时停止计数。3.工作模式2模式2把定时器寄存器TL1或TL0)配置成一个可以自动重装载的8位计数器。TL1计数溢出时,不仅使溢出标志TF1置1,而且还自动把TH1中的内容重装载到TL1中。TH1的内容可以靠软件预置,重装载后其内容不变。4.1.4编程举例
定时/计数器可用汇编或C语言实现编程,无论使用汇编语言还是C语言,都需要对定时/计数器初始化操作,其步骤如下:把工作方式控制字写入TMOD寄存器中,把定时或计数初值装入TLx,THx寄存器中置位ETx允许定时/计数器中断置位EA使CPU开放中断置位TRx以启动计数例1:编写一段程序,让51MCU的P1.7输出1ms的方波(用定时器T1完成),fosc=12MHz。定时器初值计算(T机=1us)此时定时时间采用0.5ms采用方式1:N=65536-500/1=65036=0FE0C所以(TH1)=0FEH,(TL1)=0CH注意定时器的初值计算方法!程序流程:开始P1.7置1T1模式设置T1初值设置(0.5ms)中断设置开中断循环等待中断启动定时器T1中断入口T1初值设置(0.5ms)中断返回P1.7取反主程序流程中断服务子程序流程
ORG 0000H ;主程序
AJMP MAIN ORG 001BH ;定时中断1入口
AJMP SERT1MAIN:SETB P1.7 MOV TMOD,#10H ;设T1为方式1 MOV TH1,#0FEH ;给T1赋初值
MOV TL1,#0CH SETB ET1 ;开定时器T1中断
SETB EA SETB TR1 ;启动定时器T1 SJMP $SERT1:MOV TH1,#0FEH ;定时器回赋初值
MOV TL1,#0CH CPL P1.7 RETI END中断程序基本结构定时器初始化、开中断中断服务程序
例2:设定时/计数器T0为定时状态,模式1,定时2ms,每当2ms到申请中断:将A的内容左环移一次送P1口。晶振频率为6MHz
ORG0000H;给出首地址AJMPMAIN;转主程序ORG000BH ;T0中断服务程序MOVTL0,#18H ;送2ms时间常数MOVTH0,#0FCHMOVP1,ARLA ;A累加器内容左移一次送P1口RETIMAIN:MOVSP,#53H ;主程序 MOVTMOD,#01H;T0初始化MOVTL0,#18H MOVTH0,#0FCHMOVA,#01H ;累加器A置01HSTEBTR0 ;启动T0计数SETBET0 ;允许T0中断SETBEA;CPU开中断SJMP$ ;等待例3:设T0工作于模式2,产生500μS定时中断,中断服务程序:把累加器A的内容减1,然后送P1口显示。设晶振频率为6MHz。
ORG0000HAJMPMNORG000BH DECAMOVP1,ARETIMN:MOVSP,#53HMOVTMOD,#02H MOVTL0,#06H;500时间常数
MOVTH0,#06HSETBTR0 ;启动T0计数
SETBET0 ;允许T0中断
SETBEA ;CPU开中断
SJMP$ ;等待
END
例4:利用GATE=1,TRx=1,只有/INTx引脚输入高电平时,Tx才被允许计数,利用此,我们将外部输入正方波经/INTx引脚上输入,测试出正方波的宽度。
ORG2000H;T0初始化
MOVTMOD,#09H;模式1、定时、GATE置1MOVTL0,#00H MOVTH0,#00HJBP3.2,$;等待/INT0低电平,SETBTR0JNBP3.2,$;等待/INT0上升沿JBP3.2,$;等待/INT下降沿CLRTR;关T0MOVA,TL0MOVB,TH0;计算脉宽或显示
4.2.1通用异步收发器UART4.2.2串行通信接口4.2.3多处理机通信4.2.4串行通信应用举例4.2串行通讯及其接口4.2串行通讯及其接口
串行通信的基本概念通信的两种基本方式(a)并行通信;(b)串行通信4.2.1串行通讯的工作方式1.异步传送的格式起始位:表示字传送的开始字符位:规定低位与起始位相连,先传低位停止位:表示字传送结束,停止位后可加高电平的空闲位。一帧:从起始位到截止位。起始位、数据位、奇偶校验位、停止位2.数据传送的速率—波特率波特率:每秒钟传送多少位。例如:计算某计算机的串行传送,每秒传送120个字的数据,一个字的编码为10位,则有数据的传送速率为?120×10=1200(位/秒)有效的数据位只有7位,表明有效数位传送速率为7×120=840(位/秒)结论:有效数据传送速率不等于波特率。图3.2.1串行通信数据传送的三种方式(a)单工方式;(b)半双工方式;(c)全双工方式3.串行数据传送的方向4.通用异步接收/发送UARTUART(UniversalAsynchronousReceiver/Transmitter)特点:
1
由硬件完成并行转串行输出,又能将串行转并行接收。在收/发中能识别奇偶错误,帧错误和溢出(丢失)错误等
2
采用外部时钟同步的方式,时钟周期是数据周期的1/16
3MCS-51的串行通讯接口是具有UART功能的可编程的全双工传送的通讯接口,内部有互相独立的接收和发送缓冲器SBUF,但共用一个字地址99H。MCS-51串行口结构示意图4.2.2MCS-51的串行通讯接口1)串行控制寄存器SCON(字地址为98H)
SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998串行口操作方式选择位SM0和SM1SM0SM1方式功能波特率000101l0123同步移位寄存器8位数据位UART9位数据位UART9位数据位UARTfosc/l2可变fosc/64或fosc/32可变SM2多处理机通信使能位REN允许接收控制位
TB8发送数据第8位
RB8接收数据第8位
TI发送中断标志RI接收中断标志
SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998
串行控制寄存器SCON(字地址为98H)
2)特殊功能寄存器PCON(字地址为87H)
PCOND7D6D5D4D3D2D1D0位名称SMOD———GF1GF0PDIDLSMOD=1,串行口波特率加倍。PCON寄存器没有位寻址。☞
SMOD:在串行口工作方式1、2、3中,是波特率加倍位
=1时,波特率加倍
=0时,波特率不加倍。
(在PCON中只有这一个位与串口有关)
发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送;
接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。3)
串行数据缓冲器SBUF
在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H,用同一寄存器名SBUF。在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。指令MOVSBUF,A
启动一次数据发送,可向SBUF
再发送下一个数指令MOVA,SBUF
完成一次数据接收,SBUF可再接收下一个数2MCS-51串行接口的四种工作方式1)方式0移位寄存器方式,RXD为数据的输入、输出端,TXD为同步信号输出端。传送波特率为fOSC/12,发送和接收均为8位数据,低位在前,高位在后。由于波特率是固定的,所以不需要定时/计数器产生波特率,当以中断方式传送数据时,中断标志TI和RI必须由软件清除。
方式0发送和接收时序方式0接收时,REN为串行口接收允许接收控制位,REN=0,禁止接收。方式0下,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件将TI或中断标志位RI置“1”,CPU响应中断。TI或RI标志位须由用户软件清“0”,可采用如下指令:
CLR TI ;TI位清“0”
CLR RI ;RI位清“0”方式0时,SM2位(多机通信控制位)必须为0。注意:
2)方式1方式1用于数据的串行发送和接收。TXD脚和RXD脚分别用于发送和接收数据。方式1收、发一帧的数据为10位,1位起始位(0),8位数据位,1位停止位(1),先发送或接收最低位。
波特率由下式确定:
方式1波特率=(2SMOD/32)×定时器T1的溢出率
SMOD为PCON寄存器的最高位的值(0或1)。下一帧接收的有效条件是,同时满足下面两个条件:①RI=0,即上次传送接收的中断标志已清除;②SM2=0或接收到停止位为1。方式1时序图3)方式2方式2为9位数据异步通信方式。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控的第9位数据和1位停止位。方式2波特率=(2SMOD/64)×fosc方式2发送前,先根据通信协议由软件设置TB8(例如,双机通信时的奇偶校验位或多机通信时的地址/数据的标志位)。方式2发送时序方式2接收SM0、SM1=10,且REN=1。数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD引脚从1到0的负跳变,并判断起始位有效后,便开始接收一帧信息。在接收完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF。
(1) RI=0,意味着接收缓冲器为空。
(2) SM2=0或接收到的第9位数据位RB8=1。方式2接收时序4)方式3
当SM0、SM1=11时,串行口工作在方式3。方式3波特率可变的9位数据异步通信方式。方式3的波特率由下式确定:
方式3波特率
=方式3时序图
MCS-51串行接口的工作过程1)
发送过程,CPU执行MOVSBUF,A指令将数据写入SBUF自动启动移位寄存器按起始位、数据低位、高位、奇偶校验、停止位顺序发送,一帧完后,硬件自动使TI=1申请中断,中断后由软件清除2)接收过程,执行CLRRI指令,串行口以所选定波特率的16倍速率采样RXD端状态,当采到RXD的下降沿时启动接收器接收一帧代码,并把该代码拼成并行码送入接收缓冲寄存器中。接收完后置RI=1向CPU申请中断。中断后由软件清除
四种工作方式的区别主要表现在帧格式及波特率两个方面。工作方式帧格式波特率方式08位全是数据位,没有起始位、停止位固定,即每个机器周期传送一位数据方式110位,其中1位起始位,8位数据位,1位停止位不固定,取决于T1溢出率和SMOD方式211位,其中1位起始位,9位数据位,1位停止位固定,即2SMOD×fosc/64方式3同方式2同方式1方式2、3其中数据字的第9位。多处理机通信中,该位为1时表示该帧为地址信息,主要用于选择与相同地址的从机进行通讯。非多处理机通信中,该位是奇偶位。(2).在波特率的选择上:
方式0的波特率
=fosc/12
固定
方式2的波特率=
方式1、3的波特率
=
波特率=2SMOD×(T1溢出率)/32
在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值,因此上式又可写为:
溢出率:T1溢出的频繁程度
T1溢出一次所需时间的倒数。
解决的方法只有调整单片机的时钟频率fosc,通常采用11.0592MHz晶振。3、常用波特率及其产生条件
常用波特率通常按规范取1200、2400、4800、9600、…,若采用晶振12MHz和6MHz,则计算得出的T1定时初值将不是一个整数,产生波特率误差而影响串行通信的同步性能。串行口程序设计举例
1.串行口初始化1)串行口的波特率选择:常选fosc=11.0592MHz,其优点是能容易获得标准波特率,常用定时/计数器T1在工作模式2作为串行口波特率发生器,常用的标准波特率和TH1初值的关系有:
fosc=11.0592MHz 19200bpsSMOD=1TH1初值为FDH9600bpsSMOD=0TH1初值为FDH4800bpsSMOD=0TH1初值为FAH2400bpsSMOD=0TH1初值为F4H1200bpsSMOD=0TH1初值为E8H2)用定时/计数器T1产生波特率的初始化:初始化对TMOD寄存器送控制字,定时器1的工作模式2,采用8位自动装入初值。根据波特率选择计算或查表将时间常数送入TH1,TL1;令TR1=1启动定时器/计数器1工作;3)串行口初始化(1)SCON串行控制寄存器(工作状态控制字)的初始化,(2)对PCON寄存器送控制字,实际上仅对D7位SMOD控制位1或0。(3)串行口用中断方式接收/发送数据时,串行口和CPU开中断。对IE寄存器送中断控制字或置位相应的控制位。(4)启动串行口,当为发送时用MOVSBUF,A指令;接收时用CLRRI指令。2.串行口程序计举例移位寄存器2.串行口程序计举例
设有甲、乙两台单片机,用子程序调用的方法进行串行单工通讯功能:甲机发送:从内部RAM单元20H~25H中取出6个ASCII码数据,在最高位加上奇偶校验位后串行口发送。波特率为1200(fosc=11.0592MHz)乙机接收:接收机把接收到的6个ASCII码数据,先检查奇偶校验。若传送正确,将数据依次存放在内部RAM区20H~25H单元中。若奇偶出错,则将出错信息“FFH”存入相应的单元。甲机发送:主程序
ORG2000H MOVTMOD,#20HMOVTH1,#0E8H MOVTL1,#0E8HMOVSCON,#40HSETBTR1 MOVR0,#20H MOVR7,#06HLOOP:MOVA,@R0 LCALLOUT1 INCR0 DJNZR7,LOOP
OUT1:MOVC,P CPLC MOVACC.7,C MOVSBUF,A JNBTI,$CLRTI RET
乙机接收:主程序
ORG2000H MOVTMOD,#20HMOVTH1,#0E8HMOVTL1,#0E8HSETBTR1 MOVR0,#20H MOVR7,#06H LOOP:LCALLIN1 JC ERROR MOV@R0,ALOOP1:INCR0 DJNZR7,LOOP
IN1:MOVSCON,#50HJNBRI,$ CLRRI MOVA,SBUF
MOVC,PCPL CANLA,#7FHRET ERROR:MOV@R0,#0FFH SJMPLOOP14.3中断
在单片机中,当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,这一过程就称为中断。1、中断概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生或中断请求);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回)。中断是什么?中断请求→中断响应→中断服务→中断返回中断事件B的处理过程事件A事件B
1)中断是随机产生的。目的是处理外设中断源的各种事务,而子程序是编写程序中事先安排的,是为主程序服务的。
2)中断时必须保护断点和现场。
3)返回命令也不同。中断处理类似于子程序调用,区别?2中断的功能中断系统是指能实现中断功能的硬件和软件。中断系统的功能一般包括进行中断优先级排队实现中断嵌套自动响应中断实现中断返回中断的优点:可以提高CPU的工作效率实现实时处理处理故障(1)进行中断优先级排队通常,单片机中有多个中断源,设计人员能按轻重缓急给每个中断源的中断请求赋予一定的中断优先级。当两个或两个以上的中断源同时请求中断时,CPU可通过中断优先级排队电路首先响应中断优先级高的中断请求,等到处理完优先级高的中断请求后,再来响应优先级低的中断请求。中断优先级的处理原则是:不同级的中断源同时申请中断时:先高后低,正处理低级中断又收到高级中断请求时:停低转高,处理高级中断却收到低级中断请求时:高不睬低,同一级的中断源同时申请中断时:事先规定(2)实现中断嵌套(3)自动响应中断中断源向CPU发出的中断请求是随机的。通常,CPU总是在每条指令的最后状态对中断请求信号进行检测;当某一中断源发出中断请求时,CPU能根据相关条件(如中断优先级、是否允许中断)进行判断,决定是否响应这个中断请求。若允许响应这个中断请求,CPU在执行完相关指令后,会自动完成断点地址压入堆栈、中断矢量地址送入程序计数器PC、撤除本次中断请求标志,转入执行相应中断服务程序。(4)实现中断返回
CPU响应某一中断源中断请求,在执行中断服务程序最后的中断返回指令时,会自动弹出堆栈区中保存的断点地址,返回到中断前的原程序中。
中断系统主要由与中断有关的4个特殊功能寄存器和硬件查询电路等组成。定时器控制寄存器TCON——用于保存中断信息。串行口控制寄存器SCON——用于保存中断信息。中断允许寄存器IE——用于控制中断的开放和关闭。中断优先级寄存器IP——用于设定优先级别。硬件查询电路——用于判定5个中断源的自然优先级别。MCS-51中断系统的构成中断源MSC-51单片机有5个中断源外部中断0——/INT0外部中断1——/INT1定时器/计数器T0中断定时器/计数器T1中断串行口中断那些部件可以向CPU发出中断申请呢?中断系统及其管理定时/计数控制寄存器TCON
TFl
:定时器1溢出标志
TR1:定时器1运行控制位
TF0:定时器0溢出标志TR0:定时器0运行控制位
IEl
:外部沿触发中断1请求标志。ITl:外部中断1类型控制位。靠软件来设置或清除,
ITl=1时,是下降沿触发,IT1=0时,是低电平触发。IE0:外部沿触发中断0请求标志。IT0:外部中断0类型控制位。TF1TR1TF0TR0IE1IT1IE0IT08F8E8D8C8B8A8988串行控制寄存器SCON(字地址98HTI(SCON.1)发送中断标志。在任何模式中,都必须由软件来清除TI。RI(SCON.0)接收中断标志。必须靠软件清除RI。在系统复位时,SCON中的所有位都被清除。SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998中断允许控制寄存器IE(字地址为(0A8H)EX0=1:允许外部中断0申请中断EX1=1:允许外部中断1申请中断ET0=1:允许定时器T0申请中断ET1=1:允许定时器T1申请中断ES=1:允许串口申请中断EA=1:中断总控位打开允许中断,=0禁止任何中断例如:允许INT0和INT1申请中断可用MOVIE,#85H;或MOV0A8H,#85H(不好)SETBEA;开中断总控位SETBEX0;允许INT0中断和SETBEX1;允许INT1中断D7D6D5D4D3D2D1D0EAESET1EX1ET0EX01:允许0:禁止中断优先级控制(硬件优先+软件优先)硬件优先——单片机内部有一个默认的中断优先级顺序外部中断0优先级最高定时器T0外部中断1定时器T1串口优先级最低先响应那些中断?后响应那些哪些中断?优先级控制寄存器IP(0B8H)PX0(IP.0):外部中断0优先级设定位PT0(IP.1):定时/计数器T0优先级设定位PX1(IP.2):外部中断1优先级设定位PT1(IP.3):定时/计数器T1优先级设定位PS
(IP.4):串行口优先级设定位例如:PX0=0,PT0=0,PX1=1,PT1=0,PS=1
结果:中断优先级顺序人为设置为,PX1,PS,PX0,PT0,PT1。D7D6D5D4D3D2D1D0---PSPT1PX1PT0PX01:优先0:滞后优先级对中断响应的影响:CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。这称之为“中断嵌套”。中断开放和禁止优先权改变事先规定申请标志及撤除入口地址EX0=1开放PX0=1优先/INT0IE0硬件撤除0003HET0=1开放PT0=1优先T0IT0硬件撤除000BHEX1=1开放PX1=1优先/INT1IE1硬件撤除0013HET1=1开放PT1=1优先T1IT1硬件撤除001BHES=1开放PS=1优先串行口TI&RI软件撤除0023H中断系统管理4.3.3.响应中断的条件中断响应CPU响应中断的条件是:中断源有中断请求此中断源的中断允许位为1CPU开中断(即EA=1)同时满足时,CPU才有可能响应中断。还不能肯定吗?中断响应遇到以下任一情况,中断响应将受阻:CPU正在处理同级或高优先级中断;即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断;正在执行的指令为RET、RETI或任何访问IE或IP寄存器的指令。即只有在这些指令后面至少再执行一条指令时才能接受中断请求。若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标志却已不再有效,那么该中断将不被响应。响应过程一旦CPU决定响应中断,则CPU会去执行相应的中断服务程序。中断响应的过程包括:自动保护断点地址程序转至中断服务程序的入口地址执行中断服务子程序自动保护和恢复现场处理中断源请求中断返回CPU完成中断服务后,返回到原来暂停的位置(即断点),继续执行原来的程序。返回方式:使用RETI指令返回RETI指令的任务:取出保存的断点地址给PC;4.3.4外部中断1)外部中断的触发方式分电平和沿触发两种,它们均由TCON中的IT1和IT0决定。当ITX=1,外部中断为边沿触发方式,下降沿有效。在这种方式中,如果在/INTX端连续采到一个机器周期的高电平和紧接着一个周期的低电平,则在TCON寄存器中的中断申请标志位IEX就被置位保存,由IEX位向CPU申请中断,一但CPU响应中断进入中断服务程序后,IEX会被CPU自动撤除。由于外部中断源在每个机器周期被采样一次,所以中断源的高电平或低电平至少保留两个机器周期。这种方式适用于中断源为脉冲性质的场合。当ITX=0,外部中断为电平触发方式,低电平有效。例如/INT0=0表示对应的外设有请求。CPU在检测到/INT0上的低电平时置位IE0,这时尽管CPU响应中断时相应的中断标志IE0能自动复位,但若外部中断源不能及时撤除它在/INT0引脚上的低电平,就会再次使已经变为“0”的中断标志再次置位继续执行中断而造成混乱。因此必须使/INTX引脚上的低电平随着中断被CPU响应后立即变为高电平,建议采用图6-2所示电路实现中断撤除,为此在中断服务程序开头必须安排一条将DFF的Q端置“1”的指令。1)外部中断请求信号直接加到D触发器的CP端,当外部中断请求的低电平脉冲信号出现在CP端时,D触发器的Q端置0,INT0或INT1引脚为低电平,发出中断请求。外部中断的撤除电路
外部中断的响应时间从外部中断源申请到CPU确认至少需要1个机器周期。而CPU要保护断点,自动转入中断服务程序又需要2个机器周期,这样说明外部中断的响应时间至少需要3个完整机器周期。若正在执行RETI指令,而后又有MUL或DIV指令,则必须等待约五个机器周期。而遇上高级中断正在进行则要看中断服务程序的长短决定,则需要更长时间的等待。一般对于单一中断源的情况下,中断响应时间总是在3~8个机器周期之间。4.3.5中断编程举例
中断程序编程结构汇编程序
ORG0000H;AJMPMAIN;转到主程序
ORG0003HAJMPINT0;转到中处程序MAIN:……SP初始化开中断等待中断
INT0:……
关中断;保护现场中不许中断保护现场开中断;开中断允
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国铝颜料行业运行现状及发展趋势预测报告
- 2025-2030年中国铝冶炼市场竞争格局及前景趋势预测报告
- 2025-2030年中国钨行业未来投资预测发展战略规划分析报告
- 2025四川省建筑安全员《C证》考试题库
- 2025-2030年中国过氧化锌市场运营动态及发展前景分析报告
- 2025-2030年中国车蜡行业市场运行态势及发展盈利分析报告
- 2025-2030年中国贸易融资前景趋势及发展潜力分析报告
- 2025-2030年中国调味香料市场发展前景及投资战略研究报告
- 2025-2030年中国船舶制造行业发展状况及营销战略研究报告
- 2025-2030年中国纸基覆铜板市场十三五规划及投资风险评估报告
- 突发事件应急预案管理办法培训课件
- 国家电投《新能源电站单位千瓦造价标准值(2024)》
- 粮食储备库内圆筒钢板仓及附房工程施工组织设计
- 原发性肺癌临床路径
- 学校科技节活动方案
- 校园食品安全和膳食经费管理方案3篇
- TSGD7002-2023-压力管道元件型式试验规则
- 九年级化学下册 第12单元 化学与生活教案 (新版)新人教版
- 金融服务消费纠纷调解工作规范
- 后腹腔镜下输尿管切开取石术
- 二手车购买收据合同范本
评论
0/150
提交评论