.include "A:\avr\avrasm\appnotes\m8def.inc"


.def     temp=r16
.def     Temp1=R17
.def     Temp2=R18
.def     Temp3=R19
.def     Temp4=R20
.def     Temp5=R31

.cseg
.org 0



            ;инициализация стека
       ldi Temp, (RamEnd & 255) ;// Младший байт 
       out SPL,Temp 
       ldi Temp, ((RamEnd >> 8) & 255) ;// Старший байт 
       out SPH,Temp

       ldi Temp,0b00000000   ;настройка портов
       out DDRC,Temp

       ldi Temp,0b11111110   ;настройка портов
       out PortC,Temp

       ldi Temp,0b00111111   ;настройка портов
       out DDRD,Temp

       ldi Temp,0b11100110    
       out ADCSR,Temp       ;настройка АЦП
      
       ldi Temp,0b00000000
       out ADMUX,Temp      ;настройка АЦП

       ldi Temp,0b00000000   ;настройка аналогового компаратра
       out ACSR,Temp 
label:
          in Temp,ADCH
          cpi  Temp,0b00000000
          breq  lqbel

          in Temp,ADCH
          cpi  Temp,0b00000001
          breq  label

          in Temp,ADCH
          cpi  Temp,0b00000010
          breq  label

          in Temp,ADCH
          cpi  Temp,0b00000011
          breq  label

 lqbel:
         sbic PinC,3            ;проверяем кнопку старт
         rjmp     label
         ldi Temp,0b00000001    ;включаем блокировка люка
         out PortD,Temp
lbel:    sbic PinC,2            ;проверяем блокировку люка
         rjmp     lbel 
lqbl:    ldi Temp,0b00000011    ;включаем клапан стирки
         out PortD,Temp
         sbic PinC,4
         rjmp  lqbl
         rcall Delay           ;вызов подпрограммы задержки
         ldi Temp,0b00000101    ;включаем тэн
         out PortD,Temp

labl:
  Lop:
       
         in Temp,ACSR
         ldi Temp2,0b00100000
         cpc Temp,Temp2
         breq Lop
         

 


          ldi Temp,0b00111111  ;вывод на индикацию
          rcall Delay           ;вызов подпрограммы задержки

          ldi Temp,0b00000000   ;вывод на индикацию
          rcall Delay           ;вызов подпрограммы задержки

          rjmp     labl        ;поехали по новой!


;****************************************************


Delay:    out PortD,Temp
         
          ldi Temp1,20
          ldi Temp2,1
          ldi Temp3,20

Loop:     dec Temp1
          brne Loop

          dec Temp2
          brne Loop

          dec Temp3
          brne Loop

          ret