.include "m8def.inc"

.def	Temp0=R16
.def	Temp1=R17
.def	Temp2=R18
.def	Temp3=R19
.def	Temp4=R20
.def	Temp5=R21
.def	Temp6=R22

.dseg 

.cseg

.org 0

rjmp RESET ; Reset Handler
reti ;rjmp EXT_INT0 ; IRQ0 Handler
reti ;rjmp EXT_INT1 ; IRQ1 Handler
reti ;rjmp TIM2_COMP ; Timer2 Compare Handler
reti ;rjmp TIM2_OVF ; Timer2 Overflow Handler
reti ;rjmp TIM1_CAPT ; Timer1 Capture Handler
reti ;rjmp TIM1_COMPA ; Timer1 CompareA Handler
reti ;rjmp TIM1_COMPB ; Timer1 CompareB Handler
reti ;rjmp TIM1_OVF ; Timer1 Overflow Handler
reti ;rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp SPI_STC ; SPI Transfer Complete Handler
reti ;rjmp USART_RXC ; USART RX Complete Handler
reti ;rjmp USART_UDRE ; UDR Empty Handler
reti ;rjmp USART_TXC ; USART TX Complete Handler
reti ;rjmp ADC_CC ; ADC Conversion Complete Handler
reti ;rjmp EE_RDY ; EEPROM Ready Handler
reti ;rjmp ANA_COMP ; Analog Comparator Handler
reti ;rjmp TWSI ; Two-wire Serial Interface Handler
reti ;rjmp SPM_RDY ; Store Program Memory Ready Handler

RESET:
		ldi Temp0,high(RAMEND)
		out SPH,Temp0 
		ldi Temp0,low(RAMEND)
		out SPL,Temp0

		ldi Temp0,0b00101100		; 2-SS(CS), 3-MOSI(SDI), 4-MISO(SDO)вход, 5-SCK(SCL)   
		out DDRB,Temp0	
		
		sbi PORTB,2			// Вывод SS на +5 
		sbi PORTB,4 			// На MISO подключаем подтягивающий резистор 
		ldi temp0,0b11010001 		// Настраиваем SPI, SPIE и SPE = 1 это разрешит прерывания и протокол;
		out SPCR,temp0 			// MSTR = 1 говорит что мы руководим посылкой, SPR = 01 предделитель SPI
		
		clr temp1
		
		sei  
		
		
		ldi temp0,0b11100101		; данные
			
load:
		cpi temp1,9 
		breq cycle
				
		out SPDR,temp0 			; отправляем бит по SPI
		sbi PORTB, 5		 	; дергаем SCL		
		nop	
		cbi PORTB, 5			; дергаем SCL
		
		rjmp load

cycle:         
		rjmp cycle	
		 
SPI_STC:
		cli 								
		sbis SPSR, SPIF 					
		rjmp SPI_STC 
		sei		
		
		reti
