
ADR_INIT  EQU 40H
ADR_FIN   EQU 47H
PORT_COL  EQU 140H ; external port 2
PORT_ROW  EQU 120H ;external port 1

	ORG 8000H
	JMP MAIN
	ORG 800BH
	JMP TIMER0
	ORG 8023H
	JMP SERIAL

CONTOR2 DATA 33H	; CONTOR=COUNTER

BUFF	DATA 40H

	ORG 8100H
MAIN:  	MOV SP,#70H
	MOV IE,#92H    ;serial,timer0
;	MOV TMOD,#02H ;programming the timer

	CALL PRGSER ;programing the serial communication
 	MOV TH0,#00H
	MOV TL0,#00H
	MOV DPTR,#140H
	MOV A,#00h
	MOVX @DPTR,A
	MOV CONTOR2,#ADR_INIT
	CALL INIT_BUFF
	SETB TR0	
LOOP: 	NOP
	JMP LOOP

PRGSER: MOV TMOD,#22H
	MOV TH1,#0FDH
	SETB TR1
	MOV SCON,#5AH
	RET

INIT_BUFF:
	MOV 40H,#0FEH
	MOV 41H,#0FFH
	MOV 42H,#33H
	MOV 43H,#33H
	MOV 44H,#0FFH
	MOV 45H,#0FEH
	MOV 46H,#00H
	MOV 47H,#00H

SEL_COL: MOV 50H,#0FEH
	 MOV 51H,#0FDH
	 MOV 52H,#0FBH
	 MOV 53H,#0F7H
	 MOV 54H,#0EFH
	 MOV 55H,#0DFH
	 MOV 56H,#0BFH
	 MOV 57H,#7FH
	
	RET

TIMER0:  
	CALL CDA_LED

SF1:	RETI


CDA_LED:	
	MOV	A,#00H			;SWITCH OFF
	MOV 	DPTR,#PORT_ROW
	MOVX	@DPTR,A

	MOV	A,#00H			;SWITCH OFF
	MOV 	DPTR,#PORT_COL
	MOVX	@DPTR,A

	MOV 	R0,CONTOR2		;  R0 FOR  CODE ROW
	MOV	A,R0
	ADD	A,#10H
	MOV 	R1,A			; PREG R1 PT SELECTIE COLOANA

	MOV	A,@R1			; SEND CODE SEL COL
	MOV	DPTR,#PORT_COL
	MOVX	@DPTR,A

	MOV	A,@R0			; SEND CODE CONFIG ROW
	MOV	DPTR,#PORT_ROW
	MOVX	@DPTR,A

	INC	CONTOR2
	MOV	A,CONTOR2
	CJNE	A,#ADR_FIN+1,SF2
	MOV 	CONTOR2,#ADR_INIT

SF2:	RET

SERIAL:		JB TI,SF
RECEPTION: 	MOV A,SBUF         ;reading the  character
		CJNE A,#53H,CONTI1 ;  S
START:		SETB TR0
		JMP SF
CONTI1:		CJNE A,#54H,CONTI2 ; character T
STOP:		CLR TR0
		JMP SF
CONTI2:		CJNE A,#46H,CONTI3 ; character F
FAST:		MOV CONTOR,#01H
		JMP SF
CONTI3:		CJNE A,#57H,CONTI4 ; character W
SLOW:		MOV CONTOR,#0FH
		JMP SF
CONTI4:		CJNE A,#41H,CONTI5 ; character A - switch on all the leds 
		MOV A,#0FFH
		MOV DPTR,#PORT_ROW
		MOVX @DPTR,A

		MOV A,#00H
		MOV DPTR,#PORT_COL
		MOVX @DPTR,A

		JMP SF
CONTI5:		CJNE A,#42H,SF 	   ; character B - switch of all the leds
		MOV A,#00H
		MOV DPTR,#PORT_ROW
		MOVX @DPTR,A

		MOV A,#00H
		MOV DPTR,#PORT_COL
		MOVX @DPTR,A

SF:		CLR RI
		CLR TI
		RETI
END

