РефератыИнформатика, программированиеЛаЛабораторные по информатике

Лабораторные по информатике

Микропроцессоры.


Отчет по лабораторным работам.


Лабораторная работа №1.


Задание.


Составить программу записи во
все порты О ЭВМ чередующихся нулей и единиц. Например в порт Р0 записать число
в двоичной форме 01010101, в порт Р1 - 10101010 и т.д. Затем необходимо инвертировать
значения во всех портах, т.е. в Р0 - 10101010, в Р1 - 01010101 и т.д.


Структурная
схема.




Подробная структурная
схема.














P0←A




 












CPL
A.




 












A←P0




 












P0←01010101; P1←10101010;
P2←11001100; P3←11001101




 














P1←A




 












CPL
A




 












A←P1




 















A←P2




 















CPL
A




 














P2←A




 














P3←A




 












CPL
A




 












A←P3




 

















Пересылка данных из А в порты.




 












Инвертирование данных в A.




 












Загрузка данных в порты.




 












Пересылка в A
содержимого портов.




 

Программа.


>





















































































NAME S
название
модуля программы для сборки

CSEG AT 0H
задание сегмента
памяти программ с адреса 0Н

ORG 0000H


задание адреса начала программы с 9000Н

MOV P0,#01010101B
запись двоичного
числа 01010101 в порт P0

MOV P1,#10101010B
запись двоичного
числа 10101010 в порт P1

MOV P2,#11001100B
запись двоичного
числа 11001100 в порт P2

MOV P3,#11001101B
запись двоичного
числа 11001101 в порт P2

MOV
A,P0
запись данных из
порта P0
в аккумулятор

CPL A
инвертирование данных
в аккумуляторе

MOV P0,A

запись данных из
аккумулятора в порт Р0

MOV
A,P1
запись данных из
порта Р1 в аккумулятор

CPL A
инвертирование данных
в аккумуляторе

MOV P1,A
запись данных из
аккумулятора в порт Р1

MOV A,P2
запись данных из
порта Р2 в аккумулятор

CPL A
инвертирование данных
в аккумуляторе

MOV P2,A
запись данных из
аккумулятора в порт P2

MOV A,P3
запись данных из
порта P3
в аккумулятор

CPL A
инвертирование данных
в аккумуляторе

MOV
P3,A
запись данных из
аккумулятора в порт P3

NOP





END



Контрольный
пример.


В порты были
введены числа в двоичном формате: в P0 - 01010101; в P1-10101010; в P2 - 11001100; в P3 – 11001101. При запуске отладчика программы эти числа были
отображены в шестнадцатеричном виде: 55, AA, CC, CD соответственно. После выполнения
программы эти значения были инвертированы: AA, 55, 33,
32 соответственно. Результаты совпали расчетными.


Лабораторная работа №2.

Задание.


Запустить
программу, написанную в лабораторной работе №1 на отладочной плате.


Для работы с
отладочной платой программа должна начинаться с адреса 9000h. Для этого необходим
псевдооператор ORG 9000H.
Для отображения выполнения программы на дисплее нужен оператор CALL 87bdh. Для контроля результатов
необходимо записать полученные данные во внешнюю память, но считывание внешней
памяти происходит с использованием портов 0 и 2, поэтому необходимо
использовать только порты 1 и 3.


Структурная схема.














Пересылка данных из А в порты.




 












Инвертирование данных в A.




 












Пересылка в A
содержимого портов.




 












Загрузка данных в порты.




 















Пересылка данных из портов через A в ячейки
внутренней памяти.




 














Пересылка в A
содержимого ячеек внутренней памяти.




 















Пересылка данных из A в ячейки
внешней памяти.




 















нет




 














да




 


Подробная
структурная схема.














20H←P1




 












P1←A




 












CPL A




 












A←P1




 



<
br />








P1←01010101, P3←11001100




 












21H←P1; 23H←P3




 












A←P3




 












