单片机音响技术网
首页 | 热销产品 | 单片机入门 | 下载中心 | 技术文章 | Protel专区 | 电子制作 | 购物指南 | 发货查询 | 本站淘宝
动画01 当前位置:本站首页技术文章
文章搜索
pix
本站推荐产品
  • 单片机音响软件专业开发板
  • 详细介绍
  • TOPAV-2008单片机开发板 598元
pix
pix
pix
单片机技术文章精选
pix

单片机软件陷阱技术

单片机音响技术网 文章浏览次数:340

CPU受到干扰后,往往将一些操作数当作指令码来执行,造成程序执行混乱.我在A51的做法主要有以下几种:
1.中断向量区

ORG 0000H
START: LJMP MAIN
LJMP INT0
NOP
NOP
LJMP ERR 陷阱
LJMP TOINT
NOP
NOP
LJMP ERR 陷阱
- - - -
ORG 0040H
ERR:
-----------

2.在表格区
在表格区的最后安排5个字节的陷阱
TABEL1:
DB ------------
DB ------------
NOP
NOP
LJMP ERR

3.在未使用的ROM空间
未使用的ROM空间一般全是 0FFH,对于51来说是"MOV R7,A"的单字节指令,程序一旦弹飞到这个区域,将会飞流直下.一般在一些固定的地址加入软件陷阱,捕获弹飞的程序.
ORG 6000H
NOP
NOP
LJMP ERR
ORG 7FFBH
NOP
NOP
LJMP ERR

4.在子程序后面
XXXX:
;;;;;;;;;;
;;;;;;;;;;
RET
NOP
NOP
LJMP ERR
以及在一些长跳转的断裂点...
注: ERR子程序,应当重新设定堆栈,等一些初始化的参数,但对于RAM区的部分数据可以判断保留. 至于是否能有所作用只有天知道了.(呵呵~ ~),不过我写的程序一般是最稳定的,也许是这玩意在起作用吧!


摘录:半键纵横;   责任编辑:mcu51av 2007-11-10

上一篇:PWM控制LED渐亮与渐灭
下一篇:数码管显示1~8数字程序

pix

关于我们 | 联系我们 | 友情链接 | 网站地图 | 点击给我留言
Copyright © 2007 - 2008 单片机音响技术网 All rights reserved. 站长统计