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

Блок-схема

4). Розробити програму, що реалізує роботу мультиплексора 4:1. Дані d0d3 зчитуються з розрядів d0d3 порту D, а адресні сигнали з d4d5 порту D. Вхід, що дозволяє, d6.

.device at90s1200 ;

.include "1200def.inc" ;

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

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

main: ;

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

in r17,pind ;записуємо в регістр R17 значення порту D

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

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

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

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

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

m1: ;

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

clr r23 ;очищення регістра R23

bst r21, 4 ;копіювання четвертого біта регістра R21 у

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

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

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

bst r21, 5 ;копіювання п'ятого біта регістра R21 у

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

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

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

cpi r22, 0 ;порівняння значення регістра R22 з нулем

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

cpi r22, 1 ;порівняння значення регістра R22 з одиницею

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

cpi r22, 2 ;порівняння значення регістра R22 із двійкою

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

bst r21, 3 ;копіювання третього біта регістра R21 у

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

rcall pp ;виклик підпрограми pp

n1: ;

bst r21, 0 ;копіювання нульового біта регістра R21 у

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

rcall pp ;виклик підпрограми pp

n2: ;

bst r21, 1 ;копіювання першого біта регістра R21 у

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

rcall pp ;виклик підпрограми pp

n3: ;

bst r21, 2 ;копіювання другого біта регістра R21 у

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

rcall pp ;виклик підпрограми pp

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

pp: ;

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

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

cpi r23, 0 ;порівняння значення регістра R23 з нулем

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

sbi portb, 7 ;установка сьомого біта порту В в одиницю

end: ;

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

Блок-схема

5). Зчитати з порту B (біти b0b3) одне двійкове слово, а з порту B (біти b4b7) інше. Виконати операцію «І» над ними й інверсію над результатом. Отриманий результат вивести на біти d3d6 порта 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, в

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

and r18,r17 ;побітова операція логічного «І» над регістрами R18 і

;R17 (результат операції записується в регістр R18)

com r18 ;інвертування регістра R18

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

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

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

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

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

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