Вы находитесь на странице: 1из 12

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
P3.0-P3.3 GREEN TO RED TRANSITION INDICATOR
P2.7 WHOLE SYSTEM RESTART
.ORG 0000H
START: MOV A,#0FFH
MOV P1,A
MOV P2,A
MOV P3,A
RC:
J2:
J5:
J9:
J13:
J17:

MCU

;SETTING ALL THE PORTS HIGH JUST TO BE SURE

JNB P2.0,J1 ;RESET CHECK


JNB P1.4,J3 ;CHECK REED NO 1(IF LOW THEN JUMP)
JNB P1.5,J7 ;CHECK REED NO 2
JNB P1.6,J11
;CHECK REED NO 3
JNB P1.7,J15
;CHECK REED NO 4
JNB P2.7,START
;WHOLE SYSTEM RESTART(IN CASE OF A MALFUNCTION)
AJMP RC

.END
J1:

SETB P2.1
AJMP J2

;DEACTIVATE BUZZER

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
POINT 1
CLR P1.0
AJMP J5

;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL

J6:

CLR P2.1
CLR P2.2
AJMP J5

;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 1)


;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 1)

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

;CHANGE SIGNAL FROM GREEN TO RED

J8:
CLR P3.1
POINT 2
CLR P1.1
AJMP J9

;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL

J10:

CLR P2.1
CLR P2.3
AJMP J9

;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 2)


;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 2)

J11:

JB P1.2,J12 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 3)


JNB P3.2,J13
;GREEN TO RED TRANSITION CHECK
JNB P1.2,J14
;IF RED(i.e. LOW) THEN JUMP

;CHANGE SIGNAL FROM GREEN TO RED

J12: CLR P3.2


POINT 3
CLR P1.2
SETB P3.0
SETB P1.0
AJMP J13

;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL

J14:

;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 3)

CLR P2.1

;CHANGE SIGNAL FROM GREEN TO RED


;DEACTIVATE GREEN TO RED INDICATOR AT SIGNAL POINT 1
;CHANGE SIGNAL FROM RED TO GREEN

CLR P2.4
AJMP J13
J15:

;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 3)

JB P1.3,J16 ;IF GREEN(i.e. HIGH) THEN JUMP(AT SIGNAL POINT 4)


JNB P3.3,J17
;GREEN TO RED TRANSITION CHECK
JNB P1.3,J18
;IF RED(i.e. LOW) THEN JUMP

J16: CLR P3.3


POINT 4
CLR P1.3
SETB P3.1
SETB P1.1
AJMP J17

;ACTIVATE GREEN TO RED TRANSITION INDICATOR AT SIGNAL

J18:

;ACTIVATE BUZZER(SIGNAL BREACH AT SIGNAL POINT 4)


;TO MC2 FOR LCD DISPLAY(FOR SIGNAL POINT 4)

CLR P2.1
CLR P2.5
AJMP J17

;CHANGE SIGNAL FROM GREEN TO RED


;DEACTIVATE GREEN TO RED INDICATOR AT SIGNAL POINT 2
;CHANGE SIGNAL FROM RED TO GREEN

AUTOMATIC SIGNALLING PART 2(FOR MCU 2)


P1 DATA LINES TO LCD
P2.0-P2.3 INPUTS FROM MCU 1(BREACH INDICATOR)
P2.4 RESET
P2.5 REGISTER SELECT
P2.6 READ WRITE SELECT
P2.7 ENABLE (LCD)
.ORG 0000H
START:
MOV A,#38H ;2 LINES AND 5X7 MATRIX
ACALL COMMAND
;WRITE DATA INTO COMMAND REGISTER OF LCD
ACALL DELAY
MOV A,#0EH ;DISPLAY ON, CURSOR BLINKING
ACALL COMMAND
ACALL DELAY
MOV A,#01H ;CLEAR DISPLAY SCREEN
ACALL COMMAND
ACALL DELAY
MOV A,#'W' ;WRITING DATA INTO THE DATA REGISTER OF LCD
ACALL DATA
ACALL DELAY
MOV A,#'E'
ACALL DATA
ACALL DELAY
MOV A,#'L'
ACALL DATA
ACALL DELAY
MOV A,#'C'
ACALL DATA
ACALL DELAY
MOV A,#'O'
ACALL DATA
ACALL DELAY
MOV A,#'M'
ACALL DATA
ACALL DELAY
MOV A,#'E'
ACALL DATA
ACALL DELAY
CHECK1:
JNB
JNB
JNB
JNB
JMP

JNB P2.0,J1 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL


