14
AUTOMATIC SIGNALLING PART 1 (MCU 1) P1.0-P1.3(TRAFFIC SIGNAL) 0-RED 1-GREEN P1.4-P1.7 REEDS P2.0 RESET P2.1 BUZZER P2.2-P2.5 (SIGNAL BREACH POINT INDICATOR) TO MCU 2 P3.0-P3.3 GREEN TO RED TRANSITION INDICATOR P2.7 WHOLE SYSTEM RESTART .ORG 0000H START: MOV A,#0FFH ;SETTING ALL THE PORTS HIGH JUST TO BE SURE MOV P1,A MOV P2,A MOV P3,A RC: JNB P2.0,J1 ;RESET CHECK J2: JNB P1.4,J3 ;CHECK REED NO 1(IF LOW THEN JUMP) J5: JNB P1.5,J7 ;CHECK REED NO 2 J9: JNB P1.6,J11 ;CHECK REED NO 3 J13: JNB P1.7,J15 ;CHECK REED NO 4 J17: JNB P2.7,START ;WHOLE SYSTEM RESTART(IN CASE OF A MALFUNCTION) AJMP RC .END J1: SETB P2.1 ;DEACTIVATE BUZZER AJMP J2 J3: JB P1.0,J4 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 1) JNB P3.0,J5 ;GREEN TO RED TRANSITION CHECK JNB P1.0,J6 ;IF RED(i.e. LOW) THEN JUMP J4: CLR P3.0 ;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL POINT 1 CLR P1.0 ;CHANGE SIGNAL FROM GREEN TO RED AJMP J5 J6: CLR P2.1 ;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 1) CLR P2.2 ;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 1) AJMP J5 J7: JB P1.1,J8 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 2) JNB P3.1,J9 ;GREEN TO RED TRANSITION CHECK JNB P1.1,J10 ;IF RED(i.e. LOW) THEN JUMP J8: CLR P3.1 ;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL POINT 2 CLR P1.1 ;CHANGE SIGNAL FROM GREEN TO RED AJMP J9 J10: CLR P2.1 ;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 2) CLR P2.3 ;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 2) AJMP J9 J11: JB P1.2,J12 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 3)

Temp

Embed Size (px)

DESCRIPTION

Temp

Citation preview

Page 1: Temp

AUTOMATIC SIGNALLING PART 1 (MCU 1)P1.0-P1.3(TRAFFIC SIGNAL) 0-RED 1-GREENP1.4-P1.7 REEDSP2.0 RESETP2.1 BUZZERP2.2-P2.5 (SIGNAL BREACH POINT INDICATOR) TO MCU 2P3.0-P3.3 GREEN TO RED TRANSITION INDICATORP2.7 WHOLE SYSTEM RESTART

.ORG 0000HSTART: MOV A,#0FFH ;SETTING ALL THE PORTS HIGH JUST TO BE SURE

MOV P1,AMOV P2,AMOV P3,A

RC: JNB P2.0,J1 ;RESET CHECKJ2: JNB P1.4,J3 ;CHECK REED NO 1(IF LOW THEN JUMP)J5: JNB P1.5,J7 ;CHECK REED NO 2J9: JNB P1.6,J11 ;CHECK REED NO 3J13: JNB P1.7,J15 ;CHECK REED NO 4J17: JNB P2.7,START ;WHOLE SYSTEM RESTART(IN CASE OF A MALFUNCTION)

AJMP RC.END

J1: SETB P2.1 ;DEACTIVATE BUZZERAJMP J2

J3: JB P1.0,J4 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 1)JNB P3.0,J5 ;GREEN TO RED TRANSITION CHECKJNB P1.0,J6 ;IF RED(i.e. LOW) THEN JUMP

J4: CLR P3.0 ;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL POINT 1

CLR P1.0 ;CHANGE SIGNAL FROM GREEN TO REDAJMP J5

J6: CLR P2.1 ;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 1)CLR P2.2 ;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 1)AJMP J5

