- •Додаток 1. Приклади ррозв’язання задач мовою avr Assembler
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
Блок-схема
29). На порт D (d0d7) щомиті подається випадковий двійковий код. Як тільки його значення збігається з заданим (константою) програма зупиняється, а код виводиться на світлодіоди і тримається до скидання.
.device at90s1200
.include "1200def.inc"
ser r16 ;усі біти регістра R16 встановлюються в одиницю
out ddrb,r16 ;настроювання порту B на вивід
home:
clr r17 ;очищення регістра R17
in r17,pind ;записуємо в регістр R17 значення порту D
cpi r17,85 ;порівняння регістра R17 з числом 85
brne home ;якщо R1785, програма переходить на мітку home
out portb,r17 ;вивід значення регістра R17 на порт B
end:
rjmp end ;перехід на мітку end
Блок-схема
30). Варіант кодового замка з комбінацією 5, 2, 7 (d5, d2, d7).
.device at90s1200
.include "1200def.inc"
ser r16 ;усі біти регістра R16 встановлюються в одиницю
out ddrb,r16 ;настроювання порту B на вивід
loop:
set ;установка в одиницю біта-акумулятора Т
clr r17 ;очищення регістра R17
sbic pind,5 ;якщо п'ятий біт порту D дорівнює 0, то програма
;пропускає наступну команду
bld r17,0 ;завантаження в нульовий біт R17 значення
;біта-акумулятора
cpi r17,0 ;порівняння регістра R17 з 0
breq loop ;якщо R17=0, програма переходить на мітку loop
cpi r17,1 ;порівняння регістра R17 з 1
brne end ;якщо R171, програма переходить на мітку end
m1:
sbic pind,5 ;якщо п'ятий біт порту D дорівнює 0, то програма
;пропускає наступну команду
rjmp m1 ;перехід на мітку m1
main:
clr r18 ;очищення регістра R18
sbic pind,2 ;якщо другий біт порту D дорівнює 0, то програма
;пропускає наступну команду
bld r18,0 ;завантаження в нульовий біт R18 значення
;біта-акумулятора
cpi r18,0 ;порівняння регістра R18 з 0
breq main ;якщо R18=0, програма переходить на мітку main
cpi r18,1 ;порівняння регістра R18 з 1
brne end ;якщо R181, програма переходить на мітку end
m2:
sbic pind,2 ;якщо другий біт порту D дорівнює 0, то програма
;пропускає наступну команду
rjmp m2 ;перехід на мітку m2
home:
clr r19 ;очищення регістра R19
sbic pind,7 ;якщо сьомий біт порту D дорівнює 0, то програма
;пропускає наступну команду
bld r19,0 ;завантаження в нульовий біт R19 значення
;біта-акумулятора
cpi r19,0 ;порівняння регістра R19 з 0
breq home ;якщо R19=0, програма переходить на мітку home
cpi r19,1 ;порівняння регістра R19 з 1
brne end ;якщо R191, програма переходить на мітку end
out portb,r16 ;вивід значення регістра R16 на порт B
end:
rjmp end ;перехід на мітку end
Блок-схема
