- •Введение.
- •Микроконтроллеры. Общие положения.
- •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.
3.2. Структурная схема микроконтроллера.
На рис.1.1 показаны структурные схемы микроконтроллеров PIC17F873 и PIC16F877.
Для связи с внешними устройствами микроконтроллер PIC16F873 имеет три порта PORTA, PORTB, PORTC (микроконтроллеры типа PIC16F877, PIC16F887 дополнительно имеют PORTD и PORTE). Ядро микроконтроллера имеет в своем составе минимально необходимый набор элементов для реализации микро-ЭВМ и ряд законченных функциональных блоков для реализации элементов управления различными техническими устройствами.
К первой группе относятся:
- арифметико-логическое устройство – процессор – ALU,
- рабочий регистр W, играющий роль аккумулятора,
- порты связи с внешними устройствами (PORTA,....PORTE),
- регистр состояния процессора – STATUS,
- счетчик команд – PC,
- регистр косвенной адресации – FSR,
- 8-ми уровневый стек,
- память программ типа FLASH,
- память данных типа RAM,
- тактовый генератор импульсов,
- устройство сброса по включению питания – POR,
- устройство сброса по снижению питания – BOR,
- сторожевой таймер – WDT,
- таймер ожидания запуска тактового генератора,
- таймер сброса PWRT,
- устройство для внутрисхемной отладки программ – ICD,
- устройство низковольтного программирования – LVP.
Ко второй группе относятся:
- модуль 10-разрядного АЦП,
- модуль программируемого таймера TMR0,
- модуль программируемого таймера TMR1,
- модуль программируемого таймера TMR2,
- модуль электрически перепрограммируемого ПЗУ – EEPROM,
- многофункциональные модули CCP1 и CCP2,
- синхронный последовательный порт MSSP,
- универсальный асинхронно-синхронный порт USART.
В микроконтроллерах типа PIC16F877 имеется модуль параллельного порта.
Рассмотрим работу отдельных элементов и блоков микроконтроллера.
3.3. Блоки памяти.
В рассматриваемом микроконтроллере есть два вида памяти трех типов. Первый вид – это память программ типа FLASH, объемом 4К четырнадцатиразрядных слов (в микроконтроллерах PIC16F876 – 8K). Организация памяти программ приведена на рис.1.3. Память предназначена для хранения программы работы микроконтроллера, управляется счетчиком команд – РС. В состав памяти входит восьмиуровневый аппаратный стек, недоступный для записи и чтения программистом, четыре вектора сброса (адреса 0000 -0003 h), и один вектор прерывания с адресом 0004h. Остальная область FLASH- памяти разделена на две (четыре для PIC16F876) страницы с адресами 0005h – 07FFh и 0800h – 0FFFh. Карта распределения памяти данных приведена на рис. 1.4. и 1.5.
Память данных разделена на четыре банка: банк 0, банк 1, банк 2, и банк 3. Первые два банка с адресами 00h – 7Fh и 80h – FFh представляют собой ОЗУ статического типа, т.е. при выключении питания информация разрушается. Вторые два банка с адресами 100h – 17Fh и 180h – 1FFh представляют собой ППЗУ типа EEPROM, поэтому после выключения питания информация сохраняется. Активизация (выбор) требуемого банка осуществляется установкой разрядов регистра специального назначения STATUS в соответствии с таблицей 1.
Таблица 3.
-
Разряды: PR1:PR0
Банк
00
0
01
1
10
2
11
3
Ячейки всех банков памяти данных в верхней части адресов зарезервированы под регистры специального назначения, остальные ячейки представляют собой регистры общего назначения. Некоторые регистры специального назначения в зависимости от частоты использования могут отображаться в нескольких банках, например регистр STATUS отображается во всех четырех банках и т.п.
