Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОВС (шпоры).doc
Скачиваний:
14
Добавлен:
20.09.2019
Размер:
670.72 Кб
Скачать

16. Pic16f84. Встроенная память eeprom. Структура и программное управление (продолжение)

Процедура записи 1 байта (EEPROM Write):

BCF STATUS, RP0 ; Bank0

MOVLW Address

MOVWF EEADR ; EEADR = Address

MOVLW Data

MOVWF EEDATA ; EEDATA = Data

BSF STATUS, RP0 ; Bank1

BCF INTCON, GIE ; запрещаем обработку всех прерываний

BSF EECON1, WREN ; разрешаем процедуру зап. (не начинаем!)

MOVLW 0x55 ; стандартная посылка управляющих данных, посылкой 55AA в EECON2

MOVWF EECON2 ; мы подготавливаем контроллер EEPROM к перепрограммированию

MOVLW 0xAA

MOVWF EECON2

BSF EECON1, WR ; начали запись (физически)

BSF INTCON, GIE ; разрешаем прерывания

Если мы не пишем обработчик окончания процедуры записи, то после инициализации записи необх. организация ожидания завершения процесса программирования, например, опросом флага EEIF на равенство ‘1’. Следующий шаг – проверка флага ошибки WRERR на ‘0’ – завершено.

  1. Pic16f84. Порты ввода-вывода. Структура порта a

  1. Порты в/в необх. для организации управления ПУ, тогда порты конфигурируются как Output.

  2. Принятие информации от ПУ (тогда – Input).

  3. Выполнение специфической ф-ции

СТРУКТУРА ПОРТА А (PORT A)

Write Port, Write TRIS, Read Port – from Control Unit

EN1, EN2, EN3 – управл. сигналы.

ОПЕРАЦИЯ ЗАПИСИ В ПОРТ

Операция записи в порт А означает появление на адресной шине адреса, а на шине данных – данных из аккумулятора.

A.B.  0x05, D.B.  data (WReg)

Адресный дешифратор PORTA Address Decoder активизируется. Он посылает EN1 либо EN3 на соотв. регистры. Какой сигнал – зависит от шины управления. Control Bus  Write Port = ‘1’ EN1

EN1 позволяет захватить данные с сист. шины данных и сохр. в регистре Data Write.

Захват адреса дешифратором активизирует одну из 3 защёлок:

  • Если запись – Data Write Latch

  • Если логика как Output, то данные транслируются через логику и отправл. на разряды порта вывода

  • Если осуществляется операция чт., то данные запис. в Data Read Latch. После чего они доступны на системной шине

Tristate Latch – конфиг. защёлка, к-рая хр. управляющие биты для каждого разряда порта, к-рый м. б. сконфиг. как вых., так и вх.

Для управления портом предварительно необх. указывать конфигурацию соотв. разрядов порта и только после этого осущ. чт. либо зап. в порт.

Все разряды RAi м. б. сконфигурированы независимо друг от друга.

С т. зр. прогр. управления конфигурация каждого разряда осущ. посредством манипулирования разрядов TRISA (0 – Output, 1 – Input).

RA0..RA3 имеют одинаковую схемотехнику, RA4 – упрощённую, что приводит к разл. управлению этими портами.

  1. Pic16f84. Порт а. Структура разряда ra4

R A0..RA3 имеют одинаковую схемотехнику, RA4 – упрощённую, что приводит к разл. управлению этими портами.

PIN – физический контакт

Data2, TRISA 2 – 4-е разряды защёлки данных и TRISA

n-канальный транзистор. Если на входе 0, то закрыт, 1 – вкл. В этой схеме он ключ.

Управляющий код:

; процедура инициализации

CLRF PORTA ; очистка порта, сброс в 0

BSF STATUS, RP0 ; Bank1

MOVLW 0

MOVWF TRISA ; TRISA = 0, Outputs

; транзистор откроется, ток пойдет, светодиод горит

BCF STATUS, RP0 ; Bank0

MOVLW 0X1F

MOVWF PORTA ; PORTA = 00011111

; транзистор закроется, светодиод гореть не будет

При конфигурации RAi как вых. портов для портов RA0-RA3 исп. полож. логика управления, для RA4 – отриц.

1 (где TRISA) – откл. схему (??)