P2.1,J2 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL POINT
P2.2,J3 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL POINT
P2.3,J4 ;INPUT FROM MC2 CORRESPONDING TO SIGNAL POINT
P2.4,START
;RESET
CHECK1

POINT 1
2
3
4

.END
J1:

LCALL JJ1
;JNB DOESN'T HAVE A LONG RANGE, USING LCALL INSTEAD
AJMP CHECK1

J2:

LCALL JJ2
AJMP CHECK1

J3:

LCALL JJ3
AJMP CHECK1

J4:

LCALL JJ4
AJMP CHECK1

JJ1:

MOV A,#38H
ACALL COMMAND
ACALL DELAY
MOV A,#0EH
ACALL COMMAND
ACALL DELAY
MOV A,#01H
ACALL COMMAND
ACALL DELAY
MOV A,#81H ;80H...FORCE CURSOR TO THE BEGINNING OF FIRST LINE
ACALL COMMAND
ACALL DELAY
MOV A,#'S'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA
ACALL DELAY
MOV A,#'G'
ACALL DATA
ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'A'
ACALL DATA
ACALL DELAY
MOV A,#'L'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'B'
ACALL DATA
ACALL DELAY
MOV A,#'R'
ACALL DATA
ACALL DELAY
MOV A,#'E'
ACALL DATA
ACALL DELAY
MOV A,#'A'
ACALL DATA
ACALL DELAY
MOV A,#'C'
ACALL DATA
ACALL DELAY
MOV A,#'H'
ACALL DATA
ACALL DELAY

MOV A,#0C1H ;COH...FORCE CURSOR TO THE BEGINNING OF SECOND LINE


ACALL COMMAND
ACALL DELAY
MOV A,#'S'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA
ACALL DELAY
MOV A,#'G'
ACALL DATA
ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'A'
ACALL DATA
ACALL DELAY
MOV A,#'L'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'P'
ACALL DATA
ACALL DELAY
MOV A,#'O'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA
ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'T'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'1'
ACALL DATA
ACALL DELAY
RET
JJ2:

MOV A,#38H
ACALL COMMAND
ACALL DELAY
MOV A,#0EH
ACALL COMMAND
ACALL DELAY
MOV A,#01H
ACALL COMMAND
ACALL DELAY
MOV A,#81H
ACALL COMMAND
ACALL DELAY
MOV A,#'S'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA
ACALL DELAY

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

ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'T'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'2'
ACALL DATA
ACALL DELAY
RET
JJ3:

MOV A,#38H
ACALL COMMAND
ACALL DELAY
MOV A,#0EH
ACALL COMMAND
ACALL DELAY
MOV A,#01H
ACALL COMMAND
ACALL DELAY
MOV A,#81H
ACALL COMMAND
ACALL DELAY
MOV A,#'S'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA
ACALL DELAY
MOV A,#'G'
ACALL DATA
ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'A'
ACALL DATA
ACALL DELAY
MOV A,#'L'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'B'
ACALL DATA
ACALL DELAY
MOV A,#'R'
ACALL DATA
ACALL DELAY
MOV A,#'E'
ACALL DATA
ACALL DELAY
MOV A,#'A'
ACALL DATA
ACALL DELAY
MOV A,#'C'
ACALL DATA
ACALL DELAY
MOV A,#'H'
ACALL DATA

ACALL DELAY
MOV A,#0C1H
ACALL DATA
ACALL DELAY
MOV A,#'S'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA
ACALL DELAY
MOV A,#'G'
ACALL DATA
ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'A'
ACALL DATA
ACALL DELAY
MOV A,#'L'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'P'
ACALL DATA
ACALL DELAY
MOV A,#'O'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA
ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'T'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'3'
ACALL DATA
ACALL DELAY
RET
JJ4:

MOV A,#38H
ACALL COMMAND
ACALL DELAY
MOV A,#0EH
ACALL COMMAND
ACALL DELAY
MOV A,#01H
ACALL COMMAND
ACALL DELAY
MOV A,#81H
ACALL COMMAND
ACALL DELAY
MOV A,#'S'
ACALL DATA
ACALL DELAY
MOV A,#'I'
ACALL DATA

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

ACALL DATA
ACALL DELAY
MOV A,#'N'
ACALL DATA
ACALL DELAY
MOV A,#'T'
ACALL DATA
ACALL DELAY
MOV A,#' '
ACALL DATA
ACALL DELAY
MOV A,#'4'
ACALL DATA
ACALL DELAY
RET
COMMAND:MOV P1,A
CLR P2.5
CLR P2.6
SETB P2.7
CLR P2.7
RET
DATA: MOV P1,A
SETB P2.5
CLR P2.6
SETB P2.7
CLR P2.7
RET

