Вы находитесь на странице: 1из 50

Федеральное агентство морского и речного транспорта

Федеральное государственное образовательное учреждение


высшего профессионального образования
“Волжская государственная академия водного транспорта”

Кафедра радиоэлектроники

Л.С. Грошева, В.И. Плющаев

Аппаратная база и программирование


микропроцессорных систем управления

Учебно-методическое пособие
для студентов заочного обучения по специальности 18.04.04
«Эксплуатация электрооборудования и средств автоматики»

Издательство ФГОУ ВПО «ВГАВТ»


Н. Новгород, 2009

1
УДК 681.325.5: 621.382
Г 89

Грошева Л.С., Плющаев В.И. Аппаратная база и программирование


микропроцессорных систем управления. Учебно-методическое
пособие для студентов заочного обучения по специальности
18.04.04 «Эксплуатация электрооборудования и средств
автоматики»/ Л.С. Грошева, В.И. Плющаев. – Н. Новгород:
Издательство ФГОУ ВПО «ВГАВТ», 2009. – 49с.

Учебно-методическое пособие предназначено для обучения


студентов академии заочного обучения специальности 18.04.04
«Эксплуатация электрооборудования и средств автоматики» по
дисциплине «Микропроцессорные системы управления».

Рекомендовано к изданию кафедрой радиоэлектроники.


Протокол № 3 от 14.10.2008г.

© ФГОУ ВПО «ВГАВТ», 2009

2
1. Архитектура систем управления и контроля

Характерной особенностью современного судостроения


является создание судов с высокой степенью комплексной
автоматизации, которая позволяет существенно повысить технико-
экономическую эффективность эксплуатации. В настоящее время
автоматизация охватывает практически все установки, агрегаты,
механизмы и системы судна.
Увеличение объема автоматизации, ужесточение требований к
качеству функционирования управляющих устройств, усложнение
алгоритмов управления, решение задач диагностирования и
прогнозирования, стремление к унификации и стандартизации
оборудования предопределили широкое использование на судах
различного рода микропроцессорной (МП) техники.
Архитектура системы управления есть способ организации
сбора и обработки информации, а также формирования и передачи
управляющих воздействий.
Различают три основных вида архитектуры систем управления:
 централизованные - вся информация о технологических
объектах концентрируется в едином управляющем
центре и управление любым узлом осуществляется из
него;
 распределенные – для контроля и управления
отдельными объектами и узлами устанавливается
специальное устройство управления;
 иерархические распределенные - контроль и управление
отдельными объектами и узлами осуществляется
специальными устройствами управления,
объединенными в единую сеть с помощью центрального
узла управления и контроля.
В мировом судостроении наиболее востребованными являются
иерархические распределенные (топологически и функционально)
мультипроцессорные системы управления.
К преимуществам таких систем можно отнести:
 высокую надежность – при выходе из строя одного из
узлов управления, все остальные продолжают
функционировать в обычном режиме;
3
 возможность гибкого наращивания системы – без
необходимости отключения управления всеми
остальными объектами;
 относительную простоту разработки, внедрения и
эксплуатации;
 унификацию аппаратной базы;
 обеспечение дистанционного контроля и управления
объектами и т.п.
Основополагающий принцип при построении иерархических
систем – на верхнем уровне принимаются общезначимые для
системы решения, на нижних уровнях управляющие воздействия
местного значения генерируются автономно. Возможность
независимого управления местными подсистемами (нижние
уровни) в случае выхода из строя верхнего уровня позволяет
избежать аварийных ситуаций.

2. Аппаратная база для систем


автоматического управления

Современной базой для создания систем управления и


контроля является микропроцессорная техника. Эта техника
является универсальным средством, придающим системам
контроля и управления, наряду с широкими вычислительными
возможностями, повышенные модернизационные качества и
гибкость, резко расширяющим их функциональные возможности и
повышающим надежность. МП техника позволяет максимально
унифицировать модули систем контроля и управления как по
применяемым комплектующим, так и по принятым схемным и
функциональным решениям. Учет индивидуальных особенностей
судна и его оборудования часто может быть обеспечен не
изменением аппаратной части (как при использовании
традиционной элементной базы), а путем модификации
программного обеспечения.

4
2.1 Микроконтроллеры семейства MCS-51

В настоящее время в МП технике выделился


самостоятельный класс больших интегральных схем (БИС) для
решения задач «интеллектуализации» оборудования различного
назначения – микроконтроллеры. Микроконтроллер представляет
собой БИС, включающую в свой состав все устройства,
необходимые для реализации цифровой системы управления
минимальной конфигурации: процессор, память данных, память
программ, встроенный генератор тактовых сигналов, порты ввода-
вывода для связи с внешними периферийными устройствами, блок
прерываний, таймеры-счетчики, последовательный канал связи.
Специфическая организация ввода-вывода информации
предопределяет область их применения в качестве
специализированных вычислителей, включаемых в контур
управления объектами или процессами. Аппаратно-программные
средства и система команд также приспособлены к решению задач
управления и регулирования. Использование микроконтроллеров
позволяет достичь исключительно высоких показателей
эффективности при низкой стоимости. В настоящее время при
создании нижних уровней управляющих систем микроконтроллеры
являются наиболее предпочтительными. Сейчас около двух третей
мирового рынка МП средств занимают микроконтроллеры.
Широкий сектор рынка микропроцессоров составляют
микроконтроллеры семейства МCS-51, производимые такими
известными фирмами как INTEL, ATMEL, PHILIPS и др.
Некоторые технические характеристики семейства MCS-51
(включает в свой состав многие десятки модификаций):
 объем внутренней оперативной памяти 64-1024 байт;
 объем внутренней памяти программ (однократно
программируемая, с УФ стиранием, флэш-память) – 1-32
Кбайт;
 рабочая частота – 0 – 40 МГц;
 напряжение питания – 1,8 – 6 В;
 температурный диапазон – от –55 до +125 0С.

5
В данной работе будет использована БИС семейства МCS-51
89С51 (рис. 1).
Микросхема имеет следующие характеристики:
 встроенная память программ емкостью 4096 байт с
электрическим стиранием (с возможностью расширения до
64 Кбайт за счет подключения внешней памяти программ );
 встроенная память данных емкостью 128 байт (с
возможностью расширения до 64 Кбайт за счет
подключения внешней памяти данных );
 32 линии ввода/вывода, организованных в четыре 8-
разрядных порта;
 последовательный порт;
 два шестнадцатиразрядных таймера/счетчика;
 двухуровневая система внешних прерываний;
 возможность побайтовой и побитовой адресации;
 частота тактового генератора 1,2-12 МГц.
Вход ЕА (в некоторых модификациях DEMA – линия 31). Этот
вход определяет вид памяти (внутренняя или внешняя), с которой
будет работать микросхема. При подаче на вход логической 1
выполняется программа из внутренней памяти, при подаче
логического 0 – из внешней памяти по адресам от 0 до 64 Кбайт.
Входы Х1 и Х2 (линии 19 и 18). Служат для подключения ко
входу внутреннего генератора кварцевого резонатора,
определяющего тактовую частоту.
Вход RST (линия 9). При подаче логической 1 происходит сброс
микросхемы. RC цепь на входе (рис. 1) обеспечивает
формирование сигнала сброса при включении питания.
Сигнал PSEN (в некоторых модификациях PME – линия 29).
Управляющий сигнал, по которому данные из внешней памяти
программ считываются через порт Р0.
Сигнал ALE (линия 30). Управляющий сигнал, по которому
младший байт адреса внешней памяти, выставленный через порт
Р0, фиксируется в буферном регистре.

6
+5B
R1 DD1
31 39
EA P0.0
P0.1 38
C1 19
X1 P0.2 37
P0.3 36
C2 18 35
X2 P0.4
P0.5 34
R2 9 33
RST P0.6
P0.7 32
C3
1
P1.0
2
P1.1
3 29
P1.2 PSEN
4
P1.3
5 30
P1.4 ALE
6
P1.5
7
P1.6
8
P1.7
10 21
P3.0 RxD P2.0
11 22
P3.1 TxD P2.1
12 23
P3.2 INT0 P2.2
13 24
P3.3 INT1 P2.3
14 25
P3.4 T0 P2.4
15 26
P3.5 T1 P2.5
16 27
P3.6 WR P2.6
17 28
P3.7 RD P2.7
DD1 – 89C51
R1,R2 – С2-33 0.125Вт 8.2 кОм ±10% +5B 40
С1, С2 – К10-17-1а 33пкФ±20% 20
С3– К10-17-1а 10мкФ±20%
GND

Рис.1 Микроконтроллер 89С51

Базовая архитектура микроконтроллеров семейства


