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 таймеров.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.