Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
архитектура 2.docx
Скачиваний:
6
Добавлен:
28.10.2018
Размер:
583.61 Кб
Скачать

49. Устройство управление микроконтроллера.

- регистр команд;

- счетчик команд;

- микропрограммное УУ;

- очередь команд.

Счетчик команд (PC) хранит адрес команды и увеличивает свое состояние перед считыванием команды из памяти. Разрядность счетчика команд 13 бит.

Младший байт счетчика является полностью доступным для чтения и записи регистрам. Разрядность регистра команд 14 бит.

По тактовому сигналу, поступающему на вход OSC1 МК, формируются 4 тактовые не перекрывающиеся последовательности (Q1, Q2, Q3, Q4).

Командный цикл состоит из двух циклов:

1)выборка команд;

2)выполнение команд.

Длительность командного цикла 8 тактов.

Во время выполнения текущей команды из памяти считывается следующая команда и загружается в очередь команд. Таким образом, командный цикл – 4 такта.

Команды передачи управления выполняются за 8 тактов, т.к. очередь команд очищается.

Типы данных:

Разрядность данных 8 бит.

1)целые данные без знака (0–255).

2)целые данные со знаком хранятся и обрабатываются в дополнительном коде (-128–127).

МК содержит 8-разрядный рабочий регистр (аккумулятор).

50. Алу микроконтроллера.

Арифметические операции: сложение, вычитание.

Логические операции: логическое сложение ИЛИ, логическое умножение И, логическое отрицание НЕ, исключающее ИЛИ (неравнозначность).

По результату работы АЛУ формирует флаги:

- С – флаг переноса; - Z – флаг нуля;

- DC – флаг дополнительного переноса (заема) из младшей тетрады в старшую.

Флаги хранятся в спец. регистре STATUS в разрядах [2–0].

Типы данных:

1)целые без знака.

2)целые со знаком (хранятся в дополнительном коде).

Разрядность данных 8 бит.

51. Таймер микроконтроллера (tmr0).

Разрядность таймера 8 бит.

Таймер – 8-разрядный суммирующий счетчик.

Таймер может считать внутренние сигналы микроконтроллера (частота сигналов на входе таймера: fTMR0=fМК/4), либо внешние сигналы, поступающие на вход RA4.

При переполнении таймера, т.е. переключении его из состояния FF в состояние 00, может формироваться прерывание.

Сторожевой таймер (WDT):

Представляет собой комбинацию встроенного RC-генератора и счетчика, при переполнении которого формируется сброс МП.

Время выдержки сторожевого таймера зависит от температуры, U питания и коэффициента деления предделителя.

Выдержка с подключением предделителя может достигнуть 2.5 секунды. Номинальная выдержка без предделителя 18 нс.

Главным назначением WDT является борьба с аппаратными сбоями устройства.

В результате сбоя может возникнуть зависание программы.

Если WDT включен, то нормально работающая программа должна периодически обнулять сторожевой таймер, не допуская его сбоя.

Когда происходит сбой, таймер перестает программно обнуляться.

После его переполнения произойдет сбой процессора и повторная инициализация устройства (программа начнет выполняться с самого начала).

52. Система прерывания микроконтроллера.

VR имеет аппаратные маскируемые прерывания от 4 источников:

1)Прерывание от TMR0.

2)Прерывание по окончании записи в энергонезависимую память EEPROM.

Это внутренние прерывания.

3)Прерывания по сигналу на линии RB0 (фронтальные прерывания).

4)Прерывания при изменении сигналов на линии RB4-RB7 (по уровню).

Это внешние прерывания.

Все прерывания являются маскируемыми. Разрешить или запретить все прерывания можно с помощью разряда GIE регистра INTCON. Также можно разрешить или запретить каждый из видов прерываний.

EEIE – бит разрешения прерывания по завершению записи в EEPROM.

TOIE – бит разрешения прерывания по переполнению таймера TMR0.

INTE – бит разрешения внешнего пре-рывания со входа RB0.

RBIE – бит разрешения прерывания по изменению сигнала на линиях RB4-RB7.

Обработчик прерывания 1, адрес вектора прерываний 4. С адреса 4 начинается обработчик прерывания.

Регистр INTCON содержит флаг Биты событий, которые устанавливаются в 1 независимо от того, разрешен данный вид прерываний или нет в случае появления соответствующего события TOIF.

TOIF – флаг переполнения TMR0.

INTF – флаг изменения сигнала на линиях RB0.

RBIF – флаг изменения сигнала на линиях RB4-RB7.

Например, произошло прерывание тайме- ра TMR0. Бит TOIF устанавливается в 1. проверяется состояние бита GIE. Если GIE=1, проверяется состояние бита TOIE. Если TOIE=1, прерывание от таймера разрешено. В счетчик команд загружается адрес 4, и начинает выполняться обработчик прерывания, начинающийся с 4 адреса памяти программ.