MCS-51
Внутренняя структура микроконтроллера MCS-51 приведена на
рис.2.
Блок управления предназначен для синхронизации работы
всех блоков микроконтроллера, а также для приема, дешифрации
7
кода команды и формирования управляющих воздействий для её
выполнения.
Блок счетчика команд предназначен для хранения адреса
очередного байта программы, а также формирования адреса для
считывания кода из памяти программ с автоматическим
увеличением адреса.
АЛУ (арифметико-логическое устройство) предназначено
для выполнения арифметических, логических команд, команд
сдвига и обнуления.
Порты Р0-Р3 предназначены для организации обмена данными
между микроконтроллером и внешними устройствами. Кроме того,
порты имеют специальные функции для обслуживания внутренних
периферийных устройств, организации программирования
внутренней памяти программ и реализации доступа к внешней
памяти.
Память программ предназначена для хранения программного
кода, в рабочем режиме доступна только для чтения, запись
реализуется только в режиме программирования. Может быть
реализована в виде ПЗУ или РПЗУ.
Память данных предназначена для хранения текущих данных,
доступна для чтения и записи информации. Не сохраняет
информацию при отключении питания.
Блок таймеров/счетчиков включает в свой состав два
таймера/счетчика, регистр режимов TMOD и регистр управления
TCON. Таймеры/счетчики предназначены для организации
временных задержек, выполнения времязадающих функций и
подсчета внешних событий.
Блок прерываний осуществляет обработку запросов
прерываний в соответствии с настройками регистра разрешений IE
и регистра управления приоритетностью прерываний IP.
Блок последовательного канала предназначен для
организации приема и передачи информации в последовательном
виде в соответствии с настройками регистра SCON.

Блок управления
Для формирования синхроимпульсов генератор тактовых
импульсов, входящий в состав блока управления, использует

8
сигналы с внешнего кварцевого генератора, подключенного к
входам Х1 и Х2.
ША ШД
ГТИ Блок управления Блок счетчика команд
Дешиф- Буфер
Регистр
ратор команд
ПЛМ РА СК +

Сумма Р1 АЛУ Память программ


тор Р2
ДШ Ячейки
РSW Акк памяти

Порт Р0 Память данных


Буфер Фиксатор
ДШ Ячейки
памяти

Блок таймеров/счетчиков
Порт Р2 TMOD TH0 | TL0
Буфер Фиксатор
TCON TH1 | TL1

Запр
Порт Р1 Блок прерываний
прер.
IE IP
Буфер Фиксатор
Обработка

Блок последовательного
Порт Р3 канала
SCON
Буфер Фиксатор TxD
SBUF сдв. регистр
RxD
SBUF сдв. регистр

Рис.2.Внутренняя структура микроконтроллера MCS-51

9
В начале каждого цикла обращения к памяти программ блок
управления формирует управляющие сигналы блоку счетчика
команд для формирования адреса на шину адреса.
Затем считанный из памяти программ код команды по шине
данных поступает в блок управления и записывается в регистр
команд. После этого дешифратор преобразует восьмиразрядный
код команды в 24-разрядный код для программируемой логической
матрицы (ПЛМ), которая формирует управляющие сигналы для
выполнения команды.

Блок счетчика команд


Структура блока счетчика команд приведена на рис.3
Регистр счетчика команд (СК) хранит адрес очередного байта
программного кода.
При получении сигнала от блока управления содержимое
регистра счетчика команд по внутренней 16-разрядной шине блока
отправляется в регистр адреса, где хранится в течение цикла
обращения к памяти и откуда выставляется на шину адреса
микроконтроллера. Одновременно с этим содержимое регистра СК
поступает в блок инкремента, увеличивается на 1, затем
записывается обратно в регистр СК. Таким образом обеспечивается
последовательное считывание программного кода из памяти
программ.

10
ШД ША

Регистр адреса

Буфер СК

8р 16р
Регистр СК

Блок инкремента

Регистр-указатель

Рис.3. Структура блока счетчика команд


Буфер СК предназначен для согласования внутренней 16-
разрядной шины блока и 8-разрядной шины данных
микроконтроллера, используется при операциях чтения и записи
содержимого регистра счетчика команд.
Регистр-указатель данных DPTR используется для
формирования адреса внешней памяти данных.

Арифметико-логическое устройство
Структура арифметико-логического устройства приведена на
рис.4.
Выполнение всех арифметических и логических операций
осуществляется в сумматоре, в который подаются операнды из
регистра аккумулятора и регистра временного хранения. Один из
операндов операции поступает из аккумулятора, а второй из
регистра или ячейки памяти по шине данных.
Результат арифметической или логической операции
записывается в аккумулятор, в случае команд умножения также в
регистр В (старшая часть), при делении в регистр В записывается
остаток.
По результатам выполненной операции формируются признаки
результата и записываются в слово состояния программы PSW. К
признакам относятся такие флаги как Z – признак равенства нулю,
11
С – разряд переноса и др. Кроме того, разряды RS0 и RS1 (PSW.3 и
PSW.4) обеспечивают переключение банка регистров общего
назначения.

Регистр Аккумулятор
аккумулятора

Сумматор Регистр В
Регистр
временного
хранения PSW

ШД
Рис.4. Структура арифметико-логического устройства

Порты микроконтроллера
Порты Р0-Р3 могут работать как независимые порты
ввода/вывода. Непосредственно к линиям портов могут
подключаться периферийные устройства (регистры, некоторые
элементы индикации и т.п.). Каждая линия может быть
использована как для ввода, так и для вывода информации под
управлением программного обеспечения. При подключении
следует учитывать нагрузочную способность линий, т.е. величину
тока, который может обеспечить микросхема в нагрузке. Для
рассматриваемой микросхемы выходной ток линий составляет
единицы миллиампер. Поэтому подключение более мощных
потребителей необходимо производить через буферные схемы
(например, микросхемы 1102АП5,6 обеспечивают выходной ток до
300 мА, регистр 580ВА86 – до 32 мА и т.д.).
При размещении управляющей программы во внутренней
памяти программ и использовании портов для подключения
периферийных устройств можно создавать очень компактные
устройства управления и сбора информации с широкими
функциональными возможностями.
Кроме того, все порты имеют целый ряд дополнительных
функций.
Порт Р0 (Р0.0-Р0.7):
12
 при работе с внешней памятью программ или данных в
начале цикла обращения через Р0 выводятся младшие
разряды адреса, затем по этим линиям передается байт
данных;
 при программировании микросхемы (записи программы во
внутреннюю память программ) и проверке через линии
порта Р0 производится чтение/запись данных.
Порт Р1 (Р1.0-Р1.7):
 используется для передачи младших разрядов адреса при
программировании и проверке микросхемы.
Порт Р2 (Р2.0-Р2.7):
 используется для передачи старших разрядов адреса при
работе с внешней памятью программ и внешней памятью
данных;
 при программировании микросхемы (записи программы во
внутреннюю память программ) и проверке через линии
порта Р2 производится передача старших разрядов адреса и
управляющих сигналов.
Порт Р3 (Р3.0-Р3.7). Линии порта Р3 могут быть использованы
для передачи сигналов управления:
 RxD (линия Р3.0) - передача информации в
последовательном коде;
 TxD (линия Р3.1) - прием информации в последовательном
коде;
 INT0 (линия Р3.2) - вход внешнего сигнала прерывания 0;
 INT1 (линия Р3.3) - вход внешнего сигнала прерывания 1;
 Т0 (линия Р3.4) – вход таймера/счетчика 0 ;
 Т1 (линия Р3.5) вход таймера/счетчика 1;
 WR (линия Р3.6) – сигнал ЗАПИСЬ. Формируется при
передаче байта информации через порт Р0 во внешнюю
память данных;
 RD (линия Р3.7) – сигнал ЧТЕНИЕ. Формируется при
считывании байта через порт Р0 из внешней памяти
данных.
Структура разряда порта представлена на рис.5. Здесь видно,
что выходные каскады порта (образованы транзисторами Т1 и Т2)

13
через мультиплексор МХ могут подключаться либо к выходу
защелок, либо к внутренним шинам Адрес/данные.
5B 5B
Управление
выводов & T1 R1
Вывод
Адрес / 1 P0.X
данные МХ T2

Внутренняя Защелка
шина данных выводов
D Q
_
Запись
C Q B1
выводов
Чтение защелки
Чтение выводов
B2

Рис.5. Структура разряда порта P0

При обращении к внешней памяти по линии Управление


поступает 1, ключ мультиплексора замыкается вверх, вывод Р0.Х
определяется состоянием линии Адрес/данные (при 1 открывается
транзистор Т1, при 0 – транзистор Т2).
В режиме ввода/вывода общего назначения по линии
Управление поступает 0, ключ мультиплексора МХ замкнут вниз,
управление Т1 недоступно.
В режиме ввода через буфер В1 или В2 можно прочитать
состояние защелки или внешнего вывода. Устройство чтения
определяется типом используемой команды.
В режиме вывода при выдаче в защелку состояния 0,
открывается транзистор Т2 и на выводе Р0.Х состояние 0.
Для формирования на выводе состояния 1, необходимо
использовать внешний подтягивающий резистор R1, тогда при
закрытии транзистора Т2 вывод Р0.Х примет состояние 1.

