- •Г.И.Загарий, н.О.Ковзель, в.С.Коновалов, в.И.Моисеенко, в.И.Поддубняк, а.И.Стасюк
- •Часть 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.
7.4.5 Строка состояния mplab
Строка состояния описывает информацию, представленную в табл. 7.4.1.
Таблица 7.4.1
Строка состояния MPLAB
Название окна |
Исходное состояние |
Описание |
Следствие двойного нажатия |
Положение маркера (строка, колонка) в активном окне |
Ln 1 Col 1 |
Отображает номер строки и столбца положения маркера в активном окне |
Открывает диалоговое окно "Goto" |
Количество строк в файле |
66 |
Отображают число строк в текущем текстовом файле |
Нет воздействия |
Изменение файла |
# |
Отображен символ, # если файл был изменен. |
Нет воздействия |
Запись – только чтение |
WR |
Отображает возможность записи – только чтения. WR = файл доступен для редактирования RO = файл доступен только для чтения |
Переключение между записью и только чтением |
Длина текстовой строки |
NoWrap |
Отображает длину текстовой строки. Пример 1: NoWrap– не задана Пример 2: WR 72 – задана длина 72 символа |
Переключение между не заданной длиной строки и заданной длиной в 72 символа |
Вставка/замена
|
INS |
Переключение вставка/замена символа. INS= вставка символа OVR= замена символа |
Переключение вставка/замена символа. INS= вставка символа OVR= замена символа |
Текущий Процессор |
PIC16F84 |
Отображает выбранный процессор |
Нет воздействия |
Текущий счетчик команд |
pc:0x5f |
Отображает текущее состояние счетчика команд |
Открывает диалог изменения счетчика команд |
Таблица 7.4.1 (продолжение)
Текущее значение регистра w |
W:0x00 |
Отображает текущее значение регистра w |
Нет воздействия |
Биты состояния |
ov Z dc c |
ПРОПИСНЫЕ СИМВОЛЫ = (1) строчные символы = (0) |
Нет воздействия |
Разрешение/запрет прерывания. |
BkOn |
Отображает текущее состояние разрешения прерывания |
Переключает, разрешение прерывания |
Текущее операционное окружение |
Sim |
Отображает текущее операционное окружение EO= редакторMPLAB; Sim = симулятор – MPLAB-SIM; Si= симулятор –SIMICE; ICE= эмулятор –MPLAB-ICE Em = эмулятор – PICMASTER |
Вызывает диалоговое окно операционного окружения |
Частота процессора |
4MHz |
Отображается частота установленного процессора |
Вызывает диалоговое окно установки частоты процессора |
Текущая инструментальная строка |
Edit |
Отображает название текущей инструментальной строки |
Нет воздействия |
7.5 Пример разработки программы с использованием mplab
7.5.1 Постановка задачи и разработка алгоритма ее решения
Возьмем для примера следующую, достаточно часто встречающуюся на практике задачу, в которой необходимо измерить временной интервал между двумя импульсами в сигнале, поступающем от датчика, и выдать полученный результат в виде параллельного двоичного кода в порт ввода/вывода. Период следования входных импульсов Тидолжен удовлетворять следующим ограничениям:
Tиmin >= 10tц , Tиmax <= 500 tц , (7.1)
где tц– длительность цикла выполнения команды микроконтроллера.
Ограничения, накладываемые на Ти, диктуются: минимальная величинаTиmin– количеством команд, которые необходимо выполнить за время Ти, а максимальнаяTиmax– объемом счетчика таймера.
Для решения поставленной задачи выберем микроконтроллер PIC 16F84 с многократно электрически перепрограммируемыми пользователем ППЗУ программ и данных-констант, а также имеющим возможность работы с прерываниями. Причем, в этом микроконтроллере прерывание может возникать по целому ряду причин и в том числе при переполнении таймера/счетчикаTMR0.
Основываясь на знании особенностей архитектуры и функционирования микроконтроллера РIC 16F84, можно предложить один из возможных вариантов алгоритма решения поставленной задачи. Последовательность действий микроконтроллера при этом должка быть следующей:
1. Выполнить процедуру ожидания поступления первого импульса, например, на вывод микроконтроллера RA1 (стандартная процедура «Ожидание события»).
2. После обнаружения переднего фронта первого импульса запустить внутренний таймер/счетчик TMR0.
3. Организовать процедуру ожидания поступления второго импульса на тот же вывод RA1.
4. После обнаружения переднего фронта второго импульса прочитать код в регистре таймера/счетчика TMR0.
5. Полученный из регистра таймера/счетчика параллельный двоичный код выдать в порт RВ в сопровождении стробирующего сигнала, свидетельствующего о готовности данных на выходе микроконтроллера. Стробирующий сигнал выдать на выводRA0.
Предложенные рассуждения оформим в виде блок-схемы алгоритма реализации поставленной задачи. Эта блок-схема представлена на рис. 7.13. Блоками 2 и 3 представлена реализация процедуры ожидания переднего фронта рассматриваемого импульса, от которого начинается отсчет времени. Аналогичные действия реализуются с помощью блоков 6 и 7 для ожидания переднего фронта второго импульса, при получении которого фиксируется прошедшее время (блок 8 – прочитать код изTMR0). Блок 9 описывает вывод кода времени на выходы порта В, а блок 10 предназначен для формирования сигнала, фиксирующего наличие на выходах порта В этого кода.
Рис. 7.13. Блок-схема алгоритма измерения времени между двумя импульсами