J7: JB P1.1,J8 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 2)JNB P3.1,J9 ;GREEN TO RED TRANSITION CHECKJNB P1.1,J10 ;IF RED(i.e. LOW) THEN JUMP

J8: CLR P3.1 ;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL POINT 2

CLR P1.1 ;CHANGE SIGNAL FROM GREEN TO REDAJMP J9

J10: CLR P2.1 ;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 2)CLR P2.3 ;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 2)AJMP J9

J11: JB P1.2,J12 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 3)JNB P3.2,J13 ;GREEN TO RED TRANSITION CHECKJNB P1.2,J14 ;IF RED(i.e. LOW) THEN JUMP

J12: CLR P3.2 ;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL POINT 3

CLR P1.2 ;CHANGE SIGNAL FROM GREEN TO REDSETB P3.0 ;DEACTIVATE GREEN TO RED INDICATOR AT SIGNAL POINT 1SETB P1.0 ;CHANGE SIGNAL FROM RED TO GREENAJMP J13

J14: CLR P2.1 ;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 3)

Page 2: Temp

CLR P2.4 ;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 3)AJMP J13

J15: JB P1.3,J16 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 4)JNB P3.3,J17 ;GREEN TO RED TRANSITION CHECKJNB P1.3,J18 ;IF RED(i.e. LOW) THEN JUMP

J16: CLR P3.3 ;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL POINT 4

CLR P1.3 ;CHANGE SIGNAL FROM GREEN TO REDSETB P3.1 ;DEACTIVATE GREEN TO RED INDICATOR AT SIGNAL POINT 2SETB P1.1 ;CHANGE SIGNAL FROM RED TO GREENAJMP J17

J18: CLR P2.1 ;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 4)CLR P2.5 ;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 4)AJMP J17

AUTOMATIC SIGNALLING PART 2(FOR MCU 2)P1 DATA LINES TO LCDP2.0-P2.3 INPUTS FROM MCU 1(BREACH INDICATOR)P2.4 RESETP2.5 REGISTER SELECTP2.6 READ WRITE SELECTP2.7 ENABLE (LCD).ORG 0000HSTART: MOV A,#38H ;2 LINES AND 5X7 MATRIX

ACALL COMMAND ;WRITE DATA INTO COMMAND REGISTER OF LCDACALL DELAYMOV A,#0EH ;DISPLAY ON, CURSOR BLINKINGACALL COMMANDACALL DELAYMOV A,#01H ;CLEAR DISPLAY SCREENACALL COMMANDACALL DELAYMOV A,#'W' ;WRITING DATA INTO THE DATA REGISTER OF LCDACALL DATAACALL DELAYMOV A,#'E'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#'C'ACALL DATAACALL DELAYMOV A,#'O'ACALL DATAACALL DELAYMOV A,#'M'ACALL DATAACALL DELAYMOV A,#'E'ACALL DATAACALL DELAY

CHECK1: JNB P2.0,J1 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL POINT 1JNB P2.1,J2 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL POINT 2JNB P2.2,J3 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL POINT 3JNB P2.3,J4 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL POINT 4JNB P2.4,START ;RESETJMP CHECK1

Page 3: Temp

.END

J1: LCALL JJ1 ;JNB DOESN'T HAVE A LONG RANGE, USING LCALL INSTEADAJMP CHECK1

J2: LCALL JJ2AJMP CHECK1

J3: LCALL JJ3AJMP CHECK1

J4: LCALL JJ4AJMP CHECK1

JJ1: MOV A,#38HACALL COMMANDACALL DELAYMOV A,#0EHACALL COMMANDACALL DELAYMOV A,#01HACALL COMMANDACALL DELAYMOV A,#81H ;80H...FORCE CURSOR TO THE BEGINNING OF FIRST LINEACALL COMMAND ACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'B'ACALL DATAACALL DELAYMOV A,#'R'ACALL DATAACALL DELAYMOV A,#'E'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'C'ACALL DATAACALL DELAYMOV A,#'H'ACALL DATAACALL DELAY

Page 4: Temp

