Скачиваний:
127
Добавлен:
21.02.2014
Размер:
170.5 Кб
Скачать

Организация памяти семейства микроконтроллеров pic16f87x

    У семейства PIC16F87X существует три вида памяти:

  • FLASH.До 14336 байт программной памяти (PIC16F876/877). Так как PICmicro “среднего звена” имеют 14-бит архитектуру и, соответственно, 14-бит команды, память организована в виде 8Кґ14 бит. Организация памяти страничная, 4 страницы по 2Кґ14. Типовое время записи одного слова составляет 4 мс. Количество циклов стирания/записи — не менее 1000;

  • EEPROM.До 256 байт (PIC16F876/877) EEPROM энергонезависимой памяти данных. Доступ к ней организован побайтно через служебные регистры. Типовое время записи составляет 4 мс, количество циклов стирания/записи — не менее 100000.

  • RAM.До 368 байт RAM данных (PIC16F876/877). Страничная организация: 4 страницы с возможностью прямого доступа к 16 байтам из любой страницы. Предусмотрены режимы прямой и косвенной адресации.

    Данное семейство характеризуется тем, что вся память доступна для записи и чтения во всём диапазоне тактовых частот, температур и питающих напряжений. Выпускаются две версии кристалла:

  • “F” — стандартная версия. Предназначена для работы на частотах 0–20 МГц в диапазоне питающих напряжений от 4,5 до 5,5 В;

  • “LF” — маломощная версия, работает в расширенном диапазоне питающих напряжений от 2,0 до 5,5 В на частотах до 4 МГц. Потребляет 20 мкА @ 32 кГц (типовое значение).

    Для удобства работы с массивами после цикла записи в EEPROM устанавливается флаг прерывания.

Структурная схема мк

    Рис 2.3. Обобщенная структурная схема микроконтроллера PIC16 Основные особенности архитектуры микроконтроллеров PIC.

  • Раздельные память и шины для команд и для данных. Разрядность ПП и шины команд - 14, ПД, регистров АЛУ и шины данных - 8.

  • В арсенале всего 35 простых и компактных команд. Все команды выполняются за 1 машинный цикл, кроме команд ветвления, которые выполняются за 2 машинных цикла.

  • Все регистры МК делятся на две группы: специальные регистры и регистры общего назначения. Обе группы составляют единое пространство - память данных, поэтому для управления функциями и настройками МК не требуются специальные команды.

  • Ортогональная система команд позволяет выполнить любую операцию с любым регистром, используя любой метод адресации.

  • В состав разных типов МК входят различные стандартные периферийные модули, выполняющие типичные для цифровых систем функции. Они освобождают ресурсы МК, упрощают программу и удешевляют изделие.

  • Все выводы МК, кроме выводов питания и сброса, используются как порты общего назначения. Периферийные модули не занимают монопольно выводы МК. Все коммуникации осуществляются через альтернативные функции портов. Т.е. программа может подключать модуль к внешнему выводу МК только когда это необходимо. Если модуль не используется, то он и не использует никакие выводы МК.

  • Несколько типов тактовых генераторов. Тактовая частота 0…20МГц.

  • Диапазон напряжения питания не является архитектурной особенностью, и все-таки: 2…5,5В - для низковольтных вариантов МК (LC, LF) и 3,5(4,5)…5,5В - для остальных.

   Неотъемлемая составная часть микроконтроллера - это АЛУ (Арифметико-логическое устройство). АЛУ выполняет арифметические и логические операции с участием одного или двух операндов (байтов), а также битовые операции. В последнем случае операндом является байт, но операция выполняется только над одним из его битов.    В состав ядра МК входит и занимает центральное место особый 8-разрядный регистр, он называется рабочим и обозначается как W (от слова Work - работа). Регистр W не имеет адреса и не отображается на адресное пространство памяти данных, поэтому его нельзя адресовать или обратиться к нему прямо или косвенно. Он участвует в операциях непосредственно. С его участием выполняются все двухоперандные операции, операции с константой и операции пересылки, в нем можно сохранить результат операции.    Иногда интересует не сам результат операции, а лишь некий его признак, например, знак результата, или равен-ли результат операции нулю или нет. Эти признаки называют флагами состояния АЛУ. Таких флагов три и доступны они в виде битов регистра STATUS:       бит Z:   1 - результат арифметической или логической операции равен нулю, 0 - результат операции не равен нулю;       бит C:   1 - результат арифметической операции отрицательный, 0 - не отрицательный;       бит DC:   1 - в результате арифметической операции был перенос единицы из младшей тетрады в старшую, 0 - переноса не было    Не каждая операция влияет на тот или иной флаг. Например операция пересылки байта из регистра W в регистр памяти данных не влияет на флаги. А операция пересылки байта из регистра памяти данных в регистр W влияет на флаг Z: если пересылаемый байт равен нулю, флаг Z будет установлен, иначе сброшен. Прежде чем проверять флаг, как результат операции, загляните в таблицу операций и убедитесь, что операция воздействует на интересующий флаг.

