- •Основы микропроцессорной техники
- •1) Принцип работы микропроцессорной системы и ее основные функциональные узлы.
- •2) Что происходит в микропроцессорной системе при обращении к подпрограмме? Стек, указатель стека.
- •3) Режимы работы таймера мк51.
- •6) Программная модель микроконтроллера мк51. Память программ, память данных, регистры специальных функций.
- •7) Сравнительная характеристика микроконтроллеров avr и мк51. Пути повышения быстродействия в avr-микроконтроллере.
- •20) Разработать программу преобразования двоично- десятичного кода числа в двоичный.
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) Что происходит в микропроцессорной системе при появлении запроса на прерывание программы? Вектор прерывания, разрешение прерываний, приоритет прерываний.
По специальному сигналу запроса на прерывание МК после выполнения текущей команды переходит к выполнению подпрограммы обслуживания прерываний, затем возвращается к реализации основной программы.
Происходит это следующим образом:
Поступает запрос на прерывание
Устанавливается флаг прерывания
Завершается текущая команда
Если прерывание от источника маскируется в IE, то прерывание не обрабатывается
Если не разрешено общее прерывание IE=0, то прерывание не обрабатывается
Если приоритет поступившего прерывания ниже, чем у текущего, то прерывание не обрабатывается
После всех перечисленных проверок начинается выполняться подпрограмма обслуживания прерываний.
После появления запроса, прерывания от которого разрешены, процессор записывает в стек адрес следующей команды прерываемой программы. На счетчик адреса команд загружается адрес начала программы обслуживания прерываний. В микроконтроллерах МК51 для программ обслуживания зафиксированы постоянные начальные адреса. Если в системе возможно обслуживание нескольких прерываний, то программы обслуживания должны "обходить" участки программной памяти, зафиксированные как начальные участки программ обслуживания других прерываний.
Два регистра IE и IP формируют вектор прерывания, IE прерывание более высокого уровня, т.е. прерывание по IP возможно если установлен флаг глобального прерывания, а остальные флаги равны нулю.