Изучение лабораторного стенда STК500 и написание двух программ на языках программирования ассемблер и С, задействующие все возможности стенда, страница 2

                        brne     timer0

                        ldi                   r16, low(RAMEND)

                        out                   SPL,r16

                        ldi                   r16,high(RAMEND)

                        out                   SPH,r16          ;стек загружен

                        ldi                   r16,0x00         ;направление - ввод

                        out                   DDRD,r16      ;регистр B на  ввод

                        ldi                   r16,0xFF

                        out                   PORTD,r16    ;подтягивающие рез.на порт

                        ldi                   r16,0x02         ;бит разр.прер.таймер 0

                        out                   TIMSK,r16

                        clr                   r16

                        out                   TCCR0,r16     ;останов таймера 0

                        ldi                   r16,0xFF         ;направление - вывод

                        out                   DDRB,r16      ;регистр D на  вывод

                        out                   PORTB,r16     ;погасить светодиоды 'HIGH

                        clr                   r3                                ;сбросить признак кнопки

                        clr                   r4                                ;сбросить признаки событий

                        clr                   r5                                ;сбросить счетчик сдвигов

                        clr                   r7                                ;линейный код 1-й кнопки

                        clr                   r8                                ;линейный код 2-й кнопки

                        clr                   r9                                ;сбросить номер кнопки

                        clr                   r10                              ;сбросить счетчик активности

                        sei

                        ldi                   r16,0x10

                        out                   TCNT0,r16     ;значение счетчика 0

                        ldi                   r16,0x01         ;4 : clk - 256

                        out                   TCCR0,r16     ;активация счета T0

                        inc                   r10                              ;признак - таймера reset

                        ldi                   r16,0x04         ;короткий счетчик

                        mov                 r1,r16

                        ldi                   r16,0x08         ;длинный  счетчик

                        mov                 r2,r16

st0:      nop                                                     ;фоновый цикл ожидания

                        mov                 r16,r4  ;события на анализ

                        andi     r16,0x01;контроль дл.события

                        breq     st00     ;нет длинного события

                        nop                                         ;начало обр.дл.события

                        mov                 r16,r4

                        andi     r16,0x02;сбросить пр.дл.события

                        mov                 r4,r16

                        tst                    r9                    ;контроль усттойч.нажатия

                        breq     st0                   ;ничего вообще не нажали

                        mov                 r6,r9

                        dec                  r6                    ;контроль номера кнопки

                        brne     kn2                  ;нажата кнопка 2

                        nop                                         ;обработка кнопки 1

                        tst                    r5

                        brne     strab    ;есть счетчик массива

                        ldi                   ZL, low(mas1*2)

                        ldi                   ZH,high(mas1*2)

                        ldi                   r16,7

                        mov                 r5,r16  ;есть знач.счетчика массива

strab:   nop                                         ;начало выдачи на инд.