MOV A,#0C1H ;COH...FORCE CURSOR TO THE BEGINNING OF SECOND LINEACALL COMMANDACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'P'ACALL DATAACALL DELAYMOV A,#'O'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'T'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'1'ACALL DATAACALL DELAYRET

JJ2: MOV A,#38HACALL COMMANDACALL DELAYMOV A,#0EHACALL COMMANDACALL DELAYMOV A,#01HACALL COMMANDACALL DELAYMOV A,#81HACALL COMMAND ACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAY

Page 5: Temp

MOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'B'ACALL DATAACALL DELAYMOV A,#'R'ACALL DATAACALL DELAYMOV A,#'E'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'C'ACALL DATAACALL DELAYMOV A,#'H'ACALL DATAACALL DELAYMOV A,#0C1HACALL DATAACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'P'ACALL DATAACALL DELAYMOV A,#'O'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATA

Page 6: Temp

ACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'T'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'2'ACALL DATAACALL DELAYRET

JJ3: MOV A,#38HACALL COMMANDACALL DELAYMOV A,#0EHACALL COMMANDACALL DELAYMOV A,#01HACALL COMMANDACALL DELAYMOV A,#81HACALL COMMAND ACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'B'ACALL DATAACALL DELAYMOV A,#'R'ACALL DATAACALL DELAYMOV A,#'E'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'C'ACALL DATAACALL DELAYMOV A,#'H'ACALL DATA

Page 7: Temp

ACALL DELAYMOV A,#0C1HACALL DATAACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'P'ACALL DATAACALL DELAYMOV A,#'O'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'T'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'3'ACALL DATAACALL DELAYRET

JJ4: MOV A,#38HACALL COMMANDACALL DELAYMOV A,#0EHACALL COMMANDACALL DELAYMOV A,#01HACALL COMMANDACALL DELAYMOV A,#81HACALL COMMAND ACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATA

Page 8: Temp

ACALL DELAYMOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'B'ACALL DATAACALL DELAYMOV A,#'R'ACALL DATAACALL DELAYMOV A,#'E'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'C'ACALL DATAACALL DELAYMOV A,#'H'ACALL DATAACALL DELAYMOV A,#0C1HACALL DATAACALL DELAYMOV A,#'S'ACALL DATAACALL DELAYMOV A,#'I'ACALL DATAACALL DELAYMOV A,#'G'ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'A'ACALL DATAACALL DELAYMOV A,#'L'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'P'ACALL DATAACALL DELAYMOV A,#'O'ACALL DATAACALL DELAYMOV A,#'I'

Page 9: Temp

ACALL DATAACALL DELAYMOV A,#'N'ACALL DATAACALL DELAYMOV A,#'T'ACALL DATAACALL DELAYMOV A,#' 'ACALL DATAACALL DELAYMOV A,#'4'ACALL DATAACALL DELAYRET

COMMAND:MOV P1,ACLR P2.5 ;SELECT COMMAND REGISTERCLR P2.6 ;SELECT WRITE FUNCTIONSETB P2.7CLR P2.7 ;HIGH TO LOW TRANSITIONRET

DATA: MOV P1,ASETB P2.5 ;SELECT DATA REGISTERCLR P2.6 ;SELECT WRITE FUNCTIONSETB P2.7CLR P2.7 ;HIGH TO LOW TRANSITIONRET

DELAY: MOV R1,#50HL1: MOV R2,#0FFHL2: DJNZ R2,L2

DJNZ R1,L1RET

COLLISION AVOIDANCE PART 1(EXTERNAL MCU)POINT 1-8 P1.0-P1.7POINT A-D P2.0-P2.3POINT A1-D1 P2.4-P2.7RESET P3.0BUZZER P3.1.ORG 0000HSTART: MOV A,#0FFH ;SETTING ALL PORTS HIGH

MOV P1,AMOV P2,AMOV P3,A

