simulace impulsu z Atmegy5 k pocitadlu pro laserovy terc  - Atmega 6

.include m8def.inc


hlavni program


zac  	ldi R16, HIGH(RAMEND)  inicializace STACK POINTERu
		out SPH, R16
		ldi R16, LOW(RAMEND)
		out SPL, R16

		ldi R16, 0xFF	B vystupni - jednotlivé segmenty displejů B0 - B6, B7 adresuje diody
		out DDRB, R16
		ldi R16, 0x1F	C0-C4 vystupni - jednotlivé displeje C0 - C3 (C0 je 1. displej)  C4 adresuje diody      
		out DDRC, R16		 C5 vstupni komunikace s atmegou5
		ldi R16, 0xFF	D0-D7 výstupni
		out DDRD, R16
		ldi R16, 0xFF
		ldi R17, 0
		out PORTB, R17

		rcall cekej2ms
		rcall cekej1
		
		out PORTB, R16
		rcall cekej400		2 impulsy 400us program
		out PORTB, R17
		rcall cekej400
		out PORTB, R16
		rcall cekej400
		out PORTB, R17
	

				počká 3 sekundy
		rcall cekej1
		rcall cekej1
		rcall cekej1

start	rcall cekej1		počká 3 sekundy
		
		1vystrel
	

		out PORTB, R16		
		rcall cekej400		Střela(0)
		out PORTB, R17
		rcall cekej2ms		čeka na kotrolu stopu
		rcall cekej2ms		

		out PORTB, R16		střela(1)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(2)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(3)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(4)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		rcall cekej1
		rcall cekej1		2 sekundy do dalsi střely		


2vystrel
		out PORTB, R16		
		rcall cekej400		Střela(0)
		out PORTB, R17
		rcall cekej2ms
		rcall cekej2ms		

		out PORTB, R16		střela(1)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(2)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(3)
		rcall cekej400
		out PORTB, R17
		rcall cekej400


			2.5 vystřel P

		rcall cekej1
		rcall cekej1		2 sekundy do dalsi střely		

		out PORTB, R16		
		rcall cekej400		Střela(0)
		out PORTB, R17
		rcall cekej2ms
		rcall cekej2ms

3 vystřel


		rcall cekej1
		rcall cekej1		2 sekundy do dalsi střely		

		out PORTB, R16		
		rcall cekej400		Střela(0)
		out PORTB, R17
		rcall cekej2ms
		rcall cekej2ms		

		out PORTB, R16		střela(1)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(2)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(3)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(4)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(5)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(6)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(7)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(8)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(9)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		rcall cekej1
		rcall cekej1




4 vystřel


		rcall cekej1
		rcall cekej1		2 sekundy do dalsi střely		

		out PORTB, R16		
		rcall cekej400		Střela(0)
		out PORTB, R17
		rcall cekej2ms
		rcall cekej2ms		

		out PORTB, R16		střela(1)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(2)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(3)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(4)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(5)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(6)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(7)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		out PORTB, R16		střela(8)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		
		out PORTB, R16		střela(9)
		rcall cekej400
		out PORTB, R17
		rcall cekej400
		rcall cekej1
		rcall cekej1

		

				 6 vystřel

		rcall cekej1
		rcall cekej1		2 sekundy do dalsi střely		

		out PORTB, R16		
		rcall cekej400		Střela(0)
		out PORTB, R17
		rcall cekej2ms
		rcall cekej2ms	

		out PORTB, R16		střela(1)
		rcall cekej400
		out PORTB, R17
		rcall cekej400

		rcall cekej1

			
		
		out PORTB, R16		stop impuls
		rcall cekej2ms
		out PORTB, R17

		rcall cekej1  	 počka a za sekundu resetuje atmegu7 do načtení programu 
		rcall cekej1				už neposílám znovu signál Program ale rovnou start
		out PORTB, R16		RESTART impuls
		rcall cekej2ms
		out PORTB, R17
	
			rcall cekej1
			rcall cekej1

			rjmp start		počká a skočí na start



delay

cekej1
			ldi R20, 5			cca 1s (R17 5)
	d1		ldi R18, 0
	d2		ldi R19, 0
	d3		dec R19
		
			brne d3
			dec R18
			brne d2
			dec R20
			brne d1
	
				ret

cekej200	
			
			ldi R18, 0
	b1		ldi R19, 0
	b2		dec R19
		
			brne b2
			dec R18
			brne b1
			cli
				ret

cekej2ms
			 						cca 24mss (R17 neni)
			ldi R18, 3
	c1		ldi R19, 220
	c2		dec R19
		
			brne c2
			dec R18
			brne c1
			ret

cekej400
			 						cca 216us (R19 = 72)
			ldi R19, 130
	w1		dec R19
			brne w1
			ret







