Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

1.7.10 Вычисляемый переход

Вычисляемый переход может быть выполнен командой приращения к регистру PCL (например, ADDWF PCL). При выполнении табличного чтения вычисляемым переходом следует заботиться о том, чтобы значение PCL не пересекло границу блока памяти (каждый блок 256 байт).

1.7.11 Стек

PIC16F877 имеет 8-уровневый 13-разрядный аппаратный стек. Стек не имеет отображения на память программ и память данных, нельзя запись или прочитать данные из стека. Значение счетчика команд заносится в вершину стека при выполнении инструкций перехода на подпрограмму (CALL) или обработки прерываний. Чтение из стека и запись в счетчик команд PC происходит при выполнении инструкций возвращения из подпрограммы или обработки прерываний (RETURN, RETLW, RETFIE), при этом значение регистра PCLATH не изменяется.

Стек работает как циклический буфер. После 8 записей в стек, девятая запись запишется на место первой, а десятая запись заменит вторую и так далее.

Примечание:

1. В микроконтроллерах не имеется никаких указателей о переполнении стека.

2. В микроконтроллерах не предусмотрено команд записи/чтения из стека, кроме команд вызова/возвращения из подпрограмм (CALL, RETURN, RETLW и RETFIE) или условий перехода по вектору прерываний.

1.7.12 Страницы памяти программ

Все микроконтроллеры PIC16F87X способны адресовать 8К слов памяти программ. Инструкции переходов (CALL и GOTO) имеют 11-разрядное поле для указания адреса, что позволяет непосредственно адресовать 2К слов памяти программ. Для адресации верхних страниц памяти программ используются 2 бита в регистре PCLATH<4:3>. Перед выполнением команды перехода (CALL или GOTO) необходимо запрограммировать биты регистра PCLATH<4:3> для адресации требуемой страницы.

НЕ нашли? Не то? Что вы ищете?

При выполнении инструкций возврата из подпрограммы, 13-разрядное значение для счетчика программ PC берется с вершины стека, поэтому манипуляция битами регистра PCLATH<3:4> не требуется.

Примечание: Содержимое регистра PCLATH не изменяется после выполнения инструкции RETURN или RETFIE. Пользователь должен сам изменить значения регистра PCLATH для последующего выполнения команд GOTO и CALL.

1.7.13 Косвенная адресация, регистры INDF и FSR

Для выполнения косвенной адресации необходимо обратиться к физически не реализованному регистру INDF. Обращение к регистру INDF фактически вызовет действие с регистром, адрес которого указан в FSR. Косвенное чтение регистра INDF (FSR = 0) даст результат 00h. Косвенная запись в регистр INDF не вызовет никаких действий (вызывает воздействия на флаги АЛУ в регистре STATUS). 9-бит косвенного адреса IRP сохраняется в регистре STATUS<7>. Пример реализации косвенной адресации рассмотрен в разделе 3.3, Лабораторная работа № 3.

1.8 Порты ввода/вывода

Некоторые каналы портов ввода/вывода мультиплицированы с периферийными модулями микроконтроллера. Когда периферийный модуль включен, вывод не может использоваться как универсальный канал ввода/вывода.

1.8.1 Регистры PORTА и TRISA

PORTA - 6-разрядный порт ввода/вывода. Все каналы PORTA имеют соответствующие биты направления в регистре TRISA, позволяющие настраивать канал как вход или выход. Запись '1' в TRISA переводит соответствующий выходной буфер в 3-е состояние. Запись '0' в регистр TRISA определяет соответствующий канал как выход, содержимое защелки PORTA передается на вывод микроконтроллера (если выходная защелка подключена к выводу микроконтроллера).

Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все операции записи в порт выполняются по принципу «чтение - модификация - запись», т. е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку.

RA4 - имеет триггер Шмидта на входе и открытый сток на выходе, мультиплицирован с тактовым входом TOCKI. Все остальные каналы PORTA имеют TTL буфер на входе и полнофункциональные выходные КМОП буферы.

