文档介绍:研究论著
+,-.&. 0 1-.-21’, 1-%31+
%&’(!’)** 系列单片机中的中断实现方法
焦腾张扬陈实培王华焦纯
J第四军医大学生物医学工程系西安市 H(77-)K
摘要探讨了如何在没有中断功能的%&’(!’)**系列单片机中实现中断功能,并给出了应用举例。
关键词%&’(!’)**;中断实现
中图分类号:9’-I8A) 文献标识码:0 文章编号:(77-L88I8()774)7ML77HHL7)
! 引言中的<’=:> 位是否为(,判断是否由于管脚变化引起复位,
!"#$%#&"’公司的’"#()#*++ 单片机是一款$",# 结从而可以把<’7,<’(,<’- 设置成外部中断管脚,为处理
构、只有-- 条指令的微处理器,因其具有低功耗(.)/01*23 器引入中断功能。
4!&5、.(*!01-23-)6&5)、小体积等特点,已经广泛应用于对( 应用举例
功耗与体积要求较高的系统中,但因为’"#()#*++ 只提供了图( 是一应用举例,在该系统中,引入了外部引脚中断功
两级硬件堆栈,并且没有提供中断,造成了开发不便,本文主能,通常处理器执行,BCC’指令后,处于休眠状态,晶振停止
要介绍了作者在某产品开发过程中为’"#()#*78 增加实现中工作,非常适合对功耗要求低的系统中。
断的方法。
" #$%!"%&’’的特殊功能寄存器
在这里,用到了) 个’"#()#*++ 的特殊功能寄存器——
状态寄存器(,909:,)和选项寄存器(%’9"%;)。状态寄存器
(,909:,)的结构如表(:
表! 状态寄存器()*+*,))的结构
<’=:> L L L ’0% 9% ’D N D# #
OFGH OFG7
其中<’=:>? @(,表示当由于管脚(<’"%A7A(A-)的变化,
处理器从,BCC’状态唤醒而复位;
***@7,系统上电或从其它情况引起处理器复位。
9%:@(,表示处理器上电、执行了#B$=D9 或,BCC’指
令;
***@7,表示看门狗复位。图! 应用原理图
’D:@(,表示处理器上电或执行了,BCC’指令;
***@7,执行了,BCC’指令。程序流程图如图):
选项寄存器(%’9"%;)的结构如表):
开始
表" 选项寄存器(-#*$-.)的结构
否否否
<’=:>***@7P <’******@7P <’(***@7P
<’=: <’’: 9%#, 9%,C ’,0 ’,) ’,( ’,7 是是是
OFGH OFG7
数据接收子程序开关) 处理子程序开关( 处理子程序
EFGH? 管脚(<’73<’(3<’-)变化使处理器从睡眠状态复位是
使能位; 使能, 关闭。 9%***@7P
7 ( 否
EFGI? 管脚(<’7,<’(,<’-)内部弱上拉设置位;7 使
设置为输入方式
<’7A(A- 指令
能,( 关闭。使能管脚唤醒功能与弱上拉,BCC’
在’"#()#*++ 中,%’9"%; 寄存器中的位 H 设置了管脚
图主程序流程图
(<’7,<’(,<’-)变化使处理器从睡眠状态复位使能位,7 "
使能,( 关闭。当该位使能时,若处理器因为,BCC’指令而处
于休