Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
23.06.2014
Размер:
39.42 Кб
Скачать

Министерство образования

Российской Федерации

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра промышленной электроники (ПрЭ)

Лабораторная работа № 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. Модифицировать программу.

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).

Соседние файлы в папке 2-Лабораторная_Основы микропроцессорной техники_2