Общая структура микропроцессорной системы. Развитие фон-Неймовской архитектуры. Микроконтроллеры средней серии Microchip. Программирование микроконтроллеров Microchip средней серии, страница 8

6.  старшая половина последнего банка и младшая половина 0, образуют виртуальный банк быстрого доступа, при обращении к которому, содержимое FSR игнорируется

mov f REG1, BANKED – извлекает содержимое REG1, находящийся в банке, на который указывает регистр BSF

mov wf REG2, ACCESS – записывает содержимое w, игнорирую BSF. Если REG2 – 7F и меньше, то запись произойдет в первую половину банка 0, если 8F, то во вторую половину банка N.

Параллельные подпрограммы ввода/вывода

Любой выбор микроконтроллера, кроме питания, сброса и тактового генератора, может быть настроен как вход периферийного блока или параллельная линия ввода/вывода.

Параллельные линии ввода/вывода сгруппированы по 8 штук в PORT. Для работы с PORT имеются две группы регистров: PORT А, PORT В и т. д. (находятся в нулевом банке), и регистры TRIS A, TRIS B и т. д. (находятся в первом банке).

С помощью регистров TRIS в любом разряде в любой момент любого PORT можно настроить на вход или на выход (1 – вход, 0 - выход). А при сбросе все PORT настраиваются как входы. С помощью регистров PORT можно формировать или опрашивать внешние сигналы. Если линия настроена как выход, то запись в PORT вызывает появление логического сигнала на выводе микроконтроллера.

Чтение регистра PORT дает значение логических уровней на выводах контроллера независимо от того, настроены они на вход или на выход.

Пример: в PORT C выводить сумму PORT А и PORT В

org              00

bsf              STATUS, RP0

clr f             TRISC

bcf              STATUS, RP0

mov f          PORT A, W

add wf        PORT B, W

mov wf       PORT C

sleep

end.

Пик-контроллеры имеют систему радиальных, маскируемых, безприоритетных прерываний. При возникновении любого прерывания, управление передается по адресу 04. Любое прерывание может быть индивидуально разрешено или запрещено битом. Кроме того, есть бит разрешающий или запрещающий все прерывания.

Флаги прерываются сами по себе, а сбрасывать их нужно специальной программой. Флаги устанавливаются независимо от того, разрешены прерывания или нет.

INTCON – регистр продублирован на всех страницах

GIE

TOIE – разрешение от нулевого таймера

TOIF – флаг

INTE – разрешение внешнего прерывания, но появление сигнала на выводе PB0

INTF – флаг

PBIE – разрешение по изменению сигнала в старшей титраде PORT B

PBIF – флаг

Регистры PIR 1 и PIR 2, которые находятся в нулевом банке, содержат флаги запроса прерываний от остальных периферийных блоков.

PSPIF – общий порт

ADIF – от АЦП

RCIF – прерывание от приемника

TXIF – прерывание от передатчика

SSPIF – прерывание от синхронного порта

CCP1IF – прерывание от захвата/сравнение ШИМ

TMR1IF – прерывание таймера

PIE 1, PIE 2 – регистры разрешения прерываний от периферийных блоков, находятся в первом банке.

Пример: Сложить А и С, переслать в В. При появлении 1 в RP0 переслать на сумму, а разрядность – используя прерывания.

Start            bsf              INTCON, INIE

                    bsf              INTCON, GIE

                    bsf              STATUS, RP0

                    ces f           TFISD

                    bcf              STATUS, RP0

Metka         mov f          PORT A, W

                    add wf        PORT C, W

                    mov wf       PORT D

                    goto            Metka

                    org              00

                    goto            Start

                    arg              04

                    mov f          PORT A, W

                    sub wf        PORT C, W

mov wf       PORT D

bcf              INTCON, INTF

retfie

Устройство и порядок работы с таймерами

В микроконтроллерах средней серии может быть от 1 до 3 таймеров.