$NOMOD51 $INCLUDE(C:\FSI\INC\REG52.INC) BSEG AT 0H FINISH: DBIT 1 ;=========================== CSEG AT 0H LJMP START ORG 0BH LJMP SINF ORG 40H SINF: MOV A,R0 MOVC A,@A+DPTR MOV P1,A DJNZ R0,ENDSIN CLR TR0 SETB FINISH ENDSIN: RETI ;=========================== INIT: MOV IE,#82H MOV TMOD,#22H MOV TCON,#0H MOV SCON,#50H MOV TH1,#0E8H MOV TL1,#0E8H MOV TH0,#0E0H MOV TL0,#0E0H SETB TR1 MOV P1,#7FH SETB FINISH RET ;=========================== START: CALL INIT ;=========================== READ: JNB FINISH,READ CLR TR0 MOV P1,#7FH READ1: MOV P1,#7FH MOV DPTR,#TABLE2 MOV TL0,#0E0H MOV R0,#17H SETB TR0 CLR FINISH JNB FINISH,$ ;=========================== NNN: JNB RI,READ1 MOV A,SBUF CLR RI MOV R1,#08H MOV R5,A ;=========================== MOV P1,#7FH MOV DPTR,#TABLE1 MOV TL0,#0E0H MOV R0,#017H SETB TR0 CLR FINISH ;=========================== FSK: JNB FINISH,FSK CLR FINISH MOV A,R5 JB ACC.0,TOW ONE: MOV P1,#7FH MOV DPTR,#TABLE1 MOV TL0,#0E0H MOV R0,#017H JMP OKI TOW: MOV P1,#7FH MOV DPTR,#TABLE2 MOV TL0,#0E0H MOV R0,#17H ;=========================== OKI: SETB TR0 RR A MOV R5,A ;=========================== OK: DJNZ R1,WAIT ;=========================== JNB FINISH,$ MOV P1,#7FH MOV DPTR,#TABLE2 MOV TL0,#0E0H MOV R0,#17H SETB TR0 CLR FINISH JNB FINISH,$ ;=========================== JMP NNN ;=========================== WAIT: JNB FINISH,WAIT CLR TR0 JB FINISH,FSK ;=========================== TABLE2: DB 0H,0BFH,0EDH,0FEH,0EDH,0BFH,7FH,40H,11H,0H,11H,3FH,7FH,0BFH,0EDH,0FEH,0EDH,0BFH,7FH,40H,11H,0H,11H,3FH TABLE1: DB 0H,0A0H,0BEH,0D9H,0EDH,0FAH,0FEH,0FAH,0EDH,0D9H,0BEH,0A0H,07FH,05EH,040H,025H,011H,04H,00H,04H,011H,025H,03FH,05EH ;=========================== END