汇编程序:
delaytime EQU 31H
exechi EQU 32H
EXECLO EQU 33H
MAINHI EQU 34H
MAINLO EQU 35H
ORG 000H
AJMP MAIN;
ORG 003H
AJMP INTER0
ORG 1BH
AJMP T1INT
ORG 30H
MAIN:
MOV DPTR, #WAVESTAR;
CLR EX0;
MOV SP,#07;
MOV EXECHI,#00H;
MOV EXECLO,#60H;
MOV MAINHI,#00H;
MOV MAINLO,#30H;
MOV TMOD,#10H;
MOV TH1,#03CH;
MOV TL1,#0FFH;
SETB EA;
SETB ET1;
SETB TR1;
SETB IT0;
SETB EX0;
MOV R0,#03;
MOV R3,#00H;
ORG 0060H
EXECU:
FREQ1:
CJNE R0,#01,FREQ2;
ACALL DISP06;
AJMP FREQ1;
FREQ2:
CJNE R0,#02,FREQ3;
ACALL DISP08;
AJMP FREQ2;
FREQ3:
CJNE R0,#03,FREQ4;
ACALL DISP10;
AJMP FREQ3;
FREQ4:
CJNE R0,#04,FREQ5;
ACALL DISP12;
AJMP FREQ4;
FREQ5:
CJNE R0,#05,FREQ6;
ACALL DISP14;
AJMP FREQ5;
FREQ6:
CJNE R0,#06,NXTRND;
ACALL DISP16;
AJMP FREQ6;
nxtrnd:
CLR ET1;
clr ie0;
SETB EX0;
SETB IT0;
SETB PX0;
setb P1.2;
SETB P1.3
SETB P3.0;
SJMP $ ;
AJMP EXECU;
DISP06:
MOV A,#00H;
LOOPD06:
MOV DELAYTIME,#30H;
DELAY06:
MOV R2,#66;
DELOOP06:
DJNZ R2,DELOOP06;
DJNZ DELAYTIME,DELAY06;
MOV R1,A;
MOVC A,@A+DPTR;
RL A;
RL A;
MOV P1,A;
MOV A,R1;
INC A;
CJNE A,#00H,LOOPD06;
RET;
DISP08:
MOV A,#00H;
loopd08:
MOV DELAYTIME,#30H;
delay08:
MOV R2,#49;
deloop08:
djnz R2,DELOOP08;
DJNZ DELAYTIME,DELAY08;
MOV R1,A;
MOVC A,@A+DPTR;
RL A;
RL A;
MOV P1,A;
MOV A,R1;
INC A;
CJNE A,#00H,LOOPD08;
RET;
DISP10:
MOV A,#00H;
loopd10:
MOV DELAYTIME,#30H;
delay10:
MOV R2,#39;
DELOOP10:
djnz R2,DELOOP10;
DJNZ DELAYTIME,DELAY10;
MOV R1,A;
MOVC A,@A+DPTR;
RL A;
RL A;
MOV P1,A;
MOV A,R1;
INC A;
CJNE A,#00H,LOOPD10;
RET;
DISP12:
MOV A,#00H;
loopd12:
MOV DELAYTIME,#30H;
delay12:
MOV R2,#32;
deloop12:
djnz R2,DELOOP12;
DJNZ DELAYTIME,DELAY12;
MOV R1,A;
MOVC A,@A+DPTR;
RL A;
RL A;
MOV P1,A;
MOV A,R1;
INC A;
CJNE A,#00H,LOOPD12;
RET;
DISP14:
MOV A,#00H;
loopd14:
MOV DELAYTIME,#30H;
delay14:
MOV R2,#28;
deloop14:
djnz R2,DELOOP14;
DJNZ DELAYTIME,DELAY14;
MOV R1,A;
MOVC A,@A+DPTR;
RL A;
RL A;
MOV P1,A;
MOV A,R1;
INC A;
CJNE A,#00H,LOOPD14;
RET;
DISP16:
MOV A,#00H;
loopd16:
MOV DELAYTIME,#30H;
delay16:
MOV R2,#23;
deloop16:
djnz R2,DELOOP16;
DJNZ DELAYTIME,DELAY16;
MOV R1,A;
MOVC A,@A+DPTR;
RL A;
RL A;
MOV P1,A;
MOV A,R1;
INC A;
CJNE A,#00H,LOOPD16;
RET;
t1int:
inc r3;
CJNE R3,#24,LOAD;
CPL P3.0;
INC R4;
CJNE R4,#100,NEXT;
MOV R4,#00;
MOV R3,#00;
INC R0;
PUSH EXECLO;
PUSH EXECHI;
RETI;
NEXT:
MOV R3,#00;
LOAD:
MOV TH1,#03CH;
MOV TL1,#0FFH;
RETI;
INTER0:
REST:
DELAY:
MOV R7,#00H;
LOOP:
INC R7;
CJNE R7,#0,LOOP;
MOV R0,#02;
PUSH MAINLO;
PUSH MAINHI;
RETI;
ORG 200H
WAVESTAR:
RECT:
DB 252,252,252,252,252,252,252,252,252,252
DB 253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253
DB 253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253
DB 253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253
DB 253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253
DB 253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253
DB 253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253;
DB 252,252,252,252,252,252,252,252,252,252
DB 254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254
DB 254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254
DB 254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254
DB 254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254
DB 254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254
DB 254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254;
END;