14
Внутренняя память данных.
Адресное пространство внутренней памяти данных
складывается из 128 ячеек собственно ОЗУ и двадцати адресуемых
регистров специального назначения, имеющих адреса со 128 по 255
(рис. 6 ).

7FH Память с байтовым FFH


30H доступом F0H F7 F6 F5 F4 F3 F2 F1 F0 B
E0H E7 E6 E5 E4 E3 E2 E1 E0 A
2FH 7F 7E 7D 7C 7B 7A 79 78 D0H D7 D6 D5 D4 D3 D2 D1 D0 PSW
2EH 77 76 75 74 73 72 71 70 B8H - - - BC BB BA B9 B8 IP
Память с битовым B0H B7 B6 B5 B4 B3 B2 B1 B0 P3
доступом A8H AF - - AC AB AA A9 A8 IE
21H 0F 0E 0D 0C 0B 0A 09 08 A0H A7 A6 A5 A4 A3 A2 A1 A0 P2
20H 07 06 05 04 03 02 01 00 98H 9F 9E 9D 9C 9B 9A 99 98 SKON
90H 97 96 95 94 93 92 91 90 P1
1FH R7 БАНК 3 88H 8F 8E 8D 8C 8B 8A 89 88 TKON
18H R0 80H 87 86 85 84 83 82 81 80 P0

17H R7 БАНК 2
10H R0
Регистры Регистры
0FH R7 БАНК 1 общего специального
08Р R0 назначения назначения

07H R7 БАНК 0
00H R0

Рис.6 Адресное пространство внутренней памяти данных.


В ОЗУ размещается стек, используемый для хранения
содержимого счетчика команд при вызове подпрограмм, а также
для временного хранения данных. Глубина стека, определяемая
восьмиразрядным указателем стека SP, ограничена только объемом
внутреннего ОЗУ.
Первые 32 ячейки ОЗУ разбиты на 4 банка по 8 ячеек в каждом
- регистры общего назначения. В каждом банке регистры имеют
собственные имена, соответственно R0-R7.
Выбор нужного банка регистров осуществляется программно.
Номер банка задается разрядами PSW.3 и PSW.4 регистра PSW.

15
Структура ОЗУ позволяет работать не только с отдельными
ячейками памяти (байтовая адресация), но и с отдельными битами
(побитовая адресация). Прямоадресуемые биты с адресами 0 – 127
(0 – 7FH) расположены в блоке из 32 ячеек внутреннего ОЗУ,
имеющих адреса 20Н – 2FH.
Таким же образом можно работать с регистрами специального
назначения. Адреса и названия регистров специального назначения
указаны на рис.3.
Команды, оперирующие с битами, позволяют каждый бит
установить в 1, сбросить в 0, проинвертировать и протестировать,
организовать переходы по состоянию любого бита, реализовать
побитные логические операции и т.п. Такая архитектура позволяет
реализовывать оптимальные по объему и быстродействию
программы.

Блок таймеров / счетчиков


Два 16-разрядных регистра (ТН0,TL0) и (TH1,TL1) выполняют
функцию считающих элементов. Регистры TH0,TH1 – старшие,
TL0, TL1 – младшие 8 разрядов 16-разрядных регистров. Каждый
из 8-разрядных регистров имеет свой адрес и может использоваться
как регистр общего назначения (РОН), если таймер/счетчики не
используются.
Управление работой таймеров/счетчиков осуществляется с
помощью регистров специального назначения – регистра режимов
TMOD и регистра управления TCON, а также схемы управления.
Число, с которого начинается счет, заносится в регистры
таймеров/счетчиков программно. В процессе счета содержимое
регистров Т/С0 и Т/С1 инкрементируется. При переполнении
регистров Т/С0 и Т/С1 (переход от состояния «все единицы» к
состоянию «все нули») формируется флаг переполнения.
При работе в качестве таймера, содержимое Т/С0 и Т/С1
инкрементируется каждый машинный цикл, т.е. частота счета
равна fQ/12 , где fQ – частота тактового генератора.
При работе Т/С0 и Т/С1 в качестве счетчиков внешних
событий (сигналы поступают на входы Р3.4 и Р3.5) , содержимое
счетчиков инкрементируется при переходе из «1» в «0» сигналов на
счетных входах.

16
Логика работы таймера счетчика в режимах 0,1,2 приведена на
рис.7.
С/Т1=0 Управление Режим 0
OSC :12
TL1 TH1 TF1
5 бит 8 бит
Т1
С/Т1=1 Режим 1
TR1 &
TL1 TH1
8 бит 8 бит
GATE 1
1
1 Режим 2
INT1
TL1
8 бит

&

TH1
8 бит
Рис.7. Логика работы таймеров/счетчиков в режимах 0, 1 и 2.

Регистр режимов TMOD определяет:


 режим работы каждого таймера/счетчика –
используемую разрядность считающего элемента;
 источник импульсов для счета – работу в качестве
таймера или счетчика;
 разрешение управления запуском таймера / счетчика от
внешнего входа.
Назначение разрядов регистра TMOD приведено в таблице 1.
Биты 0-3 относятся к Т/С0,биты 4-7 – к Т/С1.
Табица.1
Биты 7 6 5 4 3 2 1 0
Обозн. GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0
Назначение битов М0,М1 (режим работы, отдельно для Т/С1 и
Т/С0):
 М1, М0=00 (режим 0), используется 13-разрядный
считающий элемент 8рTH0+5рTL0;

17
 М1, М0=01 (режим 1), используется 16-разрядный
считающий элемент 8рTH0+8рTL0;
 М1, М0=10 (режим 2), используется 8-разрядный считающий
элемент TL0. TH0 хранит константу перезагрузки. При
переполнении TL0 автоматически перезагружается;
 М1, М0=11 (режим 3), для Т/С1 не используется. Т/С0
работает как два независимых 8-разрядных счетчика TH0 и
TL0.
Биты С/Т0,С/Т1 определяют работу в качестве таймера (С/Т0
или С/Т1 = 0) или счетчика (С/Т0 или С/Т1 = 1).
Бит GATE разрешает управлять таймером от внешнего вывода
INT0 – для Т/С0, INT1 – для Т/С1. Если GATE = 0 – управление
запрещено;GATE = 1 – управление разрешено.
Регистр управления ТCON предназначен для приема и
хранения управляющего слова. Обозначение и назначение разрядов
регистра приведено в табл. 2.
Таблица 2
Биты 7 6 5 4 3 2 1 0
Обозн. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Назначение битов:
 TR0, TR1 – биты включения Т/С, отдельно для Т/С0 и Т/С1.
Если TR = 0 - выключен, TR = 1 – включен. Биты
устанавливаются и сбрасываются программно
 TF0, TF1 – флаги переполнения Т/С. Биты сбрасываются и
устанавливаются аппаратно и программно.
 IT0, IT1 – биты, определяющие вид прерывания по входам INT0,
INT1. IT=0 – прерывание по уровню (низкому); IT = 1 –
прерывание по фронту (переход из «1» в «0»). Биты
устанавливаются и сбрасываются программно.
 IE0, IE1 – флаги запроса внешних прерываний по входам INT0,
INT1 Биты сбрасываются и устанавливаются аппаратно и
программно.
Все биты регистра ТCON доступны по чтению. Биты 4,5
относятся к Т/С0,биты 6,7 – к Т/С1.Биты 0,1 определяют внешние
прерывания по входу INT0, биты 2,3 – по входу INT1.

18
Т/С1 аппаратно связан с блоком синхронизации
последовательного интерфейса (ПИ), он используется для
управления скоростью приема/передачи последовательных данных.

Блок последовательного интерфейса


Блок последовательного интерфейса (ПИ) предназначен для
организации ввода-вывода последовательных потоков информации
с возможностью дуплексного включения (возможность
одновременного приема и передачи данных). ПИ может работать в
четырех режимах.
Режим 0. Информация выдается и принимается через вход
приемника RxD ( вывод Р3.0). Через выход передатчика ТхD
(вывод Р3.1) выдаются импульсы синхронизации, стробирующие
каждый передаваемый или принимаемый бит информации. Формат
посылки – 8 бит. Частота приема и передачи – fBQ/12, где fBQ –
частота тактового генератора микроконтроллера.
Режим 1. Информация передается через выход передатчика
TxD, а принимается через вход приемника RxD. Формат посылки
10 бит: старт-бит (ноль), 8 бит данных и стоп-бит (единица).
Частота приема и передачи задается Т/С1.
Режим 2. Информация передается через выход передатчика
TxD, а принимается через вход приемника RxD. Формат посылки
11 бит: старт-бит (ноль), 8 бит данных, программируемый девятый
бит и стоп-бит (единица). Передаваемый девятый бит данных
принимает значение бита ТВ8 из регистра управления SCON. Бит
ТВ8 может быть программно установлен в «0» или в «1». В него
также можно занести значение бита Р из регистра PSW (контроль
на четность для повышения достоверности передачи данных). При
приеме девятый бит принятой посылки поступает в бит RB8
регистра SCON. Частота приема и передачи задается программно и
может быть равна fBQ /32 или fBQ/64.
Режим 3. Режим 3 идентичен режиму 2 за исключением
скорости приема и передачи, которая в режиме 3 задается Т/С1.
Работой ПИ управляет регистр специального назначения SCON.
Все разряды этого регистра доступны по записи и чтению.
Обозначение разрядов регистра SCON приведено в табл. 3.
Таблица 3

