PIC16F8X 8-мибитные Flash/EEPROM микроконтроллеры, страница 8


Блочная диаграмма RB7:RB4

Блочная диаграмма RB3:RB0


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

a)  Прочитать (или записать) PORTB.

b)  Очистите бит флага RBIF.

Условие несовпадения далее установит RBIF бит.

Чтением PORTB закончится условие несовпадения, и очистит RBIF бит, который должен сброситься.

Прерывание по изменению состояния рекомендуется для пробуждения. Не рекомендуется опрос PORTB при использовании прерывания по изменению состояния. широкий.

RB0/INT bit0 TTL/СТ. Вход/выход или внешний вход прерывания.

RB1 bit1 TTL Вход/выход.

RB2 bit2 TTL Вход/выход.

RB3 bit3 TTL Вход/выход

RB4 bit4 TTL Вход/выход

RB5 bit5 TTL Вход/выход

RB6 bit6 TTL/СТ. Вход/выход.  Последовательные программируемые часы.

RB7 bit7 TTL/СТ. Вход/выход   Последовательные программируемые данные.

Легенда: TTL = вход TTL, СТ. = триггер Шмитта.

1: Этот буфер является входом триггера Шмитта, когда сконфигурировано как внешнее прерывание.

2: Этот буфер является входом триггера Шмитта, когда использовано в последовательном режиме программирования.

5.3 ПРОГРАММИРОВАНИЕ   I/O

5.3.1 ДВУНАПРАВЛЕННЫЙ I/O PORT

Любая команда записи внутренне действует как чтение, сопровождаемое записью на каждом командном цикле, в то время как для записи данные должны быть. Команды BCF и BSF, например, читающие регистр в CPU, выполняют побитовую обработку  и пишут результат обратно в регистр. Это предупреждение должно учитываться, когда эти инструкции относятся к порту для ввода-вывода. Например, исполнение BSF на bit5 PORTB вызовет все восемь битов PORTB, которые должны считаться в CPU. Затем исполнение BSF происходит на bit5 и PORTB записывается на выходные блокировки. Если другой бит PORTB использован в качестве двунаправленного канала I/O (то есть, bit0) и, это определено как вход в это время, входной сигнал, присутствующий на контакте  будет прочитано в CPU и возвращен на блокировку данных на этот конкретный контакт, и произойдет перезапись его предшествующего состояния. Пока контакт не включается в качестве входа,этой проблемы не стоит. Тем не менее, если bit0 переключается в выходной режим позже, содержание блокировки данных неизвестно.

При чтении регистра порта, читается состояние контактов порта. Запись в регистр порта пишет величину на блокировку порта. Когда используется читающая команда в режиме чтение-модификация-запись (то есть, BCF, BSF, и т.п.) в порт, состояние штырьков порта прочитано, желаемое действие произведено над этим состоянием, и это состояние затем записано на блокировку порта.

Контакт, активно выдающий низкий уровень или высокий уровень не должен управляться с внешних устройств и в то же самое время изменять уровень на этом контакте.

Результирующий высокий выходной ток может повредить чипу.

5.3.2 ПОСЛЕДУЮЩИЕ ОПЕРАЦИИ В ПОРТАХ I/O

Фактическая запись в порт I/O производится в конце цикла команды, поскольку для чтения, данные должны быть установлены в начале цикла команды (Рисунок 5-5). Следовательно, осторожность должна быть проявлена, если запись, сопровождающаяся чтением, выполняется в один и тот же порт I/O. Последовательность команд должна быть такой, что контактное напряжение стабилизируется перед следующей инструкцией, которая сообщает, что файл, который должен читаться в CPU, выполнен. В противном случае, предшествующее состояние этого штырька может быть прочитано в CPU, а не новое состояние. Если вы не уверены, это лучше разделить эти команды с NOP или другой инструкцией не использующими этот порт I/O.

.

Министерство общего и профессионального образования

Хабаровский Государственный

Технический Университет

кафедра ВТ

Доклад

по курсу “Теория проектирования

 ЭВМ и систем”

«PIC16F8X »

Выполнил: ст. гр. ВМ-51

Слабко К.И.

Проверил: ст. преподаватель

Бурдинский И.Н.

1999