- •Введение.
- •Микроконтроллеры. Общие положения.
- •1.2. Типы микроконтроллеров
- •1.2.1. Встраиваемые микроконтроллеры.
- •1.2.2. Микроконтроллеры с внешней памятью.
- •1.2.3. Цифровые сигнальные процессоры
- •1.3. Архитектура микроконтроллеров.
- •1.4. Типы памяти микроконтроллеров
- •1.4.1. Память программ.
- •1.4.2. Память данных
- •1.4.3. Регистры микроконтроллера.
- •1.4. 4.Внешняя память
- •Микроконтроллеры pic (Разработка фирмы Mikrochip).
- •2.1. Питание р1с-микроконтроллеров
- •Тактирование pic-микроконтроллеров.
- •2.3. Схемы сброса
- •2.4. Выбор микроконтроллера
- •Микроконтроллеры типа pic16f873.
- •3.1. Основные характеристики.
- •3.2. Структурная схема микроконтроллера.
- •3.3. Блоки памяти.
- •1.4. Регистры состояния и управления.
- •1.5. Порты ввода-вывода.
- •1.6. Пример программирования работы фрагмента электроавтоматики станка с чпу.
- •2.0.Функциональные модули микроконтроллера pic16f873.
- •2.1. Таймеры.
- •2.1.2. Модуль таймера tmr1.
- •2.1.3. Модуль таймера tmr2.
- •2.2. Модуль сср.
- •2.2.2. Режим сравнения.
- •2.2.3. Режим широтно-импульсного преобразователя (шим).
- •2.3. Модуль ацп.
- •2.3.1.Работа модуля осуществляется в следующей последовательности:
- •2.3.2.Временные требования к работе модуля ацп.
- •2.3.4. Последовательность преобразования аналогового сигнала.
- •2.3.5. Выравнивание результата преобразования.
- •2.3.6. Работа модуля ацп в sleep режиме.
- •2.3.7. Пример программирования модуля ацп.
- •2.4.Универсальный синхронно – асинхронный приемопередатчик (usart).
- •2.4.1.Режим асинхронного полного дуплекса.
- •2.4.1.1. Асинхронный передатчик usart.
- •2.4.1.2. Асинхронный приемник модуля usart.
- •2.5.Модуль ведущего синхронного последовательного порта (mssp).
- •2.5.1. Режим ведомого i2c.
- •2.5.1.1.Прием данных.
- •2.5.1.2. Передача данных.
- •2.5.1.3.Поддержка общего вызова.
- •2.5.1.4.Работа в sleep режиме.
- •2.5.2. Режим ведущего i2c.
- •2.5.3. Подключение абонентов к шине i2c.
- •2.6. Модуль eeprom памяти данных.
- •2.6. Прерывания.
- •2.7. Сторожевой таймер.
- •2.8. Система команд микроконтроллера.
- •Incf Прибавить 1 к содержимому регистра f.
- •Incfsz Прибавить 1 к регистру f, пропустить, если 0.
- •Iorlw Побитное «или» регистра w и константы k.
- •Iorwf Побитное “или» регистров w, f.
- •Xorlw Побитное «Исключающее или» константы и регистра w.
- •Xorwf Побитное «исключающее или» регистров w,f.
Микроконтроллеры pic (Разработка фирмы Mikrochip).
В качестве объекта изучения принимаем микроконтроллеры серии PIC, разработанные и выпускаемые фирмой Mikrochip. Данный выбор обосновывается достаточно большим распространением данных микроконтроллеров в нашей стране, широкими функциональными возможностями, использованием для программирования работы языков высокого уровня СИ и Ассемблера
В настоящее время существуют несколько подсемейств PIC (Peripheral Interface Controller -контроллер управления внешними устройствами) - микроконтроллеров, каждое из которых включает множество различных типов. Наиболее известно младшее подсемейство 16С5Х, включающее архитектурно самые простые модели PIC-микроконтроллеров, которые используются в недорогих приборах, где они с успехом заменяют множество микросхем средней степени интеграции. В состав данного подсемейства входят микроконтроллеры пяти типов, имеющие варианты по тактовой частоте и типу программного запоминающего устройства. Все микросхемы 16С5Х имеют одну и ту же внутреннюю архитектуру, но отличаются объемом оперативной и программной памяти (ОЗУ и ПЗУ) и количеством портов ввода/вывода.
Второе подсемейство квалифицируется фирмой Microchip как среднее. К этому подсемейству можно отнести такие микроконтроллеры, как PIC16FXXX (PIC16F873, PIC16F876, PIC16F887 и др.) К этому же классу можно отнести более совершенные микроконтроллеры типа PIC18FXXX. Оба подсемейства имеют примерно одинаковую область применения. Среднее подсемейство располагает более обширными аппаратными ресурсами, но на микроконтроллерах младшего эти функции можно реализовать программно. В настоящее время фирмой разработано и выпускается большое количество более сложных и совершенных микроконтроллеров типа PIC24FXXX, PIC32FXXX с большим набором функциональных возможностей.
2.1. Питание р1с-микроконтроллеров
У всех PIC-микроконтроллеров есть два вывода питания Vss и Vdd^
Vss-общий («минус» питания);
Vdd - «плюс» питания.
Для микроконтроллеров PIC диапазон питающих напряжений не так широк: от +4 до +6 В.
Питание PIC-микроконтроллеров любых типов, тактируемых от встроенного высокочастотного генератора (вариант HS), осуществляется напряжением от +4,5 до +5,5В. В sleep-режиме внутреннее ОЗУ сохраняет свое содержимое при напряжении питания 1,5 В.
Чтобы устранить высокочастотные пульсации по питанию, применяют многослойный керамический конденсатор емкостью не менее 0,1 мкФ, который монтируется как можно ближе к корпусу микросхемы.
Если напряжение питания находится в пределах норм, установленных для ИС ТТЛ (от 4,75 до 5,25 В), то и уровни на входах/выходах PIC-микроконтроллеров будут соответствовать уровням ТТЛ.
Тактирование pic-микроконтроллеров.
У всех микросхем подсемейства PIC16 имеются два вывода, предназначенные для тактирования их работы: OSC1 (CLKIN) и OSC2 (CLKOUT). Для тактирования могут использоваться генераторы нескольких типов.
В версиях микросхем PIC16 с ультрафиолетовым и электрическим стиранием тип тактового генератора задается программированием соответствующих битов конфигурационного слова (особого регистра, доступного только во время программирования микросхемы). Для одной и той же микросхемы может быть задан или кварцевый, или RC-генератор.
Что касается однократно программируемых (ОТР - One-Time-Programmable) версий микросхем, то для них тип тактового генератора выбирается при заказе или покупке.
В зависимости от типа тактового генератора выделяют следующие версии PIC 16CXX:
♦ XT - с внутренним генератором на стандартном кварцевом резонаторе (согласно терминологии фирмы Microchip). Эта версия работает до максимальной частоты 4 МГц;
HS - высокоскоростная версия (High Speed), которая также тактируется внутренним генератором с кварцевым резонатором, но способна работать на частотах до 20 МГц;
RG - тактируется внутренним RC-генератором и способна работать на частотах до 4 МГц, но с меньшей стабильностью по частоте, чем версии с кварцевыми генераторами;
LP - версия с малым потреблением (Low Power), тактирующаяся низкочастотным кварцевым генератором. У этой версии максимальная рабочая частота не превышает 200 кГц.
Для стабилизации частоты наряду с кварцевыми резонаторами возможно использование керамических резонаторов.
Существуют три схемы тактирования PIC-микроконтроллеров (рис. 2).
Для версий с кварцевым или керамическим резонатором используют схему, изображенную на рис. 2а. Значение конденсаторов С1 и С2 выбирается в зависимости от типа резонатора (кварцевый или керамический) и частоты (табл. 2). Для версии XT резистор R1 не нужен, однако иногда он требуется для микроконтроллеров версии HS. Только точное знание характеристик кварцевого резонатора позволяет определить, есть ли необходимость в резисторе R1 и каким должно быть его значение.
Схема на рис 2 b представляет реализацию RC-генератора.
С1
Таблица 2. Номиналы компонентов для схем тактовых генераторов
Тип резонатора |
Частота, кГц |
С1 , пФ |
С2, пФ |
LP |
32* |
15 |
15 |
100 |
15 |
15 |
|
200 |
0-15 |
0-13 |
|
XT |
100 |
15-30 |
200-300 |
200 |
15-30 |
100-200 |
|
455 |
15-30 |
15-100 |
|
1000 |
15-30 |
15-30 |
|
2000 |
15 |
15 |
|
4000 |
15 |
15 |
|
HS |
4000 |
15 |
15 |
8000 |
15 |
15 |
|
20000 |
15 |
15 |
В этом случае для собственно генерации используется вывод OSC1. Вывод OSC2 является выходом внутренней рабочей частоты микроконтроллера (частоты командных циклов), которая в четыре раза меньше, чем частота генератора.
Стабильность RC-генератора не столь высока, как у кварцевого. Чтобы на нее не оказывали сильного влияния внешние факторы и внутренние характеристики самой микросхемы, фирма Microchip рекомендует применять резистор R с сопротивлением от 5 до 100 кОм и конденсатор емкостью не менее 20 пФ.
И наконец, схема на рис. 2в показывает способ тактирования PIC внешним генератором. Очевидно, что формируемые внешним генератором уровни должны соответствовать напряжению питания микроконтроллера.
