单片机程序执行顺序

ORG 0000H
AJMP MAIN
ORG 000BH
MOV TL0,#XXH
MOV,TH0,#XXH
CPL P1.0
REIT
MAIN:MOV TMOD,#01H
MOV TL0,#XXH
MOV,TH0,#XXH
SETB TR0
SETB ET0
SETB EA
SJMP $
END
可以复制下然后在每句后面标注数字表示执行的先后。谢谢,并解释下他怎么实现方波输出
最新回答
不与情长

2024-11-23 10:11:32

ORG 0000H ;1
AJMP MAIN ;2
ORG 000BH ;进入中断
MOV TL0,#XXH ;定时器低八位值
MOV,TH0,#XXH ;定时器高八位值
CPL P1.0 ;P1.0取反输出方波
REIT ;推出中断
MAIN:MOV TMOD,#01H ;3
MOV TL0,#XXH ;4
MOV,TH0,#XXH ;5
SETB TR0 ;6
SETB ET0 ;7
SETB EA ;8
SJMP $ ;9 等待中断
END
追问
AJMP MAIN不是跳转到main去了吗?
这段程序:ORG 000BH
MOV TL0,#XXH
MOV,TH0,#XXH
CPL P1.0
REIT 怎么执行呢?
追答
这段程序:ORG 000BH         
MOV TL0,#XXH
MOV,TH0,#XXH
CPL P1.0
REIT 怎么执行呢?
这是中断子程序,当定时器达到定时时间后从000BH 这个地址进入,然后执行下面的程序,加我好友吧,百度名是q号
风起半山

2024-11-23 11:17:35

ORG 0000H
AJMP MAIN;0001,跳转到main函数
ORG 000BH
MOV TL0,#XXH;0008,重载定时器0初值
MOV,TH0,#XXH;0008,重载定时器0初值
CPL P1.0;0009,翻转P1.0管脚
REIT
MAIN:MOV TMOD,#01H;0002,设置定时器0工作方式1
MOV TL0,#XXH;0003,配置定时器0重载初值
MOV,TH0,#XXH;0003,配置定时器0重载初值
SETB TR0;0004,启动定时器0计数
SETB ET0;0005,开启定时器0中断
SETB EA;0006,开启中断
SJMP $;0007,死循环,主程序体从此不再做什么事情,定时进入中断
END