2-Лабораторная_Основы микропроцессорной техники_2 / лабораторная работа 2 ОМПТ
.docМинистерство образования
Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра промышленной электроники (ПрЭ)
Лабораторная работа № 2
Основы микропроцессорной техники
Студент
Руководитель
________________
Тема: Отладка прикладных программ для микропроцессора серии мк 48
6.2 С помощью встроенного редактора Norton Commander подготовим исходный текст исследуемой программы.
mov A,#1
m1: outl P1,A
rl A
nop
djnz R1,$
jmp m1
end
В А загружается 1, выводится в порт P1 Затем в А единица сдвигается на один разряд в право и командой jmp переходит на метку m1 где уже А со сдвинутой единицей опять выводится в Р1 создавая таким образом эффект движения еденици. При этом команда djnz R1,$ служит для уменьшения скорости выполнения программы выполняя цикл от FFh до 00h.
-
Модифицировать программу.
1). Поставим в место NOP команду INC A . Команда INC A стала добавлять единицу в аккумулятор при каждом цикле так, что при выполнении команды циклического сдвига и INC A на место нулей записывается единица, а когда перед этим происходит перенос единицы из старшего разряда происходит следующие:
исходный→ RL A → INC A
10001111→00011111→00100000
2). В место RL A вставим RR A.
Это привело к сдвигу единицы в обратном направлении слева на право.
6.5. Счетчик (Set Cycles) показал 514 циклов.
6.6 Запишем программу prog.asm
EN I
JMP M1
JMP CLOK
M1: STRT CNT
INC A
MOVD P4,A
SWAP A
MOVD P5,A
SWAP A
JMP M1
CLOK: ENT0 CLK
RETR
END
Порт Р.» используется для организации дополнительных портов ввода вывода, что приводит к его изменению. При срабатывании прерывания (into=0) выполняется подпрограмма обслуживания прерывания CLOK. При наличии прерывания управление передается по адресу 0003h где указан адрес подпрограммы обработки прерываний. Запрещает прерывания команда dis i. При переполнении таймера/счетчика флаг таймера устанавливается в единицу.
6.7 Проверить на эмуляторе работу программы COMP.asm
MOV R2,#0
MOV R0,#32
MOV R7,#32
CPL A
MOV R1,A
M1: MOV A,R1
ADD A,@R0
JNC M2
XCH A,R2
ADD A,#1
DA A
XCH A,R2
M2: INC R0
DJNZ R7,M1
MOV A,R2
Эта программа обрабатывает массив с 32 по 63 ячейки памяти наращивая R2 при каждом значении ячейки>1.
6.8 Бит Р2.0 должен обнуляться, если не менее, чем на пяти линиях порта Р1 установлены нулевые уровни.
M1: IN A,P1
MOV R0,#08H
MOV R1,#00H
M2: RLC A
JC M3
INC R1
M3: DJNZ R0,M2
MOV A,R1
CPL A
ADD A,#05H
JC M1
ANL A,#FEH
OUTL P2,A
JMP M1
Ответы на вопросы.
1). Sel mb1 выбор первого банка ПП.
Call adr11 Вызов подпрограммы.
2). Любой командой условного перехода.
3). Системный сброс устанавливает регистры PC и SP в нулевое состояние, сбрасывает в ноль флаги пользователя F0, F1 .Запрещает прерывания, выдачу тактовых импульсов на выход Т0, выбирает rb0 и mb0 останавливает таймер счетчик, подготавливает порты P0 и P1 к приему информации .
4). Определить количество циклов и умножить на 2,5 мкс (время одного машинного цикла при частоте кварца 6 Мгц).
Количество циклов можно узнать с помощью счетчика циклов (Set Cycles).