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,#40 ;设置循环次数 MOV A,#001H MOV P1,A ;输出给p1 SETB TR0 SJMP $ ;等待中断 T0INT: MOV TH0,#4BH ;重新装载计数器的值 MOV TL0,#0FDH DJNZ R0,QUIT MOV R0,#40 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