- •Понятие встроенной системы
- •Системы на кристалле. Реконфигурируемые системы
- •Проектирование систем на кристалле. 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. Проектирование обработчика прерываний от таймера
Внутренний таймер представляет собой восьмиразрядный двоичный счётчик, автоматически инкрементирует свои значения от 0 до 255 и при переполнении, счётчик способен сгенерировать прерывание.
Выход первого мультиплексора подключен ко входу программируемого делителя частоты и ко входу второго мультиплексора. Делитель частоты управляется тремя младшими разрядами опционального регистра. Выходная линия мультиплексора – это сигнал синхронизации счётчика TMR0. Выход счётчика подключен к T0IF , который в случае переполнения генерирует прерывание.
T0CS – выбор источника синхронизации, если T0CS бит равен 0, используется учетверённая системная частота микроконтроллера, иначе – внешний источник синхронизации.
T0SE – выбирает тип синхронизации для внешнего источника тактовых импульсов, Если T0SE == 0, то выбирается передний фронт, если 1 – спад, либо задний фронт синхроимпульса.
PSA – позволяет использовать, либо искл. использование делителя частоты. Если == 0 , то делитель частоты не используется , иначе используется настраиваемая конфигурация делителя частоты.
PS* - биты OPTION
PS2 |
PS1 |
PS0 |
Rate |
0 |
0 |
0 |
1:2 |
0 |
0 |
1 |
1:4 |
0 |
1 |
0 |
1:8 |
0 |
1 |
1 |
1:16 |
1 |
0 |
0 |
1:32 |
1 |
0 |
1 |
1:64 |
1 |
1 |
0 |
1:128 |
1 |
1 |
1 |
1:256 |
Пример программирования таймера:
BCF STATUS, RP0
CLRF INTCON
MOVLW XXX ; заполняем таймер некой константой
MOVWF TMR0
BSF INTCON, T0IE
BSF INTCON, GIE
ORG 0x0 ; любой др. код
GOTO Main ; …
ORG 0x4 ; обработчик
GOTO LED_STATUS LED_STATUS:
Constant c_led_sta = 0x80 MOVLW c_led_sta
ORG 0x10 XORWF PORTB, 1 ; XOR PORTB и c_led_sta
Main: CLRF PORB ; диод не горит MOVLW XXX ; инициализируем таймер
CLRF TMR0 MOVWF TMR0 ; тем же значением
BSF STATUS, RP0 BCF INTCON, T0IE
MOVLW 0x0 BSF INTCON, GIE
MOVWF TRISB ; все порты на вых. RETURN
; настройка таймера End
BCF OPTION_REG, 5 ; T0CS=0 внутр. ист-к
; синх-ции, Fsys/4 Предположим, что МК работает на Fsys=1кГц.
BSF OPTION_REG, 3 ; исп. предвар. дел-ль ч-ты Хотим, чтобы светодиод мигал с ч-той 1 Гц.
BCF OPTION_REG, 2 ; коэф-т дел. 2, Fsys/8 = 125 Гц
BCF OPTION_REG, 1 ; в итоге – Fsys/8 XXX = 256-125=131
BCF OPTION_REG, 0
Pic16f84. Простейшие устройства вывода информации. Семисегментные индикаторы
Помимо простейших светодиодов в МК технике применяются:
7 segments LED (бинарные – необх. 8 линий, двоично-десятичные – 4 линии)
Линейки светодиодов
Светодиодные матрицы (панели) и т.п.
СЕМИСЕГМЕНТНЫЕ ИНДИКАТОРЫ
Чтобы управлять 7LED’ами, необх. и достаточно 8 управляющих линий.
Все светодиоды могут иметь общий катод.
По аналогии есть индикаторы с общим анодом. Общий анод подключается на источник питания, а соединение либо разрыв с землёй лучше осуществлять с пом. транзисторных ключей.
Помимо двоичных 7-сегментных индикаторов сущ. двоично-десятичные индикаторы, которые отличаются числом выводов (4).
Двоично-десятичный индикатор содержит ещё и декодер.
(I4, I3 ,I2, I1) (A, B, .. , G)
11111110 0
7-сегментные индикаторы редко исп. в одиночку.
М ультиплексирование подразумевает использование общих информационных линий для передачи кода отображаемого символа, а адресация соотв. индикатора осущ. посредством управления их общими катодами либо анодами.
T1, T2 – n-p-n транзисторы
Алгоритм программирования:
Записываем код символа S1 в порт B.
Активируем старший 7-сегментный индикатор путём вкл. T1, к-рый управляется разрядом RA1.
Удерживаем открытым T1 в период, достаточный, чтобы он разгорелся (>=5 ms) (Wait for Latency).
Прекращаем свечение этого индикатора, т.е. T1 off.
Записываем код 2-го символа S2 в порт B.
Активируем T2.
Выжидаем период для компенсации латентности (Wait for Latency).
T2 off.
Goto 1 (повторяем процедуру заново).
Период повторения данной процедуры д. б. таким, чтобы компенсировать эффект мигания 2 индикаторов. Изменяя 3-й и 7-й пункт, можно управлять яркостью свечения индикаторов.