Аппаратные средства микроконтроллеров серии PIC

Особенности архитектуры


Упрощенная структурная схема МК подгруппы PIC16F8X приведена на рис. 5.1.


Рис. 5.1.  Структурная схема МК подгруппы PIC16F8X.

Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (гарвардская архитектура). Шина данных и память данных (ОЗУ) – имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов.

Микроконтроллеры PIC16F83 и PIC16CR83 адресуют 512х14 памяти программ, а PIC16F84 и PIC16CR84 – 1Кх14 памяти программ. Вся память программ является внутренней.

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

Назначение выводов МК подгруппы PIC16F8X приведено в табл. 5.2.

Таблица 5.2. Назначение выводов МК подгруппы PIC16F8X.ОбозначениеТипБуферОписание
OSC1/CLKIN I ТШ/КМОП1) Вход кристалла генератора, RC-цепочки или вход внешнего тактового сигнала
OSC2/CLKOUT O-Выход кристалла генератора. В RC-режиме – выход 1/4 частоты OSC1
/MCLR I/PТШСигнал сброса/вход программирующего напряжения. Сброс низким уровнем.
RA0 I/OТТЛ

PORTA – двунаправленный порт ввода/вывода

RA4/T0CKI может быть выбран как тактовый вход таймера/счетчика TMR0. Выход с открытым стоком.



RA1
I/OТТЛ
RA2 I/OТТЛ
RA3 I/OТТЛ
RA4 I/OТШ
/T0CKI
RB0/INT I/O ТТЛ/ТШ2) PORTB – двунаправленный порт ввода/вывода. Может быть запрограммирован в режиме внутренних активных нагрузок на линию питания по всем выводам. Вывод RB0/INT может быть выбран как внешний вход прерывания. Выводы RB4...RB7 могут быть программно настроены как входы прерывания по изменению состояния на любом из входов. При программировании МК RB6 используется как тактовый, а RB7 как вход/выход данных.
RB1 I/OТТЛ
RB2 I/OТТЛ
RB3 I/OТТЛ
RB4 I/OТТЛ
RB5 I/OТТЛ
RB6 I/O ТТЛ/ТШ3)
RB7 I/O ТТЛ/ТШ4)
<
table class="xml_table" cellpadding="2" cellspacing="1"> Таблица 5.2. Назначение выводов МК подгруппы PIC16F8X (продолжение).ОбозначениеТипБуферОписание Vdd P-Положительное напряжение питания Vss P-Общий провод (земля)В таблице использованы следующие обозначения: I — вход; O — выход; I/O — вход/выход; P — питание; – — не используется; ТТЛ — ТТЛ вход; ТШ — вход триггера Шмитта.Микроконтроллер содержит 8-разрядное АЛУ и рабочий регистр   W. АЛУ является арифметическим модулем общего назначения и выполняет арифметические и логические функции над содержимым рабочего регистра и любого из регистров контроллера. АЛУ может выполнять операции сложения, вычитания, сдвига и логические операции. Если не указано иное, то арифметические операции выполняются в дополнительном двоичном коде.

В зависимости от результата операции, АЛУ может изменять значения бит регистра   STATUS: C (Carry), DC (Digit carry) и Z (Zero).


Содержание раздела