НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 23242526272829 ... 159


Регистр состояния

Микроконтроллеры PIC 17Схх имеют два регистра состояния: ALUSTA, и CPUSTA. Первый определяет состояние арифметико-логического устройства, второй - состояния процессора (табл. 5.12,5.13).

Таблица 5.12

Назначение разрядов региара ALUSTA

ГТйт"

Функция

Выбор режима для региара FSR1:

1х - содержимое региара FSRI не изменяется после осуществления доступа; 01 - содержимое регистра FSR1 инкрементируется, 00 - содержимое регистра FSR1 декрементируется

""5-4

Выбор режима для региара FSRO.

1х - содержимое регистра FSRO не изменяется после осуществления доступа; 01 - содержимое региара FSRO инкрементируется, 00 - содержимое регистра FSRO декрементируется

0V - флаг переполнения при выполнении арифметических операций

1 - флаг нуля при выполнении арифметических и логических операций

ОС - флаг десятичного (цифрового поразрядного) переноса при выполнении арифметических операций

С - флаг переноса при выполнении арифметических операций

Таблица 5.13

Назначение разрядов региара CPUSTA, использующегося в микроконтроллерах PIC 17Схх

Функция

Не используются

STKAV - флаг «стек не полон»

GLINTD - бит глобального запрета на прерывания

ТО - флаг аорожевого таймера, уаанавливается после подачи напряжения питания (Power, up) или исполнения команды clrwdt; обнуляется при срабатывании аорожевого таймера

Р0 - флаг дежурного режима (SLEEP - пониженного энергопотребления); уаанавливается после подачи напряжения питания (Power up) или исполнения команды clrwdt, обнуляется после исполнения команды sleep

POR - флаг сброса микроконтроллера при включении питания; обнуляется после подачи напряжения питания (Power up); используется не во всех микроконтроллерах PIC 17Схх

ВОР - флаг сброса микроконтроллера при понижении напряжения питания; обнуляется после сброса при понижении напряжения питания (Brown out); используется не во всех микроконтроллерах PIC 17Схх

Счетчик команд

Процессор микроконтроллеров PIC 17Схх способен адресовать 64К 16-разрядных тманЭкъгх сдое программной памяти. Эта программная 1амять Может являться компонентом самой микросхемы или быть



внешней. Для адресации программной памяти необходим 16-ра:!-рядный адрес, который формируется с помощью регистров PCL и PCLATH, причем порядок формирования адреса остается тем же самым, как у микроконтроллеров младшего и среднего подсемейств. Структурная схема программного счетчика, который используется в микроконтроллерах PIC 17Схх, приведена на рис. 5.7.

Адрес команды

pclath

Инкрементирование счетчика команд

Мультиплексор

"ЗвТ- I

Счетчик команд

LUnna данных

16-уровневый стек

Рис. 5.7

Структурная схема счетчика команд микроконтроллеров PIC 17Схх

Следует отметить, что структурная схема, показанная на рис. 5.8. отличается от структурной схемы программного счетчика для микроконтроллеров среднего подсемейства по крайней мере в одном существенном аспекте: при исполнении команд goto и call старите пять битов соответствующей команды заменяют младшие пять битов регистра PCLATH. В результате после исполнения команды goto нли call содержимое регистра PCLATH изменяется в соответствии с текущим адресом.

Выполнение прерываний

Микроконтроллеры PIC l7Cxx используют четыре различных адреса векторов прерывания, которые имеют заданные приоритеты и инициируются различными компонентами микроконтроллероч (табл. 5.14, 5.15).



Приоритет

Адрес вектора прерывания

Источник прерывания

Высокий

0x0008

Внешнее прерывание от вывода PA0/INT

0x00010

Прерывание от таймера TMRO

0x00018

Внешнее прерывание от вывода Т0СК1

Низкий

0x00020

Прерывание от периферийных узлов

Таблица 5.15

Назначение и функции региара INTSTA микроконтроллеров PIC 17Схх

Функция

PEIF - устанавливается при задержке прерывания, инициированного периферийным устройством

T0CKIF - флаг внешнего прерывания от вывода HAI/TOCKI; аппаратное стирание при обработке прерывания с вектором 0x0018

TOIF - флаг переполнения счетчика таймера тино; аппаратное стирание при обработке прерывания с вектором ОхООЮ

INTF - флаг внешнего прерывание от вывода RAO/INT; аппаратное стирание при обработке прерывания с вектором 0x0008

PEIE - бит разрешения прерываний от периферийных устройств

T0CKIE - бит разрешения внешних прерываний от вывода RA1/T0CKI

1

TOIE - бит разрешения прерываний от таймера ТМЯО

INTE - бит разрешения внешних прерываний от вывода RA0/INT

Основные компоненты программы обработки прерываний

Ниже приводится базовый код программы обработки прерываний для микроконтроллеров PIC 17Схх:

.org ?? ; Вектор (адрес), соответствующий

источнику.

Сохранение регистров контекста.

Задание страницы 0.

Программа обработки прерывания.

Восстановление контекста.

movpf

ALUSTA, alusta

movpf

WREG, w

movpf

BSR, bsr

movpf

PCLATH, pclath

clrf

PCLATH

movfp

pclath, PCLATH

movfp

bsr, BSR

movf

w, WREG

mo,vf p

alusta, ALUSTA

retfie



0 ... 23242526272829 ... 159