
- •Г.И.Загарий, н.О.Ковзель, в.С.Коновалов, в.И.Моисеенко, в.И.Поддубняк, а.И.Стасюк
- •Часть 2. Характеристики микроконтроллеров и плк
- •Рецензенты:
- •Isbn – 5–7763–0384–2
- •Isbn – 966–7561–23–2
- •Isbn – 966-7561-23-2
- •Isbn – 5–7763–0384-2
- •Содержание
- •Введение
- •Раздел 1
- •1 Микроконтроллеры фирмы Atmel
- •1.1 Микроконтроллеры серии ат89, совместимые с mcs-51™
- •1.2 Микроконтроллеры avr серии ат90 с risc-архитектурой
- •2. Микроконтроллер aDμC812 семейства MicroConverter™ фирмы analog devices
- •3 Микроконтроллеры sx18ac/sx28ac фирмы scenix
- •4 Микроконтроллеры фирмы motorola
- •5 Микроконтроллеры семейства z8 фирмы zilog
- •6 Микроконтроллеры фирмы holtek
- •7 Рiс – микроконтроллеры фирмы microchip
- •7.1 Микроконтроллер pic16f84
- •7.1.1 Архитектура микроконтроллера pic16f84
- •7.1.2 Типы корпусов и исполнения
- •7.1.3 Назначение выводов
- •7.1.4 Регистры pic16f84
- •7.1.5 Прямая и косвенная адресация регистров
- •7.1.6 Модуль таймера/счетчика
- •7.1.7 Предварительный делитель
- •7.1.8 Регистр слова состоянияStatus
- •7.1.8.1 Программные флаги регистра слова состояния
- •7.1.8.2 Аппаратные флаги состояния
- •7.1.9 Регистр option
- •7.1.11 Организация встроенного пзу
- •7.1.12 Программный счетчик и адресация пзу
- •7.1.13 Стек и возвраты из подпрограмм
- •7.1.14 Данные в eeprom
- •7.1.15 Управление eeprom Управляющие регистры для eeprom
- •Регистры eecon1 и eecon2
- •7.1.16 Организация прерываний
- •Внешнее прерывание
- •Прерывание от переполнения счетчика/таймера
- •Прерывание от порта rb
- •Прерывание от eeprom
- •7.1.17 Регистры (порты) ввода/вывода
- •7.1.18 Использование портов ввода/вывода ra и rb Организация двунаправленных портов
- •Последовательное обращение к портам ввода/вывода
- •7.1.19 Специальные функции
- •Сторожевой таймер wdt
- •Тактовый генератор
- •Таймер сброса dtr
- •Биты конфигурации
- •Защита программы от считывания
- •Режим пониженного энергопотребления
- •7.2 Обзор команд и обозначения
- •7.2.1 Описание команд
- •7.3Технология разработки и отладки рабочих программ для омк рiс16/17
- •7.3.1 Правила записи программ на языке Ассемблера
- •Операция
- •Операнд
- •Директивы Ассемблера
- •7.3.2 Структура рабочей программы
- •7.3.3 Преобразование исходного текста рабочей программы в объектный модуль
- •7.4 Интегрированная среда разработки рабочих программ mplab для омк pic
- •7.4.1 Назначение и основные функциональные возможности mplab
- •7.4.2 Краткая характеристика основных программ Редактор mplab
- •Ассемблер mpasm
- •Компилятор mplab-c
- •Программный симулятор-отладчик mplab-sim
- •7.4.3 Главное окно средыMplab Главное меню mplab
- •МенюFile
- •МенюProject
- •МенюEdit
- •МенюDebug (отладка)
- •Меню picstart plus (меню программирования)
- •МенюOptions (параметры)
- •МенюTools
- •7.4.4 Инструментальная панельMplab
- •7.4.5 Строка состояния mplab
- •7.5 Пример разработки программы с использованием mplab
- •7.5.1 Постановка задачи и разработка алгоритма ее решения
- •7.5.2 Написание исходного текста программы
- •Раздел 2
- •8. Характеристики программируемых логических контроллеров
- •8.1. Контроллеры семейства модикон
- •8.1.1. Контроллер tsx 07 Nano
- •Варианты конфигураций
- •Импульсные выходы
- •Программное обеспечение
- •Контрольные вопросы:
- •8.1.2. Контроллер tsx Momentum Общая характеристика
- •Концепция построения
- •Архитектура tsx Momentum
- •Подключение tsx Momentum к сети Modbus Plus
- •Коммуникационный адаптер для сети Interbus
- •Коммуникационный адаптер для сети Profibus dp
- •Коммуникационный адаптер для сети fipio
- •Коммуникационный адаптер для сети Ethernet I/o
- •Базовые модули ввода – вывода
- •Заключение
- •Контрольные вопросы
- •8.1.3. Микроконтроллер tsx 37 Micro Общая характеристика
- •Базовое исполнение tsx 37-10
- •Дисплейный блок
- •Базовое исполнение tsx 37-21 и tsx 37-22
- •Источники питания
- •Коммуникационные возможности
- •Заключение
- •Контрольные вопросы
- •8.2. КонтроллерыTsxQuantum Общая характеристика
- •Источники питания
- •Модули ввода-вывода
- •Модули интерфейса Quantum
- •Заключение
- •Контрольные вопросы
- •8.3. Контроллеры Siemens
- •8.3.1. КонтроллерSimaticS7-200
- •Центральные процессоры
- •Входы и выходы контроллеров s7-200
- •Коммуникационный модуль
- •8.3.2.Контроллер Simatic s7-300
- •Центральные процессоры
- •Сигнальные модули
- •Функциональные модули
- •Коммуникационные модули
- •Заключение
- •Контрольные вопросы
- •8.3.3. Контроллер Simatic s7-400
- •Центральные процессоры
- •Модули ввода-вывода
- •Функциональные модули
- •Коммуникационные процессоры
- •Блоки питания
- •Заключение
- •Контрольные вопросы
- •Раздел 3
- •9. Разработка микропроцессорных систем железнодорожной автоматики
- •9.1. Постановка задачи
- •9.2. Характеристика входных и выходных сигналов.
- •9.3. Разработка структуры системы
- •9.4. Конфигурация цепей ввода-вывода
- •9.5. Определение необходимого количества модулей ввода-вывода
- •9.6.Принципиальные и монтажные схемы
- •Индивидуальные задания
- •10. Примеры практической реализации микропроцессорных систем
- •10.1.Микропроцессорная диспетчерская централизация
- •Объекты контроля
- •Объекты управления
- •10.2.Микропроцессорный маршрутный набор электрической централизации
- •10.2.1 Постановка задачи
- •10.2.2 Общая структура системы управления.
- •10.2.3 Расчет количества входных и выходных сигналов.
- •Расчет потребного количества выходов
- •Управление стрелкой
- •Перечень объектов контроля
- •Расчет потребного количества входов
- •Выбор конфигурации программируемого логического контроллера
- •Разработка структуры информационного взаимодействия компонентов системы
- •Программируемые контроллеры для систем управления.
- •Часть 2. Характеристики микроконтроллеров и плк
- •61052, Харьков, ул. Красноармейская, 7, тел. 24-22-98.
- •61052, Харків, вул. Червоноармійська, 7, тел. 24-22-98.
Внешнее прерывание
Внешнее прерывание на линии RB0/INT осуществляется по фронту: либо по нарастающему (если бит 6 INTEDG=1 в регистре OPTION), либо по спадающему фронту (если INTEDG=0). Когда фронт обнаруживается на линии INT, то бит запроса INTF устанавливается (INTCON <1>). Это прерывание может быть замаскировано установкой управляющего бита INTE в ноль (INTCON <4>). Бит запроса INTF должен быть очищен прерывающей программой перед тем, как опять разрешить это прерывание. Прерывание INT может вывести процессор из режима SLEEP, если перед входом в этот режим бит INTE был установлен в единицу. Состояние бита GIE также определяет: будет ли процессор переходить на подпрограмму прерывания после просыпания из режима SLEEP.
Прерывание от переполнения счетчика/таймера
Переполнение счетчика (FFh→00h) установит бит запроса RTIF (INTCON<2>). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски RTIE (INTCON<5>).
Сброс запроса RTIF производится в программе обработки.
Прерывание от порта rb
Любое изменение сигналов на четырех входах порта RB<7:4> установит бит RBIF (INTCON<0>). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски RBIE (INTCON<3>).
Сброс запроса RBIF производится в программе обработки.
Прерывание от eeprom
Флаг запроса прерывания по окончании записи в EEPROM, EEIF (EECON1<4>) устанавливается по окончании автоматической записи данных в EEPROM. Это прерывание может быть замаскировано сбросом бита EEIE (INTCON<6>).
Сброс запроса EEIF производится в программе обработки.
7.1.17 Регистры (порты) ввода/вывода
Кристалл имеет два порта: порт RA – 5 бит и порт RB – 8 бит с побитовой индивидуальной настройкой на ввод или на вывод.
Порт RA – это порт шириной 5 бит, соответствующие выводы кристалла RA<4:0>. Линии RA<3:0> двунаправленные, а линия RA4 -выход с открытым коллектором. Адрес регистра порта А – 05h. Относящийся к порту А управляющий регистр TRISA расположен на первой странице регистров по адресу 85h. TRISA<4:0> – это регистр шириной 5 бит. Если бит управляющего TRISA регистра имеет значение 1, то соответствующая линия порта А будет установлена на ввод. Состояние 0 переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки. Далее приведена структурная схема выводов RA0..RA3 (рис. 7.10).
Рис. 7.10
Вывод RA4/RT имеет несколько другую структуру. Она приведена ниже (рис. 7.11).
Порт RB – это двунаправленный порт шириной восемь бит (адрес регистра 06h). Относящийся к порту RB управляющий регистр TRISB расположен на первой странице регистров по адресу 86h. Если бит управляющего регистра TRISB имеет значение 1, то соответствующая линия порта В будет устанавливаться на ввод. 0 переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки.
У каждого вывода порта RB имеется небольшая активная нагрузка (около 100мкА) на линию питания. Она автоматически отключается, если эта линия запрограммирована как вывод. Более того, управляющий бит RBPU OPTION<7> может отключить (RBPU=1) все нагрузки. Сброс при включении питания также отключает все нагрузки.
Рис. 7.11
Название вывода |
Функция вывода |
Другие функции |
RA0 |
Порт ввода/вывода. Входные уровни ТТЛ |
– |
RA1 |
Порт ввода/вывода. Входные уровни ТТЛ |
– |
RA2 |
Порт ввода/вывода. Входные уровни ТТЛ |
– |
RA3 |
Порт ввода/вывода. Входные уровни ТТЛ |
– |
RA4/RT |
Порт ввода/вывода. Выход – открытый коллектор. Вход - триггер Шмитта |
Вход внешнего тактового сигнала для таймера/ счетчика |
Четыре линии порта RB (RB<7:4>) имеют способность вызвать прерывание при изменении значения сигнала на любой из них. Если эти линии настроены на ввод, то они опрашиваются и защелкиваются в цикле чтения Q1. Новая величина входного сигнала сравнивается со старой в каждом командном цикле. При несовпадении значения сигнала на выводе и в защелке, генерируется высокий уровень. Выходы детекторов "несовпадений" RB4, RB5, RB6 и RB7 объединяются по ИЛИ и генерируют прерывание RBIF (запоминаемое в INTCON<0>). Любая линия, настроенная как вывод, не участвует в этом сравнении. Вывести кристалл из режима SLEEP может прерывание. В подпрограмме обработки прерывания следует сбросить бит запроса прерывания одним из следующих способов:
– запретить прерывания при помощи обнуления бита RBIE INTCON<3>;
– прочитать порт В. Это завершит состояние сравнения;
– обнулить бит RBIF (INTCON<0>).
Прерывание по несовпадению и программно устанавливаемые внутренние активные нагрузки на этих четырех линиях могут обеспечить простой интерфейс например с клавиатурой, с выходом из режима SLEEP по нажатию клавиш.
Вывод RB0 совмещен с входом внешнего прерывания INT.
Название вывода |
Функция вывода |
Другие функции |
RB0/INT |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка |
Вход внешнего прерывания |
RB1 |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка |
– |
RB2 |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка |
– |
RB3 |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка |
– |
RB4 |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка. |
Прерывание при изменении |
RB5 |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка |
Прерывание при изменении |
RB6 |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка |
Прерывание при изменении |
RB7 |
Порт ввода/вывода. Входные уровни ТТЛ и внутренняя программируемая активная нагрузка |
Прерывание при изменении |