;SELECT COMMAND REGISTER


;SELECT WRITE FUNCTION
;HIGH TO LOW TRANSITION

;SELECT DATA REGISTER


;SELECT WRITE FUNCTION
;HIGH TO LOW TRANSITION

DELAY:
MOV R1,#50H
L1:
MOV R2,#0FFH
L2:
DJNZ R2,L2
DJNZ R1,L1
RET
COLLISION AVOIDANCE PART 1(EXTERNAL MCU)
POINT 1-8 P1.0-P1.7
POINT A-D P2.0-P2.3
POINT A1-D1 P2.4-P2.7
RESET P3.0
BUZZER P3.1
.ORG 0000H
START:
MOV A,#0FFH ;SETTING ALL PORTS HIGH
MOV P1,A
MOV P2,A
MOV P3,A
RC:
J2:
J4:
J8:
J11:
J15:
J20:
J26:
J29:
J31:
J36:
J41:
.END
J1:

JNB P3.0,J1 ;RESET CHECK


JNB P1.0,JH3
;CHECK
JNB P1.1,JH5
;CHECK
JNB P1.2,JH9
;CHECK
JNB P1.3,JH13
;CHECK
JNB P1.4,JH17
;CHECK
JNB P1.5,JH24
;CHECK
JNB P1.7,JH28
;CHECK
JNB P1.6,JH30
;CHECK
JNB P2.0,JH32
;CHECK
JNB P2.1,JH37
;CHECK
JNB P2.2,JH42
;CHECK
AJMP RC
SETB P3.1
AJMP J2

IF
IF
IF
IF
IF
IF
IF
IF
IF
IF
IF

POINT
POINT
POINT
POINT
POINT
POINT
POINT
POINT
POINT
POINT
POINT

;DEACTIVATE BUZZER

1
2
3
4
5
6
8
7
A
B
C

HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS

BEEN
BEEN
BEEN
BEEN
BEEN
BEEN
BEEN
BEEN
BEEN
BEEN
BEEN

TRIGGERED
TRIGGERED
TRIGGERED
TRIGGERED
TRIGGERED
TRIGGERED
TRIGGERED
TRIGGERED
ACTIVATED
ACTIVATED
ACTIVATED

JH3:
JH5:
JH9:
JH13:
JH17:
JH24:
JH28:
JH30:
JH32:
JH37:
JH42:

AJMP
AJMP
AJMP
AJMP
AJMP
AJMP
AJMP
AJMP
AJMP
AJMP
AJMP

J3:

CLR P1.0
CLR P2.0
AJMP J4

J5:

CLR P1.1
;ACTIVATE POINT 2
CLR P2.0
;ACTIVATE POINT A
JNB P1.2,J6 ;CHECK IF POINT 3 HAS BEEN TRIGGERED
AJMP J8

J6:

CLR P1.2
;ACTIVATE POINT 3
JNB P1.3,J7 ;CHECK IF POINT 4 HAS BEEN TRIGGERED
AJMP J8

J7:

SETB
SETB
SETB
AJMP

J9:

CLR P1.2
;ACTIVATE POINT 3
CLR P2.1
;ACTIVATE POINT B
JNB P1.1,J10
;CHECK IF POINT 2 HAS BEEN TRIGGERED
AJMP J11

J10:

CLR P1.1
;ACTIVATE POINT 2
JNB P1.0,J12
;CHECK IF POINT 1 HAS BEEN TRIGGERED
AJMP J11

J12:

SETB
SETB
SETB
AJMP

J13:

CLR P1.3
;ACTIVATE POINT 4
CLR P2.1
;ACTIVATE POINT B
JNB P1.4,J14
;CHECK IF POINT 5 HAS BEEN TRIGGERED
AJMP J15

J14:

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

J16:

SETB
SETB
SETB
AJMP

J17:

CLR P1.4
;ACTIVATE POINT
CLR P2.2
;ACTIVATE POINT
JNB P1.3,J18
;CHECK IF
JNB P1.5,J19
;CHECK IF
AJMP J20

J22:

J3
J5
J9
J13
J17
J24
J28
J30
J32
J37
J42

P2.1
P1.2
P1.3
J8

P1.0
P1.1
P2.0
J11

P1.4
P1.5
P2.2
J15

;JUMP HELPER(IN ORDER TO INCREASE THE JUMP RANGE)

;ACTIVATE POINT 1
;ACTIVATE POINT A

;DEACTIVATE POINT B
;DEACTIVATE POINT 3
;DEACTIVATE POINT 4

;DEACTIVATE POINT 2
;DEACTIVATE POINT 1
;DEACTIVATE POINT A

