Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОВС (шпоры).doc
Скачиваний:
14
Добавлен:
20.09.2019
Размер:
670.72 Кб
Скачать
  1. Pic16f84. Порт а. Структура разрядов ra0-ra3

RA0..RA3 имеют одинаковую схемотехнику, RA4 – упрощённую, что приводит к разл. управлению этими портами.

R A0-RA3 (Outputs)

PIN – физический контакт

n-канальный транзистор. Если на входе 0, то закрыт, 1 – вкл.

Управляющий код:

; процедура инициализации

CLRF PORTA ; очистка порта, сброс в 0

BSF STATUS, RP0 ; Bank1

MOVLW 0

MOVWF TRISA ; TRISA = 0, Outputs

; n – открыт, p – закрыт. Всё замкнуто на землю, светодиод не горит, разница потенциалов равна 0.

BCF STATUS, RP0 ; Bank0

MOVLW 0X1F

MOVWF PORTA ; PORTA = 00011111

; n – закрыт, р – открыт. Светодиод горит.

При конфигурации RAi как вых. портов для портов RA0-RA3 исп. полож. логика управления, для RA4 – отриц.

R A0-RA3 (Inputs)

  1. Pic16f84. Подключение простейших устройств ввода информации к портам

К простейшим у-вам вв. относят:

  • Ключи

  • Кнопки

  • Триггерные кнопки

  • Слайдеры и т.д.

Сущ. разл. схемы подключения простейших у-в в/в инф-ции. Рассм. возможные варианты:

LED

Самый безопасный вид подкл. – 3-ий. Недостаток: небольшие токи  светодиод недостаточно яркий. Но логика управления положительна: в порт запис. «1».

1 – самый небезопасный.

2 – ограничивающий резистор R (pull-up) требуется для безопасности. Недостаток: отриц. логика управления.

1 – самый небезопасный.

R необх., чтобы не было КЗ при замкнутом ключе.

2 – недостаток: микроток всегда будет течь. Поэтому предпочтительнее 3.

3 – положительная логика (??)

  1. Pic16f84. Порты ввода-вывода. Структура порта b

Логика разрядов RBi эквивалентна RA0-RA3.

PORTB

Каждый разряд RBi может исп. внутр. подтягивающий резистор pull-up при конфигурации портов как вх.

В структуру вх. адресные дешифраторы порта B (0x06) и TRISB (0x86).

3 защёлки: данных для записи, данных для чт., Tristate (управление логикой в/в).

Чтение и запись происх. аналогично как и для порта A. Исключение составляют следующие разряды:

  • RB0, кроме того, что может исп. как двусторонний порт, может исп. как источник прерываний (если конфиг. как Input, то это прямой физический канал прерывания)

  • RB4-RB7: также явл. источниками прерывания. Прерывание вызывается при изменении хотя бы одного значения на этих 4 разрядах

  1. Pic16f84. Источники прерываний и механизм обработки

ОБРАБОТКА ПРЕРЫВАНИЙ

Есть 4 типа события, которые могут прерывать поток исполняемых инструкций:

  1. Процедура окончания записи во встроенную EEPROM память.

  2. Прерывание, вызываемое переполнением внутр. таймера TMR0.

  3. Изменение кода на вх. портах RB4-RB7.

  4. Событие на вх. порту RB0/INT. Под событием имеется в виду изменение состояния сигнала (0/1, 1/0).

Управление механизмом обработки прерываний осущ. посредством спец. регистра:

0x0B

0 x8B INTCON

GIE: Global Interrupt Enable. “1” – разрешаются все прерывания, к-рые будут указаны в последующих и младших разрядах, “0” – прерывание не будет воспринято. По умолчанию – “0”.

EEIE: Бит, разрешающий прерывание 1-го типа (EEPROM).

T0IE: Разрешение прерывания от внутр. таймера. “1” – разреш.

INTE: Прерывание по событию на RB0.

RBIE: Разрешение прерывания по изменению разряда на RB4-RB7.

Флаги прерываний устанавливаются автоматически по наступлению соотв. события.

T0IF = “1” – Timer Overflow.

INTF – RB0 “1”.

RBIF – “1” RB4-RB7.

Сброс флагов вручную.

Реальный вектор прерывания один, расположен по 4-му адресу.

П ример. Обработчик прерывания по RB0.

 X:

… ; польз. код

GOTO X

LED_STATUS: ; обработчик

BCF INTCON, GIE ; чтобы не прер. обр-к

MOVLW c_led_stat ; управляем

XORWF PORTB,1 ; светодиодом

BCF INTCON, INTF

BSF INTCON, GIE

RETURN

ORG 0x0

GOTO Main ; обходим вектор прерываний

ORG 0x4

GOTO LED_STATUS ; безусл. переход на обработчик прер.

Constant c_led_stat = 0x80 Появилось событие на вх. линии RB0/INT,

ORG 0x10 что вызовет прерывание INTE, поток

Main: прервётся и выполнится инструкция по

CLRF PORTB 4-му адресу (GOTO LED_STATUS).

BSF STATUS, RP0 ; Bank1 Тек. Инструкция прервана, след.

MOVLW 0x01 ; младш. р-д порта – вх. инструкция [PC+1] запишется на вершину

MOVF TRISB стека TOS и станет точкой возврата.

BCF STATUS, RP0

CLRF INTCON ; обнуляем INTCON

BSF INTCON, INTE

BSF INTCON, GIE 