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

Блок-схема

Підпрограма затримки показана в десятому прикладі.

13). Розробити програму виконання регістра пам'яті на 4 біти. Керуючим бітом на запис регістра буде біт d7 порту D, а керуючим бітом на зчитування – d6 порту D.

.device at90s1200

.include "1200def.inc"

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

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

home:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

qq:

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

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

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

ww:

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

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

Блок-схема

14). Розробити програму для ділення частоти вхідних імпульсів на 27.

У даній програмі рахунок вхідних імпульсів буде вестися в двійковому коді і відображатися на бітах b0b4 порту В, а уже вихідний сигнал – на біті b7 порту В.

.device at90s1200

.include "1200def.inc"

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

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

m1:

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

;128=100000002 для виділення 7-го біта регістра R18

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

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

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

m2:

inc r17 ;інкремент регістра R17

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bld r18,3 ;завантаження в третій біт регістра R18 значення

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

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

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

bld r18,4 ;завантаження в четвертий біт регістра R18 значення

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

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

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

cpi r17,26 ;порівняння регістра R17 з числом 26

brne m2 ;якщо R1726, програма переходить на мітку m2

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

sbrc r18,7 ;якщо сьомий біт регістра R18 дорівнює 0, то програма

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

rjmp qq ;стрибок на мітку qq

bld r18,7 ;завантаження в сьомий біт регістра R18 значення

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

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

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

qq:

clt ;очищення біта-акумулятора

bld r18,7 ;завантаження в сьомий біт регістра R18 значення

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

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

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

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

ldi r20,3 ;присвоїти регістру R20 константу 3

out tccr0,r20 ;установка передділения таймера-лічильника на 64

m3:

in r21,tcnt0 ;ввід даних з регістра таймера-лічильника в R21

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

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

inc r23 ;інкремент регістра R23

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

brne m3 ;якщо R230, програма переходить на мітку m3

ret ;повернення з підпрограми затримки

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