Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_prakt-Mikroprocesori-2008-ukr.doc
Скачиваний:
15
Добавлен:
13.04.2015
Размер:
1 Мб
Скачать
☆

3.2.3 Контрольні запитання і завдання

1. Який організований регістровий файл?

2. Обчисліть пряму адресу регістра R5, розташованого в Банку 3.

3. Обчисліть пряму адресу регістра R3, розташованого в Банку 2.

4. Який регістр розташований за адресою 1BH?

5. Які регістри мікроконтролера MSC 51 належать до регістрів спеціальних функцій?

6. Які регістри мікроконтролера MSC 51 є програмно доступними?

7. Які з перерахованих регістрів мікроконтролера MSC 51 допускають побітову адресацію?

8. Який об'єм пам'яті даних в однокристальній мікро ЕОМ I80751?

9. Які прапорці в регістрі PSW мікроконтролера MSC 51 є арифметичними?

10.В якому адресному просторі пам'яті даних розташований Б2 РЗП?

11.В якому адресному просторі розташована область прапорців, які прямо адресуються?

12. В якому адресному просторі розташовані регістри спеціальних функцій (SFR)?

13. В якому адресному просторі знаходиться регістр PSW і регістр В?

14. В яких елементах пам'яті даних знаходяться прапорці, що прямо адресуються, з адресами 28Н, 47Н?

15. В яких елементах пам'яті даних знаходяться прапорці 31D, 110D, що прямо адресуються?

16. Яка адреса прапорця паритету парності і додаткового перенесення при бітовій адресації?

17. Який спосіб адресації використовується при звертанні до РЗП і регістрів спеціальних функцій?

18. Який спосіб адресації використовується при звертанні до внутрішнього ОЗУ?

19. Який спосіб адресації використовується при звертанні до зовнішньої пам'яті даних і програм?

3.2.4 Приклади аудиторних і домашніх завдань

Приклад 3.1. Реалізувати програмно функцію y=x1+x2, де x1-РЗП Банк 2 x2-M, В-РЗП. Тут М-Memory (використовується побічно-регістрова адресація).x1,x2-двобайтові числа.

Алгоритм розв’язання

START

1. Початкове встановлення адрес і змінних.

2. Визначити поточний банк робочих регістрів.

3. Привласнити R1 значення адреси рівного 31H, де зберігається молодший байт змінної х2.

4. Записати в А молодший байт змінної х2, що міститься в осередку ОЗУ.

5. Виконати підсумовування молодших байтів х1 і х2 A:= (A)+([R1])

6. Вміст акумулятора зберегти в РЗП|.

7. Привласнити R1 значення адреси рівного 30H, де зберігається старший байт змінної х2. R1:= (R1-1)

8. Записати в А старший байт змінної х2, що міститься в осередку ОЗУ.

9. Виконати підсумовування старших байтів х1 і х2 з урахуванням перенесення A:= (A)+([R1]) +CY

10. Вміст акумулятора зберегти в РЗП|.

11. Вміст CY зберегти в РЗП|.

STOP

Програма мовою асемблер

;SUM 0030H

;(R2,R3):=х1

;[0031H],[0030H]:=х2

;(R5,R6,R76):= Y

ORG 0030H ; початкова адреса програми

SUM: CLR C ; скидання прапорця перенесення

SETB RS1 ; задання банка робочих регістрів 2

CLR RS0 ;

MOV R1,#31H ; запис адреси осередку 31Н в R1

MOV A,,@R1 ;запис у А молодшого байта змінної х2

ADDC A,R2 ; складання А і R2

MOV R5,A ; перенесення результату складання в R5

DEC R1 ; перехід до адреси 30Н

MOV A @R1H ; запис в А старшого байта х2

ADDC A R3 ;сума А і старшого байта х1 з урахуванням

;прапорця С

MOV R6,A ; запис результату складання з А в R6

CLR A ; запис прапорця

ADDC A,#0 ; перенесення в

MOV R7,A ; РЗП (R7:=CY)

END

Приклад 3.2. Реалізувати програмно функцію y=x1 «і» x2, де: x1-ОЗУ; x2-ОЗУ; В-ОЗУ. Використовувати пряму адресацію даних. х1, х2-однобайтові числа. Y передати в послідовній формі через Р1.3.

Алгоритм розвязання

START

1. Початкове встановлення адрес і змінних.

2. Передати вміст комірки ОЗУ в регістр А.

3. Виконати логічне складання А і елемента пам'яті.

4. Зберегти вміст акумулятора в ОЗУ.

5. Встановити лічильник біт N рівним 08.

6. Настроїти порт Р1на вивід.

7. Виконати зрушення вмісту А вправо на один біт через перенесення.

8. Передати вміст прапорця в порт Р1.3.

9. Затримка 3 такти.

10. Зменшити лічильник на 1, якщо N не = 0, виконати пункт 6.

STOP

Програма мовою асемблер

; ANL 0070H

; х1-ОЗУ 0031Н

; х2-ОЗУ 0030Н

; R5:=N

ORG 0070H ; розміщення програми в пам'яті

ANL: CLR C ; скидання прапорця перенесення

MOV А,31H ; передати х1 в акумулятор

ANL A,30H ; логічне «І» вмісту А і х2

MOV R5,#08 ; встановлення лічильника N=8

P2: RRC A ; зрушення вмісту А через перенесення MOV P1,#0 ; ініціалізація порту 1

MOV P1.3,C ; передати біт в порт через P1.3

NOP ; затримка

NOP ; три

NOP ; такту

DJNZ R6,P2 ; N-1, якщо N не рівне 0, виконувати Р2

END

Приклад 3.3. Реалізувати програмно функцію y=x1 "ВИКЛ АБО" x2, де x1-М, x2-M, В-РЗП Банк 2. Тут М-Memory (використовується побічно-регістрова адресація). х1, х2-однобайтовые числа.

Алгоритм розвязання

START

1. Початкове встановлення адрес і змінних.

2. Передати х1 в акумулятор.

3. Виконати логічну операцію х1"викл.або"х2.

4. Передати результат операції в РЗП.

STOP

Програма мовою асемблер

; ВИКЛ| АБО 0090Н

;[ 40Н ]:= x1

;[ 50H ];= x2

;Банк 1 R1:= у

ORG 0050H ; початкова адреса програми

SETB RS1 ;задання 1 банку

CLR RS0 ; робочих регістрів

MOV R1,#40H ;(R1):= адреса х1

MOV R0,#50H ;(R2):= адреса х2

MOV A,@R1 ;A:= х1

XRL A,@R0 ;A:= A «викл.або»х2

MOV R1,A ; R1=y

END