找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14394|回复: 6
收起左侧

[求助]请问这个程序执行完一次中断之后返回到哪里继续执行呢

[复制链接]
ID:40461 发表于 2012-6-4 19:51 | 显示全部楼层 |阅读模式

请问这个程序执行完一次中断之后返回到哪里继续执行呢?

我怎么一直觉得它只执行一次P1.0取反之后就不再返回到主程序执行什么了呢?

究竟返回后到哪?又去执行什么呢?

START: MOV TMOD,#01H ;T0为定时器状态,工作方式1
  MOV TL0,#0CH ;T0的低位定时初值
  MOV TH0,#0FEH ;T0的高位定时初值
  MOV TCON,#10H ;打开T0
  SETB ET0 ;1ET0,即允许T0中断
  SETB EA ;1EA,即充许全局中断
  AJMP $ ;动态暂存
000BH: AJMP IST0 ;转入T0中断服务程序入口地址IST0
IST0: MOV TL0,#0CH ;重置定时器初值
  MOV TH0,#0FEH ;重置定时器初值
  CPL P1.0 ;P1.0取反
  RET1 ;中断返回
回复

使用道具 举报

ID:27916 发表于 2012-6-4 21:25 | 显示全部楼层

楼主应该是典型的一窍不通

 

不是想打击你,,,,后面的注释是多么的清晰

 

 

程序上看到的是只有一个P1.0取反,但不是说这个地方只会运行一次,每次T0产生中断,都会执行CPL P1.0

 

 

RETI  后面的 注释说得很清楚,该指令是中断返回,也就是退出中断,会到原来的地方也就是AJMP   $

 

回复

使用道具 举报

ID:40461 发表于 2012-6-5 00:41 | 显示全部楼层

对呀 不是您打击 确实是小白

貌似懂了些 就是说 AJMP $是在原地跳转 等到定时器溢出后 TF0=1 中断T0响应 再次给定时器赋初值 再次开始计时 同时TF0自动被清零 程序返回 AJMP $继续等待定时器溢出

我的理解对吗 还是说在TF0被清零之后 中断开关EA ET0也清零 程序回到AJMP $不再允许中断程序执行?

回复

使用道具 举报

ID:27916 发表于 2012-6-5 09:00 | 显示全部楼层
我建议您,还是好好看看书
回复

使用道具 举报

ID:40461 发表于 2012-6-5 10:58 | 显示全部楼层
这位大哥,您如果有好的教材可否推荐一本,我这真是不知道哪些书适合初学者看的,这些东西都是我从网站(http://www.51hei.com/mcuteach/252.htmlhttp://www.51hei.com/mcuteach/252.html)上一篇一篇看来得,可能本人在这方面的理解能力确实存在问题,有些知识我拿不准,有时候也可能联系不起来。但这些问题都是我在看讲解的时候的疑问,我没有别的意思,确实是拿不准才拿出来请教各位的,如果您还有耐心,就请您指点一下吧,如果您觉得我不值得教,那希望不要因为我影响您的心情。
回复

使用道具 举报

ID:27916 发表于 2012-6-5 17:14 | 显示全部楼层

摸索吧,本人不看教程,没有你需要的东西

回复

使用道具 举报

ID:40461 发表于 2012-6-9 10:23 | 显示全部楼层
好吧 谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表