找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1000|回复: 7
收起左侧

这段单片机汇编语言的运行流程是怎样的?

[复制链接]
ID:1003481 发表于 2022-7-15 20:57 | 显示全部楼层 |阅读模式
特别想弄清楚单片机代码的第4~6行是什么意思。 运行流程是RESET(3行) -> MAIN(8行) -> PT0M0(12行) -> HERE(10行),然后不停的等待定时中断发生吗?这样的话,4~6行就没有执行嘛
  •         ORG 0000H
  • RESET:
  •         AJMP MAIN         ;转主程序
  •         ORG         000BH       ;T0的中断入口
  •         AJMP IT0P         ;转T0的中断处理程序IT0P
  •        ORG  0100H
  • MAIN:
  •         ACALL PT0M0       ;调用子程序PT0M0
  • HERE:
  •         AJMP HERE         ;自身跳转,模拟主程序
  • PT0M0:
  •         MOV  TL0,#0CH     ;T0初始化程序,T0置初值
  •         MOV  TH0,#0F0H
  •         SETB  TR0
  •         SETB  ET0
  •         SETB  EA
  •         RET
  • IT0P:      
  •         MOV  TL0,#0B0H      
  •         MOV  TH0,#3CH
  •         CPL  P1.0
  •         RETI
  • END

回复

使用道具 举报

ID:883242 发表于 2022-7-16 08:05 | 显示全部楼层
第4、5两行是中断使用的。第6行是main的位置。
回复

使用道具 举报

ID:401564 发表于 2022-7-16 09:00 | 显示全部楼层
ORG是汇编伪指令,意思就是以下代码是从某个地址开始执行的
ORG         000BH :以下的代码是从000BH 这个地址开始的
而这个000BH 是8051T0定时器的中断向量入口
如果你不知道什么叫中断向量,那就得跟你解释一下什么叫中断,还得讲中断的执行过程.....
那就太多了,说不完的
《8051微控制器(第4版)》
这本书里有说明,你可以搜索一下
回复

使用道具 举报

ID:121859 发表于 2022-7-16 14:35 | 显示全部楼层
很简单的程序,初始化后,就是中断起作用了,产生周期为100毫秒的方波。P1.0输出。
回复

使用道具 举报

ID:876573 发表于 2022-7-16 16:10 | 显示全部楼层
找本51单片机汇编语言的书籍好好看看吧,挺简单的
回复

使用道具 举报

ID:624769 发表于 2022-7-16 18:10 | 显示全部楼层
4~6行就没有执行嘛

=>
你要先分清楚,伪指令 和 汇编指令  的区别。 第4行和第6行都是伪指令,是给编译器看的,本来就不会执行。
然后,第5行,自然是等中断发生了再执行,有什么问题么?
回复

使用道具 举报

ID:1003481 发表于 2022-7-16 21:05 | 显示全部楼层
188610329 发表于 2022-7-16 18:10
4~6行就没有执行嘛

=>

原来是中断发生后会自动跳转到中断入口地址然后执行该地址后的代码,我懂了,谢谢
回复

使用道具 举报

ID:434018 发表于 2022-7-17 10:07 | 显示全部楼层
1) L4:T0中断入口地址,中断发生后会自动跳转到 000BH 执行代码
2)L5:  AJMP IT0P 转跳到"IT0P" Label地址
3)执行下方代码
IT0P:      
        MOV  TL0,#0B0H      
        MOV  TH0,#3CH
        CPL  P1.0
        RETI
END
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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