定时中断器

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:58:45
ORG 1000H
START:MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV IE,#82H
SETB TR0
MOV R0,#14H
LOOP: SJMP $

ORG 000BH
AJMP BRT0
ORG 0080H
BRT0:DJNZ R0,NEXT
CPL P1.0
MOV R0,#14H
NEXT:MOV TH0,#3CH
MOV TL0,#0B0H
RETI
END

以上是一个定时中断器,请给出各行注释

ORG 1000H 程序起始地址
START:MOV TMOD,#01H 定时器工作方式选择
MOV TH0,#3CH 定时器0高8位赋初值
MOV TL0,#0B0H 低8位赋初值
MOV IE,#82H 中断允许
SETB TR0 开启定时中断
MOV R0,#14H 这和定时无关,给R0寄存器一个值
LOOP: SJMP $ 短跳转指令,跳转到本行,意为等待定时中断

ORG 000BH 定时中断0的入口地址
AJMP BRT0 跳转到标号BRTO
ORG 0080H 代码起始位置
BRT0:DJNZ R0,NEXT R0减一,判断是否为零,如果为零就继续
CPL P1.0 翻转P1.0接口的电平,估计这个口接了一个LED吧
MOV R0,#14H 重新给R0值
NEXT:MOV TH0,#3CH 重新给定时器赋初值
MOV TL0,#0B0H
RETI 中断返回
END

OK,翻译完毕,汗!