EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:介绍了一种用软方式法灵活设置AT89系列单片机多中断优先级并实现多级中断嵌套的方法,分析了系统的时爽性。* {: d8 I$ F; l) a2 s1 c/ j
2 E- O2 Z7 D5 P; k9 Y- J! q7 a薹雩l害
0 d7 P! g7 K" `+ V% i$ wATMEL公司的AT89系列犟片机是目前最常用的健优价廉的单盼机系列之一。但其中断系统资源却禳有限,特剐是系统摄供4 V. @. F# O& Q0 L5 Q" g/ \& O" ]0 g
的中断优先级更是如此。例如AT89系列标准烈单片机一般只有两个中断优先级,从而使其应用受到了限制。因此扩展中断优先级、
; _8 O& C1 d' M' y! I实现多级巾断嵌套便成了人们设计和开发单片机影院系统时常需考虑的问题之一。目前,人们大都是通过增加专门硬{牛并配合棚+ Z* f7 j6 x: }+ b/ H2 o
应壤翟来解决这一阗簇豹,显然这秘方式不穰予降繇系统残本,使矮栽寒氇不够炙港。笔者激AT89系确栋准型单跨撬AT89C51免0 H2 N9 e8 i2 F0 P
对象,利用纯软件方式,通过在备中断服务稷序的起始部分加入设置指令,在中断返回之前加入对应的恢复指令,成功地实现了中; U( v- f/ z' q" N
断优先级的多级软件设置。最多阿将五个中断源分别设鬣在五个中断优先级上。五个中断源的优先级由高到低依次为:外部中断7 _2 v; y6 b' i4 o* L! ?3 O
INT0、定嚣乎器附数器TO中断、孙鄢中断INTI、定时器,计数器Tl中断秘串行口中断。这样也就自然实现了多级中断嵌套。
9 P, m( P) G5 T" V3 c+ x. I8 G2中断优先级扩展的原理及方法
5 b( z. e. |; c9 e" d+ ~2.I中断擦制字的初始化3 f0 O2 B9 H; O, F; t' B
首先。在主程序书将AT89C51单片机的哮|颤撬先级羧刿寄存器lp的各个位设置为“l”,即将单片枧购美个中断源都置成系统
+ N- i; E0 n$ M% p5 S4 x+ `& W7 {中原有静离中断傀巍缀,这是为禁个中断请求谈璃应鑫黧额设置该审瞬酶优先缀新傲静准餐;然磊,将巾酝允许控溺寄存器l嚣瓣
$ |, M) X3 X% A, [% J+ N各个位也都设置为“l”,即将各中断请求设置为允许状态,并使CPU处于开中断状态,以确保符合条件的中断请求能够得到响应。
# ~4 L4 m5 m( e, d2.2中断控制字的誊黛和恢复9 x! J! k: O; r& h& D% g
在菜枣薮请求簸蹶应惹。兰麓审断熬谯淼缓重鐾霸羝缀孛錾霉羧,叛及孛酝邋嚣蘩静警熬孛錾挽先缀恢复秘低级孛隧舞敖是
9 E! ?/ V& R2 n6 V( p实现多中断优先级灵活设置的关键。中断控锚字的重置和恢复方法如下: (1)按照AT89C51单片机同巾断优先级上的中断源内部查询顺序,外部中断丽具有阿中断优先缀上最高的中断优先权,所
) V4 G. K3 F+ D* c @以该中断被响应后不需要进行当前中断优先缀重置,中断返回前也不霈要进行当前中断优先级恢复。; v+ f* I- N& T
(2)宠辩,诗数器鞠审薮在麓孛叛饶先级上吴毒次亵缀孛蘩魏宠投,耩羧在该孛断蔹豌应薅,一方嚣黉傺透在执携髑孛藓毅努
* P5 i* E" i* K8 z+ z( j" l9 x程序过稷中不能再被更低级的中断请求再次中断,即不熊被外部中断,Ⅳn、定时,计数器Tl中断及串褥口中断等中断请求再次中, }: r' }! D: K3 w" x; b/ i
断,因此,在咖中断服务程序前必须加入屏蔽低级中断请的设置指令,另一方面叉要保证在执行’11D中断服务程序过程中可以被疆
) R1 k9 |2 h; W1 q9 P4 q高级的中断请求再次中断,即可以被外部中麟蕊两再次巾断,因此在髑中断服务程序前还必须用一条中断优先级黧置指令,将其
% Z' ?0 d( ~+ W自身(这鬃搐TO串聚)酶辛酝傀兔缀设萋成瓣孛断系统串豹低孛甑後巍级,其俸方法笼多孛瞬优先缀设鬟程穿模式。秀夕},还要在
& A7 @- U3 |7 a# s2 L进入中断服务前,模拟~次中断返闻,以便将相应的不可释址的中断优先级状态触发器复位,为给响应该中断优先缀t的高级中断
9 p' ^% ]8 h- A6 q) k请求扫清道路fll。从多中断优先缎设置程序模式中可以糟别,在硼中断服务程序和中断返回指令之间还有四条与上述设置指令功
) z+ v# g# W! p3 k8 I- J J毙恰好棚凝的指令,蔡目的是恢复髑中断原来所处的中凝优先级秘中断屏蔽状态。) R" V* l& U6 ~; \
(3)绛部中断羼鞭一中断、定露阱数器零l审赣及串蠢121中断戆巾凝藤务程窍1l辇瑶逛接方法《2)傲类簸娃瑾,吴捧穷法凳多枣凝
. e u" [& C) a6 ?7 @1 z优先级设置程序模式。
/ F1 L7 V0 R" o9 R1 K& F! \! c) e3多中断优先级设置程序模式
% r% v9 `9 V1 F) b6 S6 @矗聪9C51单冀撬五个孛叛馥先级瓣教终设萋翟寒模式魏下:
1 W4 r' l& w* j+ A- P2 HMAlN:⋯⋯ A6 p/ f$ Z, ^# ?5 H
MOV1 L! ~3 c* n$ h2 H; m; P9 w3 k
+ _& m& {% L, \9 a, f. `! K5 c5 D) N$ q# P! a
附件下载:
" l, Z$ M% D" d5 V) W0 F3 a 9 `$ o1 s7 K8 e; {- h0 i7 [
|