汇编语言之定时器中断

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档