当前位置:首页 > 单片机 > 单片机
[导读]单片机中存在这样一种广泛流传的误解:在MCS-51系列单片机中,只要用指令使程序从起始地址开始执行,就可以复位单片机,摆脱干扰。通过一个简单的实验,揭示了软件复位的可靠方法。  有的单片机(如8098)有专门的

单片机中存在这样一种广泛流传的误解:在MCS-51系列单片机中,只要用指令使程序从起始地址开始执行,就可以复位单片机,摆脱干扰。通过一个简单的实验,揭示了软件复位的可靠方法。

  有的单片机(如8098)有专门的复位指令,某些增强型MCS-51系统单片机虽然没有复位指令,但片内集成了WATCHDOG电路,故抗干扰也不成问题。而普及型MCS-51系列单片机(如8031和8032)既然无复位指令,又不带硬件WATCHDOS,如果没有外接硬件WATCHDOG电路,就必须采用软件抗干扰技术。常用的软件抗干扰技术有:软件陷阱、指令冗余、软件WATCHDOG等,它们的作用是在系统受干扰时能及时发现,再用软件的方法使系统复位。所谓软件复位就是用一系列指令来模仿复位操作,这就是MCS-51系列单片机所特有的软件复位技术。

  现用一简单的实验说明,实验电路如附图所示。接于仿真插座P1.0的发光二极管LED0用来表示主程序的工作情况,接于P1。1的发光二极管LED1用于表示低级中断子程序的工作情况,接于P1。2的发光二极管LED2用来表示高级中断子程序的工作情况,接于P3。2口的按钮用来设立干扰标志,程序检测到干扰标志后故意进入死循环或掉进陷井,模仿受干扰的情况,从而检验各种复位方法的实际效果。寮验初始化程序如下:

ORG 0000H
STAT: LJMP MAIN 复位入口地址
LJMP PX0 按钮中断向量(低级中断)
ORG 000BH
LJMP PT0 t0中断向量(低级中断)
ORG 001BH
LJMP PT1 T1中断向量(高级中断)
ORG 0030H
MAIN:
CLR EA
MOV SP,#7
MOV P1,#0FFH
MOV P3,#0FFH
MOV TMOD,#11H
CLR 00H 干扰标志初始化
SETB ET0
SETB ET1
SETB EX0
SETB PT1
SETB TR0
SETB TR1
SETB EA
LOOP: CPL P1.0 主程序发光二极管LED闪烁
MOV R6,#80H
MOV R7,#0
TT1:
DJNZ R7,TT1
DJNZ R6,TT1
SJMP LOOP
PX0:
SETB 00H 设立干扰标志,模拟发生干扰
PT0: CPL P1.1 低级中断程序发光二极管LED1闪烁
RETI
PT1: CPL P1.2 高级中断程序发光二极管LED2闪烁
RETI
END

  实验步骤如下:

  1. 按上述程序启动执行,三个发光二极管都应闪烁(否则应先排除故障),表示主程序和各中断子程序正常。因模拟干扰标志未加检测,故不受按钮影响。

  2. 修改主程序如下,按下按钮后主程序即掉入死循环中。
LOOP: CPL P1.0
MOV R6,#80H
MOV R7,#0H
TT1: DJNZ R7,TT1
DJNZ R6,TT1
JNB 00H,LOOP 受干扰否?
STOP: LJMP STOP 掉入死循环。
  这时可以看到,主程序停止工作(LED0停止闪烁),而两个中断子程序继续运行(LED1和LED2继续闪烁)。

  3. 将定时器T1妆作软件WATCHDOG,将30H单元用作软件WATCHDOG计数器。主程序中加入一条复位软件WATCHDOG的指令。

LOOP: CPL P1.0
MOV 30H,#0 复位软件WATCHDOG计数器
LOOP: CPL P1.0
MOV R6,#80H
MOV R7,#0H
TT1: DJNZ R7,TT1
DJNZ R6,TT1
JNB 00H,LOOP 受干扰否?
STOP: LJMP STOP 掉入死循环。

  T1中断子程序修改如下:

PT1: CPL P1.2 高级中断程序发光二极管闪烁
INC 30H
MOV A,30H
ADD A,#0FDH
JC ERR 达到3次否?
RETI
ERR: LJMP STAT 软件WATCHDOG动作

  当按下按钮前,程序正常运行(三个LED全闪)。按下按钮后,主程序能迅速恢复工作,但两个中断子程序被封锁,不再工作。过程如下:主程序检测到干扰后进入死循环,不能执行复位30H单元的操作,T1中断使30H不断增值,计数到3时,软件WATCHDOG执行动作,执行一条LJMP指令,使程序从头执行。MAIN过程中清除了干扰标志(表示干扰已经过去),使主程序迅速恢复工作。按理说MAIN过程中也重新设定了各个中断,并开放了它们,为什么中断不能恢复工作呢?这是因为中断激活标志的复位工作被遗忘了,因为它没有明确的位地址可供编程,直接转向0000H地址并不能完成真正的复位。软件复位是使用软件陷井和软件WATCHDOG后必须进行的工作,这时程序出错完全有可能发生中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件WATCHDOG是高级中断,它将阻止所有中断响应。由此可见,清除中断激活标志的得要性,很多文献的作者回为没有认识到这一点进入误区。

  