RC: JNB P3.0,J1 ;RESET CHECKJ2: JNB P1.0,JH3 ;CHECK IF POINT 1 HAS BEEN TRIGGEREDJ4: JNB P1.1,JH5 ;CHECK IF POINT 2 HAS BEEN TRIGGEREDJ8: JNB P1.2,JH9 ;CHECK IF POINT 3 HAS BEEN TRIGGEREDJ11: JNB P1.3,JH13 ;CHECK IF POINT 4 HAS BEEN TRIGGEREDJ15: JNB P1.4,JH17 ;CHECK IF POINT 5 HAS BEEN TRIGGEREDJ20: JNB P1.5,JH24 ;CHECK IF POINT 6 HAS BEEN TRIGGEREDJ26: JNB P1.7,JH28 ;CHECK IF POINT 8 HAS BEEN TRIGGEREDJ29: JNB P1.6,JH30 ;CHECK IF POINT 7 HAS BEEN TRIGGEREDJ31: JNB P2.0,JH32 ;CHECK IF POINT A HAS BEEN ACTIVATEDJ36: JNB P2.1,JH37 ;CHECK IF POINT B HAS BEEN ACTIVATEDJ41: JNB P2.2,JH42 ;CHECK IF POINT C HAS BEEN ACTIVATED

AJMP RC.END

J1: SETB P3.1 ;DEACTIVATE BUZZERAJMP J2

Page 10: Temp

JH3: AJMP J3 ;JUMP HELPER(IN ORDER TO INCREASE THE JUMP RANGE)JH5: AJMP J5JH9: AJMP J9JH13: AJMP J13JH17: AJMP J17JH24: AJMP J24JH28: AJMP J28JH30: AJMP J30JH32: AJMP J32JH37: AJMP J37JH42: AJMP J42

J3: CLR P1.0 ;ACTIVATE POINT 1CLR P2.0 ;ACTIVATE POINT AAJMP J4

J5: CLR P1.1 ;ACTIVATE POINT 2CLR P2.0 ;ACTIVATE POINT AJNB P1.2,J6 ;CHECK IF POINT 3 HAS BEEN TRIGGEREDAJMP J8

J6: CLR P1.2 ;ACTIVATE POINT 3JNB P1.3,J7 ;CHECK IF POINT 4 HAS BEEN TRIGGEREDAJMP J8

J7: SETB P2.1 ;DEACTIVATE POINT BSETB P1.2 ;DEACTIVATE POINT 3SETB P1.3 ;DEACTIVATE POINT 4AJMP J8

J9: CLR P1.2 ;ACTIVATE POINT 3CLR P2.1 ;ACTIVATE POINT BJNB P1.1,J10 ;CHECK IF POINT 2 HAS BEEN TRIGGEREDAJMP J11

J10: CLR P1.1 ;ACTIVATE POINT 2JNB P1.0,J12 ;CHECK IF POINT 1 HAS BEEN TRIGGEREDAJMP J11

J12: SETB P1.0 ;DEACTIVATE POINT 2SETB P1.1 ;DEACTIVATE POINT 1SETB P2.0 ;DEACTIVATE POINT AAJMP J11

J13: CLR P1.3 ;ACTIVATE POINT 4CLR P2.1 ;ACTIVATE POINT BJNB P1.4,J14 ;CHECK IF POINT 5 HAS BEEN TRIGGEREDAJMP J15

J14: CLR P1.4 :ACTIVATE POINT 5JNB P1.5,J16 ;CHECK IF POINT 6 HAS BEEN TRIGGEREDAJMP J15

J16: SETB P1.4 ;DEACTIVATE POINT 5SETB P1.5 ;DEACTIVATE POINT 6SETB P2.2 ;DEACTIVATE POINT CAJMP J15

J17: CLR P1.4 ;ACTIVATE POINT 5CLR P2.2 ;ACTIVATE POINT CJNB P1.3,J18 ;CHECK IF POINT 4 HAS BEEN TRIGGERED

J22: JNB P1.5,J19 ;CHECK IF POINT 6 HAS BEEN TRIGGEREDAJMP J20

Page 11: Temp

J18: CLR P1.3 ;ACTIVATE POINT 4JNB P1.2,J21 ;CHECK IF POINT 3 HAS BEEN ACTIVATEDAJMP J22

