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

Все МК имеют:

-Диапазон тактовой частоты 0...20МГц.

-Одинаковое ядро.

-35 простых инструкций.

-Режим энергосбережения SLEEP.

-POR (Power On Reset) - сброс по подаче питания (при достижении Vddmin).

-OST (Oscillator Start-up Timer) - удерживает МК в состоянии сброса на время запуска и стабилизации тактового генератора.

-BOD или BOR (Brown-out Detect или Brown-out Reset) - детектор снижения

Vdd с настраиваемым порогом.

-WDT (Watchdog Timer) - сторожевой таймер с настраиваемым периодом.

-Микроконтроллеры PIC16F873…877 могут программировать свою память программ в процессе работы.

-Все 8-ми и 14-ти выводные МК, кроме режимов генератора, типичных для всех PIC16, имеют встроенный стабильный (1%) тактовый RC генератор.

Все микроконтроллеры серии PIC16F87X обладают одинаковым быстродействием, но различны по объему памяти данных и программ. Так как в процессе эксплуатации может возникнуть необходимость увеличения количества выполняемых функций, то из приведенного ряда микроконтроллеров предпочтительнее те у которых больший объем памяти программ. Этому критерию удовлетворяют микроконтроллеры PIC16F876 и PIC16F877. Микроконтроллер PIC16F877 имеет ряд избыточных характеристик не применимых в данном устройстве (8 каналов АЦП, 14 каналов прерываний) и его применение не целесообразно по экономическим соображениям.

Следовательно, по функциональным, экономическим и конструктивным условиям для устройства синтезатор частоты наиболее подходит восьмиразрядный микроконтроллер PIC16F876.

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

13

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

4 ОПИСАНИЕ МИКРОКОНТРОЛЛЕРА

4.1 Цоколевка, наименование и назначение выводов микроконтроллера PIC16F876. Режим питания микроконтроллера.

Рисунок 6 - Цоколевка микроконтроллера PIC16F876. DIP корпус. Таблица 2 – Назначение выводов микроконтроллера PIC16F876

 

 

Обозначение выводов

 

№ вывода

Тип

Описание выводов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

3

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OSC1/CLKIN

 

9

O

Вход генератора/ выход внешне-

 

 

 

 

 

 

 

 

 

 

 

 

го тактового сигнала

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OSC2/CLKOUT

 

10

I/P

Выход генератора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MCLR/VPP

 

1

I/O

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

 

 

 

 

 

 

 

 

 

 

 

 

вывода PORTA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RA0/AN0

 

2

I/O

RA0 может быть как аналоговый

 

 

 

 

 

 

 

 

 

 

 

 

канал 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RA1/AN1

 

3

I/O

RA1 может быть как аналоговый

 

 

 

 

 

 

 

 

 

 

 

 

канал 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

УИТС.421413.104 ПЗ

 

Лист

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Продолжение таблицы 2

 

 

 

 

4

 

1

2

3

 

 

 

 

RA3 может быть настроен как аналоговый канал 3

 

RA3/AN3/VREF

5

I/O

 

 

 

 

или вход отрицательного опорного напряжения

 

 

 

 

RA4 может использоваться в качестве входа внеш-

 

RA4/TOCKI

6

I/O

 

 

 

 

него тактового сигнала TMR0.

 

 

 

 

RA5 может быть настроен как аналоговый канал

 

RA5/-SS/AN4

7

I/O

 

 

 

 

5 или вход выбора микросхемы в режиме ведо-

 

 

 

 

мого SPI.

 

 

 

 

Двунаправленный порт ввода/вывода PORTB,

 

RB0/INT

21

I/O

 

 

 

 

имеет программно подключаемые резисторы на

 

 

 

 

входах.

 

 

 

 

 

 

RB1

22

I/O

 

 

 

 

 

 

 

RB2

23

I/O

 

 

 

 

 

Может использоваться в качестве входа низко-

 

RB3/PGM

24

I/O

 

 

 

 

вольтного программирования.

 

 

 

 

Прерывания по изменению уровня входного

 

RB4

25

I/O

 

 

 

 

сигнала.

 

 

 

 

Прерывания по изменению уровня входного

 

RB5

26

I/O

 

 

 

 

сигнала.

 

 

 

 

Прерывания по изменению уровня входного

 

RB6/PGC

27

I/O

 

 

 

 

сигнала или вывод для режима внутренней от-

 

 

 

 

ладки ICD.

 

 

 

 

Прерывания по изменению уровня входного

 

RB7/PGD

28

