15.外部中断

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0000H MAIN
000BH TTT0 SP,#5FH
;程序首址 ;转主程序
;定时/计数器T0中断入口 ;转中断服务程序
;初始化堆栈指针
《单片机及接口技术》 第4章 中断
MOV MOV MOV
TMOD,#06 TL0,#0FFH TH0,#0FFH
SETB TR0 SETB ET0 SETB EA
如果在INTX端连续采样到一个周期的高电平和紧接 着一个周期的低电平,则在TCON寄存器中的中断请求 标志位IEx就被置位,由IEx标志位请求中断。
显然,这种方式的中断请求既使CPU暂时不能响应, 中断申请标志由于被保存也不会丢失,而一旦CPU响应中 断,进入中断服务程序时,IEx会被CPU自动清除。
在这一触发方式中,中断源必须持续请求,一直到 中断实际上产生为止。然后,在中断服务程序返回之前, 必须撤消中断请求信号,否则机器将以为又发生另一次 中断请求。
《单片机及接口技术》 第4章 中断
所以,电平触发方式适合于外部中断输入为低电平、 且在中断服务程序中能清除该中断源申请信号的情况。
② 若ITx=1,外部中断为边沿触发方式
所以,在一个单一中断源情况中,中断响应时间总是在 3~8个机器周期之间。
《单片机及接口技术》 第4章 中断
4.4 中断程序的编制举例
【例4-1】 利用定时/计数器T0、T1的外部引脚端作为 外部中断源输入线的程序设计方法。
•在MCS-51单片机中,有两个外部中断源INT0和INT1, 对应两个输入引脚。
•当进行某些应用系统的开发时,两个外部中断经常不够用
•如果此时内部时钟的中断源无用,那么就可以利用定时/ 计数器工作于计数状态时,P3.4或P3.5引脚上发生负跳变, 加1计数器增1这一特性,把P3.4、P3.5作为外部中断源请 求输入线,使计数器的计数值为1( 即0FFH),则外部T0、T1 输入一个脉冲即计数溢出,从而置位相应的中断请求标志, 以此来申请中断的办法来扩充外部中断源。
《单片机及接口技术》 第4章 中断
若正处理指令未执行到最后的机器周期,所需的额外等待 时间不会超过三个周期(由于需时最长的指令MUL和DIV也 仅为4个机器周期)。
考虑到极限情况,所执行指令为RETI或者存取IE或IP的 指令,其下邻指令为MUL或DIV,则前者需一个机器周期 后者需4个机器周期,这时额外的等待时间不会多于5个机 器周期。
这样,产生外部中断申请到得到CPU确认,需一个机器周 期,而CPU保护断点、自动转入中断处理程序需2个机器周 期,所以外部中断响应时间至少需要三个完整的机器周期。
若中断请求被中断响应条件的三个条件之一所阻止,则将 需更长的响应时间。
如果已经在执行另外一个同级或更高级的中断,附加的等 待时间则显然取决于该正在执行的中断服务程序的长短,以 及是否还有更高级的中断源存在。
《单片机及接口技术》 第4章 中断
4.3 关于外部中断
4.3.1 外部中断的触发方式
由TCON寄存器中的IT1和IT0位的“0/1”状态可决定外 中断源是电平触发方式还是边沿触发方式:
① 若ITx=0,外中断为电平触发方式
单片机在每一个机器周期的S5P2期间采样中断输入 信号INTX的状态,若为低电平,即可直接触发外部中断, 这就使得CPU对来自外部的申请能得以及时响应。
《单片机及接口技术》 第4章 中断
•一般情况下,让定时/计数器工作于方式2,计数初值为 0FFH。
下面程序将T0作为外部中断的扩充,计数输入端T0(P3.4) 发生一次负跳变,产生一次中断,中断处理程序使累加器 A内容减1,送P1口,然后返回主程序。
程序清单为:
ORG AJMP
ORG AJMP MAIN:MOV
所以该方式适合于以脉冲形式输入的外部中断请求。
由于外中断源在每个机器周期被采样一次,所以输入的 高电平或低电平至少必须保持十二个振荡周期,以保证能 被采样到。
《单片机及接口技术》 第4章 中断
4.3.2 外部中断的响应时间
外部中断申请信号INTx在每个机器周期的S5P2期间被采 样并锁存,但须等到下一个机器周期才被查询并被确定是 否有效,若中断被激活,并且满足响应条件,则转去执行 中断服务程序。
ACC.2,PP3
AJMP
INTP2
PP3: JB
ACC.3,PP4
AJMP
INTP3
PP4: JB
ACC.4,PP5
AJMP
INTP4
PP5: JB
ACC.5,PP6
AJMP
INTP5
PP6: JB
ACC.6,PP7
AJMP
INTP6
PP7: AJMP
INTP7
;读入各中断源 ;高电平未发生中断 ;P1.0为0转INTP0处理 ;高电平未发生中断 ;P1.1为0转INTP1处理
;INTP1处理程序 ACC
INTP7:
... POP RETI
;INTP7处理程序 ACC
《单片机及接口技术》 第4章 中断
【例4-3】 外部中断源扩展。
•当外部中断源多于2个时,可采用硬件申请与软件查询的 方法,把多个中断源通过硬件与门引入中断源输入端 (INT0或INT1),同时又连到某I/O口。
•这样,每个“源”都可能引起中断,在中断服务程序中通过 软件查询便可确定哪一个是正在申请的中断源,其查询的次 序由用户根据各中断源的优先级决定。
SJMP $
TTT0:
DEC MOV RETI
END
A P1,A
;T0工作于方式2、计数 ;送计数初值
;启动T0计数 ;允许T0中断 ;CPU开中断 ;等待中断发生 ;T0中断服务程序
《单片机及接口技术》 第4章 中断
【例4-2】 利用8031的外部中断,实现单步操作。
硬件组成:
+5V
1K
8031
•这样就可实现多个外部中断源的扩展。
程序清单: ORG AJMP
0000H MAIN
;转主程序
ORG PUSH
0003H ACC
;中断服务程序 ;保护现场
《单片机及接口技术》 第4章 中断
MOV
A,P1
JB
ACC.0,PP1
AJMP
INTP0
PP1: JB
ACC.1,PP2
AJMP
INTP1
PP2: JB
《单片机及接口技术》 第4章 中断
•如此,即可单步执行完整个程序。单步操作用来调试检查程序。
初始化程序为:
CLR
IT0
SETB
EA
SETB
PX0
Baidu NhomakorabeaSETB
EX0
;外部中断0为电平触发 ;CPU开中断 ;外部中断0置为高优先级 ;允许外部中断0中断
外部中断0的中断服务程序为:
JNB JB RETI
INT0,$ ;INT0为低电平等待 INT0,$ ;INT0为高电平等待
;P1.2为0转INTP2
;P1.3为0转INTP3
;P1.4为0转INTP4
;P1.5为0转INTP5
;P1.6为0转INTP6 ;否则为P1.7为0,转INTP7
《单片机及接口技术》 第4章 中断
INTP0: INTP1:
... POP RETI
... POP RETI
...
;INTP0处理程序 ACC
单脉冲电路
INT0
电路的工作原理:
•MCS-51单片机在执行完中断处理程序的RETI指令后,必须返 回主程序执行一条指令,然后才能响应新的中断。
•这样,只要INTx引脚平时为低电平,且编程为电平触发,则计 算机响应中断,进入中断服务程序,并在该服务程序中停留, 直到 INTx引脚上接收到一个脉冲(从低→高→低),才返回主程 序执行一条指令,然后又立即进入INTx中断服务程序,等待下 一个脉冲的到来,又返回主程序执行一条指令。
相关文档
最新文档