Блочная диаграмма 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 »
Слабко К.И.
Проверил: ст. преподаватель
Бурдинский И.Н.
1999
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.