4. 在所有指令中,只有RETI指令能清除中断激活标志。出错处理程序ERR主要是完成这一功能,其它的善后工作交由复位后的系统去完成。为此,我们重新设计T1中断子程序如下所示:

 

PT1: CPL P1.2 高级中断程序发光二极管闪烁
INC 30H 软件WATCHDOG计数器增值
MOV A,30H
ADD A,#0FD
JC ERR 达到3次否?
RETI
ERR: CLR EA 关中断
CLR A 准备复位地址(0000H)
PUSH ACC
PUSH ACC
RETI 清除中断激活标志并复位

  这段程序先关中断,以便后续处理能顺利进行,然后用RETI指令替代LJMP指令,从而既清除了中断激活标志又完成了转向0000H的任务。按这样改好后程序再运行,结果仍不理想:按下按钮后,有时只有主程序和高级中断子程序能迅速恢复正常,而低级中断仍有被关闭的可能。如果按如下方法把干扰转移到低级中断中,则按下按钮后低级中断必然被关闭:

LOOP: CPL P1.0
MOV R6,#80H
MOV R7,#0H
TT1: DJNZ R7,TT1
DJNZ R6,TT1
SJMP LOOP
PT0: CPL P1.1
JB 00H,STOP
RETI
STOP: LJMP STOP 掉入死循环。

  仔细分析后可能得出结论:当软件WATCHDOG是嵌套在低级中断中起作用时,复位后只清除了高级中断激活标志,低级中断标志仍然被置位,从而使低级中断一直被关闭。

  5. 修改出错处理如下:

ERR: CLR EA 正确的软件复位入口
MOV 66H,#0AAH 重建上电标志
MOV 67H,#55H
MOV DPTR,#ERR1 准备第一次返回地址
PUSH DPL
PUSH DPH
RETI 清除高级中断激活标志
ERR1: CLR A
PUSH ACC
PUSH ACC
RETI 清除低级中断激活标志
这时,必须执行两次RETI,才能到达0000H,以保证清除全部中断激活标志,达到和硬件复位相同的效果。同样,软件陷井也必须由下列三条指令才能达到目的。
NOP
NOP
LJMP STAT
改成:
NOP
NOP
LJMP ERR
  
结论:当主程序受到干扰被软件陷阱捕获时,中断标志并未置位,执行ERR过程中,RETI指令等效于RET指令,同样可以达到软件复位的目的。实验结果证明:只有LJMP ERR才能万无一失地实现软件复位,使系统摆脱干扰同,恢复正常。在MCS-51单片机的软件复位过程中,必须连续执行两次中断返回指令RETI才能确保系统恢复正常。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘要:以物联网应用为背景,讨论了基于无线技术的电磁环境及频谱应用情况,分析了造成干扰的成因及抗干扰的措施,研究了通信抗干扰技术增效对比及抗干扰评估方法并得到了相关结果。该结果对未来无线物联网大规模应用系统的通信干扰问题和...

关键字: 无线物联 电磁环境 干扰成因 抗干扰技术 干扰评估

在生活中,你可能接触过各种各样的电子产品,那么你可能并不知道它的一些组成部分,比如它可能含有的模拟量传感器,那么接下来让小编带领大家一起学习模拟量传感器抗干扰技术。

关键字: 模拟量传感器 抗干扰技术 静电屏蔽

用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共...

关键字: MCS51 单片机 堆栈

5月7日,MediaTek举办线上媒体技术沟通会,发布天玑1000系列技术增强版—;—;天玑1000+。 MediaTek无线通信事业部副总经理李彦辑博士表示:“MediaTek天玑1000系列作为旗

关键字: MEDIATEK HZ ENGINE 抗干扰技术

据英国Cobham公司网站公告,英国Cobham公司所属的航宇通信(Cobham Aerospace ConNECtivity)公司宣布,已与英国国防部防务装备和保障(DE&S)局签署合同,研究

关键字: COB 信号 卫星导航 抗干扰技术

电路有干扰怎么办?常用抗干扰技术有哪些?在电子测量装置的电路中出现的、无用的信号称为噪声,当噪声影响电路正常工作时,该噪声称为干扰。信号传输过程中干扰的形成必须具备三项因素,即干扰源、干扰途径以及对噪声敏感性较高的接收电...

关键字: 屏蔽 抗干扰技术 滤波器

据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。这说明单片机应用在我国才刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有...

关键字: 51系列单片机 pic单片机

pic单片机在日常中使用频率较高,与pic单片机具备同等地位的还包含AVR、51系列单片机。那么pic单片机与另外二者有何区别呢?相比较而言,pic单片机又拥有何特点?一起看看这篇关于pic单片机、AVR和51系列单片的...

关键字: AVR pic单片机 51系列单片机

一、本文概述 不仅是日常生活,还是工业生产场景中,我们都会遇到各种各样的电子测量仪器仪表,针对于不同的测量要求,需要有基于不同的测量原理的测量仪表,其涉及到的测量原理和测量方式都不尽相同,从业者在选择

关键字: 抗干扰技术 电子测量仪表 误差处理

随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然而处于同一电力系统中的各种电气设备通过电或磁的联系彼此紧密相连,相互影响,由于运行方式的改变,故障,

关键字: 单片机 抗干扰技术
关闭