19
Биты 7 6 5 4 3 2 1 0
Обозн. SM0 SM1 SM2 REN TB8 RB8 TI RI

Назначение разрядов:
 SM0, SM1 – задают режим работы ПИ 0, 1, 2 или 3;
SM0 SM1 Режим Наименование Скорость
передачи
0 0 0 Сдвиговый регистр fBQ/12
0 1 1 8–битовый переменная,
универсальный задается Т/С1
асинхронный
приёмопередатчик
1 0 2 (УАПП) fBQ/64 илиfBQ/32
1 1 3 9 – битовый УАПП переменная,
9 – битовый УАПП задается Т/С1

 SM2 – разрешение многопроцессорной работы. В режимах 2 и


3 при SM2=1 флаг RI не активизируется, если девятый
принятый бит данных равен «0». В режиме 1 при SM2=1 флаг
RI не активизируется, если не принят стоп-бит, равный «1». В
режиме 0 SM2 должен быть установлен в «0»;
 REN - разрешение приема последовательных данных.
Устанавливается и сбрасывается программным обеспечением,
соответственно, для разрешения и запрета приема;
 ТВ8 – девятый бит передаваемых данных в режимах 2 и 3.
Устанавливается и сбрасывается программным обеспечением;
 RB8 – девятый бит принятых данных в режимах 2 и 3.В режиме
1, если SM2 =0, RB8 является принятым стоп-битом. В режиме 0
бит RB не используется;
 ТI – флаг прерывания передатчика. Устанавливается аппаратно
в конце времени выдачи 8-го бита в режиме 0 или в начале стоп-
бита в других режимах. Сбрасывается программным
обеспечением;
 RI – флаг прерывания приемника. Устанавливается аппаратно в
конце времени приема 8-го бита в режиме 0 или через половину
интервала стоп-бита в режимах 1, 2, 3 при SM2=0. При SM2=1
см. описание для бита SM2.

20
Передаваемые данные записываются программно в буфер
передатчика, затем отправляются в сдвиговый регистр, откуда в
соответствии с выбранной скоростью передачи побитно
выставляются на линию ТхD.
Прием с линии RxD осуществляет бит-детектор, который
трижды считывает входное состояние и на основании 2 из 3
измерений определяет значение принятого бита, затем записывает
этот бит в сдвиговый регистр приемника. После приема всего байта
данных происходит запись в буфер приемника, откуда могут быть
программно считаны.
Буфер приемника и буфер передатчика при программном
доступе имеют одинаковое имя SBUF и адрес 99Н.
Если команда использует SBUF как регистр источника, то
обращение происходит к буферу приемника.
Если команда использует SBUF как регистр назначения, то
обращение происходит к буферу передатчика. Во всех режимах
работы ПИ передача инициируется любой командой, которая
использует SBUF как регистр назначения.
Последовательный порт может принимать очередной байт,
даже если очередной принятый до этого байт не был прочитан из
буфера приемника. Однако, если до окончания приема,
находящийся в буфере байт не будет прочитан, принятый байт
теряется.
Прием и передача начинаются с младшего разряда и
заканчиваются старшим разрядом.
Скорость приема и передачи зависят от используемого
кварцевого генератора и выбранного режима приема/передачи. Для
режимов, в которых скорость определяется таймером/счетчиком 1,
константы программирования таймера приведены в таблице 4.
Таблица4
Режи Скорость fBQ, SMOD Разряды ТН1 Приме-
м приема/ МГц TMOD чание
рабо передачи, С/Т М1 М0
ты Кбод
ПИ
0 Макс.1000 12 Х Х Х Х X
2 Макс: 375 12 1 Х Х Х X
1,3 62,5 12 1 0 1 0 FFH
19,2 11,059 1 0 1 0 FDH
21
9,6 11,059 0 0 1 0 FDH
4,8 11,059 0 0 1 0 FAH
2,4 11,059 0 0 1 0 E4H
1,2 11,059 0 0 1 0 E8H
0,1375 11,986 0 0 1 0 18H
0,110 6 0 0 1 0 72H
0,110 12 0 0 0 1 FEH TL1=
EBH

Блок прерываний
Механизм прерываний позволяет автоматически реагировать на
внешние и внутренние события (переполнение таймер/счетчиков,
завершение последовательного обмена). Поступление запросов
прерывания возможно от следующих источников: внешний вход
INT0, таймер/счетчик T0, внешний вход INT1, таймер/счетчик T1,
последовательный канал TI/RI.
Каждое из внешних прерываний INT0, INT1 может быть
активизировано по уровню «0» или по фронту (переход из «1» в
«0») сигналов на выводах Р3.2, Р3.3, что определяется состоянием
битов IT0 и IT1 регистра TCON. При поступлении запроса
внешнего прерывания INT0 или INT1 устанавливается флаг IE0
или IE1 регистра TCON. Установка этих флагов вызывает
соответствующее прерывание. Очистка флагов IT0 и IT1
производится следующим образом:
 при прерывании по фронту IT0 и IT1 сбрасываются аппаратно
(автоматически) при обращении к соответствующей
подпрограмме обработки прерываний;
 при прерывании по уровню флаги очищаются при снятии
запроса внешнего прерывания (т.е. IT0 и IT1 отслеживают
состояние входов INT0 или INT1).
Прерывания от таймеров/счетчиков вызываются установкой
флагов TF0 и TF1 регистра TCON, которые устанавливаются при
переполнении соответствующих регистров таймер/счетчиков (за
исключением режима 3). Очистка флагов TF0 и TF1 происходит
аппаратно (автоматически) при переходе к подпрограмме
обслуживания прерываний.
Прерывание от последовательного порта вызывается
установкой флага запроса прерывания приемника RI или
передатчика ТI в регистре SCON (см. табл. 3). В отличие от всех
22
остальных флагов, RI и ТI сбрасываются только программным
путем, обычно в программе обработки прерывания, где
определяется по какому из флагов RI или ТI произошло
прерывание.
Каждый из перечисленных источников прерываний может быть
глобально или индивидуально разрешен, либо запрещен
установкой или сбросом соответствующих битов регистра
разрешения прерываний IE. Формат и описание регистра IE
приведено в таблице 5.
Таблица.5.
Биты 7 6 5 4 3 2 1 0
Обозн. ЕА X X ЕS ET1 EX1 ET0 EX0

 ЕА – общее разрешение прерываний, если ЕА=0, то все


прерывания запрещены; если ЕА=1, то прерывания могут
быть разрешены индивидуальными разрешениями EX0,
ET0, EX1, ET1 или ES;
 ES – разрешение прерывания от последовательного порта;
 ЕТ1 – разрешение прерывания от Т/С1;
 ЕХ1 – разрешение прерывания от внешнего источника
INT1;
 ЕТ0 – разрешение прерывания от Т/С0;
 ЕХ0 - разрешение прерывания от внешнего источника INT0;
 Х – резервные разряды.
Для всех разрядов 1 – разрешение, 0 – запрещение.
Адреса размещения команд перехода на программы обработки
прерывания (векторы прерывания) представлены в таблице 6.
Таблица.6
Источник прерывания Вектор прерывания
Внешнее прерывание INT0 0003Н
Таймер/счетчик Т/С0 000ВН
Внешнее прерывание INT1 0013Н
Таймер/счетчик Т/С1 001ВН
Последовательный порт 0023Н

Для каждого из источников прерываний может быть установлен


высший приоритет в регистре приоритетов прерываний IP.
Структура регистра IP приведена в таблице 7.
23
Таблица. 7.
Биты 7 6 5 4 3 2 1 0
Обозн. Х Х Х PS PT1 PX1 PT0 PX0

 PX0 – установка высшего приоритета прерыванию от


внешнего источника INT0;
 РТ0 – установка высшего приоритета прерыванию от
таймера/счетчика Т/С0;
 PX1 – установка высшего приоритета прерыванию от
внешнего источника INT1;
 РТ1 – установка высшего приоритета прерыванию от
таймера/счетчика Т/С1;
 PS - установка высшего приоритета прерыванию от
последовательного порта;
 Х – резерв.
Наличие в соответствующем разряде регистра IP «1»
устанавливает для соответствующего источника высокий уровень
приоритета, «0» - низкий уровень.
Программа обработки прерывания с низким уровнем
приоритета может быть прервана запросом прерывания с высоким
уровнем приоритета, но не может быть прервана другим запросом
прерывания с низким уровнем приоритета. Программа обработки
прерывания с высоким уровнем приоритета не может быть
прервана никаким другим запросом прерывания. Если два запроса
прерывания с разными приоритетами приняты одновременно,
сначала будет обслужен запрос с высоким уровнем приоритета.
Если одновременно приняты запросы с одинаковым уровнем
приоритета, обработка их будет производиться в порядке,
задаваемом последовательностью внутреннего опроса флагов
прерываний. Таким образом, в пределах одного приоритетного
уровня существует еще одна структура приоритетов (табл.8).