J19: CLR P1.5 ;ACTIVATE POINT 6JNB P1.6,J23 ;CHECK IF POINT 7 HAS BEEN TRIGGEREDAJMP J20

J21: SETB P1.3 ;DEACTIVATE POINT 4 SETB P1.2 ;DEACTIVATE POINT 3SETB P2.1 ;DEACTIVATE POINT BAJMP J22

J23: CLR P1.6 ;ACTIVATE POINT 7SETB P2.2 ;DEACTIVATE POINT CSETB P1.4 ;DEACTIVATE POINT 5SETB P1.5 ;DEACTIVATE POINT 6SETB P2.3 :DEACTIVATE POINT DAJMP 20

J24: CLR P1.5 :ACTIVATE POINT 6CLR P2.2 ;ACTIVATE POINT CJNB P1.6,J25 ;CHECK IF POINT 7 HAS BEEN TRIGGEREDAJMP J26

J25: CLR P1.6 ;ACTIVATE POINT 7JNB P1.7,J27 ;CHECK IF POINT 8 HAS BEEN TRIGGEREDAJMP 26

J27: SETB P1.6 ;DEACTIVATE POINT 7SETB P1.7 ;DEACTIVATE POINT 8SETB P2.3 ;DEACTIVATE POINT DAJMP J26

J28: CLR P1.7 ;ACTIVATE POINT 8CLR P2.3 ;ACTIVATE POINT DAJMP J29

J30: CLR P1.6 ;ACTIVATE POINT 7CLR P2.3 ;ACTIVATE POINT DAJMP J31

J32: JNB P2.1,J33 ;CHECK IF POINT B HAS BEEN TRIGGEREDJ34: JNB P2.2,J35 ;CHECK IF POINT C HAS BEEN TRIGGERED

AJMP J36

J33: CLR P3.1 ;ACTIVATE BUZZERCLR P2.4 ;ACTIVATE ELECTROMAGNETS A1 AND BICLR P2.5AJMP J34

J35: CLR P3.1 ;ACTIVATE BUZZERCLR P2.4 ;ACTIVATE ELECTROMAGNETS A1, BI AND C1CLR P2.5CLR P2.6AJMP J36

J37: JNB P2.2,J38 ;CHECK IF C HAS BEEN TRIGGEREDJ40: JNB P2.3,J39 ;CHECK IF D HAS BEEN TRIGGERED

AJMP J41

J38: CLR P3.1 ;ACTIVATE BUZZERCLR P2.5 ;ACTIVATE ELECTROMAGNETS B1 AND C1CLR P2.6AJMP J40

Page 12: Temp

J39: CLR P3.1 ;ACTIVATE BUZZERCLR P2.5 ;ACTIVATE ELECTROMAGNETS B1, C1 AND D1CLR P2.6CLR P2.7AJMP J41

J42: JNB P2.3,J43 ;CHECK IF D HAS BEEN TRIGGEREDAJMP RC

J43: CLR P3.1 ;ACTIVATE BUZZERCLR P2.6 ;ACTIVATE ELECTROMAGNETS C1 AND DICLR P2.7AJMP RC

COLLISION AVOIDANCE PART 2(FOR INTERNAL MCU)REED TO DETECT THE ELECTROMAGNET P1.0APPLY BRAKES AND KILL ENGINE INDICATOR LED P1.1DISCONNECT POWER FROM THE ENGINE P1.2RESET P1.3

.ORG 0000HSTART: MOV A,#0FFH ;SETTING PORT P1 HIGH

MOV A,P1RC: JNB P1.3,J1 ;RESET CHECKJ2: JNB P1.0,J3 ;ENGINE STOP CHECK

.END

J1: SETB P1.1 ;DEACTIVATE APPLY BRAKES AND KILL ENGINE INDICATORSETB P1.2 ;RECONNECT POWER LINE TO ENGINEAJMP J2

J3: CLR P1.1 ;ACTIVATE APPLY BRAKES AND KILL ENGINE INDICATORCLR P1.2 ;DISCONNECT ENGINE FROM POWER LINEAJMP RC