- •Понятие встроенной системы
- •Системы на кристалле. Реконфигурируемые системы
- •Проектирование систем на кристалле. 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. Структура памяти данных. Способы адресации
Память данных вкл. в себя 68 GPR, каждый регистр однобайт., спец. регистры, в т.ч. регистр статуса, а также управляющие регистры ПУ находятся в едином адресном пространстве памяти данных. Всё адресное пространство разделено на 2 банка. Банки логич.
Логич. стр-ра данных в памяти:
INDF – спец. регистр, исп. при косвенной адресации
TMR0 – регистр таймера
PCL – младшая часть счётчика инструкций. Его изменение приведёт к изменению младшей части PC.
PORTA – вывод микроконтроллера, к к-рому могут подкл. внеш. у-ва
TRISA – регистр управления портом
РЕЖИМЫ АДРЕСАЦИИ
Значение адресуемого банка данных уст. путём записи опр. бита в 5-ый разряд регистра статуса.
STATUS<5>
RP0=’0’ Bank0
RP0=’1’ Bank1
Пример (прямая адресация):
BSF 3,5
BSF STATUS,RP0 ; Bank1
BCF 3,5
BCF STATUS,RP0 ; Bank0
Косвенная адресация
Исп. 2 спец. регистра (INDF, FSR). 7-ой разряд FSR опр. № банка.
Пример (косв. адресация):
MOVLW addr ; WReg = addr
MOVWF FSR ; FSR = addr
MOVF INDF,0 ; в аккумулятор заносится значение некого файла, но если этот файл явл. INDF, то в аккумулятор заносится значение регистра, адресуемого FSR
MOVLW addr
MOVWF FSR
MOVLW data
MOVWF INDF ; INDF WReg, [FSR] WReg
MOVLW 0x6
MOVWF FSR ; FSR = 6
MOVLW 0xFF
MOVWF INDF ; [6] 255
При использовании FSR автоматически вкл. механизм косв. адресации, игнорируя бит RP0 в регистре статуса. Заканчивается механизм косв. адресации по обращению к рег. INDF. После этого вкл. банк, к-рый был до вкл. косв. адресации.
Pic16f84. Счётчик инструкций. Способы управления
PC автоматически инкрементируется при линейном потоке и нелинейно при CALL, GOTO, RETURN.
PCL, PCLATCH дают доступ к PC.
Младшие 0..10 бит берутся из OPCODE инструкции. При этом есть возможность сделать безусл. переход.
PC можно также изменить 2-ым способом:
Пример (программное управление PC):
Table-Read (исп. память исполняемого кода для хр. данных)
0x10 MOVLW pointer ; WReg = pointer = 2
0x11 CALL Table ; PC: Stack 12, PC = 20
0x12 .
…
0x20 ADDWF PCL,F ; сложение аккумулятора и рег. файла, рез-т в PCL
0x21 RETLW ‘B’
0x22 RETLW ‘S’
0x23 RETLW ‘U’
0x24 RETLW ‘I’
0x25 RETLW ‘R’ ; возврат из подпрограммы со значением
Перед исполнением инструкции по адресу 20 (ADDWF) аккумулятор содержит значение pointer = 2. Значение регистра PCL уже равно 20. В момент, когда исполняется ADDWF, значение счётчика PC (PCL) будет автоматически проинкрементировано. После исполнения инстр. ADDWF PCL = 21+pointer = 23. Это означает искусственное создание ситуации безусловного перехода 23 RETLW ‘U’.
Pic16f84. Встроенная память eeprom. Структура и программное управление
ПРОГРАММИРОВАНИЕ ВСТРОЕННОЙ EEPROM ПАМЯТИ
Память данных встроена в МК и явл. энергонезависимой.
64*8 байта
Записать можно 1 байт, прочитать – 1 байт.
Исп. в качестве ПЗУ (ROM
Исп. для логирования некоторых событий (Write Log)
Программировать подобную пам. можно на стадии инициализации всего МК (In System Programming)
Определение константных данных в исх. коде программы
ORG 0x2100 ; ORG – опр. адрес абс. смещения памяти данных, 2100 – физич. адрес 0-го байта EEPROM
DE “BSUIR”,0 ; 0(0x2100) – ‘B’, 1(0x2101) – ‘S’, …
Программирование непосредственно при функционировании МК
ОБЩАЯ СТРУКТУРА EEPROM
4 программно доступных регистра со стороны исполн. кода:
EEDATA – регистр данных при осуществлении R/W операций
EECON1, EECON2 – конфигурац. регистры контроллера, к-рые задают режимы ф-ционирования памяти (EECON1), определяют значение управляющих бит при совершении соотв. операции и хранят битовые флаги рез-тов соотв. операций
EEADR – для задания адресации соотв. операции
РЕГИСТР EECON1 (0x88) Bank1
7 6 5 4 3 2 1 0
x x x EEIF WRERR WREN WR RD
0 – RD: данный разряд явл. управляющим битом, к-рый инициирует операцию чтения. Если этот бит уст. в 1, то операция чт. данных из EEPROM будет инициирована, если 0 – то операция чт. не будет произведена.
1 – WR: разрешающий бит/бит флага. Если равен ‘0’, после того как начали процедуру записи, это есть флаг окончания записи. Если в него записана ‘1’ – это есть начало цикла записи.
2 – WREN: данный бит явл. управляющим битом, к-рый разрешает (1) либо запрещает (0) запись.
3 – WRERR: это бит флага успешности процедуры записи. После окончания процедуры записи = ‘0’, значит выполнение корректно, ‘1’ – сбой.
4 – EEIF: бит флага прерывания, Interrupt Flag. Если процедура записи заканчивается, то её необх. ждать. Окончание процедуры записи – внутр. прерывание. Этот флаг уст. автоматически с наступлением события прерывания.
Пример (процедура чтения из пам., EEPROM Read):
BCF STATUS, RP0 ; Bank0
MOVLW Address ; WReg Address
MOVWF EEADR ; EEADR W
BSF STATUS, RP0 ; Bank1
BSF EECON1, RD ; RD = ‘1’
BCF STATUS, RP0 ; Bank0
MOVF EEDATA, W ; операция чт. адресуемого байта, укладывается в один такт МК