Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dodatok_1.doc
Скачиваний:
1
Добавлен:
04.09.2019
Размер:
706.05 Кб
Скачать

Блок-схема

25). Розробити варіант програми Word Generator (з EWB).

.device at90s1200

.include "1200def.inc"

ser r16 ;усі біти регістра R16 встановлюються в одиницю

out ddrb,r16 ;настроювання порту B на вивід

home:

clr r18 ;очищення регістра R18

out portb,r18 ;вивід значення регістра R18 на порт B

rcall delay ;виклик підпрограми затримки Delay

set ;установка в одиницю біта-акумулятора Т

loop:

clr r17 ;очищення регістра R17

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 значення

;біта-акумулятора

sbic pind,3 ;якщо третій біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,3 ;завантаження в третій біт R17 значення

;біта-акумулятора

sbic pind,4 ;якщо четвертий біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,4 ;завантаження в четвертий біт R17 значення

;біта-акумулятора

sbic pind,5 ;якщо п'ятий біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,5 ;завантаження в п'ятий біт R17 значення

;біта-акумулятора

sbic pind,6 ;якщо шостий біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,6 ;завантаження в шостий біт R17 значення

;біта-акумулятора

sbic pind,7 ;якщо сьомий біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,7 ;завантаження в сьомий біт R17 значення

;біта-акумулятора

cpi r17,0 ;порівняння регістра R17 з 0

breq loop ;якщо R17=0, програма переходить на мітку loop

inc r18 ;інкремент регістра R18

out portb,r18 ;вивід значення регістра R18 на порт B

rcall delay ;виклик підпрограми затримки Delay

cp r17,r18 ;порівняння значень регістрів R17 і R18

breq home ;якщо вони рівні, програма переходить на мітку home

rjmp loop ;перехід на мітку loop

delay: ;підпрограма затримки

clr r22 ;очищення регістра R22

mm:

inc r20 ;інкремент регістра R20

cpi r20,0 ;порівняння регістра R20 з 0

brne mm ;якщо R20¹0, то програма переходить на мітку mm

inc r21 ;інкремент регістра R21

cpi r21,0 ;порівняння регістра R21 з 0

brne mm ;якщо R21¹0, то програма переходить на мітку mm

inc r22 ;інкремент регістра R22

cpi r22,5 ;порівняння регістра R22 з 5

brne mm ;якщо R22¹5, то програма переходить на мітку mm

ret ;вихід із підпрограми затримки

Блок-схема

26). Прийняти код довжиною 1 слово (байт) у послідовному форматі, що надходить на біт d1 порту D з частотою, що задають бітом d0 порту D, і перетворити його в паралельний формат, подавши на світлодіоди порту В.

.device at90s1200

.include "1200def.inc"

ser r16 ;усі біти регістра R16 встановлюються в одиницю

out ddrb,r16 ;настроювання порту В на вивід

clr r17 ;очищення регістра R17

set ;установка в одиницю біта-акумулятора Т

m0:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає наступну команду

rjmp m0 ;перехід на мітку m0

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,0 ;завантаження в нульовий біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

n0:

sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма

;пропускає наступну команду

rjmp n0 ;перехід на мітку n0

m1:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає наступну команду

rjmp m1 ;перехід на мітку m1

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,1 ;завантаження в перший біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

n1:

sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма

;пропускає наступну команду

rjmp n1 ;перехід на мітку n1

m2:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає наступну команду

rjmp m2 ;перехід на мітку m2

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,2 ;завантаження в другий біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

n2:

sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма

;пропускає наступну команду

rjmp n2 ;перехід на мітку n2

m3:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає наступну команду

rjmp m3 ;перехід на мітку m3

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,3 ;завантаження в третій біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

n3:

sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма

;пропускає наступну команду

rjmp n3 ;перехід на мітку n3

m4:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає наступну команду

rjmp m4 ;перехід на мітку m4

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,4 ;завантаження в четвертий біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

n4:

sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма

;пропускає наступну команду

rjmp n4 ;перехід на мітку n4

m5:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає наступну команду

rjmp m5 ;перехід на мітку m5

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,5 ;завантаження в п'ятий біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

n5:

sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма

;пропускає наступну команду

rjmp n5 ;перехід на мітку n5

m6:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає наступну команду

rjmp m6 ;перехід на мітку m6

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,6 ;завантаження в шостий біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

n6:

sbic pind,0 ;якщо нульовий біт порту D дорівнює 0, то програма

;пропускає наступну команду

rjmp n6 ;перехід на мітку n6

m7:

sbis pind,0 ;якщо нульовий біт порту D дорівнює 1, то програма

;пропускає ;наступну команду

rjmp m7 ;перехід на мітку m7

sbic pind,1 ;якщо перший біт порту D дорівнює 0, то програма

;пропускає наступну команду

bld r17,7 ;завантаження в сьомий біт R17 значення

;біта-акумулятора

out portb,r17 ;вивід значення регістра R17 на порт В

end:

rjmp end ;перехід на мітку end

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]