Upload
souravcybermusic
View
213
Download
0
Embed Size (px)
DESCRIPTION
Temp
Citation preview
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)
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
.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
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
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
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
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
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'
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
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
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
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