TRANSMITTER:- ;========================================================== ;= IN THE NAME OF ALLAH = ;========================================================== ;TRANSMITTER TI_F REG 00H PRESW REG 30H ;=================================== ORG 0000H ; REST LJMP INI ORG 0023H ;RI_TI LJMP SERISR ;=================================== ;= PROGRAM INITIALIZATION = ;=================================== INI: MOV R0,#7FH CLR A MOV @R0,A DJNZ R0,$-1 MOV TMOD,#20H MOV SCON,#40H MOV IE,#90H SETB TI_F MOV TH1,#-26 SETB TR1 ;=================================== ;= MAIN PROGRAM ROUTEEN = ;=================================== MAIN: CALL DELAY CALL KEYREAD JC MAIN CALL SEND LJMP MAIN ;=================================== ;= DELAY ROUTEEN = ;=================================== DELAY: MOV R2,#0 MOV R3,#100 DLYLP: DJNZ R2,DLYLP DJNZ R3,DLYLP RET ;=================================== ;= LCD SEND ROUTEEN = ;=================================== SEND: JNB TI_F,$ CLR TI_F MOV A,#'a' MOV SBUF,A CLR TI JNB TI_F,$ CLR TI_F MOV A,#'b' MOV SBUF,A CLR TI JNB TI_F,$ CLR TI_F MOV A,PRESW MOV SBUF,A CLR TI JNB TI_F,$ CLR TI_F MOV A,#'c' MOV SBUF,A CLR TI SEND_EX: RET ;=================================== ;= KEY READ ROUTEEN = ;= THESE VRIABLE ARE USED = ;= KEY_PORT,PRESW,A,B,R2,R3,C = ;= IF C IS SET THEN RED FOUTTY = ;= RETURN VALUE IN PRESW = ;=================================== KEYREAD: MOV P0,#FFH MOV P2,#FFH MOV A,P0 MOV R2,#8 MOV B,#0 KEYLP0: RLC A JNC FAINDKEY DJNZ R2,KEYLP0 MOV R2,#8 MOV A,P2 MOV B,#8 KEYLP1: RLC A JNC FAINDKEY DJNZ R2,KEYLP1 SETB C RET FAINDKEY: MOV A,R2 DEC A ADD A,B MOV PRESW,A CLR C RET ;=================================== ;= SERIAL INTRUPT SERVICE ROUTINE = ;=================================== SERISR: JNB TI,SERREC CLR TI SETB TI_F SERREC: JNB RI,SER_EX PUSH A MOV A,SBUF CLR RI POP A SER_EX: RETI ;=================================== END RECEIVER:- BUZ REG P3.6 ; BUZZER ENB REG P3.2 ; RELAY ENABLE ;========================================================== ;= IN THE NAME OF ALLAH = ;========================================================== ORG 0000H ; REST LJMP INI ORG 0023H ;RI_TI LJMP SERISR ;=================================== ;= PROGRAM INITIALIZATION = ;=================================== INI: MOV R0,#7FH CLR A MOV @R0,A DJNZ R0,$-1 MOV P0,#0 CLR ENB MOV TMOD,#20H MOV SCON,#50H MOV IE,#90H MOV TH1,#-26 SETB TR1 CLR BUZ ; OFF BUZZER ;=================================== ;= MAIN PROGRAM ROUTEEN = ;=================================== MAIN: CALL FAIND JMP MAIN ;=================================== ;= SERIAL FAIND DATA ROUTEEN = ;=================================== FAIND: MOV A,30H CJNE A,#'a',FAIND_EX MOV A,31H CJNE A,#'b',FAIND_EX MOV A,33H CJNE A,#'c',FAIND_EX MOV A,32H SETB BUZ CALL RELAYDRV CALL DELAY MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 FAIND_EX: RET ;=================================== ;= DELAY ROUTINE = ;=================================== DELAY: MOV R0,#0 MOV R1,#0 MOV R2,#30 DLYLP: DJNZ R0,DLYLP DJNZ R1,DLYLP CLR P3.6 DJNZ R2,DLYLP RET ;=================================== ;= RELAY DRAIVE ROUTINE = ;=================================== RELAYDRV: CJNE A,#0,RELAY1 CPL P0.0 RET RELAY1: CJNE A,#1,RELAY2 CPL P0.1 RET RELAY2: CJNE A,#2,RELAY3 CPL P0.2 RET RELAY3: CJNE A,#3,RELAY4 CPL P0.3 RET RELAY4: CJNE A,#4,RELAY5 CPL P0.4 RET RELAY5: CJNE A,#5,RELAY6 CPL P0.5 RET RELAY6: CJNE A,#6,RELAY7 CPL P0.6 RET RELAY7: CJNE A,#7,RELAY8 CPL P0.7 RET RELAY8: CJNE A,#8,RELAY9 INC P2 RET RELAY9: CJNE A,#9,RELAY10 DEC P2 RELAY10: RET ;=================================== ;= SERIAL INTRUPT SERVICE ROUTINE = ;=================================== SERISR: JNB TI,SERREC CLR TI SERREC: JNB RI,SER_EX PUSH A MOV A,SBUF CLR RI MOV 30H,31H MOV 31H,32H MOV 32H,33H MOV 33H,A POP A SER_EX: RETI ;=================================== END