- •Понятие встроенной системы
- •Системы на кристалле. Реконфигурируемые системы
- •Проектирование систем на кристалле. Ip-компоненты
- •Типы вычислительных ядер. Эксплуатационная и проектная гибкость
- •4. Типы вычислительных ядер. Эксплуатационная и проектная гибкость (продолжение)
- •5. Принципы Фон Неймана. Достоинства и недостатки
- •Cisc и risc архитектуры вычислительных ядер
- •Классические вычислительные архитектуры. Стековая архитектура
- •Классические вычислительные архитектуры. Аккумуляторная архитектура
- •Классические вычислительные архитектуры. Gpr-архитектура
- •Принципы конвейерной обработки инструкций
- •Конвейерные конфликты и способы их минимизации
- •Конвейерные конфликты и способы их минимизации (продолжение)
- •Микроконтроллеры. Основные понятия. Структура pic16f84
- •Pic16f84. Структура памяти исполняемых инструкций
- •Pic16f84. Структура памяти данных. Способы адресации
- •Pic16f84. Счётчик инструкций. Способы управления
- •Pic16f84. Встроенная память eeprom. Структура и программное управление
- •16. Pic16f84. Встроенная память eeprom. Структура и программное управление (продолжение)
- •Pic16f84. Порты ввода-вывода. Структура порта a
- •Pic16f84. Порт а. Структура разряда ra4
- •Pic16f84. Порт а. Структура разрядов ra0-ra3
- •Pic16f84. Подключение простейших устройств ввода информации к портам
- •Pic16f84. Порты ввода-вывода. Структура порта b
- •Pic16f84. Источники прерываний и механизм обработки
- •Pic16f84. Проектирование обработчиков прерываний
- •23. Pic16f84. Проектирование обработчиков прерываний (продолжение)
- •Pic16f84. Внутренняя структура и функционирование таймера
- •Pic16f84. Проектирование обработчика прерываний от таймера
- •Pic16f84. Простейшие устройства вывода информации. Семисегментные индикаторы
- •Pic16f84. Подключение и использование сдвиговых регистров
- •Pic16f84. Структура и программирование матричных клавиатур
- •Жидкокристаллические дисплеи (lcd). Основные понятия. Внутренняя организация и способы подключения
- •Внутренняя организация и функционирование контроллеров lcd
- •Программное управление lcd со стороны микроконтроллеров
- •31. Программное управление lcd со стороны микроконтроллеров (продолжение)
- •31. Программное управление lcd со стороны микроконтроллеров (продолжение)
- •Интерфейсы встроенных систем. Основные понятия и классификация
- •Интерфейс i2c. Основные понятия. Внутренняя структура портов i2c
- •Интерфейс i2c. Протокол передачи данных. Взаимодействие i2c устройств. Арбитраж мультимастерного режима
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)
Pic16f84. Подключение простейших устройств ввода информации к портам
К простейшим у-вам вв. относят:
Ключи
Кнопки
Триггерные кнопки
Слайдеры и т.д.
Сущ. разл. схемы подключения простейших у-в в/в инф-ции. Рассм. возможные варианты:
LED
Самый безопасный вид подкл. – 3-ий. Недостаток: небольшие токи светодиод недостаточно яркий. Но логика управления положительна: в порт запис. «1».
1 – самый небезопасный.
2 – ограничивающий резистор R (pull-up) требуется для безопасности. Недостаток: отриц. логика управления.
1 – самый небезопасный.
R необх., чтобы не было КЗ при замкнутом ключе.
2 – недостаток: микроток всегда будет течь. Поэтому предпочтительнее 3.
3 – положительная логика (??)
Pic16f84. Порты ввода-вывода. Структура порта b
Логика разрядов RBi эквивалентна RA0-RA3.
PORTB
Каждый разряд RBi может исп. внутр. подтягивающий резистор pull-up при конфигурации портов как вх.
В структуру вх. адресные дешифраторы порта B (0x06) и TRISB (0x86).
3 защёлки: данных для записи, данных для чт., Tristate (управление логикой в/в).
Чтение и запись происх. аналогично как и для порта A. Исключение составляют следующие разряды:
RB0, кроме того, что может исп. как двусторонний порт, может исп. как источник прерываний (если конфиг. как Input, то это прямой физический канал прерывания)
RB4-RB7: также явл. источниками прерывания. Прерывание вызывается при изменении хотя бы одного значения на этих 4 разрядах
Pic16f84. Источники прерываний и механизм обработки
ОБРАБОТКА ПРЕРЫВАНИЙ
Есть 4 типа события, которые могут прерывать поток исполняемых инструкций:
Процедура окончания записи во встроенную EEPROM память.
Прерывание, вызываемое переполнением внутр. таймера TMR0.
Изменение кода на вх. портах RB4-RB7.
Событие на вх. порту 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