- •Понятие встроенной системы
- •Системы на кристалле. Реконфигурируемые системы
- •Проектирование систем на кристалле. 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. Подключение и использование сдвиговых регистров
О чень широко исп. регистры сдвига в виде преобразователей последовательных кодов в параллельные.
Сдвиг происходит в некий момент времени при некотором фазовом переходе, т.е. при фронте.
R – сигнал сброса, регистр обнуляется.
D – сигнал вх. данных.
<Q0..Q7> -- паралл. выход регистра.
Функционирование сдвигового регистра
Пусть нач. состояние CLK=’0’, R=’1’, D=’0’, Q=’XXXXXXXX’. Линии управления CLK, R, D подключены к МК.
Сброс сдвигового регистра: R=’0’, Q становится =’00000000’.
CLK=’1’, Q остаётся =‘00000000’. Т.к. CLK ст. =’1’ (фронт), происх. Сдвиг: захват знач. D и перед. регистру.
D=’1’, CLK=’0’. Ничего не происходит, т.к. спад (CLK).
CLK=’1’. Происходит сдвиг. При подаче на вход синхронизации логич. единицы осуществляется захват значения входа D с его записью в старший значимый разряд сдвигового регистра, в данном случае Q7. Т.о. выход Q=’10000000’. После чего CLK желательно сбросить в 0.
CLK=’1’, Q=’11000000’. Для полного заполнения выходов Q0..Q7 необх. 8 периодов на входе синхронизации CLK. Управление при этом осущ. 3 линиями со стороны МК.
Сдвиговые регистры могут исп. и в обратном назначении, т.е. выполнять функцию преобразования паралл. кода в последовательный. Исп. для обработки входной инф-ции.
D
Q7
PL – Parallel Load – сигнал паралл. Загрузки
Как и в предыдущем примере, сдвиг может осуществляться
посредством фронта сигнала синхронизации CLK либо при
помощи управл. сигнала CE. CE д. б. равно ‘0’, чтобы исп. CLK
сигналы для сдвига.
Алгоритм управления:
PL=’1’, CE=’1’, D = ‘(HSB)10011100(LSB)’.
Перед загрузкой значения D в регистр Q находится в неизвестном состоянии X. Загрузка осуществляется путём установки PL=’0’. При PL=’0’ регистр явл. открытым: если изменим D, то изменится то значение, которое будет храниться в регистре. Чтобы зафиксировать нужное значение, надо PL=’1’. Тогда захватывается значение D и записывается внутрь регистра. При этом на Q7 появл. значение старшего разряда D7 (Q7=’HSB’).
Сдвиг: CE=’0’ CE=’1’
После сдвига на Q7 значение 6-го разряда: Q7 [HSB-1]=’0’.
В нашем случае необх. 7 периодов синхронизации на линии CE, чтобы захватить все 8 разрядов Di (старший уже доступен без сдвига).
Pic16f84. Структура и программирование матричных клавиатур
МАТРИЧНЫЕ КЛАВИАТУРЫ – отдельные технологические периферийные блоки, которые представляют собой физические контакты, выполн. по различным технологиям, эквивалент триггерных кнопок.
Все триггерные кнопки находятся в узлах 2-мерной матрицы. Нажатие кнопки приводит к тому, что соотв. линии, на пересечении которых находится кнопка, соединяются. Все остальные линии по умолчанию всегда разомкнуты.
С хема подключения Matrix Kbd
Вых. линии R0-R3 клавиатуры подкл. ко входам старших разрядов порта B для возможности обработки прерывания по изменению кода на линиях RB4-RB7.
Порты RB1-RB3 – выходы, на которых генерируются соотв. значения 3-разрядной последовательности, которые подаются на входы C0-C2 клавиатуры.
Предположим, что для кодирования кнопки будет исп. 7-битный код.
6 5 4 3 2 1 0
С0 С1 С2 R0 R1 R2 R3
Условием кодирования каждой клавиши будет нажатие и удержание только 1 кнопки. В этом случае можно исп. символы из последовательности one-hot , которые подаются на C0-C2, при этом анализируется R0-R3.
Предполагаем, что нажата и удерживается кнопка «1», которая имеет координаты C0, R0.
Scan code “1”: 1001000
Scan code “0”: 0100001
Имеем процедуру генерирования циклической one-hot последовательности:
001
010
100
001
010
…
После подачи некого текущего значения one-hot последовательности мы должны прочитать значение старших 4 разрядов порта B либо составить обработчик прерывания изменения кода на старших разрядах порта B (более предпочтительно).
Анализируем значение старших разрядов порта B, сост. scan-код нажатой кнопки. Анализ будет сост. в определении веса полученного 4-разрядного слова, этот вес д. б. по Хэммингу равен 1. Если не равен 1, то произошла ошибка. Как только анализ завершён, формирование scan-кода осущ. конкатенацией 2 значений: значения one-hot последовательности и значения старших разрядов порта B.
Всегда необх. учитывать:
Ограничения по функционированию матричной клавиатуры
Мин. время нажатия одной кнопки, чтобы рассчитать частоту генерирования символов последовательности one-hot.
Предпочтительнее исп. обработчик прерывания для исключения коллизий нескольких последовательных нажатий одной и той же кнопки. В обработчике необходимо также анализировать нулевое состояние на RB4-RB7 (ни одна клавиша не нажата/клавиша только что отжата).