[单片机原理及接口技术(余锡存)]第9章.ppt

[单片机原理及接口技术(余锡存)]第9章.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“软件陷阱”一般安排在下列四种地方。 1. 未使用的中断向量区 MCS - 51 单片机的中断向量区为 0003H~002FH, 如果系统程序未使用完全部中断向量区, 则可在剩余的中断向量区安排“软件陷阱”, 以便能捕捉到错误的中断。 如某系统使用了两个外部中断INT0、INT1和一个定时器溢出中断T0, 它们的中断服务子程序入口地址分别为FUINT0、 FUINT1和 FUT0, 即可按下面的方式来设置中断向量区: ORG 0000H  0000H START: LJMP MAIN ; 引向主程序入口 0003H LJMP FUINT0 ; INT0中断服务程序入口 006H NOP ; 冗余指令 007H NOP  008H LJMP ERR ; 陷阱 0013H LJMP FUT0 ; T0中断服务程序入口 00EH NOP ; 冗余指令 00FH NOP ;  0010H LJMP ERR ; 陷阱 0013H LJMP FUINT1 ; INT1中断服务程序入口 0016H NOP ; 冗余指令 0017H NOP  0018H LJMP ERR ; 陷阱 001BH LJMP ERR ; 未使用T1中断, 设陷阱 001EH NOP ; 冗余指令 001FH NOP  0020H LJMP ERR ; 陷阱 0023H LJMP ERR ; 未使用串口中断, 设陷阱 0026H NOP ; 冗余指令 0027H NOP  0028H LJMP ERR ; 陷阱 002BH LJMP ERR ; 未使用T2中断, 设陷阱 002EH NOP ; 冗余指令 002FH NOP  0030H MAIN: … ; 主程序 2. 未使用的大片EPROM空间 程序一般都不会占用EPROM芯片的全部空间, 对于剩余未编程的EPROM空间, 一般都维持原状, 即其内容为 0FFH。 0FFH对于MCS - 51 单片机的指令系统来说是一条单字节的指令: MOV R7, A。 如果程序“跑飞”到这一区域, 则将顺利向后执行, 不再跳跃(除非又受到新的干扰)。因此在这段区域内每隔一段地址设一个陷阱, 就一定能捕捉到“跑飞”的程序。 3. 表格 有两种表格: 一类是数据表格, 供MOVC A, @A+PC 指令或MOVC A, @A+DPTR指令使用, 其内容完全不是指令。另一类是散转表格, 供JMP @A+DPTR指令使用, 其内容为一系列的 3 字节指令LJMP或 2 字节指令AJMP。 由于表格的内容与检索值有一一对应的关系, 在表格中间安排陷阱会破坏其连续性和对应关系, 因此只能在表格的最后安排陷阱。如果表格区较长, 则安排在最后的陷阱不能保证一定能捕捉“跑飞”来的程序, 有可能在中途再次“跑飞”, 这时只好指望别处的陷阱或冗余指令来捕捉。 4. 程序区 程序区是由一系列的指令构成的, 不能在这些指令中间任意安排陷阱, 否则会破坏正常的程序流程。但是, 在这些指令中间常常有一些断点, 正常的程序执行到断点处就不再往下执行了, 这类指令有LJMP、 SJMP、 AJMP、 RET、 RETI, 这时PC的值应发生正常跳变。 如果在这些地方设置陷阱就有可能捕捉到“跑飞”的程序。 例如, 对一个累加器A的

文档评论(0)

jz6501 + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档