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

3) Режимы работы таймера мк51.

При работе в качестве таймера содержимое Т/С инкрементируется в каждом машинном цикле, т.е. через 1 мкс при частоте кварца 12 МГц.

Для управления режимами работы Т/С и организации взаимодействия таймеров с системой прерывания используются регистры TMOD и TCON. С помощью битов М1 и М0 задаются четыре возможных режима работы Т/С0 и Т/С1.

Режим 0. Регистр таймера имеет разрядность 13 бит. При его переходе из состояния «все единицы» в состояние «все нули» устанавливается флаг TF. Работа Т/С разрешена, когда TR=1 и либо GATE=0, либо INT=1.

Режим 1. Отличается от режима 0 тем, что регистр таймера имеет разрядность 16 бит.

Режим 2. TL работает как 8-битовый автоперезагружаемый таймер/счетчик. ТН хранит значение, которое должно быть перезагружено в TL каждый раз по его переполнению.

Режим 3. TL0 работает как 8-битовый Т/С и его режим определяется управляющими битами Т/С0. ТН0 работает только как 8-битовый таймер, управляемый битом TR1 и использующий флаг TF1. Работа Т/С1 постоянно разрешена в режимах 0,1 и 2 без использования прерываний. Этот режим Т/С1 удобно использовать для синхронизации работы последовательного порта.

4) Разработайте программу очистки (обнуления) N ячеек резидентной памяти данных МК51, начиная с пятидесятой.

org 0

mov R0, #50 ; установка начального адреса РПД

mov R7,#N ; задание количество ячеек

main:mov A, #0 ; в аккумулятор записываем нуль

mov @R0,A ;перемещаем в ячейку с адресом R0 значение из аккумулятора(то есть 0)

inc R0 ;увеличиваем адрес ячейки на единицу

djnz R7,main ;уменьшаем R7 на единицу и если не равно 0 то переходим на метку main

end

mov R1,#50

mov R2, #N

m1: mov @R1,#0

inc R1

DJNZ R2,m1

ebd

5) Что происходит в микропроцессорной системе при появлении запроса на прерывание программы? Вектор прерывания, разрешение прерываний, приоритет прерываний.

По специальному сигналу запроса на прерывание МК после выполнения текущей команды переходит к выполнению подпрограммы обслуживания прерываний, затем возвращается к реализации основной программы.

Происходит это следующим образом:

  1. Поступает запрос на прерывание

  2. Устанавливается флаг прерывания

  3. Завершается текущая команда

  4. Если прерывание от источника маскируется в IE, то прерывание не обрабатывается

  5. Если не разрешено общее прерывание IE=0, то прерывание не обрабатывается

  6. Если приоритет поступившего прерывания ниже, чем у текущего, то прерывание не обрабатывается

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

После появления запроса, прерывания от которого разрешены, процессор записывает в стек адрес следующей команды прерываемой программы. На счетчик адреса команд загружается адрес начала программы обслуживания прерываний. В микроконтроллерах МК51 для программ обслуживания зафиксированы постоянные начальные адреса. Если в системе возможно обслуживание нескольких прерываний, то программы обслуживания должны "обходить" участки программной памяти, зафиксированные как начальные участки программ обслуживания других прерываний.

Два регистра IE и IP формируют вектор прерывания, IE прерывание более высокого уровня, т.е. прерывание по IP возможно если установлен флаг глобального прерывания, а остальные флаги равны нулю.