Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие_модуль_2 МПТ.doc
Скачиваний:
27
Добавлен:
12.02.2016
Размер:
3 Mб
Скачать

3.3.Регистры portс и trisс

PORTС – 8-разрядный двунаправленный порт ввода/вывода. Биты регистра TRISС определяют направление каналов порта. Установка бита в "1" регистра TRISС переводит выходной буфер в 3-е состояние. Запись "0" в регистр TRISС настраивает соответствующий канал как выход, содержимое защелки PORTС передается на выход микроконтроллера (если выходная защелка подключена к выводу микроконтроллера).

Выводы PORTС мультиплицированы с несколькими периферийными модулями. На каналах PORTС присутствует входной буфер с триггером Шмидта.

Когда модуль MSSP включен в режиме I2C, выводы PORTС <4:3> могут поддерживать уровни выходных сигналов по спецификации I2C или SMBus в зависимости от состояния бита CKE(SSPSTAT<6>).

При использовании периферийных модулей необходимо соответствующим образом настраивать биты регистра TRISС для каждого вывода PORTС. Некоторые периферийные модули отменяют действие битов TRISС принудительно настраивая вывод на вход или выход. В связи с чем не рекомендуется использовать команды "чтение-модификация-запись" с регистром TRISС.

3.4.Регистры portd и trisd

PORTD – 8-разрядный двунаправленный порт ввода/вывода. Биты регистра TRISD определяют направление каналов порта.

PORTD может работать как 8-разрядный микроконтроллерный порт (ведомый параллельный порт), если бит PSPMODE(TRISE<4>) установлен в "1". В режиме ведомого параллельного порта ко входам подключены буферы TTL/

3.5.Регистр PORTE и TRISE

PORTE имеет три вывода (RE0/-RD/AN5, RE1/-WR/AN6, RE2/-CS/AN7), индивидуально настраиваемые на вход или выход. Выводы PORTE имеют входной буфер Шмидта.

Каналы PORTE станут управляющими выводами ведомого параллельного порта, когда бит PSPMODE(TRISE<4>) установлен в "1". В этом режиме биты TRISE<2:0> должны быть установлены в "1". В регистре ADCON1 необходимо также настроить выводы PORTE как цифровые каналы ввода/вывода. В режиме ведомого параллельного порта к выводам PORTE подключены входные буферы TTL.

Выводы PORTE мультиплицированы с аналоговыми входами. Когда каналы PORTE настроены как аналоговые входы, биты регистра TRISE управляют направлением данных PORTE (чтение будет давать результат "0").

После сброса по включению питания выводы настраиваются как аналоговые входы, а чтение дает результат "0".

4.Таймеры

4.1.Модуль таймера tmr0

TMR0 – таймер/счетчик, имеет следующие особенности: - 8-разрядный таймер/счетчик;

- возможность чтения и записи текущего значения счетчика;

- 8-разрядный программируемый предделитель;

- внутренний или внешний источник тактового сигнала;

- выбор активного фронта внешнего тактового сигнала;

- прерывания при переполнении (переход от FFh к 00h).

Блок-схема модуля TMR0 и общего с WDT предделителя показана на рис.

Когда бит TOCS сброшен в "0" (OPTION_REG<5>), TMR0 работает от внутреннего тактового сигнала. Приращение счетчика TMR0 происходит в каждом машинном цикле (если предделитель отключен). После записи в TMR0 приращение счетчика запрещено два следующих цикла. Пользователь должен скорректировать эту задержку перед записью нового значения в TMR0.

Если бит TOCS установлен в "1" (OPTION_REG<5>), TMR0 работает от внешнего источника тактового сигнала с входа RA4/TOCKI. Активный фронт внешнего тактового сигнала выбирается битом TOSE в регистре OPTION_REG<4> (TOSE=0 – активным является передний фронт сигнала).

Предделитель может быть включен перед WDT или TMR0, в зависимости от состояния бита PSA (OPTION_REG<3>). Нельзя прочитать или записать новое значение в предделитель.

Использование внешнего источника тактового сигнала для TMR0

Если предделитель не используется, внешний тактовый сигнал поступает непосредственно на синхронизатор. Синхронизация TOCKI c тактовым сигналом микроконтроллера усложняется из-за опроса выхода синхронизатора в машинные циклы Q2 и Q4. Поэтому длительность высокого или низкого логического уровня внешнего сигнала должна быть не меньше 2Tosc (плюс небольшая задержка внутренней RC цепи 20 нс).

Предделитель

8-разрядный счетчик может работать как предделитель TMR0 или выходной делитель WDT. Для простоты описания этот счетчик называется предделитель. Существует только один пределитель, который может быть включен перед TMR0 или WDT. Использование предделителя перед TMR0 означает, что WDT работает без предделителя, и наоборот.

Коэффициент деления предделителя определяется битами PSA и PS2:PS0 в регистре OPTION_REG<3:0>/

Если предделитель включен перед TMR0, любые команды записи в TMR0 (например, CLRF 1, MOVWF 1,BSF 1,x и т.д.) сбрасывают предделитель. Когда предделитель подключен к WDT, команда CLRWDT сбросит предделитель вместе с WDT. Предделитель также очищается при сбросе микроконтроллера. Предделитель недоступен для чтения/записи.

Запись в регистр TMR0 сбросит предделитель, если он подключен к TMR0, но не изменит его режима работы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]