P1←A




 












CPL
A




 












A←P1




 












P1←10101010; P3←11001101




 














A←P3




 














22H←P3




 












P3←A




 












CPL A




 















да




 














нет




 
















A←M(R0)




 












Подготовка следующих ячеек R0←R0H,
DPTR←DPTR+1




 












M(DPTR)←A




 












R0←20H; DPTR←0; R5←10




 

Программа.


>






















































































































































































































































NAME S
название
модуля программы для сборки

CSEG AT 0H
задание сегмента
памяти программ с адреса 0Н

ORG 9000H


задание адреса начала программы с 9000Н

MOV P1,#10101010B
запись двоичного
числа 10101010 в порт P1

CALL 87bdh



MOV P3,#11001101B
запись двоичного
числа 11001101 в порт P3

CALL
87bdh



MOV
A,P1
запись данных из P1 в аккумулятор

CALL 87bdh



CPL A
инвертирование данных
в аккумуляторе

CALL 87bdh



MOV
P1,A
запись данных из
аккумулятора в порт Р1

CALL
87bdh



MOV A,P3
запись данных из
порта P3 в аккумулятор

CALL
87bdh



CPL
A
инвертирование данных
в аккумуляторе

CALL 87bdh



MOV P3,A
запись данных из
аккумулятора в порт Р3

CALL 87bdh



MOV 21H,P1
запись данных из
порта P1
в ячейку памяти с адресом 21H

CALL 87bdh



MOV 23H,P3
запись данных из
порта P3
в ячейку памяти с адресом 21H

CALL
87bdh



MOV P1,#01010101B
запись двоичного
числа 01010101 в порт P1

CALL
87bdh



MOV A,P1
запись данных из
порта P1
в аккумулятор

CALL 87bdh



CPL A
инвертирование данных
в аккумуляторе

CALL
87bdh



MOV P1,A
запись данных из
аккумулятора в порт P1

CALL
87bdh



MOV
20H,P1
запись данных из
порта P1
в ячейку памяти с адресом 20H

CALL 87bdh



MOV
P3,#11001100B
запись двоичного
числа 11001100 в порт P3

CALL
87bdh



MOV A,P3
запись данных из
порта P1
в аккумулятор

CALL
87bdh



CPL
A
инвертирование данных
в аккумуляторе

CALL
87bdh



MOV
P3,A
запись данных из
аккумулятора в порт P3

CALL
87bdh



MOV
22H,P3
запись данных из
порта P3
в ячейку памяти с адресом 20H

CALL
87bdh



MOV
R0,#20H
в регистр R0 заносится операнд
20H

CALL 87bdh



MOV
DPTR,#0
адресация внешней
памяти

CALL
87bdh



MOV
R5, #10
загрузка счетчика

CALL 87bdh



M1:
MOV A,@R0
пересылка в
аккумулятор содержимого внутренней памяти

CALL
87bdh



MOVX
@DPTR,A


пересылка из
аккумулятора во внешнюю память, адресуемую регистром DPTR

CALL 87bdh





INC
R0

 увеличение адреса внутренней
памяти на 1;

CALL
87bdh



INC
DPTR

 увеличение адреса внешней
памяти на 1;

CALL 87bdh





DJNZ
R5,M1
уменьшение счетчика
на 1 и проверка его на 0, если его значение не равно 0, то переход на M1

CALL 87bdh





NOP





END



Контрольный
пример.


В порты были
введены числа в двоичном формате: в P0 - 01010101; в P1-10101010; в P2 - 11001100; в P3 – 11001101. На дисплее платы эти числа были отображены в
шестнадцатеричном виде: 55, AA, CC,
CD соответственно. После выполнения программы эти
значения были инвертированы: AA, 55, 33, 32 соответственно
и записаны в ячейки внешней памяти. Результаты совпали с расчетными.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Лабораторные по информатике

Слов:4983
Символов:32794
Размер:64.05 Кб.