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

Блок-схема

6). Розробити програму перемножування двох 4-розрядних двійкових слів, прийнятих з порту B (b0b3) і (b4b7). Результат вивести на порт D.

.device at90s1200 ;

.include "1200def.inc" ;

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

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

loop:

in r17,pinb ;ввід даних з порту B у регістр R17

mov r18,r17 ;копіювання значення регістра R17 у регістр R18

andi r17,0x0F ;логічна операція “І” регістра R17 з числом $0F, в

;результаті якої виділяється молодша тетрада регістра

andi r18,0xF0 ;логічна операція “І” регістра R18 з числом $F0, в

;результаті якої виділяється старша тетрада регістра

sbrs r17,0 ;якщо нульовий біт регістра R17=1, то програма

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

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

mov r19,r18 ;значення регістра R18 переміщається в регістр R19

m1:

sbrs r17,1 ;якщо перший біт регістра R17=1, то програма

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

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

lsl r18 ;логічний зсув вліво регістра R18

add r19,r18 ;підсумовування регістрів R19 і R18

m2:

sbrs r17,2 ;якщо другий біт регістра R17=1, то програма

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

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

lsl r18 ;логічний зсув вліво регістра R18

add r19,r18 ;підсумовування регістрів R19 і R18

m3:

sbrs r17,3 ;якщо третій біт регістра R18=1, то програма

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

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

lsl r18 ;логічний зсув вліво регістра R18

add r19,r18 ;підсумовування регістрів R19 і R18

m4:

out portd,r19 ;вивід значення регістра R19 на порт D

rjmp loop ;перехід на мітку loop (початок програми)

Блок-схема

7). Розробити програму дешифратора двійкового коду, що подається на біти d0d2 порта D. Вихід дешифратора – біти порту В. Входом, що дозволяє, буде біт d6 порту D.

.device at90s1200

.include "1200def.inc"

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

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

main:

ldi r21,254 ;присвоїти регістру R21 число 254

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

loop:

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

clr r21 ;очищення регістра R21

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

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

bld r21,0 ;завантаження в нульовий біт регістра R21 значення

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

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

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

bld r21,1 ;завантаження в перший біт регістра R21 значення

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

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

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

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

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

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

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

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

out portb,r20 ;вивід значення регістра R20 на порт У

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

m2:

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

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

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

breq n1 ;якщо R21=1, то програма переходить на мітку n1

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

breq n2 ;якщо R21=1, то програма переходить на мітку n2

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

breq n3 ;якщо R21=1, то програма переходить на мітку n3

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

breq n4 ;якщо R21=1, то програма переходить на мітку n4

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

breq n5 ;якщо R21=1, то програма переходить на мітку n5

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

breq n6 ;якщо R21=1, то програма переходить на мітку n6

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

breq n7 якщо R21=1, то програма переходить на мітку n7

rjmp main перехід на мітку main (початок програми)

n1:

ldi r22,253 ;присвоїти регістру R22 число 253

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

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

n2:

ldi r22,251 ;присвоїти регістру R22 число 251

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

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

n3:

ldi r22,247 ;присвоїти регістру R22 число 247

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

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

n4:

ldi r22,239 ;присвоїти регістру R22 число 239

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

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

n5:

ldi r22,223 ;присвоїти регістру R22 число 223

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

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

n6:

ldi r22,191 ;присвоїти регістру R22 число 191

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

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

n7:

ldi r22,127 ;присвоїти регістру R22 число 127

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

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

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