
- •Г.И.Загарий, н.О.Ковзель, в.С.Коновалов, в.И.Моисеенко, в.И.Поддубняк, а.И.Стасюк
- •Часть 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.
Режим пониженного энергопотребления
Режим пониженного энергопотребления SLEEP предназначен для обеспечения очень малого тока потребления в ожидании (менее 1 мкА при включенном сторожевом таймере). Вход в этот режим осуществляется командой SLEEP. По этой команде, если WDT разрешен, то он сбрасывается и начинается счет времени, бит PD в регистре статуса (О) сбрасывается, бит ТО устанавливается, а встроенный генератор выключается. Выход из режима SLEEP осуществляется в результате следующих событий:
– внешний сброс;
– сброс при срабатывании WDT (если он разрешен);
– прерывания (если они разрешены).
7.2 Обзор команд и обозначения
Каждая команда PIC16F84 – это 14-битовое слово, которое разделено по смыслу на две части: код операции и поле для одного и более операндов, которые могут участвовать в этой команде. Система команд PIC16F84 включает в себя байт-ориентированные команды, команды, оперирующие с константами, бит-ориентированные команды и команды передачи управления. Описание полей команд и принятых обозначений представлено в табл. 7.2.1 и на рис. 7.12,аи рис. 7.12,б.
Для байт-ориентированных команд "f" обозначает регистр операнда, с которым производится действие; "d" – определяет, куда отправить результат. Если "d" =0, то результат будет помещен в регистр W, при "d"=1 результат будет помещен в регистр "f", указанный в команде.
Для бит-ориентированных команд "b" обозначает номер бита, участвующего в команде, а "f" – это регистр, в котором этот бит расположен.
Для команд передачи управления и операций с константами, "k" обозначает восьми или одиннадцатибитную константу.
Все команды выполняются в течение одного командного цикла. В двух случаях выполнение команды занимает два командных цикла:
– проверка условия и переход;
– изменение программного счетчика как результат выполнения команды.
Один командный цикл состоит из четырех периодов тактового генератора. Таким образом, при использовании генератора с частотой 4 МГц время выполнения командного цикла составляет 1 мкс.
Таблица 7.2.1
Поле |
Описание |
f |
Адрес регистра в файле регистров |
W |
Регистр слова (Working register) аккумулятор |
b |
Адрес (номер) бита в 8-ми битовом регистре |
k |
Поле константы, данного или метки |
x |
Неопределенное состояние (=0 или =1). Ассемблер генерирует код с х=0 |
d |
Выбор места назначения результата; если d=0, результат вW, еслиd=1, результат в регистреf. По умолчаниюd=1. |
Таблица 7.2.1 (продолжение)
label |
Метка |
TOS |
Вершина стека (Top of Stack) |
PC |
Программный счетчик |
PCLATH |
Старшая часть программного счетчика |
GIE |
Глобальный бит прерывания |
WDT |
Сторожевой таймер/счетчик (Watchdogtimer/counter) |
|
Тайм-аут |
|
|
dest |
Назначение |
[ ] |
Опция |
( ) |
Содержание |
→ |
Направить в |
< > |
Поле бит регистра |
Î |
Из множества |
italics |
Использование означенного терма |
Байт-ориентированные регистровые команды
13 |
. . . . |
8 |
7 |
6 |
. . . . |
0 |
Код операции (OPCODE) |
d |
f (FILE) |
d= 0 для назначения результата вW;
d= 1 для назначения результата в f;
f – 7-битный адрес регистра.
Бит-ориентированные регистровые команды
13 |
. . . . |
10 |
9 |
8 |
7 |
6 |
. . . . |
0 |
Код операции (OPCODE) |
b (бит) |
f (FILE) |
b– 3-битный адрес бита;
f – 7-битный адрес регистра.
Команды операций с константами
13 |
. . . . |
8 |
7 |
|
0 |
Код операции (OPCODE) |
k(константа) |
Команды управления (только GOTOиCALL)
13 |
12 |
11 |
10 |
. . . . |
0 |
Код операции (OPCODE) |
k(константа) |
Рис. 7.12. а
Байт-ориентированные команды
Мнемокод |
Название команды |
Количество циклов |
Изменяемые биты состояния |
Примечания |
ADDWF f,d |
Сложение регистров W с f |
1 |
C, DC, Z |
1,2 |
ANDWF f,d |
Логическое И регистров W и f |
1 |
Z |
1,2 |
CLRF f |
Сброс регистра f |
1 |
Z |
3 |
CLRW - |
Сброс регистра W |
1 |
Z |
|
COMF f,d |
Инверсия регистра f |
1 |
Z |
1,2 |
DECF f,d |
Декремент регистра f |
1 |
Z |
1,2 |
DECFSZ f,d |
Декремент регистра f, пропустить команду, если 0 |
1, (2) |
Нет |
1,2 |
INCF f,d |
Инкремент регистра f |
1 |
Z |
1,2 |
INCFSZ f,d |
Инкремент регистра f, про-пустить команду, если 0 |
1, (2) |
Нет |
1,2 |
IORWF f,d |
Логическое ИЛИ регистров W и f |
1 |
Z |
1,2 |
MOVF f,d |
Пересылка регистра f |
1 |
Z |
1,2 |
MOVWF f |
Пересылка регистра W в регистр f |
1 |
Нет |
|
NOP - |
Холостая команда |
1 |
Нет |
|
RLF f,d |
Сдвиг регистра f влево через перенос |
1 |
C |
1,2 |
RRF f,d |
Сдвиг регистра f вправо через перенос |
1 |
C |
1,2 |
SUBWF f,d |
Вычитание регистра W из регистра f |
1 |
C, DC, Z |
1,2 |
SWAPF f,d |
Обмен местами тетрад в f |
1 |
Нет |
1,2 |
XORWF f,d |
Исключающее ИЛИ регистров W и f |
1 |
Z |
1,2 |
ADDLW k |
Сложение константы k с регистром W |
1 |
C, DC, Z |
|
ANDLW k |
Логическое И константы k и регистра W |
1 |
Z |
|
IORLW k |
Логическое ИЛИ константы k и регистра W |
1 |
Z |
|
SUBLW k |
Вычитание регистра W из константы k |
1 |
C, DC, Z |
|
MOVLW k |
Пересылка константы k в регистр W |
1 |
Нет |
|
XORLW k |
Исключающее ИЛИ константы k и регистра W |
1 |
Z |
|
OPTION |
Загрузка регистра W в регистр OPTION |
1 |
Нет |
4 |
TRIS f |
Загрузка регистра W в регистр TRIS |
1 |
Нет |
4 |
Бит-ориентированные команды
Мнемокод |
Название команды |
Количество циклов |
Изменяемые биты состояния |
Примечания |
BCF f,b |
Сброс бита в регистре f |
1 |
Нет |
1,2 |
BSF f,b |
Установка бита в регистре f |
1 |
Нет |
1,2 |
BTFSC f,b |
Пропустить команду, если бит равен нулю |
1, (2) |
Нет |
3 |
BTFSS f,b |
Пропустить команду, если бит равен единице |
1, (2) |
Нет |
3 |
Переходы
Мнемокод |
Название команды |
Количество циклов |
Изменяемые биты состояния |
Примечания |
CALL k |
Вызов подпрограммы по адресу k |
2 |
Нет |
|
CLRWDT |
Сброс Watchdog таймера |
1 |
|
|
GOTO k |
Переход по адресу k |
2 |
Нет |
|
RETLW k |
Возврат из подпрограммы с загрузкой константы k в W |
2 |
Нет |
|
RETFIE |
Возврат из прерывания |
2 |
Нет |
|
RETURN |
Возврат из подпрограммы |
2 |
Нет |
|
SLEEP |
Переход в режим SLEEP |
1 |
|
|
Рис. 7.12. б
Примечания
1. Если модифицируется значение в порте ввода/вывода (например, MOVF PORTB,1), то используется значение, считываемое с выходов. Например, если в выходную защелку разряда, сконфигурированного на ввод, подается 1, а внешнее устройство формирует на нем 0, то в этом разряде при последующем считывании будет прочитан 0.
2. Если данная команда использует регистр TMR0 (и в ней d=1), то предделитель, если он подключен, обнуляется.
3. Если программный счетчик (PC) модифицирован или результат проверки является истинным (true), команда выполняется за два цикла. Второй цикл выполняется как NOP.
4. Команда не рекомендуется к использованию.