解读程序程序
发布网友
发布时间:2022-04-21 14:04
我来回答
共1个回答
热心网友
时间:2023-07-10 12:47
ORG 0000H //汇编伪指令,定义复位地址
RESET: LJMP MAIN //标号:长跳转到MAIN标号地址
ORG 000BH//汇编伪指令,定义定时器0中断服务地址
AJMP IT0P//跳转到定时器0中断服务程序
ORG OO1BH//汇编伪指令,定义定时器1中断服务地址
AJMP IT1P//跳转到定时器1中断服务程序
ORG 0100H//汇编伪指令,定义MAIN标号地址
MAIN: MOV SP, #60H//标号:堆栈初始化
ACALL PT0M2//调用PT0M2子程序
LOOP: MOV C, P1.1//标号:暂存P1.1状态
JNC LOOP //如果P1.1 不等于1跳转回标号LOOP
SETB TR1 //开定时器1
SETB ET1 //使能定时器1
HERE: AJMP HERE //Ljmp $ 死循环
PT0M2: MOV TMOD,#25 //标号PT0M2子程序
MOV TL0,#0FFH //定时器0赋初值
MOV TH0,#0FFH
SETB TR0 //开定时器0
SETB ET0 //使能定时器0
MOV TL1,#06H //定时器1赋初值
MOV TH1,#06H
CLR P1.1 //P1.1端口清零
SETB EA //使能全局中断
RET //子程序返回
IT0P: CLR TR0 //定时器0中断服务程序,关定时器0
SETB P1.1 //P1.1置位
RETI //中断返回
IT1P: CPL P1.0 //定时器1中断服务程序,P1.1清零
RETI //中断返回