org 0
ljmp begin

RES	EQU	P1.0
SCE	EQU	P1.1
DC	EQU	P1.2
SDIN	EQU	P1.3
SCLK	EQU	P1.4

begin:
	MOV	P1, #0
	; ÆÄÅÌ 250 ÌÈËËÈÑÅÊÓÍÄ
	MOV	B, #250
	CALL	SPI_WAIT
	SETB	RES

	; ÊÎÌÀÍÄÀ 0x21	PD = 0, V = 0, H = 1
	MOV	A, #33
	CALL	SPI_OUT

	; ÊÎÌÀÍÄÀ 11001000 - ÓÑÒÀÍÎÂÊÀ VOP6-0
	MOV	A, #11001000B
	CALL	SPI_OUT

	; ÊÎÌÀÍÄÀ 00000110 - ÓÑÒÀÍÎÂÊÀ TC1-0 - ÒÅÌÏÅÐÀÒÓÐÍÛÉ ÊÎÅÔÔÈÖÈÅÍÒ
	MOV	A, #00000110B
	CALL	SPI_OUT

	; ÊÎÌÀÍÄÀ - ÓÑÒÀÍÎÂÊÀ BIAS
	MOV	A, #00010011B
	CALL	SPI_OUT

	; ÊÎÌÀÍÄÀ - ÓÑÒÀÍÎÂÊÀ PD = 0, V = 0, H = 0
	MOV	A, #00100000B
	CALL	SPI_OUT

	; ÊÎÌÀÍÄÀ - ÓÑÒÀÍÎÂÊÀ D = 1, E = 0 ÂÊËÞ×ÀÅÒ ÍÎÐÌÀËÜÍÛÉ ÐÅÆÈÌ
	MOV	A, #00001100B
	CALL	SPI_OUT



LOOP:
	CLR	DC		; âûäà÷à êîìàíä - äëÿ óñòàíîâêè êîîðäèíàò
	; ÊÎÌÀÍÄÀ - ÓÑÒÀÍÎÂÊÀ X - ÊÎÎÐÄÈÍÀÒ
	MOV	A, #10000111B
	CALL	SPI_OUT

	; ÊÎÌÀÍÄÀ - ÓÑÒÀÍÎÂÊÀ Y - ÊÎÎÐÄÈÍÀÒ
	MOV	A, #01000011B
	CALL	SPI_OUT

; ÄÀÍÍÛÅ ÏÎØËÈ
	SETB	DC

; ÂÛÂÅÄÅÌ ÁÓÊÂÓ À
; 0001110
; 0010010
; 0100010
; 0111110
; 0100010
; 0100010
; 0100010
; 0000000

	MOV	A, #00000000B
	CALL	SPI_OUT

	MOV	A, #01111100B
	CALL	SPI_OUT

	MOV	A, #00001010B
	CALL	SPI_OUT

	MOV	A, #00001001B
	CALL	SPI_OUT

	MOV	A, #00001001B
	CALL	SPI_OUT

	MOV	A, #01111111B
	CALL	SPI_OUT

	MOV	A, #00000000B
	CALL	SPI_OUT

	JMP	LOOP


SPI_OUT:
	MOV	B, #8
SPI_OUT_LOOP:
	RLC	A			; ïîëó÷èì íîâûé âûâîäèìûé áèò
	JC	SDIN_1
	CLR	SDIN
	JMP	SCL_1
    SDIN_1:
    	SETB	SDIN
	NOP				; äëÿ ñðàâíèìîñòè ñ êîìàíäîé jmp = 2 ìàøèííûõ öèêëà
	NOP
    SCL_1:
    	SETB	SCLK			; âïîëíå óñïååò âûäàòüñÿ
	CLR	SCLK
	DJNZ	B, SPI_OUT_LOOP
	SETB	SDIN
	RET

; ÷òî òî òèïà çàäåðæêè íà 1 ìèëëèñåêóíäó (ïîêà ïîéäåò)
SPI_WAIT:
	PUSH	B
	MOV	B, #83
    WAIT_1_MS:
	DJNZ	B, WAIT_1_MS
	POP	B
	DJNZ	B, SPI_WAIT
	RET
end