Каналы PORTA мультиплицированы с аналоговыми входами АЦП и аналоговым входом источника опорного напряжения VREF. Биты управления режимами работы каналов порта ввода/вывода PORTA находятся в регистре ADCON1.

Примечание: После сброса по включению питания выводы настраиваются как аналоговые входы, а чтение дает результат '0'.

Биты регистра TRISA управляют направлением каналов PORTA, даже когда они используются как аналоговые входы. Пользователь должен удостовериться, что соответствующие каналы PORTA настроены на вход при использовании их в качестве аналоговых входов.

Таблица 1.5 Регистры и биты, связанные с работой PORTA

Адрес

Имя

Бит 7

Бит 6

Бит 5

Бит 4

Бит З

Бит 2

Бит 1

Бит 0

Сброс

POR, BOR

Другие сбросы

05h

PORTA

RA5

RA4

RA3

RA2

RA1

RA0

--0х 0000

--0u 0000

85h

TRISA

Регистр направления данных PORTA

--11 1111

--11 1111

9Fh

ADCON1

ADFM

PCFG3

PCFG2

PCFG1

PCFG0

0--- 0000

0--- 0000

Обозначение: – = не используется, читается как 0; u = не изменяется; х = не известно; q = зависит от условий. Затененные биты на работу не влияют.

Таблица 1.6 Функциональное назначение выводов PORTA

Обозначение вывода

№ 6ита

Тип буфера

Описание

RA0/AN0

Бит 0

TTL

Двунаправленный порт ввода/вывода или аналоговый вход

RA1/AN1

Бит 1

TTL

Двунаправленный порт ввода/вывода или аналоговый вход

RA2/AN2

Бит 2

TTL

Двунаправленный порт ввода/вывода или аналоговый вход

RA3/AN3

Бит З

TTL

Двунаправленный порт ввода/вывода или аналоговый вход

RA4/T0CKI

Бит 4

ST

Двунаправленный порт ввода/вывода, может использоваться как T0CKI, выход с открытым стоком

RA5/–SS/AN4

бит 5

TTL

Двунаправленный порт ввода/вывода или вход выбора синхронного последовательного порта или аналоговый вход

Обозначение: ST = вход с триггером Шмидта; TTL = входной буфер TTL.

ADCON1 (адрес 9Fh)

R/W–0

U–0

U–0

U–0

R/W–0

R/W–0

R/W–0

R/W–0

ADFM

PCFG3

PCFG2

PCFG1

PCFG0

Бит 7

Бит 6

Бит 5

Бит 4

Бит З

Бит 2

Бит 1

Бит 0

PCGF3: PCGF0

AN7/ RE2

AN6/ RE1

AN5/

RE0

AN4/ RA5

AN3/ RA3

AN2/ RA2

AN1/ RA1

AND/ RA0

Vref+

Vref-

0000

А

A

A

A

A

A

A

A

Vdd

Vss

0001

А

A

A

A

Vref+

A

A

A

RA3

Vss

0010

D

D

D

A

A

A

A

A

Vdd

Vss

0011

О

D

D

A

Vref+

A

A

A

RA3

Vss

0100

D

D

D

D

A

D

A

A

Vdd

Vss

0101

D

D

D

D

Vref+

D

A

A

RA3

Vss

011х

D

D

D

D

D

D

D

D

Vdd

Vss

1000

А

A

A

A

Vref+

Vref -

A

A

RA3

RA2

1001

D

D

A

A

A

A

A

A

Vdd

Vss

1010

D

D

A

A

Vref+

A

A

A

RA3

Vss

1011

D

D

A

A

Vref+

Vref -

A

A

RA3

RA2

1100

D

D

D

A

Vref+

Vref -

A

A

RA3

RA2

1101

D

D

D

D

Vref+

Vref -

A

A

RA3

RA2

1110

D

D

D

D

D

D

D

A

Vdd

Vss

1111

D

D

D

D

Vref+

Vref -

D

A

RA3

RA2

Примечание:

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14