;DEACTIVATE POINT 5
;DEACTIVATE POINT 6
;DEACTIVATE POINT C
5
C
POINT 4 HAS BEEN TRIGGERED
POINT 6 HAS BEEN TRIGGERED

J18:

CLR P1.3
;ACTIVATE POINT 4
JNB P1.2,J21
;CHECK IF POINT 3 HAS BEEN ACTIVATED
AJMP J22

J19:

CLR P1.5
;ACTIVATE POINT 6
JNB P1.6,J23
;CHECK IF POINT 7 HAS BEEN TRIGGERED
AJMP J20

J21:

SETB
SETB
SETB
AJMP

J23:

CLR P1.6
SETB P2.2
SETB P1.4
SETB P1.5
SETB P2.3
AJMP 20

J24:

CLR P1.5
:ACTIVATE POINT 6
CLR P2.2
;ACTIVATE POINT C
JNB P1.6,J25
;CHECK IF POINT 7 HAS BEEN TRIGGERED
AJMP J26

J25:

CLR P1.6
;ACTIVATE POINT 7
JNB P1.7,J27
;CHECK IF POINT 8 HAS BEEN TRIGGERED
AJMP 26

J27:

SETB
SETB
SETB
AJMP

J28:

CLR P1.7
CLR P2.3
AJMP J29

;ACTIVATE POINT 8
;ACTIVATE POINT D

J30:

CLR P1.6
CLR P2.3
AJMP J31

;ACTIVATE POINT 7
;ACTIVATE POINT D

J32:
J34:

JNB P2.1,J33
JNB P2.2,J35
AJMP J36

J33:

CLR P3.1
CLR P2.4
CLR P2.5
AJMP J34

;ACTIVATE BUZZER
;ACTIVATE ELECTROMAGNETS A1 AND BI

J35:

CLR P3.1
CLR P2.4
CLR P2.5
CLR P2.6
AJMP J36

;ACTIVATE BUZZER
;ACTIVATE ELECTROMAGNETS A1, BI AND C1

J37:
J40:

JNB P2.2,J38
JNB P2.3,J39
AJMP J41

J38:

CLR P3.1
CLR P2.5
CLR P2.6
AJMP J40

P1.3
P1.2
P2.1
J22

;DEACTIVATE POINT 4
;DEACTIVATE POINT 3
;DEACTIVATE POINT B

P1.6
P1.7
P2.3
J26

;ACTIVATE POINT 7
;DEACTIVATE POINT
;DEACTIVATE POINT
;DEACTIVATE POINT
:DEACTIVATE POINT

C
5
6
D

;DEACTIVATE POINT 7
;DEACTIVATE POINT 8
;DEACTIVATE POINT D

;CHECK IF POINT B HAS BEEN TRIGGERED


;CHECK IF POINT C HAS BEEN TRIGGERED

;CHECK IF C HAS BEEN TRIGGERED


;CHECK IF D HAS BEEN TRIGGERED
;ACTIVATE BUZZER
;ACTIVATE ELECTROMAGNETS B1 AND C1

J39:

CLR P3.1
CLR P2.5
CLR P2.6
CLR P2.7
AJMP J41

J42:

JNB P2.3,J43
AJMP RC

J43:

CLR P3.1
CLR P2.6
CLR P2.7
AJMP RC

;ACTIVATE BUZZER
;ACTIVATE ELECTROMAGNETS B1, C1 AND D1

;CHECK IF D HAS BEEN TRIGGERED


;ACTIVATE BUZZER
;ACTIVATE ELECTROMAGNETS C1 AND DI

COLLISION AVOIDANCE PART 2(FOR INTERNAL MCU)


REED TO DETECT THE ELECTROMAGNET P1.0
APPLY BRAKES AND KILL ENGINE INDICATOR LED P1.1
DISCONNECT POWER FROM THE ENGINE P1.2
RESET P1.3
.ORG 0000H
START:
MOV A,#0FFH ;SETTING PORT P1 HIGH
MOV A,P1
RC:
JNB P1.3,J1 ;RESET CHECK
J2:
JNB P1.0,J3 ;ENGINE STOP CHECK
.END
J1:

SETB P1.1
SETB P1.2
AJMP J2

;DEACTIVATE APPLY BRAKES AND KILL ENGINE INDICATOR


;RECONNECT POWER LINE TO ENGINE

J3:

CLR P1.1
CLR P1.2
AJMP RC

;ACTIVATE APPLY BRAKES AND KILL ENGINE INDICATOR


;DISCONNECT ENGINE FROM POWER LINE

Вам также может понравиться