汇编语言之定时器中断
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定时器T0中断
程序段如下:
ORG 0000H
LJMP mSTART
ORG 000BH
AJMP SERVE_T0
ORG 0030H
DELAY:
MOV R0,#04H ;经计算,R0=4,可延时约524288us L1: MOV R1,#0FFH
L2: MOV R2,#0FFH
L3: DJNZ R2,L3
DJNZ R1,L2
DJNZ R0,L1
RET
DELAY_2:
NOP
L4: MOV R1,#0FFH
L5: MOV R2,#0FFH
L6: DJNZ R2,L3
DJNZ R1,L2
DJNZ R0,L1
RET
mSTART:
SETB P0.0
SETB P0.1
MOV B,#20 ;计数,50ms *B中的值
MOV TMOD,#01H ;T0工作于模式1
MOV TH0,#4CH ;经计算4C00H=19456 为晶振11.0592 MHZ时 50ms定时初值
MOV TL0,#00H
SETB TR0
SETB ET0
SETB EA
loop:
CPL P0.0
ACALL DELAY
JMP loop
SERVE_T0:
MOV TH0,#4CH
MOV TL0,#00H
CLR TF0
DJNZ B,GOBACK
MOV B,#20 ;B减至0,重新赋值
CPL P0.1
GOBACK:
RETI
END