Рефераты. Разработка PIC-контроллера устройства измерения временных величин сигналов

1.3 Описание базового микроконтроллера


1.3.1 Регистры

Память данных разбита на два банка, которые содержат регистры общего назначения РОН и регистры специального назначения РСН. Выбор банка определяется состоянием бита RРО в регистре STATUS. Когда RPO установлен в "1", выбран банк 1, иначе — 0. Первые 12 байт каждого банка отведены под РСН. Некоторые РСН отображаются одновременно на оба банка. РОН доступны из любого банка.

Регистры общего назначения могут быть адресованы прямо или косвенно с использованием регистра косвенной адресации FSR. Регистры специального назначения используются для управления ЦПУ и функциями ввода-вывода и представленны в таблице 1.1.

Регистр STATUS содержит флаги АЛУ, параметры сброса (RESET) и биты выбора банка памяти данных. Регистр STATUS так же, как и любой другой регистр, может быть операндом для любой команды. Если регистр STATUS используется в качестве операнда для команды, которая воздействует на биты Z, DC или С, то непосредственная запись в эти биты запрещена. Более того, запись в биты -ТО и -PD запрещена. Поэтому результат команды, использующей STATUS в качестве регистра назначения, может отличаться от ожидаемого.

Регистр OPTION доступен для чтения и записи и содержит различные управляющие биты для конфигурации предделителя TMRO/WDT, самого TMR0 и подтягивающих резисторов GPIO.

Регистр INTCON доступен для чтения и записи и содержит биты разрешения прерываний: общего, периферийных устройств и TMR0, а также флаг переполнения TMR0.


Таблица 1.1 — Регистры специального назначения

Обозначение

Описание

Бит7

Бит6

Бит5

Бит4

Бит3

Бит2

Бит1

Бит0

Банк 0

INDF

При обращении производится доступ к ОЗУ по адресу в FSR

TMR0

Регистр TMR0

PCL

Младший байт счетчика команд PC

STATUS

IRP

RP1

RP0

-TO

-PD

Z

DC

C

FSR

Индексный регистр косвенной адресации

PORTA

RA4/T0CKI

RA3

RA2

RA1

RA0

PORTB

RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0/INT

EEDATA

Регистр данных Flash–ПЗУ

EEADR

Регистр адреса Flash–ПЗУ

PCLATH

Буфер для записи старших 5 бит РС

INTCON

GIE

EEIE

T0IE

INTE

RBIE

T0IF

INTF

RBIF

Банк 1

INDF

При обращении производится доступ к ОЗУ по адресу в FSR

OPTION

GPPU

INTEDG

T0CS

T0SE

PSA

PS2

PS1

PS0

PCL

Младший байт счетчика команд PC

STATUS

IRP

RP1

RP0

-TO

-PD

Z

DC

C

FSR

Индексный регистр косвенной адресации

TRISA

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

TRISB

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

EECON1

EEIF

WRERR

WREN

WR

RD

EECON2

Регистр 2 управления Flash–ПЗУ (физически не реализован)

PCLATH

Буфер для записи старших 5 бит РС

INTCON

GIE

EEIE

T0IE

INTE

RBIE

T0IF

INTF

RBIF


Таблица 1.2 — Состояние регистров после сброса POR

Регистр

Состояние

W

xxxx xxxx

INDF

---- ----

TMR0

xxxx xxxx

PCL

0000 0000

STATUS

0001 1xxx

FSR

xxxx xxxx

PORTA

---x xxxx

PORTB

xxxx xxxx

EEDATA

xxxx xxxx

EEADR

xxxx xxxx

PCLATH

---0 0000

INTCON

0000 000x

OPTION

1111 1111

TRISA

---1 1111

TRISB

1111 1111

EECON1

---0 x000

EECON2

---- ----


Регистр INDF не является физическим регистром. При обращении к регистру INDF на самом деле происходит косвенная адресация памяти данных.

Косвенная адресация реализована через регистр INDF. Любая команда, использующая регистр INDF, фактически обращается к данным, на которые указывает регистр адреса в файле (FSR). Чтение самого INDF с помощью косвенной адресации дает в результате 00h. Результатом косвенной записи в регистр INDF будет NOP.


1.3.2 Стек

PIC16F84 имеет аппаратный стек глубиной 8 13-битных слов. Стек не является частью памяти программ или данных, а указатель стека не может быть явно прочитан или модифицирован. При выполнении команды CALL или возникновении прерывания PC сохраняется в стеке. При выполнении команд RETURN, RETLW или RETFIE значение PC восстанавливается из стека. Содержимое PCLATH при этом не изменяется.

Стек работает как циклический буфер. Это означает, что после того, как в стек было помещено восемь записей, девятая помещается на место первой, десятая - на место второй, и т.д.

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

PIC16F84 имеет два порта, а именно PORTA, PORTB. Некоторые каналы портов совмещают функции выводов других периферийных устройств.

PORTA — это 5-разрядный порт. RA4 имеет триггер Шмитта на входе и открытый сток на выходе. Остальные каналы порта имеют входные уровни ТТЛ и выходные буферы КМОП. Порт имеет регистр направления TRISA, с помощью которого каналы порта могут быть индивидуально настроены на ввод или на вывод.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.