单片机应用系统的抗干扰技术
[09-12 17:57:11] 来源:http://www.88dzw.com 单片机学习 阅读:8838次
文章摘要:2.3 软件陷阱的设置指令冗余不能完全解决程序"跑飞"的问题,若"跑飞"的程序没有落到程序区则指令冗余就无能为力了。对于此种情况采用设置软件陷阱的方法加以解决。这种方法是在非程序区设置拦截措施,当PC失控、程序"跑飞"进入非程序区时,使程序进入陷井,从而迫使程序返回正常状态。例如,若把这段程序的人口标记为ERR,软件陷阱就可如下书写:NOPNOPLJMP ERR该软件陷阱除了安置在未使用的用户EPROM区外,还常常安置在未使用的中断向量区、表格区的最后和程序的断裂点后(断裂点是指LJMP,SJMP,RET等类指令)。2.4 设置看门狗
单片机应用系统的抗干扰技术,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com2.3 软件陷阱的设置
指令冗余不能完全解决程序"跑飞"的问题,若"跑飞"的程序没有落到程序区则指令冗余就无能为力了。对于此种情况采用设置软件陷阱的方法加以解决。这种方法是在非程序区设置拦截措施,当PC失控、程序"跑飞"进入非程序区时,使程序进入陷井,从而迫使程序返回正常状态。例如,若把这段程序的人口标记为ERR,软件陷阱就可如下书写:
NOP
NOP
LJMP ERR
该软件陷阱除了安置在未使用的用户EPROM区外,还常常安置在未使用的中断向量区、表格区的最后和程序的断裂点后(断裂点是指LJMP,SJMP,RET等类指令)。
2.4 设置看门狗
若"跑飞"的程序既没有落入软件陷阱,又没有遇到冗余指令,而自动形成一个死循环,可利用软件启动单片机的监视定时器(俗称看门狗)来使系统复位。这种方法简单、直观,只需不超过64k状态周期(16ms)的时间(用12M晶振时),计算机就可恢复正常。但一定要通过软件每隔一定时间(如15ms)使看门狗复位一次。
以AT89系列单片机为例,利用内部定时器的定时功能。先估算主控程序正常运行一个循环的时间t,将定时器定时时间T取比t稍大。主控程序运行过程中执行一次定时器的刷新操作,如果程序正常运行,定时器就不会产生溢出信号而产生中断。当程序"跑飞"失控后,系统由于不能刷新定时器而导致定时器溢出而产生中断。利用定时器中断服务子程序就可以进人错误处理子程序,由错误处理子程序对出错情况进行相应的处理,或者跳到程序起始处,重新执行主控程序。程序如下:
在系统初始化程序中,加入下列代码:
SETB EA ;开中断
SBTB ETl ;允许T1中断
SETB PTl ;将T1设为最高优先级
在主控程序中,加入定时器T1的初始化程序。程序如下:
MOV TLl,#DATAL8 ;TI低8位赋初值
MOV THl,#DATA8 ;T1高8位赋初值
ORL 89H,#2FH ;设T1的工作方式
SETB TRl ;启动定时器T1工作
中断程序如下:
ORG 00lBH ;人口地址
POP A ;丢弃PC指针压人堆栈的错误地址
POP A
MOVA,ttADDH8 ;将要跳转的地址送入
PUSH A
MOVGA,#ADDL8 ;堆栈的栈顶
PUSH A
KETI
执行上述中断服务程序后,将使程序自动将堆栈栈顶的2个内容作为地址指针PC;从而使程序进入所要去的地方,进而正确执行主程序。
3 结 语
本文介绍了单片机系统中常用的几种干扰抑制技术,实践表明,这些方法均是行之有效的。综合运用述技术可大大提高系统的可靠性,降低系统调试和维护的工作强度。
- 上一篇:PC机与单片机串行通信的硬件设计
《单片机应用系统的抗干扰技术》相关文章
- › 在8051单片机应用系统中使用DiskOnChip
- › 单片机应用编程技巧
- › 非接触式给液的单片机应用设计
- › 单片机应用系统的抗干扰技术
- › 高性价比的单片机应用系统结构设计
- › 单片机应用系统
- 在百度中搜索相关文章:单片机应用系统的抗干扰技术
- 在谷歌中搜索相关文章:单片机应用系统的抗干扰技术
- 在soso中搜索相关文章:单片机应用系统的抗干扰技术
- 在搜狗中搜索相关文章:单片机应用系统的抗干扰技术