Рис. 2.5. Цоколевка микроконтроллеров PIC16F873/876 (корпус DIP28).

Вывод

функция

I – вход,

O - выход

Тип входа

Описание

1

-MKLR/ Vpp/THV

I

ST

Внешний сброс / напряжение программирования / тестирования МК программатором

2

RA0/AN0

I/O

TTL

RA0 / аналоговый вход_0 АЦП

3

RA1/AN1

I/O

TTL

RA1/ аналоговый вход_1 АЦП

4

RA2/AN2/REF-

P/O

TTL

RA2 / аналоговый вход_2 АЦП / вход “-” образцового напряжения для АЦП

5

RA3/AN3/REF+

P/O

TTL

RA3 / аналоговый вход_3 АЦП / вход “+” образцового напряжения для АЦП

6

RA4/T0CKI

I/O

ST

RA4 / вход внешнего сигнала для TMR0

7

RA5/AN4/-SS

I/O

TTL

RA5 / аналоговый вход_4 АЦП / Slave Select - Выбор Ведомого для синхронного параллельного порта (SSP)

8,19

Vss

P

-

Общий

20

Vdd

P

-

Питание

9

OSC1/CLKIN

I

ST/

SMOS

Вход генератора для кристаллического, кварцевого или RC резонатора / вход внешнего тактового сигнала

10

OSC2/CLKOUT

O

-

Выход генератора для кристаллического или кварцевого резонатора / выход внешнего тактового сигнала. В режиме RC генератора выход ¼ Fosc

11

RC0/T1OSO

/T1CKI

I/O

ST

RC0 / выход осциллятораTMR1 / вход внешнего сигнала TMR1

12

RC1/T1OSI

/CCP2

I/O

ST

RC1 / вход осциллятораTMR1 / или вход ЗАХВАТ/выход СРАВНЕНИЕ/выход ШИМ модуля CCP2

13

RC2/CCP1

I/O

ST

RC2 / вход ЗАХВАТ/выход СРАВНЕНИЕ/выход ШИМ модуля CCP1

14

RC3/SCK/SCL

I/O

ST

RC3 / SCK SPI-шины / SCL I2C-шины (clock)

15

RC4/SDI/SDA

I/O

ST

RC4 / SDI (data in) SPI-шины/ SDA (data) I2C-шины

16

RC5/SDO

I/O

ST

RC5 / SDO (data out) SPI-шины

17

RC6/TX/CK

I/O

ST

RC6 / выход USARTв асинхронном режиме / тактовый сигнал USART в синхронном режиме

18

RC7/RX/DT

I/O

ST

RC7 / вход USARTв асинхронном режиме / данные USART в синхронном режиме

21

RB0/INT

I/O

TTL/ST

RB0 / внешнее прерывание

22

RB1

I/O

TTL

RB1

23

RB2

I/O

TTL

RB2

24

RB3/PGM

I/O

TTL

RB3 / вход разрешения низковольтного программирования

25

RB4

I/O

TTL

RB4

26

RB5

I/O

TTL

RB5

27

RB6/PRG

I/O

TTL/ST

RB6 / сигнал CLK программирования МК программатором

28

RB7/PGD

I/O

TTL/ST

RB7 / шина для внутрисхемной отладки / сигнал DATA программирования МК программатором