电路图
代码如下
ORG 0000H
LJMP START
ORG 0003H
LJMP EXT;
ORG 000BH
LJMP TIM
START: MOV SP, #70H;堆栈指针70H
MOV TMOD, #00000001B;初始化定时器
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB TR0;TR0设置为1
MOV IE,#10000011B;中断允许寄存器
MOV IP,#00000001B;中断优先寄存器
MOV R3,#100;
MOV R1,#0FEH
LJMP $;$代表当前地址,原地跳转
TIM: PUSH ACC
PUSH PSW;保存当前状态
MOV TH0,#0D8H
MOV TL0,#0F0H
DJNZ R3,LOOP;循环100次
MOV R3,#100;恢复R3
MOV A,R1;
MOV P1,A;p1=100
RL A;循环左移
MOV R1,A;
LOOP:POP PSW;PSW出栈
POP ACC;ACC出栈
RETI;子程序调用结束
EXT: PUSH ACC
PUSH PSW
MOV A,#00
MOV R2,#10
LOOP3:MOV P1,A
LCALL DELAY
CPL A
DJNZ R2,LOOP3
POP PSW
POP ACC
RETI
DELAY:MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R6,D2
DJNZ R5,D1
RET
END