Таблица. 8
Источник Приоритет внутри уровня
IE0 (внешний вход INT0) высший
TF0 (таймер/счетчик 0)
IE1(внешний вход INT1)

24
TF1(таймер/счетчик 1)
RI+TI (последовательный канал) низший

Приоритет внутри уровня работает только в том случае, если


определена последовательность обслуживания запросов
прерывания, которые приняты одновременно и при этом имеют
одинаковый уровень приоритета.

Система команд
Для описания системы команд используются следующие
обозначения:
A - аккумулятор;
Rn - регистр общего назначения с номером n;
Direct - любой регистр специального назначения или ячейка
внутреннего ОЗУ;
#Data - байт данных, содержащийся во втором байте кода
команды.
Met - метка в командах переходов, указывающая какая команда
будет выполняться следующей.
Bit – имя прямоадресуемого бита (например: A.1, P2.3)

Наиболее часто используемые команды:


1.Сложение содержимого аккумулятора и содержимого второго
операнда, результат записывается в аккумулятор.
ADD A,Rn ; A+Rn → A - прибавить к содержимому
аккумулятора содержимое регистра общего назначения с номером
n
ADD A,Direct ; A+Direct → A - прибавить к
содержимому аккумулятора содержимое ячейки внутреннего ОЗУ
или регистра специального назначения
ADD A,#Data ; A+Data → A - прибавить к содержимому
аккумулятора данные, содержащиеся во втором байте команды
2.Вычитание из содержимого аккумулятора содержимого
второго операнда, результат записывается в аккумулятор.
SUBB A,Rn ; A-Rn → A
SUBB A,Direct ; A-Direct → A
SUBB A,#Data ; A-Data → A
25
3.Увеличение содержимого указанного операнда на 1.
INC A ; A+1 → A
INC Direct ; Direct+1 → Direct
INC Rn ; Rn+1 → Rn
4.Уменьшение содержимого указанного операнда на 1.
DEC A ; A-1 → A
DEC Direct ; Direct-1 → Direct
DEC Rn ; Rn-1 → Rn
5.Логическое умножение («И») содержимого аккумулятора и
содержимого второго операнда, результат записывается в
аккумулятор.
ANL A,Rn ; A AND Rn → A
ANL A,Direct ; A AND Direct → A
ADD A,#Data ; A AND Data → A
6.Логическое сложение («ИЛИ») содержимого аккумулятора и
содержимого второго операнда, результат записывается в
аккумулятор.
ORL A,Rn ; A OR Rn → A
ORL A,Direct ; A OR Direct → A
ORL A,#Data ; A OR Data → A
7.”Исключающее или” содержимого аккумулятора и
содержимого второго операнда, результат записывается в
аккумулятор.
XRL A,Rn ; A XOR Rn → A
XRL A,Direct ; A XOR Direct → A
XRL A,#Data ; A XOR Data → A
8.Очистка аккумулятора – содержимое всех разрядов
аккумулятора сбрасывается в ноль.
CLR A ;0 → А
9. Переслать содержимое второго операнда в первый.
MOV A,Rn ; Rn → A
MOV A,Direct ;Direct → A
MOV A,#Data ;Data → A
MOV Rn,A ; A → Rn
MOV Rn,Direct ;Direct → Rn
MOV Rn,#Data ;Data → Rn
MOV Direct,Rn ; Rn → Direct
26
MOV Direct,A ;A → Direct
MOV Direct,#Data ;Data → Direct
10.Безусловный (обязательный) переход на команду,
обозначенную указанной в команде меткой.
LJMP Met
11.Осуществить переход на команду, обозначенную указанной
в команде меткой, если содержимое аккумулятора
равно 0:
JZ Met
не равно 0:
JNZ Met
12.Осуществить переход на команду, обозначенную указанной
в команде меткой, если содержимое операнда не равно заданным в
команде данным.
CJNE A,#Data,Met ;перейти на метку Met, если A ≠ Data
CJNE Rn,#Data,Met ;перейти на метку Met, если Rn≠Data
13.Уменьшить на единицу содержимое указанного регистра Rn
и, если содержимое Rn не ноль, - переход на метку, указанную в
команде.
DJNZ Rn,Met
14.Установка в «1» прямоадресуемого бита.
SETB Bit ; 1 → Bit
15.Сброс в «0» прямоадресуемого бита.
CLR Bit ; 0 → bit
16.Инвертирование содержимого прямоадресуемого бита.
CPL Bit ; /Bit → Bit
11.Осуществить переход на команду, обозначенную указанной
в команде меткой, если содержимое прямоадресуемого бита
равно 0:
JNB Bit,Met
не равно 0:
JB Bit,Met
Замечание: при использовании команд переходов необходимо
учитывать, что при невыполнении заданного в команде условия
будет выполняться следующая за ней команда. При задании метки
перед командой, после метки ставится двоеточие.

27
С другими функциональными возможностями ОМЭВМ и
полным перечнем команд можно ознакомиться в [2].

2.2.Типовые периферийные устройства

Аналого-цифровой преобразователь (К1113ПВ1А).


Функционально завершенный 10-разрядный АЦП предназначен
для применения в электронной аппаратуре в составе блоков
аналогового ввода. Выходные каскады с 3-мя состояниями
позволяют подключать АЦП непосредственно к шине данных МП.
Для эксплуатации микросхемы необходимы два источника
питания.
Аналоговый сигнал, напряжением 0-10,5В, подается на вход IN
(нога 13).Запуск АЦП производится внешним сигналом ЗАПУСК
(на входе АЦП RUN (вывод 11) формируется падающий фронт -
переход из состояния 1 в состояние 0). При подаче сигнала
ЗАПУСК АЦП начинает преобразование поступающего на вход IN
напряжения в цифровой код, по окончании преобразования АЦП
выдает двоичный код на выходы D0-D9 (выводы 18, 1-9),
сопровождая его сигналом ГОТОВНОСТЬ ДАННЫХ GOT=0
(вывод 17). Обозначение выводов АЦП приведено на рис.8.
DD1
Сигнал с
датчика
13 IN D9 9
15 D8 8 К микрокон-
От микрокон- D7 7 троллеру
троллера 11 RUN D6 6
К микрокон- D5 5
троллеру
17 GOT D4 4
D3 3
-15B 12 -15B D2 2
С1 D1 1
5B 10 + 5B D0 18
С2
14 GND
16 GND
С1,С2 – К10-17-1а 0.1 мкФ±20%
DD1 – К1113ПВ1А
Рис. 8. Аналого-цифровой преобразователь К1113ПВ1А
X
28
Пример: пусть вход АЦП RUN подключен к выходу порта
Р2.0, а выход GOT соединен с P2.1. Из преобразованного кода
используются старшие 8 разрядов, подключенные к порту Р0.
Тогда обслуживание АЦП осуществляется следующим образом:
CLR P2.0 ; запуск АЦП – формирование
; падающего фронта
GOT: JB P2.1, GOT ; ожидание готовности (0)
MOV A,P0 ; чтение преобразованного кода
; в аккумулятор
SETB P2.0 ;перевод входа RUN в1, чтобы вновь
;сформировать падающий фронт

Клавиатура. Схема клавиатуры представлена на рис. 9.


Клавиатура имеет 16 клавиш (4*4).
Со сканирующего порта на входы С3-С0 последовательно
подаются коды 1110, 1101, 1011, 0111, тем самым поочередно к
каждой горизонтальной линии подключается корпус. После выдачи
кода, читаются старшие разряды С7-С4.
Для сканирования первого ряда на входы С3-С0 выдается код
1110 (корпус подключен к первому горизонтальному ряду). Если не
нажата ни одна из кнопок в этом ряду, то при чтении разрядов С7-
С4 будет получен код 1111 (все линии под напряжением, тока нет).
При нажатии кнопки “1”, через эту кнопку от источника на корпус
будет идти ток, напряжение упадет и будет прочитан код 1110
(низкое напряжение на линии С4), кнопки “2” – 1101(низкое
напряжение на линии С5), кнопки “3” – 1011(низкое напряжение на
линии С6), кнопки “А” – 0111(низкое напряжение на линии С7).
Аналогичным образом при соответствующем сканирующем
коде будут опрашиваться кнопки во втором, третьем и четвертом
ряду.

29
С0 5В

1 3 А R1
2
С1

4 5 6 В R2
С2

7 8 9 С R3
С3

* 0 # D R4

С4 С5 С6 С7
клавиатура АК-1607
R1-R4 – 22 кОм
Рис. 9. Клавиатура
Для исключения влияния дребезга контактов на
идентификацию состояния кнопок в каждую вертикальную линию
клавиатуры подключается антидребезговая схема (рис.10а).

