- •Додаток 1. Приклади ррозв’язання задач мовою avr Assembler
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
- •Блок-схема
Блок-схема
24). Розробити програму реалізації приладу для визначення невідомої функції 3-х перемінних (на виході приладу повинний з'явитися двійковий код 07, а приймати повинні істині значення функції, що повинні відображатися світлодіодами відповідного розряду).
.device at90s1200
.include "1200def.inc"
ser r16 ;усі біти регістра R16 встановлюються в одиницю
out ddrb,r16 ;настроювання порту B на вивід
clr r18 ;очищення регістра R18
loop:
clr r17 ;очищення регістра R17
set ;установка в одиницю біта-акумулятора Т
sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма
;пропускає наступну команду
bld r17,0 ;завантаження в нульовий біт R17 значення
;біта-акумулятора
sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма
;пропускає наступну команду
bld r17,1 ;завантаження в перший біт R17 значення
;біта-акумулятора
sbic pind,2 ;якщо другий біт порту D дорівнює 0, то програма
;пропускає наступну команду
bld r17,2 ;завантаження в другий біт R17 значення
;біта-акумулятора
cpi r17,0 ;порівняння регістра R17 з 0
breq m1 ;якщо R17=0, програма переходить на мітку m1
cpi r17,1 ;порівняння регістра R17 з 1
breq m2 ;якщо R17=1, програма переходить на мітку m2
cpi r17,2 ;порівняння регістра R17 з 2
breq m3 ;якщо R17=2, програма переходить на мітку m3
cpi r17,3 ;порівняння регістра R17 з 3
breq m4 ;якщо R17=3, програма переходить на мітку m4
cpi r17,4 ;порівняння регістра R17 з 4
breq m5 ;якщо R17=4, програма переходить на мітку m5
cpi r17,5 ;порівняння регістра R17 з 5
breq m6 ;якщо R17=5, програма переходить на мітку m6
cpi r17,6 ;порівняння регістра R17 з 6
breq m7 ;якщо R17=6, програма переходить на мітку m7
cpi r17,7 ;порівняння регістра R17 з 7
breq m8 ;якщо R17=7, програма переходить на мітку m8
rjmp loop ;перехід на мітку loop (початок програми)
m1:
bld r18,0 ;завантаження в нульовий біт R18 значення
;біта-акумулятора
out portb,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)
m2:
bld r18,1 ;завантаження в перший біт R18 значення
;біта-акумулятора
out portd,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)
m3:
bld r18,2 ;завантаження в другий біт R18 значення
;біта-акумулятора
out portb,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)
m4:
bld r18,3 ;завантаження в третій біт R18 значення
;біта-акумулятора
out portb,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)
m5:
bld r18,4 ;завантаження в четвертий біт R18 значення
;біта-акумулятора
out portb,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)
m6:
bld r18,5 ;завантаження в п'ятий біт R18 значення
;біта-акумулятора
out portb,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)
m7:
bld r18,6 ;завантаження в шостий біт R18 значення
;біта-акумулятора
out portb,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)
m8:
bld r18,7 ;завантаження в сьомий біт R18 значення
;біта-акумулятора
out portb,r18 ;вивід значення регістра R18 на порт B
rjmp loop ;перехід на мітку loop (початок програми)