I/O

 

 

 

 

сигнала или вывод для режима внутренней от-

 

 

 

 

ладки.

 

 

 

 

Двунаправленный порт ввод/вывода PORTC.

 

RC0/T1OSO

11

I/O

 

 

 

 

Может использоваться в качестве выхода гене-

 

 

 

 

ратора или входа внешнего тактового сигнала.

 

 

 

 

 

 

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

15

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

1

2

3

 

 

 

RC1/T1OSI/C

12

I/O

CP2

 

 

 

 

 

RC2/CCP1

13

I/O

RC3/SCK/SCL 14 I/O

RC4/SDI/SDA 15 I/O

RC5/SDO

16 I/O

RC6/TX/CK 17 I/O

RC7/RX/DT 18 I/O

VSS

19,8 P

VDD

20 P

Продолжение таблицы 2

4

Может использоваться в качестве входа генератора или выводов модуля ССP2.

Может использоваться в качестве вывода модуля ССP1

Может использоваться в качестве вход/выхода тактового сигнала в режиме SPI и I2С

Может использоваться в качестве выхода данных в режиме SPI или входа/выхода в режиме I2С.

Может использоваться в качестве выхода данных в режиме SPI.

Используется в качестве выхода приемника USART в асинхронном режиме или вывода синхронизации USART в синхронном режиме.

Используется в качестве выхода приемника USART в асинхронном режиме или вывода данных USART в синхронном режиме.

Общий вывод для внутренней логики и порта ввода/вывода.

Положительные напряжения для внутренней логики и порота ввода/вывода.

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

16

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

Таблица 3 – Режим питания микроконтроллеров PIC16F876

Описание

min

типовое

max

 

 

-

 

Напряжение питания Vdd,B

4,0

5,5

 

 

1,5

 

Напряжение сохранения данных в ОЗУ,

-

-

Vdr, В

 

 

 

 

 

-

 

Скорость нарастания Vdd для формиро-

0.05

-

вания BOR, Vbor, В/мс

 

 

 

 

 

1,6

 

Ток потребления IDD, мА

-

4

 

 

7,5

 

Ток потребления в режиме SLEEP, Ipd ,

-

30

мкА

 

 

 

 

 

85

 

Ток потребления BOR, Ibor, мкА

-

200

4.2 Структура микроконтроллера PIC16F876

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

4.3 Арифметико-логическое устройство (АЛУ) Порты

Микроконтроллеры PIС содержат 8-разрядный универсальный арифметический модуль (АЛУ) и 8-разрядный рабочий регистр (W). АЛУ выполняет арифметические и булевы операции между рабочим регистром и любым регистром памяти данных.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

17

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

 

 

Рисунок 7 – Структурная схема микроконтроллера PIC16F876

Восьмиразрядное АЛУ может выполнять сложение, вычитание, поразрядный сдвиг и логические операции. Арифметические операции выполняются по принципу дополнения до двух, если не указано иначе. В командах с двумя операндами: первый операнд находится в рабочем регистре W, а второй операнд рас положен в регистре памяти данных или константа. В командах с одним операндом: операндом является регистр W или регистр памяти данных.

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

18

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

Регистр W - не адресуемый 8-разрядный рабочий регистр, который используется в операциях АЛУ. В зависимости от типа команды и результат команды АЛУ может воздействовать на следующие флаги состояния в регистре STATUS: перенос (С), не полный перенос (DC), флаг нулевого результата (Z). Биты С и DC работают как биты заема и десятичного заема при выполнении команд вычитания.

Счетчик команд PCL и PCLATH имеет разрядность 13 бит. Младший байт счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старший байт счетчика команд не может быть напрямую записан или считан и берется из регистра PCLATH, адрес которого 0Ah. Содержимое PCLATH передается в старший байт счетчика команд, когда он загружается новым значением. В зависимости от того, загружается ли в счетчик команд новое значение во время выполнения команд CALL, GOTO, или в младший байт счетчика команд (PCL) производится запись, – старшие биты счетчика команд загружаются из PCLATH разными способами (рисунок 8).

Рисунок 8 - Загрузка старших бит счетчика команд.

Команды CALL и GOTO оперируют 11-разрядным адресным диапазоном, достаточным для смещения в пределах страницы программной памяти объемом 2К слов. Для МК подгруппы PIC16F87X этого хватает. С целью обеспечения возможности расширения памяти команд для будущих моделей МК предусмотрена загрузка двух старших бит счетчика команд из регистра PCLATH.

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

19

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

