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

                        lpm                 r0,Z+   ;взять очередной код ламп

                        com                 r0                    ;рабочее значение ламп

                        out                   PORTB,r0;в индикатор

                        dec                  r5                    ;сбросить счетчик массива

                        tst                    r10                  ;контроль активности

                        brne     stra0    ;активность не исчерпана

                        clr                   r9                    ;убрать активную кнопку

stra0:   dec                  r10                  ;считать активность кнопки

                        jmp                 st9

kn2:     nop                                         ;обработка кнопки 2

                        tst                    r5

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

                        ldi                   ZL, low(mas2*2)

                        ldi                   ZH,high(mas2*2)

                        ldi                   r16,7

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

                        jmp                 strab   

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

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

                        breq     st9                   ;нет короткого события

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

                        mov                 r16,r4

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

                        mov                 r4,r16

                        tst                    r3                    ;контроль нажатия

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

                        mov                 r6,r3

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

                        brne     knp2    ;нажата кнопка 2 предв.

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

                        sec

                        rol                   r7                    ;вдвинуть 1 в линейку

                        ldi                   r16,0x7           ;константа длинны линейки

                        and                  r7,r16  ;убрать лишнее

                        cp                    r7,r16

                        brne     st6                   ;нет устойчивого нажатия

                        ldi                   r16,0x01;идентификатор 1-й кнопки

                        mov                 r9,r16

                        ldi                   r16,0xFF

                        mov                 r10,r16            ;счетчик активности кнопки

                        rjmp    st6

knp2:   nop                                         ;обработка кнопки 2

                        sec

                        rol                   r8                    ;вдвинуть 1 в линейку

                        ldi                   r16,0x7           ;константа длинны линейки

                        and                  r8,r16  ;убрать лишнее

                        cp                    r8,r16

                        brne     st6                   ;нет устойчивого нажатия

                        ldi                   r16,0x02;идентификатор 2-й кнопки

                        mov                 r9,r16

                        ldi                   r16,0xFF

                        mov                 r10,r16            ;счетчик активности кнопки

                        rjmp    st6

st5:      nop                                         ;продвижение нуля в линии

                        clc

                        rol                   r7                    ;ноль в 1-ю линейку

                        rol                   r8                    ;ноль в 2-ю линейку

                        ldi                   r16,0x7           ;константа длинны линейки