30
С клавиатуры C1
R1
К микроконтроллеру
DD1.1 DD1.2
DD1 – К561ЛЕ5
С1 – 0.1 мкФ
R1 –100 кОм
Рис. 10а. Антидребезговая схема
«Грязный» 0
(дребезг)
Сигнал с
клавиши

Состояние
ёмкости
Вход
микрокон-
троллера
Рис. 10б. Срабатывание антидребезговой схемы
При изменении состояния клавиши (нажатии) с клавиатуры
вместо логической единицы «1» начинает поступать низкое
напряжение ( «грязный» 0, рис. 10б ). На выходе схемы в это время
пока еще присутствует логическая единица («1»). Возникает
разность потенциалов, ёмкость С1 начинает заряжаться, тем самым
не давая срабатывать инверторам DD1.1 и DD1.2 и не пропуская
неустойчивый сигнал на вход микроконтроллера. Когда ёмкость
зарядится полностью, инверторы сработают и пропустят сигнал на
выход. Если постоянная времени R1C1 выбрана достаточно
большой (рис. 10б ), напряжение достигает порога переключения
элемента DD1.1 после прекращения дребезга. При размыкании
кнопки переключение происходит аналогично.
Положительная обратная связь обеспечивает крутые фронты
выходного сигнала. В результате на выходе формируется импульс,
длительность которого соответствует времени замыкания
контактов, а фронт и спад импульса несколько задержаны
относительно моментов замыкания и размыкания контактов.

31
Замечание. При опросе клавиатуры нельзя одновременно
подключать корпус на несколько линий, поскольку невозможно
будет идентифицировать, какая именно кнопка нажата.
Пример: клавиатура подключена к порту Р0, разряды Р0.0-Р0.3
используются для выдачи сканирующего кода, разряды P0.4-P0.7
для ввода кода клавиши. Осуществить опрос и анализ нажатия
клавиш 0-3.
MOV P0,#FEH ; выдать сканирующий код
; 11111110
OPROS: MOV A,P0 ; прочитать код с линии
JNB A.4,MET1 ; перейти на метку МЕТ1,
; если нажата кнопка 0
JNB A.5,MET2 ; перейти на метку МЕТ2,
; если нажата кнопка 1
JNB A.6,MET3 ; перейти на метку МЕТ3,
; если нажата кнопка 2
JNB A.7,MET4 ; перейти на метку МЕТ4,
; если нажата кнопка 3
LJMP OPROS ; если не нажата ни одна клавиша,
; то повторить опрос клавиатуры
MET1: ………… ; команды, выполняемые при
; нажатии кнопки 0
MET2: ………… ; команды, выполняемые при
; нажатии кнопки 1
MET3: ………… ; команды, выполняемые при
; нажатии кнопки 2
MET4: ………… ; команды, выполняемые при
; нажатии кнопки 3

Переключатели. Схема подключения переключателя


представлена на рис. 11. К любому порту микроконтроллера можно
подключить до восьми переключателей. Если ключ К1 разомкнут, в
цепи тока нет, на вход микроконтроллера поступает напряжение 5В
(логическая 1), если ключ замкнут, ток через ключ пойдет на
землю. Поскольку сопротивление ключа стремится к нулю,
падение напряжения на нем будет равно 0 (т.е. на входе
микроконтроллера появится логический 0).

32
5B
R1=270 ОМ
VD1 –LT934IT VD1
К1 – SS-309

R1

К микроконтроллеру
К1

Рис.11. Схема подключения переключателя

Пример. Переключатели К1-К8 подключены на входы порта


Р1.0-Р1.7. Проанализировать состояние К1 и К5.
MOV A, P1 ;прочитать состояние переключателей
; в аккумулятор
JNB A.0,M1 ; если замкнут ключ 1, перейти
; на метку М1
JNB A.5,M1 ; если замкнут ключ 6, перейти
; на метку М2
………………
M1: …………… ; команды, выполняемые при
; замыкании ключа К1
M2: ……………… ; команды, выполняемые при
; замыкании ключа К6

Светодиодный индикатор. Схема включения светодиода,


представленная на рис. 12, позволяет создать простейшие
устройства отображения информациии. Для зажигания светодиода
на соответствующий выход микроконтроллера нужно подать
логический нуль (подключить корпус). Буфер DD1.1 необходим
для обеспечения нужного тока через светодиод и является одним
из шести равнозначных элементов в корпусе микросхемы
К155ЛП9. Остальные элементы обозначаются соответственно
DD1.2, DD1.3, DD1.4, DD1.5, DD1.6.

33
5B
DD1.A VD1
R1
От микроконтроллера

R1=270 ОМ
DD1.A – К155ЛП9
VD1 –LT934IT
Рис.12. Схема подключения светодиодного индикатора

Пример. Светодиоды VD1-VD8 подключены к выходам порта


Р2.0-Р2.7. Погасить все светодиоды, затем включить VD3 и VD7.
MOV P2,#FFH ; погасить светодиоды (FFh=11111111)
CLR P2.2 ; включить VD3
CLR P2.6 ; включить VD7

Семисегментный индикатор. Семисегментный индикатор


(рис. 13) позволяет отображать цифры и некоторые буквы. Для
отображения нужного символа подготавливается комбинация из
восьми нулей и единиц, затем отправляется в порт, к которому
подключен семисегментный индикатор. Для включения сегмента
на соответствующий выход микроконтроллера нужно подать
логический 0. Например, для отображения цифры 6 необходимо
подать код 10000010 (82H – в шестнадцатеричной системе).
Буферы DD1, DD2 необходимы для обеспечения нужного тока
через светодиодные сегменты.
Пример. Семисегментный индикатор подключен к порту Р0.
Проиндицировать цифру «6».
Формируем двоичную комбинацию 10000010B и отправляем в
порт с помощью команды
MOV P0, #10000010B
Можно перевести в шестнадцатеричный код 82H и также
записать в порт
MOV P0, #82H

34
О HL1
DD1.1
т R1
A A
DD1.2
м R2
и B F B
DD1.3
к R3
р C
DD1.4
о R4
к D
о DD1.5 G
R5 1
н E
т DD1.6
р R6 E C
о F 1
DD2.1
л R7
G 5B
л DD2.2
е R8
H D
р H
R1-R8 =270 ОМ 1
а 1
DD1,DD2 – К155ЛП9
HL1 –АЛС324Б
Рис.13. Схема подключения семисегментного индикатора

Блок реле. Блок исполнительных устройств включает в свой


состав буферные усилители и реле, контакты которых могут
управлять мощными объектами (например, контакторами
электродвигателей и т.п.). В качестве буферных усилителей можно
использовать микросхемы К155ЛП9, обеспечивающие ток до 300
мА. Реле включается при подаче на вход блока логического нуля
(рис. 14). При этом ток от источника питания протекает через
катушку реле РК1, буферный усилитель DD1.А на землю через
выходной транзистор микроконтроллера. Замыкается контакт реле,
замыкая внешнюю цепь Х1 – Х2.
Х1
DD1.A РК1
От микроконтроллера Х2

DD1.A – К155ЛП9
VD1
VD1 –KD522 15B
РK1 – RES91
Рис.14. Схема подключения реле
35
X
Пример. Реле PK1-PK8 подключены к входам порта Р1.0-
Р1.7. Выключить реле PK4, затем включить PK2 и PK5.
SETB P1.3 ; выключить реле РК4
CLR P1.1 ; включить реле РК2
CLR P1.4 ; включить реле РК5

Цифровой мультиплексор. Подключает один из восьми


информационных входов D0-D7 на выход Y и W. Выбор входа
осуществляется с помощью адресных входов А,В,С (рис. 15). При
подаче на адресные входы кода 000 к выходу Y подключается вход
D0, кода 001 – вход D1 и т.д., кода 111 – вход D7. Мультиплексоры
позволяют создавать системы сбора информации с большим
количеством датчиков.
DD1
Датчик1 D0
Датчик2 D1 6
Датчик3 D2 W
Датчик4 D3
Датчик5 D4 5
Y К микроконтроллеру
Датчик6 D5
Датчик7 D6
Датчик8 D7
A 16
От микрокон- 5B
B
троллера
C 8 С1
G DD1 – К555КП15
C1 –0.1мкФ
Рис.15. Схема подключения цифрового мультиплексора

Пример. Управление преключением входа мультиплексора


АBC осуществляется через порт Р3, разряды 5-7. Состояние
сигнала Y подается на порт Р3, разряд 0. Проверить состояние
датчика 6.
MOV P3,#A0H ;подключить датчик 6 (A0H=10100000)
JB P3.0, Met ;если с датчика 6 поступает 1,
; перейти на метку Меt.

36
Аналоговый мультиплексор (рис. 16). Работает аналогично
цифровому, но предназначен для коммутации аналогового
сигнала.
DA1
Датчик1 D0 DA1 – 564КП2
Датчик2 D1 C1 –0.1мкФ
Датчик3 D2
Датчик4 D3
Датчик5 D4 3
Y На АЦП
Датчик6 D5
Датчик7 D6
Датчик8 D7
1 16
От микрокон- 5B
2
троллера
3 8 С1
G 7

