ORG 0000H
LJMP START
ORG 000BH ;T0的中断矢量位置
LJMP T0INT
ORG 0100H
START: MOV TMOD,#1 ;工作方式为1
MOV TH0,#4BH
MOV TL0,#0FDH
SETB EA ;开放中断
SETB ET0
MOV R0,#20 ;设置循环次数
MOV A,#001H
MOV P1,A ;输出给p1
SETB TR0
SJMP $ ;等待中断
T0INT: MOV TH0,#4BH ;重新装载计数器的值
MOV TL0,#0FDH
DJNZ R0,QUIT
MOV R0,#20
RL A
MOV P1,A
QUIT: RETI
END
ORG 0000H
LJMP START
ORG 000BH ;T0的中断矢量位置
LJMP T0INT
ORG 0100H
START: MOV TMOD ,#4;
MOV TH0,#0FFH ;高8位
MOV TL0,#16H ;低5位 32-10=22
SETB EA ;开放中断
SETB ET0
MOV R0,#10 ;设置循环次数
SETB TR0
SJMP $ ;等待中断
T0INT:
CPL P1.0
MOV TH0,#255 ;高8位
MOV TL0,#016H ;低5位 32-10=22
MOV R0,#10 ;设置循环次数
QUIT: RETI
END
‘’
ORG 0000H
LJMP START
ORG 0003H ;INT0的中断矢量位置
LJMP T0INT
ORG 0013H ;INT1的中断矢量位置
LJMP T1INT
ORG 0100H
START:
SETB EA ;开放中断
SETB EX1
SETB EX0
SETB PX0
SETB IT0 ; 边沿触发
SETB IT1
SJMP $ ;等待中断
T0INT:
MOV P1,#0FFH
MOV A,#00H
MOV R5,#6
LOOP1:
MOV R4,#2000H
LOOP3:
MOV R6,#2000H
LOOP4:
DJNZ R6,LOOP4
DJNZ R4,LOOP3
MOV P1,A
CPL A
DJNZ R5,LOOP1
LJMP QUIT
T1INT:
MOV A,#003H
MOV R0,#4
LOOP2:
MOV R3,#2000H
LOOP5:
MOV R2,#2000H
LOOP6:
DJNZ R2,LOOP6
DJNZ R3,LOOP5
MOV P1,A
RL A
RL A
DJNZ R0,LOOP2
LJMP QUIT
QUIT: RETI
END