You are on page 1of 2

ORG 0000H LJMP START ORG 0060H START: MOV TMOD,#22H MOV TH1,#-6 MOV R0,#10H MOV SCON,#50H

MOV 40H,#70H MOV TH0,40H setb tr1 LOOP: CLR RI H1: JNB RI,H1 MOV A,SBUF LOOP1: CJNE A,#'S',H2 LCALL SINE H2: CJNE A,#'P',LOOP LCALL PULSE SJMP LOOP1 ORG 0100H SINE: MOV DPTR,#SINEDATA MOV B,#25H AGAIN1: CLR RI HIMP: JNB RI,H3IMP MOV A,SBUF CJNE A,#'P',H4 RET H4: LCALL CHANGE H3: CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR LCALL DELAY DJNZ B,AGAIN1 SJMP SINE H3IMP: CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR LCALL DELAY DJNZ B,HIMP SJMP SINE

ORG 0150H CHANGE: CJNE A,#'I',H5 LCALL INCREASE H5: CJNE A,#'D',H6 LCALL DECREASE H6: RET ORG 0200H INCREASE: ADD MOV MOV MOV H7: JNB CLR MOV A,40H A,R0 40H,A TH0,40H SBUF,A TI,H7 TI

RET ORG 0250H DECREASE:MOV A,40H SUBB A,R0 MOV 40H,A MOV TH0,40H MOV SBUF,A H8: JNB TI,H8 CLR TI RET ORG 0300H DELAY: SETB TR0 H9: JNB TF0,H9 CLR TF0 RET ORG 0350H PULSE: MOV DPTR,#PULSEDATA MOV B,#28H AGAIN2: CLR RI H10IMP: JNB RI,H11IMP MOV A,SBUF CJNE A,#'S',H12 RET H12: LCALL CHANGE H11: CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR LCALL DELAY DJNZ B,AGAIN2 SJMP PULSE H11IMP: CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR LCALL DELAY DJNZ B,H10IMP SJMP PULSE ORG 0400H SINEDATA: DB 00H,16H,2CH,42H,57H,6CH,7FH,92H,0A4H,0B4H,0C3H,0D1H,0DDH,0E7H,0EFH, 0F6H,0FBH,0FEH,0FFH SINEDATA1: DB 0FEH,0FBH,0F6H,0EFH,0E7H,0DDH,0D1H,0D1H,0C3H,0B4H,0A4H,92H,7FH,6CH ,57H,42H,2CH,16H,00H ORG 0450H PULSEDATA: DB 00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H ,0FFH,00H,0FFH,00H,0FFH PULSEDATA1: DB 00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FFH,0 0H,0FFH,00H,0FFH,00H,0FFH

END

You might also like