Рис.16. Схема подключения аналогового мультиплексора

Пример. Управление переключением входа мультиплексора


(контакты 1,2,3) осуществляется через порт Р2, разряды 0-2.
Состояние сигнала Y подается на АЦП. Подключить к АЦП
аналоговый датчик 3.
MOV P2, #02H ;подключить датчик 3 (02H=00000010)

Цифро-аналоговый преобразователь (рис. 17). ЦАП


предназначен для преобразования цифрового кода в аналоговый
сигнал. В данном пособии описано подключение 10 разрядного
ЦАП К572ПА1. При подключении к 8 разрядной шине следует
использовать входы D3-D10.
Пример. Входы ЦАП D10-D3 подключены к выходам порта Р1
разряды 7-0. Выдать на ЦАП код 55Н.
MOV P1,#55H

37
DA1
D10
D9
D8 1
Va Вых, U
От микрокон- D7
троллера D6 R2
D5 2
Vb
D4
D3
D2
D1 Ucc 14 15B
3 С1
DA1 – К572ПА1 GND
Uop
C1 –0.1мкФ
R1– 10 кОм R1
R2– 1кОм 15B
Рис.17. Схема подключения цифро-аналогового преобразователя

Буфер последовательного порта. Связь по последовательному


каналу осуществляется через буферную микросхему DS232 (рис.
18).

DD1 ПУ
МК 11 T1 IN OUT T1 14 RxD
RxD 13 R1 IN OUT R1 12
TxD
TxD 10 T2 IN OUT T2 7
8 R2 IN OUT R2 9

1 C1+ +12 V 2
С1 - 12 V 6 С4
3 C1- С3
4 C2+
С2
5
C2-
DD1 – DS232 16 15
C1-C4 – 1мкФ
C5 – 0.1мкФ 5B
Рис.18. Схема подключения буфера DS232 последовательного канала

38
На представленном рисунке МК-микроконтроллер, ПУ-
периферийное устройство Линия TxD микроконтроллера через
микросхему DS232 соединена с линией RxD периферийного
устройства, линия RxD микроконтроллера с линией TxD ПУ. По
линии TxD информация выставляется на передачу, по линии RxD
принимается.

3. Задание для контрольной работы


На рис. 19 представлена одна из множества возможных
структур МП модуля распределенной системы для управления и
сбора информации на базе ОМЭВМ. 8 аналоговых датчиков
подключены к АЦП через аналоговый мультиплексор. Информация
с АЦП по восьми линиям поступает в порт Р1. В ОМЭВМ
информация обрабатывается (например, производится усреднение
сигналов, сравнение с заданными уставками, хранение измеренных
значений и т.п., подготовка информации для передачи на верхний
уровень управления). Управление мультиплексором и АЦП
осуществляется по 5 линиям порта Р3 (три линии необходимы для
выбора датчика с помощью мультиплексора, две линии – для
управления АЦП). Две линии порта Р3 (TxD и RxD) задействованы
на организацию последовательного канала связи с другими
модулями системы.
К порту Р0 подключены 8 переключателей, которые позволяют
с местного пульта изменять, например, режимы работы МП
модуля. Порт Р2 обслуживает семисегментный индикатор, на
котором может отражаться, например, номер выбранного режима
работы.

39
Микроконтроллер
М П
У Е
Л Р
Б
Д Ь Е
у
А Т К
А 8 8 Ф
Т И Р1 P0 Л
Ц Е
Ч П Ю
П Р
И Л Ч
К Е А
1
И К Т
С Е
О Л
И
Р
Б И
у Н
5 Ф Д
8 И
Р3 Р2 Е
Р К
А
TxD 2 Т
ПОСЛЕДОВА-
RxD О
ТЕЛЬНЫЙ
Р
КАНАЛ

Рис.19. Структура микропроцессорного модуля

Вам следует разработать принципиальную схему МП модуля,


структура которого выбирается из таблицы 9 в соответствии с
двумя последними цифрами вашей зачетки.

Верхняя строка таблицы – образец. Здесь описана структура


МП модуля, приведенного на рис. 19.

40
Таблица 9
Номер Порт Р0 Порт Р1 Порт Р2 Порт Р3
зачетк
и
Образе БП АМ+АЦП ИНД Управление АМ
ц и АЦП, ПК
00-10 БР БС АМ+АЦ Управление АМ
П и АЦП, ПК
11-20 КЛ ЦАП ЦАП ПК
21-30 ИНД АМ+АЦП КЛ Управление АМ
и АЦП, ПК
31-40 БС Два ДМ+уп- ЦАП ПК
равление ДМ
41-50 БР БС КЛ ПК
51-60 КЛ АМ+АЦП БР Управление АМ
и АЦП, ПК
61-70 БП ЦАП ИНД ПК
71-80 БП Два ДМ+уп- БР ПК
равление ДМ
81-90 БР АМ+АЦП БС Управление АМ
и АЦП, ПК
91-99 КЛ БР ЦАП ПК

В таблице приняты следующие обозначения:


АМ - аналоговый мультиплексор;
ДМ - дискретный мультиплексор;
БП - блок из 8 переключателей;
АЦП - аналого-цифровой преобразователь;
ЦАП - цифро-аналоговый преобразователь;
КЛ - клавиатура на 16 клавиш;
БС - блок из 8 светодиодов;
БР - блок из 8 реле;
ИНД - семисегментный индикатор;
ПК - последовательный канал.
Для разработанной принципиальной схемы МП модуля
требуется создать управляющую программу, функции которой

41
заданы в таблице 2. Задание выбирается по двум последним
цифрам номера зачетки.
В заданиях N – последняя цифра, а К - предпоследняя цифра
номера зачетки. Если К=0, то взять К=5, а если К=9, то К=7.

Таблица 10
Номер Функции управляющей программы
зачетки
Образец Прочитать состояние переключателя К. Если он
включен, считать состояние аналогового датчика 3 с
АЦП, в противном случае датчика 4. Если считанный
код равен 69, то на семисегментный индикатор выдать
цифру N, иначе N+1 ( если N+1>9, индицировать
цифру 9) .
00-10 Считать состояние аналогового датчика К с АЦП. Если
считанный код равен 7F, то включить реле с номером
К, иначе с номером К+1 (если К+1>8, то взять вместо
него реле 7) . Включение реле отобразить на
светодиодах.
11-20 Прочитать состояние клавиш N и N+1. Если нажата
клавиша N, выдать управляющий код 55 на ЦАП порта
Р1, если нажата клавиша N+1 выдать управляющий
код АВ на ЦАП порта Р2. В противном случае ожидать
нажатия клавиши.
21-30 Прочитать состояние клавиши N. Если клавиша
нажата, то прочитать информацию с аналогового
датчика К, иначе с аналогового датчика К+1 ( если
К+1>8, то взять аналоговый датчик 7). Если считанный
код=38, на семисегментном индикаторе
проиндицировать цифру К, иначе N.
31-40 Прочитать состояние дискретного входа К с ДМ1. Если
он не равен нулю, то прочитать состояние дискретного
входа К+1 с ДМ2 (если К+1>8, то взять дискретный
вход 3).На светодиодах 1 и 2 отобразить состояние
опрашиваемых дискретных входов. На ЦАП выдать N.
41-50 Прочитать состояние клавиши N. Если клавиша
нажата, включить реле с номером К, иначе реле с
номером К+1 (если К+1>8, взять реле 4). Включение
42
реле отобразить на светодиодах.
51-60 Прочитать состояние клавиши N. Если клавиша
нажата, прочитать состояние с аналогового датчика с
номером К, иначе с номером К+1 (если К+1>8, взять
датчик 6). Если входной код равен 25, включить реле
К, в противном случае его выключить.
61-70 Прочитать состояние переключателя K. Если он не
равен нулю, то проиндицировать на семисегментном
индикаторе цифру К и выдать на ЦАП цифру N, иначе
К- на ЦАП, N - на индикатор .
71-80 Прочитать состояние переключателя К. Если он не
равен нулю, то прочитать состояние дискретного входа
К+1 с ДМ1, иначе с ДМ2 (если К+1>8, то взять
дискретный вход 2). Включить реле N, если вход=1,
иначе выключить.
81-90 Прочитать состояние аналогового датчика К. Если
считанный код равен 81, то включить реле 1, Если
равен 18, то реле 4, иначе реле 7. Включение реле
отобразить на светодиодах.
91-99 Прочитать состояние клавиш N и N+1. Если нажата
клавиша N, выдать управляющий код 67 на ЦАП, если
нажата клавиша N+1 включить реле 4.В противном
случае ожидать нажатия клавиши.

Отчет по работе должен содержать:


1.Задание для вашего варианта.
2.Принципиальную схему МП модуля.
3.Спецификацию (перечень элементов) для принципиальной
схемы.
4.Блок-схему программы.
5.Текст программы на ассемблере.