При выполнении команды CALL или выполнении прерывания весь 13битный счетчик команд помещается в стек, поэтому для возвращения из подпрограммы не нужны манипуляции с разрядами PCLATH.

Возможность выполнять арифметические операции непосредственно над счетчиком команд позволяет очень быстро и эффективно осуществлять табличные преобразования в PIC-контроллерах.

Микроконтроллеры подгруппы PIC16F87X имеют восьмиуровневый аппаратный стек шириной 13 бит. Область стека не принадлежит ни к программной области, ни к области данных, а указатель стека пользователю недоступен. Текущее значение счетчика команд посылается в стек, когда выполняется команда CALL или производится обработка прерывания. При выполнении процедуры возврата из подпрограммы (команды RETLW, RETFIE или RETURN) содержимое счетчика команд восстанавливается из стека. Регистр PCLATH при операциях со стеком не изменяется.

Стек работает как циклический буфер. Следовательно, после того как стек был загружен 8 раз, девятая загрузка перепишет значение первой. Десятая загрузка перепишет вторую так далее. Если стек был выгружен 9 раз, счетчик команд становится таким же, как после первой выгрузки.

Признаков положения стека в контроллере не предусмотрено, поэтому пользователь должен самостоятельно следить за уровнем вложения подпрограмм Контроллер PIC16F876 имеет три порта: PORTA (5 бит) и PORTB (8 бит)

PORTС (8 бит) с побитовой индивидуальной настройкой на ввод или на вывод. Порт A (PORTA) представляет собой 5-битовый фиксатор, соответствую-

щий выводам контроллера RA. Линия RA4 имеет вход триггера Шмитта и выход с открытым стоком. Все остальные линии порта имеют ТТЛ входные уровни и КМОП выходные буферы. Адрес регистра порта А – 05h.

Каждой линии порта поставлен в соответствие бит направления передачи данных, который хранится в управляющем регистре TRISA, расположенном по адресу 85h. Если бит управляющего TRISA регистра имеет значение 1, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра-

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

20

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

фиксатора порта. При включении питания все линии порта по умолчанию настроены на ввод.

Рисунок 9 - Схема линий RA порта А.

Операция чтения порта А считывает состояние выводов порта, в то время как запись в него изменяет состояние триггеров порта. Все операции с портом являются операциями типа «чтение-модификация-запись». Поэтому запись в порт предполагает, что состояние выводов порта вначале считывается, затем модифицируется и записывается в триггер-фиксатор. Вывод RA4 мультиплексирован с тактовым входом таймера TMR0. Схема линии RA4 порта А приведена на рисунке 10. Порт В (PORTB) – это двунаправленный 8-битовый порт, соответствующий выводам RB контроллера и расположенный по адресу 06h. Относящийся к порту В управляющий регистр TRISB расположен на первой странице регистров по адресу 86h. Если бит управляющего TRISB регистра имеет значение 1, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки. При включении питания все линии порта по умолчанию настроены на ввод.

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

21

Изм.

Лист

№ документа

Подпись

Дата

 

 

 

 

 

 

 

Рисунок 10 - Схема линии RA4 порта А

У каждой ножки порта В имеется небольшая активная нагрузка (около 100мкА) на линию питания. Она автоматически отключается, если эта ножка запрограммирована как вывод. Более того, управляющий бит RBPU регистра OPTION может отключить (при RBPU=1) все нагрузки. Сброс при включении питания также отключает все нагрузки.

Четыре линии порта В могут вызвать прерывание при изменении значения сигнала на любой из них. Если эти линии настроены на ввод, то они опрашиваются и защелкиваются в цикле чтения. Новая величина входного сигнала сравнивается с старой в каждом командном цикле. При несовпадении значения сигнала на ножке и в фиксаторе генерируется высокий уровень сигнала. Выходы детекторов «несовпадений» RB4, RB5, RB6, RB7 объединяются по ИЛИ и генерируют прерывание RBIF (запоминаемое в регистре INTCON<0>). Любая линия, настроенная как вывод, в этом сравнении не участвует. Прерывание может вывести кристалл из режима SLEEP.

Прерывание по несовпадению и программно устанавливаемые внутренние активные нагрузки на этих четырех линиях могут обеспечить простой интерфейс, например, с клавиатурой, с выходом из режима SLEEP по нажатию клавиш.

 

 

 

 

 

УИТС.421413.104 ПЗ

Лист

 

 

 

 

 

 

 

 

 

 

 

22

Изм.

Лист

№ документа

Подпись

Дата