Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОВС (шпоры).doc
Скачиваний:
14
Добавлен:
20.09.2019
Размер:
670.72 Кб
Скачать
  1. 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. После этого вкл. банк, к-рый был до вкл. косв. адресации.

  1. 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’.

  1. Pic16f84. Встроенная память eeprom. Структура и программное управление

ПРОГРАММИРОВАНИЕ ВСТРОЕННОЙ EEPROM ПАМЯТИ

Память данных встроена в МК и явл. энергонезависимой.

64*8 байта

Записать можно 1 байт, прочитать – 1 байт.

    1. Исп. в качестве ПЗУ (ROM

    2. Исп. для логирования некоторых событий (Write Log)

  1. Программировать подобную пам. можно на стадии инициализации всего МК (In System Programming)

  1. Определение константных данных в исх. коде программы

ORG 0x2100 ; ORG – опр. адрес абс. смещения памяти данных, 2100 – физич. адрес 0-го байта EEPROM

DE “BSUIR”,0 ; 0(0x2100) – ‘B’, 1(0x2101) – ‘S’, …

  1. Программирование непосредственно при функционировании МК

ОБЩАЯ СТРУКТУРА 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 ; операция чт. адресуемого байта, укладывается в один такт МК