4. Пример выполнения контрольной


работы
Пример принципиальной схемы для модуля "Образец"
приведен на рис.19, спецификация к схеме в таблице 11.
43
5B
+5B VD1 VD2 VD3 VD4 VD5 VD6 VD7 VD8
DD1
R1 31 39 R3 R4 R5 R14 R15 R16 R17 R18
EA P0.0 К1
P0.1 38
C1 К2
19 X1 P0.2 37
36 К3
C2 P0.3 К4
18 35
X2 P0.4 К5
34
R2 P0.5 К6
9 RST P0.6 33
32 К7
C3 P0.7 К8
1 1 1 DD3.1 R6 HL1
P1.0
2 2
P1.1 A
3
3 PSEN 29
2 DD3.2 R7 A
P1.2 F
4 4 B B
P1.3 3 DD3.3 R8 C
5 5 P1.4 ALE 30
6 6 D
P1.5 4 DD3.4 R9 E G
7 7 P1.6 F E 1 C
8 8
P1.7 5 DD3.5 R10 G 1
1 H
10 21 6 DD3.6 D H
P3.0 RxD P2.0 2 R11
11 22 1 1
P3.1 TxD P2.1 3
1 12 23 7 DD4.1 R12 5B
P3.2 INT0 P2.2 4
2 13 24 DD5
P3.3 INT1 P2.3 5 8 DD4.2 R13
3 14 25
P3.4 T0 P2.4 6 13 IN D9 9 8
1 15 26
P3.5 T1 P2.5 7 15 D8 8 7
2 16 27
P3.6 WR P2.6 8 D7 7 6
17 P3.7 RD P2.7 28
1 11 RUN D6 6 5
40 D5 5 4
+5B 5B 2 17 GOT D4 4 3
GND 20
D3 3 2
-15B 12 -15B D2 2 1
D1 1
DD2 RxD 5B С9 10 + 5B D0 18
14
11 T1 IN OUT T1 TxD
12 С10 14 GND
13 R1 IN OUT R1 Kor
16 GND
7
10 T2 IN OUT T2 DA1
9
8 R2 IN OUT R2
Датчик1 D0
1 2
C1+ +12 V Датчик2 D1
C4 6 С7 Датчик3 D2
- 12 V
3
C1- Датчик4 D3
4 C2+ Датчик5 D4
С8
Датчик6 D5
С5
5 C2- Y 3
Датчик7 D6
16 15 Датчик8 D7
1 1 16 5B
5B С6 2 2
3 3 8 С11
G 7

44
Рис.19 Пример принципиальной схемы для модуля "Образец"

Таблица 11
Обозначение Назначение Наименование
DD1 микроконтроллер семейства 89C51
MCS-51
DD2 буферная микросхема DS232
интерфейса RS-232
DD3, DD4 буферная микросхема К155ЛП9
DD5 аналого-цифровой К1113ПВ1А
преобразователь
DA1 аналоговый мультиплексор 564КП2
С1, С2 конденсатор 33пкФ±20% К10-17-1а
С3 конденсатор 10мкФ±20% К10-17-1а
С4, С5, С7, конденсатор 1мкФ±20% К10-17-1а
С8
С6, С9, С10, конденсатор 0.1мкФ±20% К10-17-1а
С11
R1,R2 резистор 0.125Вт 8.2 кОм ±10% С2-33
R3-R18 резистор0.125Вт 270Ом ±10% С2-33
VD1-VD8 светодиод LT934IT
K1-K8 переключатель SS-309
HL1 семисегментный индикатор АЛС324Б
Z кварц 11.059 мГц РК169 МА

Пример управляющей программы для модуля (рис.19) по


заданию «образец» (смотри таблицы 9 и 10).
Пусть номер зачетки (2 последние цифры ) равен 25, тогда
К=2, N=5. Для управления аналоговым мультиплексором
использованы разряды Р3.2-Р3.4 , разряд Р3.5 – запуск АЦП, а
разряд Р3.6 – готовность АЦП.
Блок-схема управляющей программы приведена на рис. 20.

45
М0

чтение состояния
снять запуск с
переключателей
АЦП

ключ 2 да нет
код=69
замкнут

нет
да
подключить
выдать на инди-
датчик 4
катор цифру 5

подключить выдать на инди-


датчик 3 катор цифру 6

запуск АЦП М0

преобраз. нет
завершено

да
чтение кода с
АЦП

Рис.20 Блок-схема управляющей программы

46
Текст программы на ассемблере:

M0: MOV A,P0 ;прочитать состояние переключателей


JNB A.1,M1 ;проанализировать состояние ключа 2
;если ключ замкнут, перейти на метку М1
MOV P3,#EFh ;подключить датчик 4 (11101111)
LJMP M2
M1: MOV P3,#Ebh ;подключить датчик 3(11101011)
M2: CLR P3.5 ;запустить АЦП
GT: JB P3.6,GT ;ожидать завершения преобразования
MOV A,P1 ;прочитать код с АЦП
SETB P3.5 ;снять запуск АЦП
CJNE A,#69h,M3 ;если код не равен 69, перейти на М3
MOV P2,#92h ;выдать на индикатор цифру 5
LJMP M0
M3: MOV P2,#82h ;выдать на индикатор цифру 6
LJMP M0 ; продолжить управление

5. Задания для лабораторных работ

Разработать и отладить программы микропроцессорных


модулей, реализующих заданные алгоритмы управления.

5.1 Обработка дискретной информации

Прочитать состояние клавиш N и K. Если какая либо из клавиш


нажата, отобразить ее значение на семисегментном индикаторе и
подключить соответствующее реле.
Таблица 12
Вариан N K Подключени Подключени Подключение
т е е реле семисегментног
клавиатуры о индикатора
1 2 7 Р0 Р2 Р1
2 3 5 Р1 Р2 Р0

47
3 6 1 Р2 Р1 Р0
4 2 4 Р0 Р1 Р2
5 5 6 Р1 Р0 Р2
6 8 3 Р2 Р0 Р1
7 7 1 Р0 Р1 Р2
8 2 5 Р1 Р2 Р0
9 1 4 Р2 Р1 Р0

5.2 Обработка аналоговой информации

Разработать программное обеспечение двухканального


вольтметра со стрелочным индикатором, номера каналов задаются
цифрами N и K, переключение каналов выполняется с помощью
аналогового мультиплексора. Измерение напряжения
осуществляется с помощью АЦП, выбор канала для измерения с
помощью переключателей, для передачи на стрелочный индикатор
используется блок ЦАП. Управление аналоговым
мультиплексором и АЦП осуществляется через порт Р3.
Таблица 13
Вариан N K Подключени Подключени Подключение
т е АЦП е ЦАП
переключате
лей
1 2 7 Р0 Р2 Р1
2 3 5 Р1 Р2 Р0
3 6 1 Р2 Р1 Р0
4 2 4 Р0 Р1 Р2
5 5 6 Р1 Р0 Р2
6 8 3 Р2 Р0 Р1
7 7 1 Р0 Р1 Р2
8 2 5 Р1 Р2 Р0
9 1 4 Р2 Р1 Р0

48
Литература

1.Однокристальные микроЭВМ. М.: МИКАП, 1994,-400 с.


2.Интегральные микросхемы: Микросхемы для аналого-
цифрового преобразования и средств мультимедиа. Выпуск 1 – М.
ДОДЕКА, 1996, 384с.

Оглавление
1 Архитектура систем управления и контроля 3
Аппаратная база для систем автоматического
2. 4
управления
2.1 Микроконтроллеры семейства MCS-51 5
Базовая архитектура микроконтроллеров семейства
7
MCS-51
Блок управления 9
Блок счетчика команд 9
Арифметико-логическое устройство 10
Порты микроконтроллера 11
Внутренняя память данных 14
Блок таймеров / счетчиков 15
Блок последовательного интерфейса 18
Блок прерываний 21
Система команд 24
2.2 Типовые периферийные устройства 27
Аналого-цифровой преобразователь 27
Клавиатура 29
Переключатели 31
Светодиодный индикатор 32
Семисегментный индикатор 33
Блок реле 34
Цифровой мультиплексор 35
Аналоговый мультиплексор 36

49
Цифро-аналоговый преобразователь 36
Буфер последовательного порта 37
3. Задание для контрольной работы 38
4. Пример выполнения контрольной работы 42
5. Задания для лабораторных работ 46
5.1 Обработка дискретной информации 46
5.2 Обработка аналоговой информации 47
Литература 48

Грошева Людмила Серафимовна


Плющаев Валерий Иванович

Аппаратная база и программирование


микропроцессорных систем управления

УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ

Формат бумаги 60х84 1/16. Бумага газетная.


Ризография. Усл. печ. л 2,75 Уч.-изд. л. 2,75
Заказ. Тираж Цена договорная.

Издательско-полиграфический комплекс ФГОУ ВПО «ВГАВТ»


603600, Нижний Новгород, ул. Нестерова, 5

50