1867

Курс лекций по микроконтроллерам

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Основные определения. Классификация МПК. Основные архитектуры процессоров ОМК. Проектирование МПУ на основе периферийных ОМК. Основные особенности периферийных ОМК. Модуль таймера/счетчика контроллера PIC16C58. Система команд контроллера PIC16С58. Встроенные таймеры счетчики контроллера К1816ВЕ51. Принципы организации систем дискретного ввода-вывода в МПС.

Русский

2013-01-06

1.79 MB

150 чел.

 
4
Тема 1.- 6 часов (у.з.-1) Введение. 
Основные  понятия  и  определения  микропроцессорной  техники.  Понятие  об 
архитектуре  микропроцессорной  системы.  Классификация  однокристальных 
микроконтроллеров  (ОМК)  и  микропроцессоров. RISC-архитектура  ОМК. 
Основные  типы  МПСУ.  Принципы  построения  и  структура  технических  средств 
микропроцессорного 
контроллера 
(МПК). 
Основные 
этапы 
разработки 
микропроцессорной системы. Цифровые сигнальные процессоры. 
 
1. 
Введение 
1.1.  Цели курса. Основные разделы курса. 
Обучение  разработки  аппаратных  средств  микропроцессорных 
устройств  СУ  на  основе  однокристальных  микроконтроллеров  (ОМК). 
Обучение навыкам программирования ОМК на языках низкого уровня. 
Основные разделы курса: 
1.  Основные определения. Классификация микропроцессорных 
контроллеров (МПК). 
2.  Разработка микропроцессорных устройств на основе периферийных 
ОМК (PIC). 
3.  Разработка микропроцессорных устройств на основе  универсальных 8-
ми разрядных ОМК (MCS-51, К1816ВЕ51). 
4.  Особенности использования 16-разрядных ОМК. 
5.  Особенности построения подсистем ввода/вывода аналоговых и 
дискретных сигналов. 
6.  Построение подсистем взаимодействия с оператором и управляющими 
ЭВМ высших уровней. 
 
Литература. 
1.  Сташин В.В. , Урусов А.В. и др. Проектирование цифровых устройств 
на ОМК. Москва, Энергоиздат, 1990г. 300 с. 
2.  Однокристальные 
микро-ЭВМ. 
Справочник. 
Под 
редакцией 
Боборыкина А.В., Москва, Бином ,1994. 
3.  Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы.          
Москва, Радиосвязь,1989. 
4.  Предько М. Руководство по микроконтроллерам. Москва, Постмаркет, 
2001.  
5.  ОМК  фирмы Microchip PIC16C5X. Под  редакцией  Владимирова  А.М.             
Рига, Ормикс, 1996. 
6.  Федоров  Б.Э.,  Телец  В.А.  Интегральные  схемы  ЦАП  и  АЦП.  Москва, 
Энергоатомиздат,1990г.  
7.  Угрюмов Е.П. Цифровая схемотехника. Санкт-Петербург, БХВ  2000г.  
 

 
5
1.2.  Основные определения. Классификация 
МПК 
Микропроцессор (МП) - функционально законченный процессор ЭВМ 
реализованный  в  виде  одной  или  нескольких  БИС  и  предназначен  для 
обработки цифровой информации по заданным программам. 
  
Микропроцессорный контроллер (МПК) – функционально законченная 
микро-ЭВМ, предназначенная для целей контроля и управления.  
МПК может реализовываться на следующей элементной базе: 
- однокристальных микропроцессорах (ОМП); 
- секционных (многокристальных) МП; 
- однокристальных микроконтроллерах (ОМК); 
-  сложных  матричных  программируемых  логических  схемах  (ПЛИС, PLD, 
CPLD и др.). 
ОМК – функционально  законченный  МПК,  реализованный  в  виде 
одной  СБИС  (сверх-БИС).ОМК  включает  в  состав:  процессор,  ОЗУ,  ПЗУ, 
порты  ввода/вывода  для  подключения  внешних  устройств,  модули  ввода 
аналогового сигнала АЦП, таймеры, контроллеры прерывания, контроллеры 
различных интерфейсов и т.д. 
Простейший ОМК представляет собой БИС площадью не более 1
2
см  и 
всего с восемью выводами. 
 
1.3.  Классификация ОМК 
Различают: 
1)  Периферийные  (интерфейсные)  ОМК  предназначен  для  реализации 
простейших МП систем управления. Имеют малую производительность 
и  малые  габаритные  размеры.  В  частности  может  использоваться 
периферийными устройствами ЭВМ (клавиатура, мышь и т.п.) 
К ним относятся: PIC – Micro Chip, VPS – 42 (Intel). 
2)  Универсальные 8–разрядные  ОМК  предназначены  для  реализации  МП 
систем малой и средней производительности. 
Имеют  простую  систему  команд  и  большую  номенклатуру 
встроенных устройств.             Основные типы: MSC – 51 (Intel) 
                                                            Motorola HC05 – HC012  и др. 
3)  Универсальный 16–разрядный  ОМК.  Предназначен  для  реализации 
систем  реального  времени  средней  производительности.  Структура  и 
система команд нацелены на скорейшую реакцию на внешние события.  
Наибольшее  использование  имеют  в  системах  управления 
электродвигателями (мехатронные системы). 
4)  Специализированные 32–разрядные 
ОМК 
реализуют 
высокопроизводительную ARM архитектуру  и  предназначены  для 
систем  телефонии,  передачи  информации,  телевидения  и  других ,  
требующие высокоскоростной обработки информации.  

 
6
К  типовым 16–разрядным  ОМК  относятся: MSC96/196/296 (Intel), 
C161–C167 (Siemens, Infineon), HC16 Motorola и др. 
5)  Цифровые  сигнальные  процессоры (DSP – Digital Signal Processor) 
предназначен  для  сложной  математической  обработки  измеряемых 
сигналов  в  режиме  реального  времени.  Широко  используются  в 
телефонии и связи. 
Основные  отличия DSP: повышенная  разрядность  обрабатываемых 
слов (16,32,64 бита) и высокая скорость в формате с плавающей точкой (16 
flops).Производители: Texas Instruments (TMS 320 и  др.), Analog Device 
(ADSP 2181 и др.). 
 
1.4.  Основные архитектуры процессоров ОМК 
В  современных  ОМК  применяются  следующие  архитектуры 
процессоров : 
- RISC – (Reduce Instruction Set Commands ) архитектура  с  сокращенным 
набором команд. 
- CISC – (Complex Instruction Set Commands) традиционная  архитектура  с 
расширенным  
   набором команд. 
- ARM – (Advanced RISC - machine) усовершенствованная RISC архитектура. 
  
Главная 
задача RISC архитектуры 
обеспечение 
наивысшей 
производительности процессора. Её отличительными чертами является: 
-  малое число команд процессора (несколько десятков); 
-  каждая команда выполняется за минимальное время (1-2 машинных 
цикла, такта). 
-  максимально  возможное  число  регистров  общего  назначения 
процессора (несколько тысяч); 
-  увеличенная разрядность процессора (12,14,16 бит). 
 
Современная RISC архитектура  включает,  как  правило,  только 
последние    3  пункта,  т.к.  за  счет  повешенной  плотности  компоновки  БИС 
стало возможным реализовать большое количество команд. 
В  современных 32–разрядных  ОМК  используют ARM архитектуру 
(расширенная RISC архитектура с суперсокращением команд ТНUМВ ). 
 
1.5.  Классификация микропроцессорных 
систем 
МПС делят на три основных типа: 
–  программно-логического управления (ПЛУ); 
–  системы сбора и обработки информации (СОИ); 
–  системы цифрового автоматического управления (ЦАУ). 

 
7
Системы ПЛУ характеризуются тем, что все измеренные сигналы Хi и 
выданные  на  объект  сигналы  управления  Yi  имеют  логический  характер 
(да/нет, вкл/выкл). 
 
Y1
Y =
;   X =
 
i
{
}
i
{
}
0
 
или
 
1
0
 
или
 
1
i= m
1,
i= ,
n
Ym
 
МПУ
X1
ОУ
Логические  сигналы  управления Yi 
Xn
вычисляются  в  МПУ  программно,  как 
выходные  сигналы  логических  функций  или 
конечных логических аппаратов. 
Системы  СОИ  предназначены  для  выполнения  трех  основных 
функций: 
-  постоянный  опрос  и  измерение  сигналов  с  группы  датчиков  (датчики 
давления, температуры, тока и т.д.) находящихся на объекте 
-  первичная  обработка  измерений  информации  (устранение  помех, 
преобразование формата данных и т.д.) 
-  сохранение блоков измеренной информации в памяти или передача её 
на ЭВМ верхнего уровня (ЭВМ ВУ) 
Общая структура имеет вид: 
НУ1
Д1
МПУ
АЦП
АК
ОУ
к ЭВМ ВУ
НУn
Д n
 
Д1,…,Дn – датчики на ОУ. 
НУ1,…,НУn – нормирующие  устройства,  преобразующие  сигнал  с 
датчиков в требуемый диапазон для измерения АЦП. 
АК – аналоговый  коммутатор,  осуществляет  подключение  одного  из 
датчиков к АЦП для измерения  
Системы  ЦАУ  предназначены  для  организации  с  замкнутого 
контура  управления  объектом  и  реализует  функции  автоматического 
регулятора,  заданного Z-передаточной  функцией  или  разностным 
уравнением. 
 ИУ – исполнительное 
устройство; 
АЦП
НУ
Д
 СУ – согласующее устройство, 
задающее
g
ОУ
усиливающее  сигнал  с  ЦАП 
воздействие
АЦП
СУ
ИУ
ШИМ
или 
ШИМ 
до 
уровня 
требуемого ИУ. 
ШИМ – широтно-импульсный 
модулятор,  используется  для  преобразования  кода  в  аналоговый  сигнал, 
путем модуляции ширины импульса. 

 
8
Важную роль в системах ЦАП играют устройства отчета времени – 
таймера,  они  определяют  интервал  измерения  и  выдачи  управляемых 
сигналов в системе. 
 
1.6.  Гарвардская и Фон-Неймовская 
архитектура памяти контроллера (ОМК) 
Главными  отличительными  чертами  Гарвардской  архитектуры 
организации памяти контроллера является: 
– реализация в виде различных устройств памяти для программ и памяти для 
данных. 
– использование двух параллельно работающих независимых шин для чтения 
данных и команд. 
Замечание: Объем ПД как правило значительно меньше объема ПП. 
Основные преимущества Фон-Неймоновской архитектуры: 
– простота аппаратной реализации 
– универсальность исполнения команд 
 В  настоящее  время  используются  обе  архитектуры  памяти:  Гарвардская  в 
несложных  восьми - разрядных  контроллерах,  Фон-Неймоновская  в 
универсальных 16- разрядных и выше. 
1.7.  Общая структура микропроцессорного 
устройства для систем управления 
Она 
имеет 
СС
МПМ
Иные
БФСМ
БЗУ
БОП
БФВИ
устройства
СМ (СИСТАМНАЯ МАГИСТРАЛЬ)
БФИ
СТ
УВВ
УВВ
Индикатор
БПС
ККИ
WDT
АС
DC
Клавиатура
К ОБЪЕКТУ
к ЭВМ ВУ
следующий вид: 
 
В микропроцессорных устройствах используются магистрально – модульная 
структура,  т.е.  к  единой  системной  магистрали  (СМ)  подключены  все 
основные блоки: 
МПМ–микропроцессорный 
модуль 
реализуется 
на 
основе 
однокристального процессора или микроконтроллера. 
СС–схема  синхронизации,  обеспечивает  генерацию  тактовой  частоты 
процессора и сигнала «Сброс». 

 
9
БФСМ–блок  формирования  системной  магистрали,  преобразует 
сигналы управления микропроцессора в сигналы шин системной магистрали. 
БЗУ–блок  запоминающих  устройств,  включает  ОЗУ,  ПЗУ,  часто 
энергонезависимую память. 
БОП–блок 
обработки 
прерывания 
от 
основных 
модулей 
микропроцессорного устройства. 
БФИ–блок  формирования  времени  интервалов,  используется  как  для 
подсчета  времени,  так  и  для  подсчета  внешних  импульсов;  реализуется  в 
виде таймера-счетчика. 
СТ (WDT)–Watch Dog Timer-сторожевой  таймер,  предназначен  для 
устранения  аварийных  зацикливаний  программ  микропроцессорного 
устройства. 
УВВ 
АС–устройство 
ввода/вывода 
аналоговых 
сигналов, 
предназначенных  для  измерения  и  генерации  напряжений  различной 
амплитуды,  как  правило,  находящейся  в  диапазоне 0…10 В.  При  этом  как 
устройство  ввода  используется  АЦП,  а  как  устройство  вывода  аналогового 
сигнала ЦАП или ШИМ. 
УВВ DC–устройство 
ввода/вывода 
дискретных 
сигналов, 
предназначенных для измерения и выдачи логических сигналов, как правило, 
ТТЛ-уровней. 
БПС–блок  последовательной  связи,  предназначен  для  приема  и 
передачи  информации  из  МПУ  на  ЭВМ  ВУ,  или  на  другое  устройство. 
Представляет 
собой 
либо 
последовательный 
интерфейс, 
либо 
промышленную сеть. 
ККИ–контроллер  клавиатуры  и  индикаторов,  предназначен  для 
подключения  к  устройству  клавиатуры  и  линейки  семи  сегментных  или 
жидкокристаллических индикаторов. 
БФИ–блок  формирования  интерфейса,  предназначен  для  усиления 
сигналов СМ и выдачи их на разъем. 
Определение.  МПУ  называется  с  открытой  архитектурой,  если 
сигналы  СМ  выдаются  на  разъем  и  могут  быть  использованы  для 
подключения внешних устройств. Иначе-с закрытой архитектурой. 
Иные  периферийные  устройства–в  качестве  них  может  быть 
использованы  контроллеры  различных  последовательных  и  параллельных 
интерфейсов(для  подключения  приборов,  внешней  дисковой  памяти, 
специальных устройств управления и т.д.).  
Часто  в  промышленных  МПУ  используется  накопители  на  «твердых» 
дисках.  По  сути  дела  это Flash-память,  но  с  файловой  организацией,  как  у 
диска. 
 
Тема 2. - 2 часа  (у.з.-2).  Системное  программное  обеспечение  (ПО) 
микропроцессорных систем. 
Состав  и  структура  ПО  микропроцессорной  системы.  Общая  структура  и 
основные  функции  управляющей  программы  “монитор”.  Общая  характеристика 

 
10
тестовых процедур основных узлов микропроцессорного контроллера. Библиотеки 
стандартных прикладных программ.  
 
1.8.  Структура программного обеспечения МПУ 
Программное обеспечение можно разбить на три основные части: 
– резидентное системное ПО 
– резидентное прикладное ПО 
– инструментальный кросс системы разработки ПО. 
Резидентное системное ПО включает: 
–  операционные системы реального времени ОСРВ для МПУ (RTX, X11, 
QHS, LINUX,…). Основная  функция  ОСРВ - минимизация  времени 
ответа  прикладного  ПО  на  внешние  запросы,  а  также  упрощение 
взаимодействия  прикладных  программ  с  основными  узлами  МПУ.  В 
простейшем  случае  ОС  реального  времени  может  заменяться 
программой–монитором; 
–  тестовые программные процедуры; 
–  библиотеки  прикладных  подпрограмм,  предназначены  для  упрощения 
написания прикладного программного обеспечения. 
Программа-монитор  предназначена  для  упрощения  взаимодействия  с 
пользователем  через  клавиатуру  или  последовательный  интерфейс.  К 
основным командам монитора относится: 
– просмотр и модификация ячеек памяти устройства (S-команды); 
– запуск программы с введенного адреса (G-команды); 
–  просмотр  и  модификация  портов  ввода/вывода  контроллера (I/O-
команды); 
– пошаговое выполнение программы контроллера (J-команды) и т.д. 
Тестовые  процедуры  предназначены  для  поиска  неисправностей  и 
проверке работоспособности основных узлов МПУ. 
Стандартные  библиотеки  прикладных  программ  могут  иметь 
различный состав в зависимости от области применения МПУ.  
Инструментальные  кросс  системы  разработки  ПО  представляют 
собой совокупность программ для инструментальной ЭВМ.  
Замечание.  Основным  отличием  ОС  реального  времени  от  универсальных 
ОС  является  то,  что  их  главная  цель-минимизация  задержки  для  ответа  на 
внешний  запрос.  Основная  цель  универсальных  ОС - оптимальное 
распределение ресурсов ЭВМ при выполнении программ. 
 

 
11
Тема 3.- 10 часов  (у.з.-3)  Разработка  микропроцессорных  систем  на 
базе 
однокристальных 
микроконтроллеров c RISC-
архитектурой . 
Особенности  разработки  микропроцессорных  систем  на  базе  контроллеров  с 
RISC-архитектурой.  Программируемые  периферийные  контроллеры.  Основные 
технические  характеристики  контроллера  серии PIC16C5X. Общая  архитектура  и 
обозначение  выводов.  Организация  памяти  контроллера  семейства PIC16C5X. 
Регистры  ввода-вывода,  внутренний  таймер  и  схемы  синхронизации.  Система 
команд  контроллера  семейства PIC16C5X. Особенности  контроллеров  с AVR-
архитектурой. Средства разработки PIC-контроллеров. 
 
2. 
Проектирование МПУ на основе 
периферийных ОМК 

2.1. Основные особенности периферийных ОМК 
Предназначены  для  реализации  простейших  алгоритмов  управления 
объектами  или  реализации  вспомогательных  функций  в  сложных  схемах 
управления. Отличительными особенностями их является: 
–  реализуются на основе Гарвардской архитектуры. 
–  система  команд  не  предназначена  для  реализации  сложных 
математических вычислений (отсутствует умножение и деление). 
–  практически  исключают 
аппаратное  расширение,  т.к. 
не 
поддерживают реализацию внешней СМ. 
–  имеют малые габаритные размеры. 
–  используется восьмиразрядный процессор обработки данных. 
В  настоящее  время  используются  следующие  типы  периферийных 
контроллеров:  
-  PIC(Peripherial Interface Controller) фирмы MicroChip, 
-   I8042(Intel), UPI-42(NEC), К1835ВЕ49 (РОССИЯ), 
-   К1878ВЕ1(Тесей) на основе RISC-архитектуры и т.д. 
2.2. Семейства однокристальных PIC-
контроллеров 
Выделяют  четыре  основных  семейства  восьмиразрядных PIC-
контроллеров с RISC-архитектурой: 
1)  PIC16C5*-основное  или  базовое  семейство  контроллеров  с 
двенадцатиразрядными  командами.  Это  имеет  простейшую 
архитектуру. 

 
12
2)  PIC16C6*/7*/8*-усовершенствованное 
семейство 
средней 
производительности с четырнадцатиразрядными командами. Данное 
семейство  характеризуется  большой  номенклатурой  встроенных 
устройств в контроллер(АЦП,ЦАП,ШИМ). 
3)  PIC17C**-высокопроизводительное 
семейство 
с 
шестнадцатиразрядными  командами.  По  своим  возможностям 
приближающиеся 
к 
восьмиразрядным 
универсальным 
контроллерам. 
4)  PIC18C**-модифицированное  высокопроизводительное  семейство 
контроллеров 
с 
четырнадцати 
и 
шестнадцатиразрядными 
командами.  По  сравнению  с  предыдущими  семействами  имеет 
встроенную Flash-память  (перепрограммируемое  ПЗУ);систему 
команд  адаптированную  под  компилятор  языка  С  (Си)  и  линейно 
адресное  пространство  (в  отличие  от  страничного,  используемого 
ранее). 
Замечание.  Все  перечисленные PIC-контроллеры  обладают  полной 
командной совместимостью на уровне ассемблерных мнемоник. 
* −любая 
а
цифр  
2.3. PIC-контроллер PIC16C58 
Данный  контроллер  относится  к  базовому  семейству  контроллеров  с 
двенадцатиразрядными командами и построен на основе RISC-архитектуры. 
Основные технические характеристики: 
1)  Тактовая частота контроллера-20 МГц (быстродействие при этом 
–5 MIPS). Контроллер  является  полностью ????? устройством, 
т.к.  он  может  работать  при  любой  тактовой  частоте  от 0 до 20 
МГц. 
2)  Объем 
внутреннего 
ПЗУ 
(памяти 
программ) 2К-
двенадцатиразрядных слов (ПЗУ с ультрафиолетовым стиранием, 
либо однокристальным программируемым ПЗУ). 
3)  Объем  внутреннего  ОЗУ  (памяти  данных) 73-восмиразрядных 
ячеек или регистра общего назначения. 
4)  Система  команд  включает 33 однословных  команды  (т.к. RISC-
архитектура).  Каждая  команда  выполняется  за  один  машинный 
цикл (200нс),  исключение  составляет  лишь  одна  команда 
перехода, выполняемая за два машинных цикла. 
5)  Имеется  встроенный  восьмиразрядный  таймер-счетчик (tmv0) с 
восьмиразрядными предварительным делителем частоты. 
6)  Имеется  двухуровневый  аппаратный  стек.  Т.о.  вложенность 
подпрограмм не может превышать 2. 

 
13
7)  Контроллер  обладает  низким  электропотреблением:  при 
напряжении  питания 2,4~6 В.,  потребляемый  ток  2мА  в 
нормальном  режиме  и  2мкА  в  режиме  пониженного 
электропотребления. 
8)  реализуется в виде ИС с восемнадцатью выводами. 
9)  Имеется 12 линий  ввода/вывода  для  подключения  к  объекту 
управления, организованных в два порта ввода/вывода: 
–  порт А – четырехразрядный; 
–  порт В – восьмиразрядный. 
 
2.4. Внутренняя структура контроллера PIC16C58 
 
Внутренняя  ОЗУ  (память  данных)  контроллера  состоит  из 73 
восьмиразрядных  РОН  (регистров  общего  назначения)  и 6 регистров 
специального назначения. 
К специальным регистрам относят: 
–  TMR0-регистр данных таймера счетчика контроллера. 
–  STATUS-регистр  признаков  выполненной  операции  (слова 
состояния процессора). 
–  FSR-регистр адреса для косвенной адресации данных. 
–  PCL-младший байт счетчика РС контроллера. 
–  ПОРТ А и ПОРТ В- регистр данных портов ввода/вывода. 
Все перечисленные специальные регистры относятся к устройствам 
непосредственно  не  связанным  с  ОЗУ.  Однако,  все  эти  регистры 
отображены  в  адресном  пространстве  ОЗУ,  т.е.  для  команд  они 
рассматриваются как ячейки ОЗУ с соответствующими адресами. 
АЛУ контроллера позволяет обрабатывать восьмиразрядные данные 
и  выполнять  при  этом  следующие  операции:  сложение,  вычитание,  сдвиг, 
логические операции и битовые операции. 
Если  в  команде  контроллера  используется 2 операнда,  то  один  из 
них  обязательно  размещается  в  рабочем  регистре  (аккумуляторе W). Это 
основной регистр контроллера, и большинство команд оперирует с ним. 
При  выполнении  команды,  признаки  полученного  результата  АЛУ 
обязательно запишется в регистр STATUS. 
 
 
 
2.5. Схемы синхронизации PIC16C58. 
Для  генерации  тактовой  частоты  к  выводам  OSC и  OSC  
1
2
контроллера подключают кварцевый резонатор по схеме: 

 
14
 
Qz 20МГц
Емкости С1и С2-запускающие. 
OSC1
C =15пФ
Вместо  кварцевого  резонатора (Qz) возможно 
1
OSC2
использование внешних RC- цепочек: 
C =15пФ
2
 
 
+Uп=5В
 
R'=3 ... 100K
 
OSC1
C'=20пФ
 
R’=3кОм   fosc=5МГц 
OSC2
R’=100кОм,fosc=100кГц 
fosc/4
При  использовании RC-цепочек  тактовая  частота fosc нестабильна  и 
зависит  от  изменения  напряжения  питания  Uп,  температуры 
окружающей среды и старения RC-элементов. 
 
Для  начального  «Сброса»  контроллера  используют  следующую 
схему: 
Диод VD для  быстрого  разряда  емкости 
10k
+Uп=5В
при включении питания Uп. 
VD
Данная  схема  формирует  сигнал  «Сброс» 
10k
(MCLR) 
требуемой 
длительности 
MCLR
Сброс
(10…100мс). 
1.0
Тактовая частота fosc внутри контроллера 
делится  на 4, т.о.  формируется  частота 
машинных циклов: Fмц=fosc/4. 
За  один  машинный  цикл  (МЦ)  в 
контроллере параллельно выполняется две операции: 
–  выполнение текущей команды. 
–  Выборка следующей команды из памяти. 
 
2.6. Организация памяти программ контроллера 
PIC16C58 (ПЗУ) 
Память  программ  контроллера  предназначена  для  хранения 
выполняемых 
контроллером 
программ 
и 
имеет 
объем 
2к 
двенадцатиразрядных  слов.  Весь  объем  памяти  программ  разбит  на 
четыре страницы, причем объем каждой страницы- 512 слов. 
Команды  всегда  выполняется  из  текущей  страницы  памяти  программ. 
Номер  текущей  страницы  определяется  шестым  и  пятым  битом 
регистра «STATUS». 
Эти биты обозначаются РА1 и РА0. 
Общая структура памяти программ имеет вид: 

 
15
Ячейка  с  адресом 7FFH является  стартом,  т.к.  на  нее  осуществляется 
переход  при  сбросе,  при  включении  питания.  В  ней  располагают 
команду безусловного перехода GOTO на нужную программу. 
 
2.7. Организация памяти данных (внутреннее 
ОЗУ контроллера PIC16C58) 
Внутреннее ОЗУ состоит из : 
–  73  регистров 0H (ячеек),организованных  в  виде  четырех  банков 
регистров; 
–  банка  специальных  регистров,  включающих  семь  регистров 
управления. 
Общая структура памяти данных имеет вид: 
 
Текущий,  используемый  в  данный  момент  банк  РОН  определяется 
шестым и пятым битом регистра FSR. 
Память  данных  построена  т.о.,  что  при  выборе  любого  из  банков 
остается  доступным  банк  специальных  регистров.  При  этом  он  заменяет 
отсутствующие ячейки с адресами (20H…2FH, 40…4FH, 60…6FH). 
Рассмотрим 
подробнее 
управляющие 
регистры  из 
банка 
специальных регистров: 
 INDF* 
(адрес  в  ОЗУ  0Н) – это  регистр  данных  при  косвенной 
адресации данных. 
Физически  данный  регистр  не  существует,  он  используется  только 
совместно  с  регистром FSR. При  обращении  к  регистру INDF фактически 
происходит  обращение  к  ячейки  ОЗУ,  адрес  которой  находится  в  регистре 
FSR. 
Пример.  
ADDNF  INDF,0   ; W
W+(ячейка с адресом из FSR)  
 
 TMR0 
(адрес  в  ОЗУ  1Н) - регистр  данных  восьмиразрядного 
таймера-счетчика контроллера . 
 PCL 
(адрес в ОЗУ 2Н) - младший байт счетчика команд контроллера 
РС . Счетчик  команд  РС  одиннадцатиразрядный  и  используется  для 
адресации команд в памяти программ контроллера. Он позволяет адресовать 
любую из 
11
2048 = 2  команд, находящихся в памяти программ. 
Формат счетчика команд РС: 
 
 
A
A
A
A
A
A
A
A
A
A
A
10
9
8
7
6
5
4
3
2
1
0
6
5
PCL (ячейка с адресом 02Н)
PA
PA
1
2
STATUS
значение зависит от выполняемой команды
определяет номер
GOTO,то А8 определяется адресом перехо
текущей страницы
да из команды
п п
CALL (вызов в п/п), то А8=0

 
16
 
PCL  может  изменятся  любой  командой  перехода,  либо  командой 
изменения содержимого ячейки памяти . 
STATUS  (адрес  в  ОЗУ 03Н) - регистр  признаков  результатов  (регистр 
состояния контроллера) имеет формат: 
Z  -  признак  нулевого 
7
0
результата. 
PA
PA
TO
TD
Z
DC
C
1
0
- бит-признак переноса 
(заем) 
из 
старшего 
номер текущей
разряда. 
страницы п п
 
DC - бит-признак дополнительного переноса из одной тетрады байта в 
другую. 
TO  и  TD  -  биты,  определяющие  источник  сигнала  «Сброс 
контроллера» (сторожевой  таймер WDT, внешний  сигнал  сброса),  а  также 
режим контроллера, в котором этот сигнал поступил (рабочий режим, режим 
пониженного потребления) . 
FSR  (адрес  в  ОЗУ  4Н) - регистр  адреса  при  косвенной  адресации 
операндов (см. INDF* ). Формат регистра FSR: 
 
7
0
х
B
B
a
a
a
a
a
1
0
4
3
2
1
0
номер текущего
адрес ячейки в
банка ПД
текущем банке ПД
Замечание.  Если  разряд  a4   в  регистре FSR a
0
4 =
,  то  номер  текущего 
банка  1
B ,  0
B  не анализируется и всегда выбирается банк специальных 
регистров. 
Port A, Port B  (адрес  в  ОЗУ 05Н  и06Н) - регистры  данных  портов 
ввода/вывода контроллера. 
Разрядность  регистра PortA- 4 бита  (отсутствует 4 старших  бита), 
разрядность PortB - 8 бит. 
Для  управления  портами  используются  специальные  регистры 
управления:  TRISA  и TRISB (Transiver / Resiver Instruction Set). 
Разрядность  регистров  TRISA   и  TRISB   совпадает  с  разрядностью 
соответствующих портов (Port A и Port B). 
Установка  бита  в  регистр TRIS управляет  соответствующим  битом 
PortA и Port B. 
Установка  разряда  регистра TRIS в  единицу  программирует 
соответствующий  разряд  порта  на  ввод  информации.  Установка  в  ноль 
программирует разряд порта на вывод. 
Для  записи  информации  в  регистр TRIS используется  специальные 
команды: 
TRIS 5 ; W→ TRISA  

 
17
TRIS 6 ; W→ TRISB  
Чтение  или  запись  информации  в  порт  А  или  В  осуществляется  теми  же 
командами, что и для записи/чтения ячеек ОЗУ: 
  MOV WF   Port A, W ; Port A→N 
MOV F   Port A, W ; W→ Port A. 
2.8. Модуль таймера/счетчика контроллера 
PIC16C58 
Данный модуль предназначен для : 
–  подсчета  числа  внешних  импульсов,  подаваемых  на  вход 
контроллера TOCKI (режим счетчика); 
–  подсчета  числа  машинных  циклов  контроллера (fosc/4) (режим 
таймера). 
Замечание.  Т.к.  частота  машинных  циклов  при  использовании  кварцевого 
резонатора  высокостабильна,  то  второй  режим  используют  для  подсчета 
времени. 
Структурная схема таймера/счетчика имеет вид: 
fosc/4 (мц)
Прдварительный
0
делитель частоты
1
Задержка
Счетчик
2 импульса
TMR0
TOCKI
1
0
(8разр.)
8
7
3
к ОЗУ
0
OPTION
х
х
TOCS
TOSE
PS
PS
PS
PS
2
1
0
 
Основными блоками таймера/счетчика является: 
–  восьмиразрядный двоичный суммирующий счетчик TMR0; 
–  восьмиразрядный  предварительный  делитель  частоты,  который 
также  представляет  восьмиразрядный  счетчик  с  программируемым 
коэффициентом деления частоты . 
 
Основной 
отличительной 
чертой 
счетчика TMR0 от 
восьмиразрядного  предделителя  частоты  является  то,  что  информацию  о 
числе бит подсчитанных предделителем частоты считать невозможно. 
Предделитель работает как программируемый делитель частоты. 
При  записи  информации  в TMR0 автоматически  обнуляется 
предделитель частоты. 
Поясним назначение бит регистра OPTION, управляющего работой 
таймера/счетчика и изображенного на рисунке выше: 
 
TOCS  -  бит,  определяющий  режим  таймера (TOCS=0) или  счетчика 
(TOCS=1); 

 
18
TOSE - определяет  управляющий  фронт  по  которому  осуществляется 
модификация таймера- счетчика:  
                                        
1
0
                    
1                                                          
1
 
0
0
PS  -бит,  определяющий  назначение  предва-рительного  делителя 
частоты ( если PS=0, то предделитель используется со сторожевым таймером 
WDT, но не с таймером TMR0, с TMR0 когда PS=1). 
 
PS2 − PS0   -  биты,  определяющие 
PS
PS
PS
TMR0
WDT
2
2
2
коэффициент 
деления 
частоты 
предделителя в соответствии с таблицей. 
0
0
0
1:2
1:1
 
0
0
1
1:4
1:2
Для записи информации в регистр 
0
1
0
1:8
1:4
0
1
1
1:16
1:8
OPTION 
используется 
специальная 
1
0
0
1:32
1:16
команда: 
1
0
1
1:64
1:32
OPTION; W→OPTION 
1
1
0
1:128
1:64
1
1
1
1:256
1:128
 
2.9. Сторожевой таймер WDT контроллера 
PIC16C58 
Сторожевой  таймер  предназначен  для  устранения  аварийных 
зацикливаний программ контроллера (зависания). 
Принцип его работы состоит в следующем, через строго определенный 
интервал  времени  (≈18мс)  сторожевой  таймер  генерирует  сигналы  «сброс 
контроллера».  Нормально  функционирующее  ПО  не  должно  допускать 
сброса контроллера, осуществляя постоянное обнуление WDT и тем самым, 
заставляя его начать отсчет времени заново. 
Обнуление WDT осуществляется специальными командами: 
CLEEP; 
или 
CLRWDT. 
Если  же  программа  зациклилась,  то  обнуление WDT не  произойдет 
вовремя, а следовательно произойдет сброс контроллера и перезапуск ПО. 
 

 
19
Общая структураWDT имеет вид: 
 
Непосредственно  таймер WDT представляет  собой RC-генератор 
встроенный  в  контроллер  и  работающий  независимо  от  основной  тактовой 
частоты. 
В  случае  использования  предделителя  частоты  с WDT интервал 
генерации  сигнала  «сброс»  увеличивается  на  коэффициент  деления 
предделителя (максимальный интервал может быть 128⋅8мс ≈ 2,3с). 
2.10.  Система команд контроллера PIC16С58 
Состоит из 33 двенадцатиразрядных команд. При этом каждая команда 
имеет  поля  бит,  определяющие  код  операции  (КОП)  и  используемые 
командой операнды (ОП): 
В  качестве  операнда  в  команде 
11
10
1
0
контроллера может использоваться: 
–  любая  ячейка  внутреннего  ОЗУ 
КОП
ОП
контроллера  (при  этом  в  команде 
указывается ее адрес); 
предделитель
частоты
1
WDT
Сброс
0
PS (OPTION)
PS ...PS  (OPTION)
2
0
–  непосредственно число (данное), участвующее в операции; 
–  любой  из  битов  одной  из  ячеек  памяти  ОЗУ(при  этом  указывается 
адрес ячейки и номер бита). 
Выделяют три основных группы команд контроллера: 
–  команды работы с байтами; 
–  команды работы и битами; 
–  команды передачи управления и работы с константами. 
Группировка  команд  осуществляется  по  общности  битовых  форматов 
команд. 
2.10.1. 
Команды работы с байтами 
Битовый формат этих команд имеет вид: 
 
d-бит, 
определяющий 
приемник 
6
5
1
11
4
результата операции. 
КОП
d
f

W
результата
 
приемник
 ,
0
d = ⎨
 
⎩ f 
,
1
ОП

 
20
 
f - поле, определяющие адреса используемого регистра из внутреннего 
ОЗУ контроллера. 
Все команды работы с байтами делят на подгруппы: 
1)  Команды арифметических операций. 
2)  Команды логических операций. 
3)  Команды пересылки данных. 
1) Команды арифметических операций

d
 
W, = 0
а) ADDWF f, d ;   f +W→ ⎨
 
⎩ d
 
f, = 1
Сложить  содержимое  регистра F с  содержимым  рабочего  регистра W, 
результат в W, если d=0 и в f, если d=1. 
КОП: 000 111 
Пример.     ADDWF   FSR, 0;   FSR+W→W. 
Для данной команды составим КОП: 
 
0
11
5
 
0
0
0
1 1
1
0
0
0
1 0
0
1xC4H
 
d
адрес
 
FSR=4H
 

d
 
W, = 0
б) SUBWF   f, d ;   f-W= ⎨
 команда вычитания. 
⎩f d
 ,
 
= 1
⎧f d
 ,
 
= 1
в) DECF   f, d   ;f-1= ⎨
 команда декремента (уменьшения на 1). 

d
 
W, = 0
⎧f d
 ,
 
= 1
г) DECFSZ   f, d   ;f-1= ⎨
 команда спецдекремента. 

d
 
W, = 0
Уменьшение f на  единицу  и  с  попуском  следующей  команды,  если 
получен нулевой результат. 
Замечание.  Реально  процессор  при  пропуске,  вместо  выполнения 
следующей  команды,  выполнит  пустую  операцию,  если  при  вычитании 
получен нулевой результат. 
Команда DECFSZ используется для организации цикла. 
Пример.    MOVLW   0x10H; W загрузить 10Н 
    MOVWF   COUNT ; W перегрузить в яч. ОЗУ с адресом COUNT 
L1 ……; метка L1 
< команда 1
  > ⎫⎬
 
я
повторяетс (тело цикла) 
< команда 2
  >⎭
DECFSZ   COUNT, 1   ; COUNT←COUNT-1 
GOTO L1 
Тело  цикла  будет  повторено  столько  раз,  какое  значение  было  изначально 
загружено в ячейку ОЗУ COUNT. 
⎧f d
 ,
 
= 1
д) INCF   f, d ;   f +1→ ⎨
 команда инкремента (увеличения на 1). 

d
 
W, = 0

 
21
Пример. INCF   FSR, 1;   FSR← FSR+1 
  INCF   4, 1;   FSR← FSR+1 
            ↑ 
   адрес FSR 
⎧f d
 ,
 
= 1
е) INCFSZ   f, d;   f +1→ ⎨
; команда спец. инкремента. 

d
 
W, = 0
Инкремент,  но  с  пропуском  следующей  команды,  если  получен  нулевой 
результат. 
Замечание. Нулевой результат возникнет при переполнении регистра f. 
Эта команда также используются для организации цикла. 
      2) Команды логических операций. 
а) ANDWF   f, d – логическое умножение (“И”). 
     IORWF   f, d  – логическое сложение (“ИЛИ”). 
     XORWF   f, d – логическое сложение по модулю два (исключающее ИЛИ). 

d
 
W, = 0
f ⊕ W → ⎨
 
⎩f d
 ,
 
=1
Замечание. Все логические операции выполняются побитно 
0010 1010
& 0110 1100  
0010
   
1000
  
f
   
RLF
d
 ,
  -⎫
б)
− на
влево
 
бит
 
1
 
⎬   команды логического сдвига: 
 
f
   
RRF
d
 ,
  -⎭
− на
 
вправо
 
бит
 
1
 

⎧f d
 ,
 
=1
→ ⎨
 
f
⎩f d
 ,
 
= 0
Схема сдвигов имеет вид: 
нулевой бит
 
регистра
STATUS
C
регистр F
Влево
7
0
Для  получения  сдвига  вправо  необходимо  изменить  направление 
стрелок. 
в) SWAPF   f ,d ;  команда обмена тетрад в регистре f. 
 
регистр F
→ ⎧f d
 ,
 
= 1
  ⎨
 
7
4 3
0

d
 
W, = 0
 
 
 
г) CMPF   f , d ;  команда инверсии бит регистра f. 

 
22
⎧f d
 ,
 
=1
f →
 

 
 

d
 
W, = 0
3) Команды пересылки данных
⎧f d
 ,
 
=1
а) MOV f , d   ;    f →
 

 
 

d
 
W, = 0
Переслать  значение  из  регистра f в  рабочий  регистр W, если d=0 и 
назад в регистр f,если d=1. 
Пересылка из f в f используется для установки признаков результата в 
регистр STATUS, например, нужно проверить содержимое ячейки ОЗУ. 
б) MOVWF   f   ;   W→f – пересылка значения из W в F. 
Замечание.  Во  всех  перечисленных  командах  работы  с  байтами 
регистра f выбирается  из  текущего  банка  внутреннего  ОЗУ,  который 
определяется четвертым и пятым битом регистра FSR. 
2.10.2. 
Команды работы с битами PIC16C58 
Битовый формат данных команд имеет вид: 
КОП– код операции; 
f – регистр, используемый как источник операндов(любая ячейка ОЗУ); 
в – номер  бита  из  регистра f, с  которым  выполняются  действия  в 
команде. 
f
   
BCF
в
 ,
  ⎫
 
команды установки − '0'
 
в ⎫
0100
а) 

⎬КОП
 
f
   
BSF
в
 ,
  ⎭бита
регистра
   
№в
 
F
  − '1'
 
в
 

0101
 
Пример:  BSF   FSR, 4 ;   установка в единицу четвертого бита FSR (FSR.4=1) 
 
0 1
0 1
1
0
0
0
0
1 0
0
 5x84H 
КОП
в
FSR
 
б) BTFSC f, в; – команда  пропуска  следующей  команды,  если  бит  №в  в 
регистре F=0. 
8 7
5
0
11
4
КОП
в
f
 в) BTFSS   f , в – команда пропуска следующей команды, если бит №в=1. 
 
Эти две команды используются для организации условных переходов. 
При этом в качестве следующей команды используется безусловный переход 
GOTO, а анализируются биты регистра STATUS. 
Пример. Переход, если результата равен нулю. 

 
23

,3
 
STATUS
   
BTFSC
⎤Z = 0

 

M1
   
GOTO


В  команде  анализируется  третий  бит  регистра STATUS признак 
нулевого результата Z. При этом команда перехода GOTO будет выполняться 
(не  пропускаться),  если  анализируемый  бит Z=1 (т.е.  получен  нулевой 
результат). 

,0
 
STATUS
   
BTFSC


⎥  

M1
   
GOTO

команда перехода, если перенос C и т.д. 
 
2.10.3. 
Команды передачи управления и 
работы с константами 
Битовый формат этих команд имеет вид: 
 
КОП
k
 
к– константа или адрес перехода, используемый в команде исключение 
составляет лишь одна команда GOTO. 
Ее формат имеет вид:  
а) MOVLW   k ;   W←k   
загрузка в W константы k. 
б) GOTO   k; безусловный переход на команду с девятиразрядным адресом в  
k, в текущей странице памяти программ. 
в) CALL   k;   команда вызова подпрограмм по восьмиразрядному адресу k,  
в текущей странице памяти программ. 
Действия, выполняемые по команде CALL: 
–  в  стек  загружается  одиннадцатиразрядный  адрес  команды 
следующей за командой CALL (адрес возврата). 
–  Осуществляется переход в текущей странице на адрес k, но при этом 
девятый бит адреса подпрограммы устанавливается в ноль. PC.8=0. 
г) RETLW   k– возврат из подпрограммы с загрузкой константы k в рабочий  
регистр W. 
Действия по команде: 
КОП
k-адрес перехода
1 0
1
–  в регистр W загружается k. 
–  из  стека  читается  одиннадцатиразрядный  адрес  возврата  и 
осуществляется переход по этому адресу. 
Команду RETLW k, удобно  использовать  для  организации  таблиц 
значений памяти программ контроллера. 

 
24
2.10.4. 
Команды управления режимами 
работы контроллера PIC16C58 
К ним относятся: 
CLRWDT–команда обнуления сторожевого таймера. 
SLEEP–команда  перевода  контроллера  в  режим  пониженного 
электропотреблением (спящий режим). В этом режиме: 
–  останавливается 
работа 
основного 
тактового 
генератора 
контроллера с частотой fosc; 
–  останавливается работа процессора; 
–  на всех выводах портов А и В сохраняется текущее значение; 
–  электропотребление снижается в 1000 раз Iпотр.≈1мкА. 
Режим  используется  в  случаях,  когда  контроллер  ожидает  внешнего 
события. Для выхода из режима SLEEP необходимо: 
–  ибо сгенерировать внешний сигнал «сброс» (вход MCLR); 
–  либо сгенерировать «сброс» с помощью сторожевого таймера WDT. 
 
TRIS K –  команда  загрузки  управляющего  слова  в  регистры 
управления порта А и В . 
OPTION –  загрузка  управляющего  слова  из W в  регистр  управления 
таймером OPTION . 
NOP – пустая операция (задержка на один машинный цикл). 
2.11.  Влияние команд контроллера на биты-
признаки результата (в регистре STATUS) 
1)  На все признаки результата Z,C,DC влияют только две команды: 
–сложение   ADD WF 
–вычитание   SUB WF 
2)  влияют на признак переноса С (только на него!) команды сдвигов RLF, 
RRF. 
3)  Не влияют ни на один из признаков следующие команды: 
MOV WF, DECFSZ, INCFSZ все битовые команды; команды передачи 
управления. 
4)  Все  оставшиеся команды влияют только на один признак Z (нулевого 
результата). 
Пример. Составить программу заполнения константой 0ААН области ОЗУ 
с адресами: 50H…5FH (второй банк). 
 
2.12.  Разработка простейшего устройства на 
основе PIC-контроллера. 
Рассмотрим  разработку  кодового  замка  на  основе PIC- контроллера. 
Принципиальная схема, которого следующая : 
 

 
25
Пусть  замок  открывается  (срабатывает  реле  РР),  если  нажата 
комбинация клавиш 567.  
Напишем программу управления кодовым замком: 
При удерживании клавиш 5,6,7 замок будет открыт, иначе–закрыт. 
 
Тема 4.- 14 часов  (у.з.-3).  Особенности  архитектуры  универсальных 
однокристальных 8-разрядных  микроконтроллеров  (ОМК). 
Построение МПУ на базе универсальных ОМК. 

Особенности  архитектуры  и  технические  характеристики  ОМК  серии 1816 
(MCS-51).  Структура,  назначение  выводов  и  основные  режимы  работы  ОМК 
К1816ВЕ51.  Организация  памяти  данных  и  программ  ОМК.  Особенности  работы 
портов  ввода/вывода  ОМК,  понятие  квазидвунаправленности.  Система  команд  и 
основы  языка  ассемблера  ОМК  К1816ВЕ51.  Способы  адресации  операндов. 
Построение  микропроцессорного  модуля  на  базе  ОМК  серии 1816. Особенности 
подключения  внешней  памяти  программ  и  данных,  а  также  дополнительных 
портов ввода/вывода. Расширение ввода-вывода с помощью интерфейсных БИС. 
 
3. 
Проектирование МПУ на основе 
универсальных восьмиразрядных 
ОМК семейства MSC–51 

3.1. Основные технические характеристики и 
структура ОМК К1816ВЕ51 
Контроллер  К1816ВЕ51  является  функциональным  аналогом  ОМК 
I8051(Intel),  выполненного  по  Н-МОП  технологии (n-MOS). Существует 
аналог  К1830ВЕ51,  который  представляет  собой  тот  же  контроллер,  но 
выполненный по  К-МОП технологии (I80C51). 
Замечание:  ОМК,  выполненные  по  н-МОП  технологии  обладают 
большим 
быстродействием, 
а 
по 
к-МОП 
минимальным 
электропотреблением. 
Контроллер  представляет  собой  БИС  с 40 выводами.  Структурная 
схема контроллера К1816ВЕ51 имеет вид: 
Основными функциональными модулями ОМК К1816ВЕ51 являются: 
1)  быстродействующее восьмиразрядное АЛУ с УУ; 
2)  встроенный  генератор  тактовых  импульсов  (ГТИ),  к  входам 
которого подключен внешний кварцевый резонатор; 
3)  два многофункциональных 16-разрядных таймер-счетчика Т0 и Т1; 
4)  резидентная  память  данных  РПД  (внутреннее  ОЗУ)  объемом 128 
байт; 
5)  резидентная  память  программ  РПП  (внутреннее  ПЗУ)  объемом 
4Кх8; 

 
26
6)  встроенный  контроллер  прерываний  К  Пр.,  позволяющий 
одновременно  обрабатывать  запросы  прерывания  от  восьми 
источников; 
7)  универсальный адаптер последовательного интерфейса, типа RS 232 
(УАПИ); 
8)  четыре 8-разрядных  двунаправленных  порта  ввода/вывода.  Р0, 
Р1,Р2,  Р3.  Направление  передачи  информации  по  линиям  портов 
программируется.  
Замечание:  отличие  универсальных  ОМК  от PIC контроллеров  в  основном 
состоит  в  возможности  универсальных  ОМК  расширять  номенклатуру 
устройств  путем  подключения  внешних  ИС  с  использованием  внешней 
системной магистрали. 
Например,  ОЗУ  ОМК  может  расширяться  до 64 кбайт  путем 
подключения внешних ИС, аналогично можно расширять и ПЗУ до 64кбайт. 
Быстродействие ОМК К1816ВЕ51 составляет 0,5÷1 MIPS, при тактовой 
частоте fosc=3.5÷12 МГц. 
Частота машинных циклов ОМК определяется по формуле: fмц=fosc/12, а 
частота машинных тактов: fмт=fosc/2. 
Система  команд  состоит  из 111 базовых  операций  представляемых  в 
виде 1, 2 и 3-байтовых  команд.  Большинство  команд  выполняется  за 1-2 
машинных  цикла,  исключение  составляют  лишь  две  команды:  умножения 
(MUL) и деление (DIV), выполняемые за четыре машинных цикла. 
Система  команд  ориентирована  на  эффективную  обработку  как 
логической информации (имеются битовые операции), так и на  выполнение 
сложных  арифметических  вычислений  (аппаратно  реализованы  команды 
MUL и DIV). 
3.2. Назначение основных выводов БИС ОМК 
К1816ВЕ51 
На принципиальных схемах ОМК ВЕ-51 изображают в виде: 
 
АД7
P0.7
х1
 
MCS
АД6
P0.6
х2
 
P0.5
АД5
P2.0
A8
 
P2.1
A9
 
P2.2
A10
P2.3
A11
 
АД0
P0.0
 
RST
P2.6
A14
 
EA
P2.7
A15
 
RD
P3.7
PSEN
WR
P3.6
ALE
 
T1
P3.5
P1.0
 
T0
P3.4
P1.1
 
INT1
P3.3
P1.2
 
INT0
P3.2
P1.3
TxD
P3.1
 
RxD
P3.0
К1816ВЕ51
P1.7

 
27
RST–  входной  сигнал  начальной  установки  на  этот  вход  должен  быть 
подан сигнал «1» в течении 20мс. 
Схема  начальной  установки  по  включению  питания  и  по  кнопке 
”сброс” имеет вид: 
10мкФ
По  сигналу  «сброс»  в  ОМК 
+Uп = 5В
осуществляется: 
"сброс"
–перевод  всех  портов  ввода/вывода 
RST
на ввод информации; 
–запрещаются 
все 
прерывания 
VD
8,2К
контроллера; 
КД520
–информация  во  внутреннем  и 
внешнем ОЗУ сохраняется; 
–осуществляется переход на программу, начинающую с адреса 0Н. 
Х1  и  х2-выводы  для  подключения,  внешнего  кварцевого  резонатора  с 
частотой  fosc (fosc  может  лежать  в  пределах 3,5÷12 МГц  или,  если 
используются аналогичные фирмы  t
A mel, то 0÷24 МГц). 
Схема 
подключения 
кварцевого 
f
=12МГц
резонатора: 
osc
QZ
С1 и С2–запускающие емкости. 
х1
 
C1
х2
Контроллер  ВЕ51  имеет  четыре 8-
C2
разрядных  порта  ввода/вывода  Р0,  Р1,  Р2,  Р3; 
большинство  из  них  могут  работать  в  двух 
режимах: 
–в режиме обычного порта ввода/вывода информации; 
–в  режиме  ввода  или  вывода  управляющих  сигналов  (альтернативный 
режим). 
Р0.0…Р0.7–выводы  двунаправленного 8-разрядного  порта  Р0.  В 
альтернативном  режиме  эти  выводы  могут  использоваться  для  выдачи  и 
приема сигнала адреса/данных (АД0…АД7), т.е. эти линии используются для 
обмена  данными  Д0…Д7  или  передачи  адреса  А0…А7  во  внешние 
устройства  или  внешнюю  память.  Передача  адреса  при 
 
этом по 
данным  линиям  подтверждается  отрицательным  фронтом  на  1
выводе ALE. 
0
ALE (Address Latch Enable–разрешение  фиксации  адреса).  Он 
обязательно  генерируется  в  каждом  машинном  цикле,  поэтому  на  выходе 
ALE  всегда  присутствует  сигнал,  изменяющийся  с  частотой  машинных 
циклов fosc/12. 
Р2.0…Р2.7–линии 8-разрядного квазидвунаправленного порта Р2. 
 
Замечание:  квазидвунаправленным  портом  называется  порт  в в
ы ода 
информации,  которая  при  определенном  исполнении  может  применяться  и 
для  ввода  информации.  Например,  для  ввода  информации  по  линии  Р2 
изначально в эту линию необходимо выдать «1». 
В альтернативном режиме Р20…Р27 испол з
ь уется для выдачи старшего 
байта адреса А8-А15 во внешнюю память или внешнее устройство. 

 
28
  Передача адреса сопровождается отрицательным фронтом ALE. 
P3.0…P3.7–линии 8-разрядного  квазидвунаправленного  порта  Р3.  В 
альтер а
н тивном  режиме  эти  линии  используются  для  передачи  сигн л
а ов 
управления: 
–RD,WR-сигнал  чтения  и  записи  внешней  памяти  данных  (внешнее 
ОЗУ).  По  этим  сигналам  осуществляется  передача  данных  во  внешнюю 
память через линии Р0.0…Р0.7; 
–Т1,  Т0-входы  для  подачи  внешних  импульсов  на  таймеры  счетчики 
контроллера Т1 и Т0. 
–INT1, INT0-входы запроса прерываний от внешних источников. 
–TxD, RxD-выходной сигнал передатчика и входной сигнал приемника 
встроенного последовательного интерфейса ОМК. 
Для  перевода  любой  линии  порта  Р3  в  альтернативный  режим 
необходимо в соответствующую линию порта выв с
е ти «1». 
Пример: MOV P3,#3H   ;P3=3H (линии TxD и RxD выдаются в младшие 
разряды порта Р3). 
–PSEN-выходной  сигнал  чтения  информации  из  внешней  памяти 
программы (внешнее ПЗУ). 
В  контроллере  ВЕ51  реализовано  гарвардская  архитектура  памяти
т.е.  память  программ  (ПП)  и  память  данных  (ПД)  разделены  физически  и 
логически. 
Физическое  разделение  означает,  что  для  обращения  к  каждой  из  них 
использую с
т я свои сигналы управления: 
–RD, WR-для обращения к памяти данных; 
–PSEN-для обращения к памяти программ. 
Логическое  разделение  означает,  что  для  обращения  к  каждой  из  них 
используются разные команды: 
–MOV, MOVX-для обращения к ПД; 
–MOVC-для обращения к 

ПП
В  некоторых  случаях  при  отладке  программ  удобно  совмещать  в 
едином  устройстве  ПП  и  ПД  (в  виде  единого  ОЗУ).  В  этом  случае 
формируют единый сигнал чтения RD2.  
RD
В случае такого объединения памяти организуется 
&
RD2
архитектура Фон-Неймана. 
PSEN
Р1.7÷Р1.0 - линии 8-разрядного 
квазидвунаправленного  по т
р а  ввода/вывода  Р1. 
Линии данного порта не имеют
 
 альтернативных функций. 
3.3. Организация памяти данных контроллера 
ВЕ51 
Память данных (ПД) разделяют на: 
–  резидентную  ПД  (РПД)-встроенную,  объемом 128 байт,  адресами 
0÷7FH; 
–  внешнюю ПД (ВПД), объемом до 64 кбайт, с адресами (0÷0FFFFH). 

 
29
Для обращения к РПД и ВПД используют различные команды: 
–  MOVX-пересылка данных ВПД; 
–  MOV-пересылка данных РПД. 
Общая структура РПД имеет вид: 
Ячейки  с  адресами 0H÷1FH РПД  размещают  банки  регистров  общего 
назначения  (РОН).  Всего  банков  четыре,  и  каждый  из  них  содержит  по 
восемь  регистров: R0, R1,…,R7. Текущий  банк  регистров,  с  которым 
работает процессор задается программно. 
В  адресном  пространстве 20H÷2FH РПД  размещается  область 
прямоадресуемых бит, в этой области каждый из 128 битов имеет свой адрес 
и к каждому из них возможно отдельное обращение с помощью команд. 
 
В  области  с  адресами 30H÷7FH могут  размещаться  любые  данные 
пользователя (байты). 
 
Непосредственно РПД в адресном пространстве примыкает область 
регистра специальных функций (РСФ) с адресами от 80H÷0FFH. 
Вся  работа  основных  узлов  ОМК  управляется  с  помощью  РСФ. 
Перечислим основные РСФ: 
1)  A*-основной регистр контроллера-аккумулятор(его адрес 0E0H). 
 
Замечание: 
«*» означает, что данный РСФ позволяет прямо адресовать 
свои  отдельные  биты.  Например,  для  обращения  к  первому  биту 
аккумулятора в команде записывают АСС.1. 
2)  В*-  регистр  расширитель  аккумулятора  может  использоваться  как 
обычная  ячейка  памяти  с  адресом 0F0H, а  также  используется  для 
хранения  старшего  байта  результата  в  операциях  умножения  и 
деления. 
3)  PSW* (Program Status Word)-слово  состояния  программы.  Его 
формат: 
где 
С-признак переноса; 
АС-признак дополнительного переноса; 
F0-признак  пользователя,  который  устанавливается  программно  по 
усмотрению пользователя; 
RS1, RS0-биты,  определяющие  номер  текущего  регистрового  банка 
(‘00’-нулевой банк РОН,…, ’11’-третий банк РОН); 
 V-признак переполнения, т.е. переноса в старший знаковый разряд; 
  Р- признак паритета (нечетности). 
4) SP - регистр указатель стека в РПД. 
Перед  записью  информации  в  стек,  значение SP увеличивается  н  
а
единицу (SP←SP+1),  после  чтения  информации  из  стека  значение 
7
0
адрес
PSW* C
AC
F0
RS
RS
V
-
P
1
0
0D0H
уменьшается на единицу (SP→SP-1). 

 
30
Такой  режим  работы  со  стеком  называется  «преинкрементный / 
постдекрементный». 
После  сигнала  «сброс» SP=07H, т.е.  стек  располагается  в  первом 
регистровом банке. 
5) DPTR-16-разрядный  регистр  указатель  данных.  В DPTR хранится 
адрес ячейки при косвенном обращении к внешней ПП или данных. 
DPTR состоит из двух 8-разрядных регистров: 
–DPH-старший байт; 
–DPL-младший байт. 
6)  Р0*,  Р1*,Р2*,Р3*-8-разрядные  регистры  данных  портов  ввода/вывода 
ОМК. 
7) IP*, IE*-регистр  управления  приоритетами  прерываний  и  регистр 
маскирования прерываний (запрещений). 
8) TCON , TMOD-
*
регистр  состояния  и  регистр  управления 
внутренними таймерами-счетчиками ОМК Т1, Т0. 
9) TH0, TL0   старший и младший байт данных соответственно  
    TH1, TL1   таймера счетчика Т0 и Т1. 
10) SCON*, SBUF-регистр  управления  и  регистр  данных  встроенного 
последовательного интерфейса. 
11)PCON-регистр управления потребляемой мощностью ОМК. 
3.4. Система команд ОМК К1816ВЕ51 
Система  команд  включает 111 базовых 1, 2, 3-х  байтных  команд. 
Первый байт в команде всегда ход операции, а второй и третий либо адреса 
операндов, либо непосредственно сам операнд. 
В системе команд используются следующие виды адресации операнда: 
– регистровая, если операнд находится в регистре; 
– косвенная-регистровая, если в регистре адрес операнда; 
– прямая, если в команде значением задан адрес операнда; 
– непосредственная, если в команде задано значение операнда (число); 
– неявная, если операнды закодированы в КОП. 
Выделяют пять основных групп команд ВЕ51: 
– команды пересылки данных; 
– команды арифметических операций; 
– команды логических операций; 
– команды работы с битами; 
– команды передачи управления или переходов. 
3.4.1.  Команды пересылки данных 
Все основные пути пересылки данных в контроллере изобразим в виде 
графа: 

 
31
 
 
@A+PC
@DPTR
ВПП
 
ВПД
(ПЗУ)
(ОЗУ)
 
@A+DPTR
@Ri
 
А
 
 
adr
@R
 
i
РПД
R
#data8
n
@A+PC-ячейка  памяти  программ,  адрес  который  вычисляется  как 
сумма,  содержимого  счетчика  команд  РС  и  аккумулятора  (косвенно 
регистровая адресация); 
@A+DPTR- ячейка памяти программ, адрес вычисляется как сумма 16-
разрчдного регистра указателя DPTR и аккумулятора; 
@DPTR-ячейка  внешней  памяти  данных,  адрес  которого  находится  в 
DPTR (адрес 16-разрядный); 
@Ri-ячейка ВПД, 8-разрядный адрес который находится в Ri (i=0,1); 
adr-ячейка, РПД адрес которой прямо указан в команде; 
@Ri-ячейкаРПД, 8-разрядный адрес (i=0,1); 
Rn-операнд  находится  в  регистре  контроллера,  текущего  регистрового 
банка (n=0,7); 
#data8- 8-разрядное значение (байт). 
Кроме указанных путей имеются еще два: 
т.е.  в DPTR можно  загружать 16-
DPTR
#data16
С
bit
,
разрядное значение, а в признак переноса С 
прямо адресуемый бит. 
Можно выделить три типа команд пересылки: 
–  пересылки данных в РПД; 
–  пересылки данных в ВПД; 
–  чтение данных из ВПП. 
 
А) Команды пересылки данных в РПД. 
MOV
   A, src   ;   A←src (src=Rn, @Ri, adr, #data8) 
MOV   Rn, src   ;   Rn←src (src=A, adr, #data8) 
MOV @Ri, src   ;   @Ri←src РПД (src=A, adr, #data8) 
MOV adr, src   ;   adr←src (src=A, adr, Rn, @Ri, #data8) 
Пример: 1)переслать содержимое регистра R1 в R2:  
   MOV 
R2, 
R1; 
такой команды нет 
MOV 2, 1 ; переслать ячейку с адресом 1 в 2. 
2)MOV   @R0, A   ;  из А в ячейку РПД, адрес которой в R0. 
3)MOV   R3, #8H   ;   R3=8H. 
Команды работы со стеком: 
PUSH   adr-загрузить прямоадресуемый операнд в стек; 

 
32
POP   adr-прочитать значение прямоадресуемого операнда из стека. 
Пример: 1)PUSH   1, загрузить в стек значение из РПД с адресом 1Н. 
2)загрузить в аккумулятор значение 10Н: 
MOV   A, #10H 
MOV   ACC, #10H 
XCH      A,  src-команда  обмена  A↔src (src=Rn, @R
A
i, 
7
0
adr); 
SWAP   A-обмен тетрад аккумулятора.  
 
Б) Команды пересылки данных в ВПД. 
Если  используется 16-разрядная  адресация  ячеек  ВПД,  то  команды 
пересылки: 
MOVX   A, @DPTR   ; A←из ячейки по адресу DPTR (ПЗУ) 
MOVX   A, @DPTR   ; @DPTR←A 
Для загрузки регистра DPTR используют команду MOV   DPTR, #data16 
В случае 8-раздной адресации ячеек ВПД используют команду: 
MOVX   A, @Ri   ;   A←@Ri
MOVX   @Ri, A   ;   при этом в Ri 8-разрядный адрес ячейки ВПД. 
 
В)  Команды  чтения  информации  из  ВПП  (или  внутренняя  ПП, 
если ЕА=1). 
MOVC   A, @A+PC   ;   A←@A+PC 
MOVC   A, @A+DPTR   ;   A←@A+DPTR в аккумулятор загружается 
значение  из  ячейки  ПЗУ,  адрес  которой  определяется  как  сумма  А+РС  или 
A+DPTR. 
Пример: 1) прочитать содержимое ячейки ПП, расположенной следом 
за выполненной командой. 
MOV   A, #0H 
MOVC   A, @A+PC 
2) прочитать из ВПД содержимое ячейки памяти с адресом 2000Н. 
MOV   DPTR, #2000H 
MOVX   A, @DPTR 
3.4.2.  Команды арифметических операций 
А) команды сложения: 
ADD   A, src   ;   A←A+src (src=Rni, @Ri, adr, #data8) 
ADC   A, src   ;   A←A+src+C (C-признак переноса) 
 
Б) команды вычитания: 
SUBB   A, src   ;   A←A-src-C 
В) команды инкремента и декремента: 
INC   src   ;   src←src+1 (src=A, Rn, @Ri, adr) 
DEC   src   ;   src←src-1 
INC   DPTR   ;   увеличение на единицу 16-разрядного DPTR. 

 
33
Пример: INC   20H   ;   увеличение на единицу содержимого ячейки по адресу 
20Н. 
Г) команды умножения и деления: 
MUL   AB    ; (B).(A)
A * B
,если значения в регистре В ≠ 0 после умножения, 
старший
младший
то устанавливается признак переполнения V=1. 
байт
байт
разультата
результата
 
DIV   AB    ;
(B)
.
(A)
A / B
целая
остаток
часть
от
результата
деления
 
Команды  работают  с  целыми  числами: DA   A- десятичная  коррекция 
аккумулятора после сложения двоично-десятичных чисел. 
Команды логических операций. 
А) команды логического умножения, сложения и сложения по модулю два. 

A
 ;
 
src
 
A,
   
ANL
← A ∧
(src
 
src
= R @R
 ,
data8)
 
adr,
 ,
n
i

"И"⎢
⎥  

adr,
  
ANL
adr
 ;
 
src
← adr ∧
(src
 
src
= A,#data8)


src
 
A,
  
ORL

"ИЛИ"⎢
⎥  

adr,
  
ORL
src⎦

src
 
A,
  
XRL

"искл. ИЛИ
 
"⎢⎣
src
 
adr,
  
XRL

⎦  
   
Логические операции выполняются побитно. 
Б) команды инверсии, отчистки и сдвига аккумулятора. 
CPL   A   ;   A← А  
CLR   A   ;   A=0 
А
RLA-циклический  сдвиг  аккумулятора  на  один  бит 
влево.  
RR A- циклический сдвиг аккумулятора на один бит вправо. 
RLC A-команда  сдвига  аккумулятора  влево 
через бит переноса С.  
7
А
0
С
RRC A- команда сдвига аккумулятора вправо 
через бит переноса С. 
3.4.3.  Команды работы с битами 
В данных командах в качестве операндов используется: 
–отдельные биты РСФ (помеченные *); 
–биты из области прямоадресуемых бит РПД (20Н÷2FH); 
–отдельные биты портов ввода/вывода. 
В  качестве  битового  аккумулятора  данных  команд  используется 
признак переноса с контроллера. Таким образом один из битовых операндов 
и  результат  выполнения  операции  как  правило  сохраняется  в  признаке 
переноса С. 
А)команды очистки, инверсии и установки бита: 
CLR   bit   ;   bit = 0 
SETB   bit   ;   bit = 1 

 
34
CPL   bit   ;   bit =  bit  
Пример: установка третьего бита аккумулятора: 
SETB   ACC.3 
CPL   P0.6   ;   инверсия шестого бита порта Р0 
CLR   20.6H   ;   отчистка шестого бита ячейки с адресом ?????. 
Б) команды пересылки бит: 
MOV   c, bit   ;   c←bit 
MOV   bit, c 
Пример: MOV   c, P37  ; значение седьмого бита Р3 загружается в с. 
В) команды битовых логических операций: 
ANL   c, bit   ;   c←c ”и” bit (٧) 
ANL   c, /bit   ; подобная команда, но с←с ”и”  bit  с инверсией бита 
ORL   c, bit   ;   c←c “или” bit (٨) 
ORL   c, /bit   ;   c←c “или”  bit  
Пример:  найти  логическое  произведение  третьего  бита  порта  Р2  с  шестым 
битом порта Р3 и результат выдать в нулевой бит порта Р0: 
MOV   c, P2.3   ;   c←P2.3 
ANL   c, P3.6   ;   c←c ٧ P3.6 
MOV   P0.0, c   ;   P0.0←c. 
3.4.4.  Команды передачи управления или 
переходов. 
К ним относятся команды условных и безусловных переходов, а также 
команды вызова возврата из подпрограммы. 
Все команды передачи управления делят на три группы: 
–команды дальних переходов (long); 
–команды абсолютных переходов (absolute); 
–команды коротких (относительных) переходов (short). 
Команды  дальних  переходов  осуществляется  только  внутри  страниц 
объемом 2к байта каждая. 
Относительные переходы осуществляются на расстоянии ±128 байт от 
текущей команды. 
А)команды безусловных переходов и вызова подпрограмм. 
LJMP   adr16 ; безусловный дальний переход 
LCALL   adr16 ; дальний вызов подпрограммы 
AJMP   adr11 ; абсолютный безусловный переход 
ACALL   adr11 ; абсолютный  вызов  подпрограммы (adr11–11-
разрядный адрес перехода) 
SJMP   rel ; относительный  безусловный  переход (rel-смещение 
относительно текущей команды) 
Переход  осуществляется  по  схеме PC←PC+ rel смещение rel может 
принимать  как  положительное  значения  (в  этом  случае  оно  записывается  в 
прямом коде), так и отрицательное (в дополнительном коде). 

 
35
Замечание: в случае использования компиляторов с языков ассемблера часто 
возможно  применения  обобщенных  команд  перехода JMP и CALL. В  этом 
случае  при  трансляции  компилятор  сам  определяет  какой  тип  переходов 
использовать. 
Б)команда относительного безусловного перехода. 
JMP @A+DPTR ; безусловный  переход  по  адресу  вычисляемому  как 
сумма аккумулятора А и регистра указателя DPTR. 
В)команды условных переходов (все они относятся к относительному типу- 
короткие). 
JZ   rel ; переход, если результат равен 0 
JNZ   rel ; переход, если результат не равен 0 
JC   rel ; переход, если перенос (с=1) 
JNC   rel ; переход, если нет переноса (с=0) 
JB   bit, rel ; переход, если значение указанного бита равно 1 
JNB   bit, rel ; переход, если значение указанного бита равно 0 
JBC   bit, rel ; переход, если bit =1 с последующей отчисткой бита. 
Г)команды  организации  циклов  (относятся  к  относительным  переходам- 
коротким). 
DJNZ   Rn, rel ; Rn←Rn-1 (Rn ≠ 0) уменьшение регистра Rn на единицу и 
переход по адресу rel , если Rn ≠ 0 
DJNZ   adr, rel ; уменьшение прямоадресуемой ячейки РПД на единицу 
и переход по адресу rel 
CJNZ   A,#data, rel ; проверка  равенства  аккумулятора  значению data 
A=data и переход на rel, если не равно 
CJNZ   A, adr, rel ; проверка  равенства  аккумулятора  значению  из 
ячейки adr и переход на rel, если не равно 
CJNZ   Rn, #data, rel 
CJNZ   @Ri, #data, rel ; проверка  равенства  значения  и  ячейки,  адрес 
котрой в Ri значению data и переход, если не равно 
Г)команды возврата из подпрограмм. 
RET ; возврат из подпрограммы с извлечением из стека 16-разрядного 
адреса возврата. 
RETI ; возврат  из  подпрограммы  обработки  прерываний  в  отличии  от 
предыдущей команды осуществляет разблокировку приоритетов прерываний 
после обработки подпрограммы. 
 
3.5.  Встроенные таймеры счетчики контроллера 
К1816ВЕ51 
В  контроллере  реализованы  два 16-разряных  суммирующих  таймера 
счетчика  Т0  и  Т1.  Они  предназначены  для  подсчета  внешних  импульсов, 
подаваемых  на  входы  Т0  и  Т1 (режим  счетчика)  и  для  подсчета  числа 
выполненных машинных циклов контроллера (режим таймера). 
Оба таймера счетчика управляются с помощью РСФ: TMOD и TCON. 

 
36
Возможны  четыре  различных  режима  работы  каждого  таймера 
счетчика (нулевого; первого; второго; третьего-режима). 
Нулевой режим работы. 
В  этот  режиме  каждый  таймер  счетчик  работает  как 8-разрядный 
двоичный  счетчик  импульсов  с 5-разрядным  делителем  частоты  и  схемой 
управления. 
Управление данным режимом осуществляется с помощью TMOD: 
 
T0
T1
 
GATE
C / T
M0.1
M0.0
GATE
C / T
M1.1
M1.0
0
0
1
1
 
7
0
GATE–сигнал  (значение  бита TMOD) управляющий  блокировкой 
работы таймера –счетчика. 
Если GATE=1, то работа таймера-счетчика может быть приостановлена 
внешним  сигналом INT=0. Сигнал, INT подается  на  входы  внешних 
прерываний порта Р.3 в альтернативном режиме работы. 
 
 
 
схема управления (А)
 
fOSR
 
1:12
C/T=0
предделитель
TF
 
T0(T1)-входы
TL(5-разряд.)
TH(8-разряд.)
C/T=0
1-пуск
 
0-остановка млад. 8-разрад. старш. 8-разрад.
таймер-счетчик таймер-счетчик
 
GATE
1
1
&
 
INTO
 
(INT1)
TR
 
Данный  режим  удобно  использовать  для  подсчета  длительности 
импульсов, подаваемых на вход INT. 
C / T–бит задания режима работы таймера-счетчика. 
C / T=0–режим таймера. 
C / T=1–режим счетчика. 
М  х.1,  М  х.0–биты  режима  работы  таймера/счетчика (00-нулевой 
режим;01-первый режим; 10-второй режим; 11-третий режим). 
Первый режим таймера-счетчика. 
Полностью совпадает с нулевым режимом, отличие- используется не 5-
разрядный, а 8-разрядный предделитель частоты TL. 
Замечание:  значение  любого  таймера/счетчика  (Т0,Т1)  может  быть 
прочитано  в  любой  момент  времени  путем  чтения  информации  из  регистра 
данных таймеров/счетчиков: 
–TL0, TH0 для T0; 
–TL1,TH1 для T1. 
Замечание:  управление  сигналом  блокировки  счета TR, а  также  чтение 
сигнала  переполнения  таймера/счетчика TF осуществляется  через  регистр 
специальных 
функций TCON:  
7
0
 
TR
TF
TR
TF
IE
IT
IE
IT
1
1
0
0
1
1
0
0
T
T
управление счетчиком
1
0
прерываний

 
37
 
 
Второй режим таймера/счетчика (автоперегружаемого генератора частоты). 
В этом режиме для подсчета импульсов используется только младший 
байт TL таймера/счетчика, а старшие байты TH используются для хранения 
начальных  значений  счетчика TL. При  этом  при  переполнении  младшего 
байта TL  автоматически осуществляется перезагрузка значения из ТН в TL и 
счет возобновляется. 
7
0
TF
схема
TL
&-схема разрешения перезагрузки. 
управления
8
 
(А)
                  &
Замечание:  изменяя  начальное  значение  в 
7
8
0
регистре TH пользователь 
может 
TL
варьировать  период  (частоту)  следования 
периодических  импульсов  на  выходе TF. Таким  образом  реализуется 
генератор импульсов с программируемой частотой. 
Данный  режим  используют  для  задания  скорости  передачи  (следования 
импульсов) по внутреннему последовательному интерфейсу. 
Третий режим таймеров/счетчиков. 
В  этом  режиме  работает  только  таймер  Т0.  При  этом  таймер  Т0 
представляет два независимых 8-разрядных двоичных счетчика: 
–ТН0-может подстывать машинные циклы; 
–TL0-может подсчитывать машинные циклы или внешние импульсы. 
Таким образом используя третий режим в ОМК ВЕ51 можно получить 
три независимых двоичных счетчика. 
3.6.  Встроенный последовательный интерфейс 
ОМК 
Предназначен  для  передачи  байт  по  трем  выделенным  линиям (TxD, 
RxD и GND) последовательно бит за битом. 
Последовательный  интерфейс  представляет  собой  универсальный 
асинхронный приемопередатчик (УАПП). 
Возможны  четыре  режима  работы  УАПП.  Управление  и  обмен 
данными с УАПП осуществляется через два регистра специальных функций: 
–SBUF-буферного регистра данных; 
–SCON-регистра управления интерфейсом. 
Нулевой режим УАПП (сдвигового регистра). 
В  этом  режиме  выход  интерфейса RxD (Р.3.0)  используется  как  для 
приема, так и для передачи восьми битовых информационных посылок. 
Вывод  же TxD (Р.3.1)  используется  для  выдачи  импульсов 
синхронизации,  сопровождающих  каждый  передаваемый  бит  (сдвиговые 
импульсы). 

 
38
Скорость передачи в этом режиме 
RxD
постоянна,  и  определяется  частотой 
следования импульсов  f /12
osc
 
D
D
D
D
D
D
D
D
0
1
2
3
4
5
6
7
 
 
TxD
t
 
 
 
t
 
 
 
 
Первый режим УАПП (старт-стопный десятибитный). 
В  этом  режиме  вывод RxD используется  для  приема,  а TxD для 
передачи 10-битных информационных сообщений вида: 
Если  по  линиям  информация 
(RxD)
TxD
не  передается,  то  она  находится  в 
биты передаваемого байта
состоянии  высокого  логического 
0
D
D
D
D
D
D
D
D
1
уровня «1». 
0
1
2
3
4
5
6
7
t
При  появлении  на  линии TxD 
стартовый
стоповый
бит
бит
(RxD) 
нулевого 
уровня, 
он 
интерпретируется  как  стартовый 
бит, после которого начинается отсчет девяти передаваемых бит с заданной 
скоростью 
передачи. 
Следующее 
появление 
нулевого 
уровня 
интерпретируется как следующий стартовый бит и т.д. 
Скорость  передачи  в  этом  режиме  (частота  следования  бит) 
определяется частотой переполнения таймера Т1 во втором режиме.(при этом 
автоматически выхода TF таймера Т1 подключаются к УАПП) 
Второй  режим  УАПП  (старт-стопный 11-битный  с  фиксированной 
скоростью). 
Работа  аналогична  предыдущему  режиму,  только  информация 
сообщения имеет формат: 
Значение 
КБ 
TxD(RxD)
устанавливается 
биты передаваемого байта
пользователем программно. 
0
D
D
D
D
D
D
D
D
КБ
1
 
0
1
2
3
4
5
6
7
t
Скорость  передачи  в 
стартовый
контрльный стоповый
бит
бит
бит
данном 
режиме 
может 
приниматься 
только 
два 
фиксированных значения:  f / 64
f
/ 32
osc
 и  osc

Третий  режим  работы  УАПП  (старт-стопный 11-битный  с 
переменной скоростью передачи). 
Полностью совпадает с предыдущим режимом, но скорость передачи -
переменная  величина,  определяемая  частотой  переполнения  Т1  во  втором 
режиме (автоперегружаемый генератор). 

 
39
Управление режимом работы последнего интерфейса осуществляется с 
использованием РСФ SCON 
 
7
0
SM
SM
SM
REN
TB
RB
TI
RI
SM
1
0
2
8
8
1, SM0–биты,  определяющие 
номер режима УАПП (00-нулевой;…;11-третий). 
SM2–бит  запрещающий  прием  сообщений  с  нулевым  значением  бита 
КБ. 
REN–бит  разрешения  приема  информации  по  последовательному 
интерфейсу (REN=0-вся информация не принимается). 
TB8–бит,  определяющий  значение  контрольного  бита  передаваемых 
сообщением. 
RB8–бит, определяющий значение КБ в принятом сообщении. 
TI–бит,  определяющий,  что  передатчик  пуст  и  готов  к  передаче 
последующих сообщений. 
RI–  бит,  определяющий,  что  принят  очередной  байт  по 
последовательному интерфейсу. 
Замечание:  сигналы TI и RI могут  генерировать  прерывания  процессора 
(если они разрешены). 
КБ,  а  также  управляющий  бит SM2  удобно  использовать  для  организации 
многопроцессорных  систем  взаимодействующих  по  последовательному 
интерфейсу ,вида: 
последовательный интерфейс
Ведущий ОМК управляет приемом и 
Ведущий
ОМК
передачей данными с ведомых ОМК. 
При этом ведущий передает команды 
Ведомый
Ведомый
ОМК
ОМК
ведомым информационными сообщениями 
1
n
с  установленным  КБ=1,  а  следовательно 
они  воспринимаются  сразу  всеми  ведомыми.  Обмен  же  данными 
осуществляется  сообщениями  с  КБ=0,  а  следовательно  эти  данные 
воспринимаются только одним, выбранным командой, ведомым ОМК. 
3.7.  Задание скорости передачи по 
последовательному интерфейсу 
Во  втором  режиме  работы  последовательного  интерфейса  (УАПП) 
скорость 
передачи 
информации 
рассчитывается 
следующим 
⎛ SMOD 
образом:
2
f
=
⋅ f
 
сдв



⎟ osc ( Гц, Бод
 
)
64


SMOD – старший  седьмой  бит  РСФ PCON (регистр  управления 
потребляемой мощности). 
В  первом  и  третьем  режимах  работы  УАПП  (старт-стопные  режимы) 
скорость 
передачи 
определяется 
по 
⎛ SMOD 
SMOD
формуле:
2
2
fosc
f
=
f
=

256 TH −

 
сдв



⎟ OV
[
] 1
1
32
T1
32
12


где  ТН1-начальное  (автоперегружаемое)  значение  счетчика  Т1, 
работающего в режиме автоперегружаемого генератора; 

 
40
f
-частота  переполнения  таймера  Т1  в  режиме  автоперегружаемого 
T1
OV
генератора. 
Замечание:  согласно  ГОСТ  скорость  передачи  по  последовательному 
интерфейсу 
должен 
выбираться 
из 
следующего 
ряда: fсдв –
…,1200,2400,4800,9600,…бит/сек.(Бот). 
Пример:  определить  значение  автоперегружаемого  счетчика  ТН1  и  бита 
SMOD  для  обеспечения  скорости  передачи  по  последовательному 
интерфейсу  fсдв =9600 бит/сек., если fosc=11МГц. 
20 11⋅106
f
=


− =
 
сдв
[256
]
253 1
бит
 
9568
/сек.
32
12
ТН1=25610=0FCH; SMOD=0 
Составим    программу  задания  режима  работы  последовательного 
интерфейса (инициализация УАПП). 
;Модуль инициализации УАПП 
CLR   TR1   ;   TCON TR1=0-остановили Т1
MOV   TH1, #0FCH   ;   TH1←25310
ANL   PCON, #7FH   ;   SMOD=0 
MOV   SCON, #11011100B   ;   задали  третий  режим  работы 
УАПП(SCON←0DCH) 
MOV   TMOD, #00100000   ;   T1-в  режим  автоперегружаемого 
генератора 
SETB   TR1   ;   TR1=1-запуск Т1
; процедуры приема и передачи байта по УАПП 
CIN:   JNB   RI, CIN   ;   ожидание приема байта по последовательному 
интерфейсу RI=1 
MOV   A, SBUF   ;   считывание принятого байта в аккумулятор 
CLR   RI   ;   SCON.RI=0 
COUNT:      JNB      TI,  COUT      ;      ожидание  готовности  передатчика 
последовательного интерфейса TI=1 
MOV   SBUF, A   ;   загрузка  передаваемой  информации  из 
аккумулятора в последовательный интерфейс SBUF←A 
CLR   TI   ;   обнуление TI, TI=0 
3.8.  Система прерываний ОМК ВЕ51 
Контроллер  позволяет  обслуживать  прерывания  от  пяти  возможных 
источников: 
1) 
от таймеров Т1 и Т0 при возникновении их переполнения TF1 и 
TF0 (два уровня прерывания). 
2) 
Прерывания по внешним сигналам INT1 (Р3.3)поступающим на 
этот вход и INT0 (Р3.2).Два уровня 
3) 
Прерывания  от  последовательного  интерфейса  при  установке 
бит RI или TI (один  общий  уровень  для  приемника  и 
передатчика). 

 
41
К  каждому  из  перечисленных  источников  прерывания  могут  быть 
присвоен свой приоритет: 
–высший 
–низший 
Если  одновременно  возникают  несколько  запросов  от  разных 
источников, то очередность обработки следующая: 
1)  прерывание INT0 
2)  прерывание T0 
3)  прерывание INT1 
4)  прерывание T1 
5)  прерывание от УАПП (RI, TI). 
Управление  работой  системы  прерывания  осуществляется  с 
использованием следующих РСФ: 
–  TCON (младшая тетрада) 
–  Регистр приоритетов прерывания IP* 
–  Регистр маскирования (запрещения) прерывания IE* 
Регистр TCON управляет запросами, поступающими по входам INT0 и 
INT1.  TCON  
7
0
 
TF
TR
TF
TR
IE
IT
IE
IT
1
1
0
0
1
1
0
0
 
управление
таймером
 
IE1, IE0–  биты  устанавливаются  в  единицу,  если  поступил  запрос 
прерывания по входам INT1 и INT0 соответственно; 
IT1, IT0–  биты,  определяющие  признак  прерывания  на  входах INT1  и 
INT0.  Если IT=0, то как прерывание будет рассматриваться нулевой уровень 
сигнала на входе INT1 или INT0 соответственно. 
Если IT=1, то  как  признак  прерывание  будет  рассматриваться  будет 
рассматриваться  переход  сигнала  из  нулевого  уровня  в  единичный 
(прерывание по фронту сигнала). 
Регистр приоритетов прерывания IP* имеет следующий формат: 
7
0
X
X
X
PS
PT
PX
PT
PX
1
1
0
0  
Установка любого из битов этого регистра в «1» означает присвоение 
одному  из  источников  прерывания  высшего  приоритета,  установка  в «0» 
присвоение низшего приоритета. 
PS–соответствует последовательному интерфейсу; 
PT1, PT0–соответствует таймерам Т1 и Т0 соответственно; 
РХ1, РХ0–соответствует входам INT1, INT0 соответственно. 
Формат регистра маскирования прерывания IE* имеет вид: 
7
0
IA
X
X
IS
IT
IX
IT
IX
1
1
0
0
 
Установка IA=0 запрещает все прерывания ОМК. 

 
42
Установка одного из оставшихся битв «0» означает запрещение одного 
из источников прерывания. 
IS–последовательный интерфейс; 
IT1, IT0 – таймеры Т1 и Т0; 
IX1, IX0–прерывания по входам INT1, INT0. 
3.9.  Механизм обслуживания прерываний ОМК 
1.При  поступлении  любого  из  запросов  прерывания  ОМК 
анализируется его приоритет, а также установка маски прерывания. 
2.Если  прерывания  возможно,  то  ОМК  на  аппаратном  уровне 
генерирует для себя код команды LCALL (вызов п/п). 
При  выполнении  этой  команды  в  ОМК  выполняются  следующие 
действия: 
–в  стеке  сохраняется  адрес  текущей  прерванной  команды  (адрес 
возврата из п/п); 
–Осуществляется переход на п/п обработки прерываний в соответствии 
с источником прерывания: 
INT0–адрес п/п 03Н; 
Т0–0ВН; 
INT1–13Н; 
Т1–1ВН; 
Последовательный интерфейс (TI, RI)–23H. 
По данным адресам различают команды безусловных переходов LJMP 
непосредственно на п/п обработки прерывания, размещенные в любом месте 
памяти программ. 
Данные  команды  безусловных  переходов LJMP называют  векторами 
прерываний. 
3.Любая  п/п  обработки  прерывания  должна  завершаться  командой 
возврата RETI (а не RET). 
Замечание: перед выход из п/п обработки прерывания от последовательного 
интерфейса обязательно необходимо установить в ноль биты RI и TI регистра 
SCON (т.е. обнулить запросы прерывания). 
3.10. Построение расширенных МП систем на 
основе ОМК ВЕ 51 
Если  при  разработке  МП  системы  необходимо  подключить  к  ОМК 
ВЕ51  внешнюю  память  данных  (ОЗУ),  или  внешнюю  память  программы 
(ПЗУ),  или  дополнительное  устройство  ввода/вывода  информации,  то  ОМК 
предварительно формирует внешнюю системную магистраль. 
Наиболее  часто  используют  трех  шинную  внешнюю  системную 
магистраль, состоящую из: 
–ША (максимально 16-разрядная); 
–ШД (8-разрядная); 
–ШУ. 

 
43
Общая схема формирования внешней системной магистрали имеет вид: 
8
ША (А ...А )
16
15
0
8
QZ 12 МГц
P2.0
0
А0
0
8
А
ШД
X1
MCS
1
А
DI
DO
8
P2.1
1
0
0
1
30
2
А
DI
RG
DO
9
А9
P2.2
2
1
1
2
10
А
X2
3
А
DI
DO
10
P2.3
3
2
2
3
11
А
4
А
DI
DO
11
P2.4
4
3
3
4
А
5
А
DI
DO 12
12
P2.5
5
4
4
5
А
6
А
DI
DD2 DO 13
13
P2.6
6
5
5
6
А
7
А
DI
DO 14
14
P2.7
6
6
7
7
8
DI
DO 15
А15
P0.0
7
7
P0.1
ST
OE
P0.2
+5 В
+ 10
RST
P0.3
DD1
8,2 К
P0.4
P0.5
P0.6
P0.7
ALE
PSEN
P1.0
ЧТПП
P1.1
P3.7
RD (ЧТПД)
ШУ
P1.2
P3.6
WR (ЗППД)
P1.3
P3.5
IO/M (ШУ)
P1.4
P3.4
P1.5
P3.3
P1.6
P3.2
P1.7
P3.1
К1816ВЕ51
P3.0
 
 
Формирование ША 
Для формирования разрядов ША используется порт Р2 и Р0, при этом 
передача  адреса  по  линиям  порта  Р0  сопровождается  активным  сигналом 
ALE.  Для  сохранения  адресной  информации  на  время  выполнения  команды 
используется регистр защелка DD2. 
Формирование ШД 
Для  формирования  используется  разряды  порта  Р0.  В  то  время,  когда 
по ним не передается адресная информация. 
Формирование ШУ 
Используется  разряды  Р3  в  альтернативном  режиме  работы,  а  также 
сигнал PSEN– чтение информации из внешнего ПЗУ. 
Основными  сигналами  ШУ  является  ЧТПП (PSEN) –чтение  внешней 
памяти программы (ПЗУ). 
ЧТПД- чтение внешней памяти данных (ОЗУ). 
ЗППД- запись информации во внешней памяти данных (ОЗУ). 
IO/M- сигнал выбора устройства для обмена информацией. 
Если IO/M=0, то  обмен  осуществляется  с  внешней  памятью  данных 
(ОЗУ). 
Если IO/M=1, то  обмен  осуществляется  с  внешними  устройствами 
ввода/вывода. 
Замечание:  Сигнал IO/M формируется  пользователем  программно  с 
использованием  любой  свободной  линии  порта  Р1.  Наличие  этого  сигнала 
IO/M  объясняется  тем,  что  внешние  ячейки  ОЗУ  и  внешние  устройства 
ввода/вывода  подключаются  к  системной  магистрали  одинаково  и 
используется единое адресное пространство. 

 
44
3.11. Дальнейшее расширение и развитие 
семейства ОМК MCS-51 
В  настоящее  время  выпускается  большое  количество  ОМК, 
совместимых  с  семейством MCS-51 (Atmel, Siemens, Philips, Sony,…). 
Отличие  от  базового  контроллера  ВЕ-51  этих  совместимых  ОМК  состоит  в 
следующем: 
–  имеется 
дополнительные 
встроенные 
устройства: 
дополнительный  таймер  Т2,  сторожевой  таймер (WDT);8–12-
разрядный АЦП; встроенный контроллер ШИМ и т.д. 
–  расширена  резидентная  память  программы  (внутреннее  ПЗУ) 
до 16К. 
–  снижено электропотребление и т.д. 
–  повышена тактовая частота 
Дальнейшим  развитием MCS-51 является 8-разрядные  контроллеры 
MCS-151/251 (Intel).  
Дальнейшее развитие семейств ОМК 51/151/251 является 16-разрядное 
семейство  ОМК MCS/191/291. Данное  семейство  характеризуется  высокой 
производительностью и широкой номенклатурой дополнительных устройств 
для  повышения  производительности  (например,  встроенный  контроллер 
событий, модуля захват-сравнение, встроенный контроллер сетей.) 
В  настоящее  время  также  как  развитие  семейств 51/151/251 
рассматривают 16-разрядные ОМК семейства С167 (Siemens). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
45
 
Тема 5. - 10 часов  (у.з.-3).  Обеспечение  ввода/вывода  дискретных 
сигналов    в  МПУ.  Системы  программно-логического 
управления. 

Организация  ввода  информации  с  группы  дискретных  датчиков. 
Согласование  уровней  сигналов.  Виды  обмена  данными  МП  с  портами 
ввода/вывода.  Методы  устранение  дребезга  контактных  датчиков.  Подключение 
клавиатуры к МПУ. Организация вывода информации в МПУ на семисегментные 
индикаторы  в  режимах  статической  и  динамической  индикации.  ЖК-индикаторы. 
Контроллеры клавиатуры и дисплея. Организация последовательной связи с ЭВМ 
верхнего  уровня  по  стандартным  интерфейсам  ИРПС,  стык  С2.  Промышленные 
сети. Интерфейсы I2C, SPI.  
 
4. 
Принципы организации систем 
дискретного ввода-вывода в МПС 

4.1. Общая структура систем дискретного ввода-
вывода 
В  данной  главе  будут  рассмотрены  принципы  построения  и 
подключения  к  МПС  дополнительных  внешних  устройств  дискретного 
ввода-вывода (УВВ). 
Подключение  УВВ  осуществляется  к  системной  магистрали.  Общая 
структурная схема этих устройств имеет вид: 
 
CS
V
СА
ЛУС
Порт ввода
-вывода
ССУ
К ОУ
ША
ШУ
ШД
К СМ
 
СА – селектор  адреса,  осуществляющий  обнаружение  на  шине  адреса 
комбинаций  бит,  соответствующий  адресу  данного  устройства. 
При этом СА формирует сигнал выбора устройства CS. 
ЛУС – логическая  схема  управляющих  сигналов,  которая  на  основе 
сигналов ШУ формирует сигналы внутреннего управления УВВ. 
Порт ввода-ввывода – устройство, осуществляющее непосредственную 
передачу  дискретных  сигналов  с  ОУ  на  ШД  системы  или 
наоборот.  Порты  реализуются  на  основе  ИС  регистров  или 
шинных формирователей. 
ССУ – схема  согласования  уровней.  Преобразует  уровни  логических 
сигналов  с  объекта  в  ТТЛ-уровни,  используемые  в  ОМК.  Или 
наоборот, ТТЛ – в логические уровни, используемые в ОУ. 

 
46
4.2. Реализация селекторов адреса 
В соответствии с принципами реализации различают 2 основных вида 
селекторов адреса (СА): 
•  с полной дешифрацией; 
•  с неполной дешифрацией сигналов шины адреса; 
В первых СА для формирования выбора устройства CS использовались 
все разряды шины адреса. 
Замечание:  В  большинстве  МПС  для  адресации  УВВ  использовалась 
восьмиразрядная  шина  адреса  (младшие  восемь  разрядов  ША).  В  СА  с 
неполной  дешифрацией  для  генерации  сигнала CS использовались  не  все,  а 
как правило, только старшие разряды ША. 
Простейшим СА с неполной дешифрацией является линейный СА. Для 
генерации  сигнала CS в  это  СА  используется  только  один  разряд  ША 
(например,  CS = A7 ).  
Пример различных типов СА: 
а)  с полной дешифрацией: 
Адрес устройства ( CS =0): 
A7
1
1
&
1011 01112
0
 
A5
1
B 7 

 
A4
1
CS
 
A3
0
 
A2
1
A1
1
 
1
A0
 
     б)  с неполной дешифрацией: 
 
Адрес устройства ( CS = 0 ). 
       1010 хх хх 
A7
1
&
нач. A     0        h 
A6
1
0
кон. A     F       h 
A5
1
CS
A3
1
0
Всего устройство займёт 16 адресов. 
 
в)  линейный СА. 
Адрес устройства:   
 
 
 
 
1xxx  xxxx=80h÷0ffh 
 
 
 
 
127 адресов 
 
 
 
 
 
1
A7
CS
 

 
47
Замечание:  использование  СА  с  неполной  дешифрацией  приводит  к 
неэффективному  использованию  адресного  пространства  МПС,  т.к.  в  этом 
случае каждое устройство получает не по одному адресу, а по несколько. 
В  зависимости  от  структуры  и  количества  обслуживаемых  устройств 
СА делят на: 
•  централизованные 
•  локальные 
•  распределённые. 
Пример  реализации  централизованного  СА  на  дешифраторе  (для 
восьми устройств). 
Пример  комбинированного  СА  на  основе  дешифратора  для 64-х 
устройств. 
 
A3
0
80h÷87h
0
B8h
A0
20 
20
DC
1
DC
1
88h÷8Fh
B9h
A4
A1
21 
21
2
2
BAh
A5
3
A2
22 
22
3
BBh
4
A0h÷A7h
4
BCh
5
5
A8h÷AFh
BDh
6
6
B0h÷B7h
BEh
V K1533ИД7 7
V K1533ИД7 7
BFh
A7
&
B8h÷BFh
дешифратор групп
дешифратор устройств
A6
устройств
к примеру
в группе
 
 
адреса групп: 
 
 
 
№ группы  № устройства группы 
  10 
ххх   
ххх 
Замечание: В большинстве МПС, как правило реализуют центральные 
или комбинированные СА на основе ПЗУ или ПЛМ. 
4.3. Реализация портов ввода-вывода 
Простейшие порты ввода логических сигналов реализуются на основе 
регистров  (триггеров).  Общая  схема  порта  ввода  логических  сигналов, 
подключаемого к системной магистрали контроллера, имеет вид: 
 
КШД 8
DI0
RG
DO0
DI1
DO1
DO2
.
от ОУ
DI2
.
.
.
.
.
.
(ССУ)
.
.
DO7
DI7
К580
CS

ИР82
1
OE
ST
+5В
от CA ЧТВВ (RD)
IO/M
ШУ
Сх. ЛУС
 

 
48
OE  – 
сигнал разрешения выдачи информации от ОУ на шину данных. 
Если  OE =1,  то  все  линии DI и D0 находятся  в  третьем  состоянии,  т.е. 
отключены от ШД и ОУ. 
ST – сигнал записи информации в регистр (ST=1 – регистр пропускает 
через себя информацию без записи). 
Заключение:  Вместо  регистра  для  реализации  порта  ввода 
используются  шинные  формирователи,  инверторы,  буферные  схемы,  но 
обязательно  с  третьим  состоянием  выхода,  которое  необходимо  для 
отключения от ШД МПС. 
Фрагмент  программы  чтения  информации  ОМК  ВЕ51  из 
изображённого порта имеет вид (пусть его адрес 40h), т.е. сигнал CS от СА 
генерируется при значении 40h на шине адреса. 
 
Замечание:  т.к.  порты  ввода/вывода  в  ОМК  ВЕ51  подключаются  как 
дополнительные внешние ячейки ОЗУ, то для обращения к ним используется 
команда MOVX. 
Простейший  порт  вывода  дискретной  информации  также  реализуется 
на основе регистров. 
КШД 8
DO0 RG
DI0
DO1
DI1
от ОУ
DO2
DI2
.
.
(ССУ)
.
.
.
.
.
.
.
.
.
.
DO7
DI7
К580
CS от CA
ИР82
1
ST
OE
ЗПВВ (WR)
IO/M
Сх. ЛУС
 
Запись  информации  в  порт  вывода  (регистр)  осуществляется  по 
сигналу  ЗПВВ =0. Если выбран данный порт сигналом CS=0 и IO/M=1. 
Фрагмент  программы  записи  информации  в  изображённый  порт  для 
ВЕ51 (адрес 41h): 
Возможно  подключение  с  СМ  универсальных  портов  ввода/вывода, 
реализованных на основе специализированных БИС. Примером такого порта 
может  служить  программируемый  периферийный  адаптер  (ППА)  К80ВВ55. 
Схема подключения ППА к СМ имеет вид: 
 
ППА  К580  ВВ55 (Intel 8255) представляет  собой 3 8-ми  разрядных 
порта ввода-вывода дискретной информации A, B, C, реализованных в одном 
корпусе.  Каждый 8-ми  разрядный  порт  используется  как  для  вывода  так  и 
для ввода информации. Конкретно режим его работы задаётся путём записи 
специального байта (управляющего слова) в сигнальный внутренний регистр 
(регистр  управляющего  слова).  Обращение  к  каждому  из  портов  ППА 
осуществляется с использованием адресных линий A0 и A1 (00 – порт A, 10 – 
порт B, 01– порт C, 11– РУС). 
Адрес портов на изображённой схеме будет принимать значения: 

 
49
A7  A6  A5  A4   A3  A2  A1  A0 
 
1      0     1     0      1     0     0     0 
=0A9H порт A 
1      0     1     0      1     0     0     1 
=0A9H– B 
1  0 =0AAH–C 
1      1  =0ABH –РУС 
 
Пример.  Написать  фрагмент  программы  программирования  режима 
работы ППА и выдачи байта 0CDH в порт A.  
 
Замечание:  Аналогично  подключению  ППА  с  системной  магистралью 
осуществляется подключение иных специализированных БИС: 
–  контроллера клавиатуры и индикаторов (К580 ВД79, I8279) 
–  контроллер  двоичного  последовательного  интерфейса  (К580  ВВ51, 
I8251) 
–  три дополнительных 16-ти разрядных таймера (К580 ВИ53, I8253) 
–  контроллер прямого доступа к памяти ПДП (К580 ВТ54) и т.д. 
4.4. Программно-аппаратное обеспечение ввода 
дискретных сигналов. 
При  вводе  дискретных  логических  сигналов  в  МПС,  как  правило, 
решаются три основные задачи:  
1) согласование  логических  уровней  дискретных  сигналов.  Все 
вводимые  логические  сигналы  должны  быть  преобразованы  в  ТТЛ 
уровни;  
2)  устранение 
дребезга 
контактных 
датчиков 
с 
которых 
осуществляется  ввод  логического  сигнала.  Задача  решается  при 
вводе  информации  с  клавиатуры,  переключателей,  контактов  реле, 
пускателей и т.д.;  
3)  обеспечение  ввода  очень  коротких  по  длительности  логических 
сигналов. 
4.4.1.  Согласование логических уровней 
сигналов. 
 
Возможны три случая для диапазона изменения входного логического 
сигнала: 
 а) если входной логический сигнал имеет логические уровни: 
–  логического нуля U0:-24В≤U0≤0,4 
–  логической единицы U1: 2,4В≤U1≤24В. 
В  этом  случае  для  преобразования  используются  ограничители 
(диодные или транзисторные). 
 
б) UВХ: |U0|<15В (24В); |U1|<15В (24В) 
 |U1-U0|<2В. 

 
50
–  малый размах логических уровней. 
В этом случае для приведения к ТТЛ – уровням используют схемы 
на аналоговых компараторах. 
Uсм
+5В
R3
R1
-
Uттл
Uвх
Uвых
= =
+
R2
К521СА3
 
Характеристика вход-выход  
Uттл
U
из-за помех
ттл
U1=R2(UCH/(R1+R2))


0
U
t
1
Uвх
0
t t1
1
t2
0
Uвх
t1
t2
t
 
Для устранения чувствительности к помехам используют триггеры Шмитта, 
реализованные на аналоговых компараторах. В этом случае схема имеет вид 
 
Отрицательным  свойством  изображённого  преобразователя  является 
чувствительность к помехам во входном логическом сигнале, если амплитуда 

помехи больше чем:  1 U0 . 
2
 
Замечание:  Подбором  сопротивлений  R1÷R4  добиваются  требуемых 
значений U1, U2, и ∆U. 
Напряжение  ∆U=U2–U1  определяет  гистерезис  изображённой  схемы. 
Его  введение  позволяет  значительно  повысить  помехоустойчивость  по 
сравнению с предыдущей схемой: 

 
51
Uттл
Uттл
U1
U2
+5В
+5В
Uвх
0
t
t1
t2
t3
Uвх
t1
t2
t3
t
 
Наличие  помехи  во  входном  сигнале  с  амплитудой  ∆  никак  не 
2
сказывается на выходном сигнале UТТЛ.  
 
в) Если входной сигнал UВХ или логические уровни: 
 
UВХ:  
|U0|>24В; |U1|>24В. 
В этом случае преобразователь уровней обязательно должен содержать 
схему  гальванической  развязки,  которая  предохранит  цепи  управления 
контроллера  от  перенапряжений.  Гальваническая  развязка  может 
реализоваться на основе: 
•  магнитных элементов (магнитных сердечников); 
•  с использованием оптопар. 
Рассмотрим схему гальванической развязки на оптопаре. 
Замечание:  Источники  питания  U1  и  U2  должны  быть  полностью 
электрически  несвязанными,  например,  используют  две  разные  обмотки 
одного трансформатора. 
4.4.2.  Схемы устранения дребезга контактных 
датчиков 
При  коммутации  контакта  различных  контактных  устройств  (кнопок, 
переключателей,  контактов  реле)  в  первый  момент  времени  возникает 
переходной  процесс.  Это  явление  при  коммутации  контакта  называют 
дребезгом.  
t дребезга лежит  в диапазоне от 1 до 30 мкс и зависит от конструкции 
контакта. 
Для устранения влияния дребезга используют два типа способов: 
•  аппаратные способы 
•  программные способы. 
Аппаратные способы реализуются в виде следующих типов схем: 

 
52
•  триггерные схемы 
•  схемы на основе RC цепочек 
•  схемы на основе счётчиков или сдвиговых регистров. 
Простейшая триггерная схема для устранения дребезга имеет вид: 
+5В
R
T
R
Uвых
2
R1
(1k)
S
 
K
К555ТМ2
 
 
 
RS – триггер переключится только по первому нулевому импульсу на 
входе R, все  остальные  импульсы  вызванные  дребезгом  далее 
восприниматься не будут, т.к. триггер уже переключился. 
Простейшая RC – цепочка, предназначенная для устранения дребезга: 
 
+5В
Триггер Шмитта
R1
R UC
Uвых

C
 
В  настоящее  время  выпускается  большая  номенклатура  интегральных 
схем  устранения  влияния  дребезга  контактов  на  основе  счётчиков  и 
сдвигающих  регистров.  Например:  ИС  СД4490 (6 элементов  устранения 
дребезга). 
Схема одного из них: 
 
4.4.3.  Программные способы устранения 
влияния дребезга контактов 
Выделяют два основных способа: 
– способ N-кратного считывания; 
– способ временной задержки. 
Схема алгоритма способа N-кратного считывания имеет вид: 
СЧ        N
СЧ        N - 1
нет
нет
Контакт замкнут
СЧ=0 ?
?
да
да
время задержки
контакт замкнут,
 дребезг завершён
 
Фрагмент программы метода N-кратного считывания для ОМК ВЕ51: 

 
53
 
 
M1: MOV R0,#N;     R0←N 
 
M3: JB P1.0,M1;       если P1=0, то M1 
нет
контакт
 замкнут ?
 
        MOV R1,#N1;   временная задержка 
да
 
M2: DJNZ R1,M2;    R1←R1–1, если R1≠0, 
задержка
то M2 
 
        DJNZ R0,M3;    R0←R0–1, если R0≠0, 
да
то M3 
контакт
нет
замкнут ?
 ………… 
 
да
Время tЗ временной задержки равно: 
tЗ=(2ּN1+2)ТМЦ
контакт замкнут,дребезг
Величина N выбирается так, чтобы время: 
завершён
tЗ=(4ТМЦ+tЗ)ּN≈tДРЕБ.
Схема алгоритма способа временной задержки имеет вид. 
Фрагмент  программы  способа  временной  задержки  для  ОМК  ВЕ51  имеет 
вид: 
 M1: 
JB 
P1.0, 
M1; 
   MOV 
R0, 
#N1; 
 M3: 
MOV 
R1, 
#N1; 
 M2: 
DJNZ 
R1, 
M2; 
   DJNZ 
R0, 
M3; 
   JB 
P1.0, 
M1; 
 ……. 
tЗ=[N1ּ(2+2ּN2)+2]ּTМУ
Время задержки tЗ выбирается: 
tЗ≥ tдреб.
4.4.4.  Аппаратное обеспечение вывода 
логических сигналов 
При  выводе  логических  сигналов  из  МПУ  решают  три  основные 
задачи: 
•  обеспечивают требуемый ток в нагрузке при выдаче логического 
сигнала (усиления по току); 
•  преобразование 
логических 
сигналов 
из 
ТТЛ-уровней 
напряжения в иные логические уровни; 
•  осуществляют оптоэлектронную гальваническую развязку; 
Для  обеспечения  требуемого  тока  в  нагрузке  могут  использоваться 
следующие устройства: 
–  интегральные  буферные  схемы  (типа  шинных  формирователей 
К580ВА86/87;  К589  АП16/24  либо  интегральные  буферные 
элементы  К555  АП1/АП2)  при  этом  ток  в  нагрузке 
обеспечивается от 20 до 100мА; 
–  с использованием транзисторных эмиттерных повторителей; 
–  с использованием повторителей на ОУ. 

 
54
Преобразование  ТТЛ-уровней  в  иные  логические  уровни 
напряжения может осуществляться с использованием: 
•  интегральных преобразователей уровней; 
•  интегральных  схем  с  открытым  коллектором  и  повышенной 
нагрузочной способностью; 
•  схем на дискретных элементах (транзистор). 
Существуют  следующие  типы  интегральных  преобразователей 
уровней: 
–  из  ТТЛ  в  ЭСЛ («0» →-5В, «1»→+5В); [К500  ПУ125  из  ТТЛ  в 
ЭСЛ (прямое); К500 ПУ124 из ЭСЛ в ТТЛ (обратное)]. 
–  из ТТЛ в RS («0»→-12В, «1»→+15В); [К170 АП2 (прямое); К170 
УП2 (обратное); MAX 232 (прямое и обратное); 
–  из  ТТЛ  в  КМОП («0»→0≈В, «1»→+15В) ; [К176  ПУ4 (прямое); 
К564 ПУ6 (обратное)]. 
Замечание: При выборе функциональных интегральных схем (АЦП, 
ЦАП,  аналог.  коммутаторов  и  др.)  необходимо  обращать  внимание – 
какими логическими уровнями управляется данная схема и нужно или нет 
использовать преобразователи уровней. 
Интегральные  схемы  с  открытым  коллектором  и  повышенной 
нагрузочной  способностью  удобно  использовать  для  увеличения  уровня 
напряжения логической единицы: 
R1
Некоторые  интегральные  схемы 
+15В(Eпит)
1
с  ОК  поддерживают  напряжение  EП 
вплоть  до 30В  и  током  нагрузки  до 
К555ЛН4
К555ЛН4
50мА. 
Такие  ИС  удобно  использовать  для  управления  индикаторами, 
требующими  повышенное  напряжение  (газоразрядные  и  некоторые 
светодиодные  индикаторы).  Кроме  того  ИС  с  ОК  часто  используют  для 
управления миниатюрными герконовыми реле: 
+15В
Если  требуется  обеспечить 
+5В
R1
нестандартные логические уровни 
1
на  выходе,  то  используют  схемы 
1
на дискретных элементах типа: 
 
Основным  элементом  преобразования  является  транзистор VT1, 
включённый по схеме с общей базой. Если напряжение на эмиттере VT1 
соответствует  логической  единице  (ок. +5В),  то VT1 открывается  и  его 
коллекторным  током  открывается VT2 . При  этом  на  выходе  схемы 
формируется напряжение UВЫХ=-U2. 
Если  на  эмиттере VT1 напряжение  соответствует  уровню 
логического  нуля, (меньше 0,4В),  то VT1 заперт  смещением 
формируемым на диодах VD1 и VD2 .   
В этом случае коллекторный ток не 
протекает, VT2 закрыт и UВЫХ=+U1. 

 
55
Замечание:  Для  повышения  КПД  изображённые  схемы  выходную 
цепь  на  транзисторе VT2 чаще  реализуют  на  двух  транзисторах  (как  в 
усилителях  мощности).  В  этом  случае  будет  исключено  протекание 
прямого тока между +U1 и –U2. 
Замечание: Вместо транзисторов для преобразования уровней часто 
используют ОУ. 
 
4.4.5.  Особенности ввода коротких логических 
сигналов 
Короткими 
логическим 
сигналами 
называют 
сигналы, 
продолжительность  которых  соизмерима  с  машинными  циклами 
микропроцессора. τ≈МЦ. 
Для  ввода  в  МПС  логических  сигналов  τ≤ТМЦ  используют 
специальные приёмы: 
Пример:  
U
 
M1:  JB P1.0,M1;  (2мц=12.2мт). 
 
1
τ 
Команда JB осуществляет опрос линии 
порта P1.0 только    течении  одного 
t
машинного  такта  из 24-х , в  течении 
которого 
эта 
команда 
выполняется. 
Следовательно, 
появление 
короткого 
импульса τ на линии P1.0 (τ≤ТМЦ) может не совпасть с машинным тактом 
опроса  линии P1.0. Т.о.  циклически  выполняемая  команда JB с  большой 
вероятностью может не обнаружить короткого сигнала. 
Аналогичная  ситуация  и  при  подаче  коротких  сигналов  τ  на  входы 
запроса  прерывания  контроллера  ( INT1и INT0   для  ОМК  ВЕ51)  или  на 
счётные  входы  внутренних  таймеров–счётчиков  (Т1,  Т0  для  ВЕ51).  Т.к. 
опрос перечисленных входов схемно также реализуется в течении одного 
МТ за МЦ. 
Для  фиксации  подобных  коротких  импульсов  используются 
внешние триггерные схемы, которые запоминают сигнал. 
 
+5В
CLR P1.1; сброс триггера 
SETB P1.1; 
R
DD1
1 1k
M1: JB  P1.0, 
M1; 
D
T
Q
P1.0
 
C
Рассматриваемая 
Q
P1.1
последовательность  команд  и  схема 
R
обеспечит  ввод  любого  короткого 
сигнала длительности τ≥0,01 нс. 
ОМК
Замечание: 
Для 
обеспечения 
ВЕ51
ввода  и  подсчёта  коротких  логических 

 
56
сигналов, следующих через короткие интервалы времени друг за другом, 
используют  внешние  двоичные  счётчики  на  триггерах.  Информация  с 
данных счётчиков водится через порты ввода-вывода в ОМК. 
 
4.5. Обеспечение взаимодействия 
микропроцессорных устройств и ЭВМ 
верхнего уровня 

Для  обеспечения  взаимодействия  МПУ  как  между  собой  так  и  с 
ЭВМ ВУ используют: 
–  последовательные интерфейсы (типа RS232, ИРПС «токовая петля» 
и др.); 
–  промышленные сети, типа FieldBus. 
Перечисленные 
последовательные 
интерфейсы 
реализуют 
радиальную структуру подключения. Это означает, что для подключения 
к  каждому  МПУ  необходимо  реализовать  свой  последовательный 
интерфейс: 
КПИ – встроенные контроллеры последовательного интерфейса; 
ССЛС – схема согласования с ЛС; 
ЛС – линия связи; 
Подобные  соединения  устройств  называются  соединениями  типа 
точка-точка (point-point). 
В  интерфейсе RS232С  информация  передаётся  побайтно  по  трём 
проводным  линиям  бит  за  битом.  При  этом  используются  две 
информационные  линии  (Т×D  передаваемых  данных , R×D – 
принимаемых данных) и общий провод – GND (земля). 
Каждый  передаваемый  бит  в  линии  связи  интерфейса RS232С 
кодируется  уровнем  напряжения «0» – -12В, «1» – +12В.  Скорость 
передачи в RS232С для ЛС типа «витая пара» измеряется в пределах 100 
Кбод. Длина линии может достигать 0,5 км. 
В  интерфейсе  ИРПС  «токовая  петля 20 mA» передача  информации 
осуществляется  по  четырёхпроводной  линии,  при  этом  каждая  пара 
проводов образуют свою токовую петлю: 
–  R+, R- – токовая петля для приёма информации; 
–  Т+, Т- – токовая петля для передачи информации. 
Каждый передаваемый бит кодируется уровнем тока: 
«1» – 18÷20мА 
«0» – 0÷3 мА. 
Замечание:  Использование  тока  для  кодирования  информации 
повышает  помехозащищённость  передаваемой  информации,  но  как 
правило, снижает скорость передачи. 
Длина  линии  связи  ИРПС  «токовая  петля»  может  достигать 10км. 
при скорости передачи 100б÷19,2 Кбод (1бод=1бит в 1с.). 

 
57
Следует помнить: увеличение длины линии связи требует снижения 
скорости передачи для обеспечения бесперебойного обмена информацией: 
Снижение  скорости  передачи  объясняется 
V, Кбод
увеличением  переходных  процессов  в  длинных 
100
линиях и помехами. 
В  качестве  схемы  сопряжения  с  линией 
связи  ССЛС  в  интерфейсе RS232С  удобно 
0,1
l, км
0,01
0,5
использовать 
интегральную 
схему 
типа 
MAX232: 
C3
MAX 232C
1,0
P3.1 TxD
TxD
Ucc
+5В
1,0
P3.0 RxD
RxD
C4
U+
C1+
1,0
U-
C1
C1-
1,0
C
C
5
ЛС
2+
TL
C2
1,0
C
TxD
2-
RL
RxD
GND
 
Для  сопряжения  напряжения  интерфейса  ИРПС  «толовая  петля» 
используют следующую схему: 
DA1, DA2 – AОТ110А; 
+5В R1
DA1
T+
VD1, VD2 – КД522. 
DD1 1k
1
ИРПС
Диоды VD1, VD2 
TxD
P3.1
VD1
ЛС
служат 
для 
защиты 
R2
RxD
20k
P3.0
T-
транзистора  и  диода  оптопар 
R3
+5В
DD2
от 
возможных 
обратных 
200
1
напряжений  в  линии  связи. 
DA2
Пример  схемы  сопряжения 
R+
VD1
источника 
и 
приёмника 
ИРПС
R
ЛС
сигналов  с  ИРПС  «токовая 
4
R-
20k
петля»: 
 
Интерфейс  ИРПС  «токовая  петля»  обязательно  подразумевает 
гальваническую развязку. 
Промышленная  сеть  представляет  собой  последовательную 
двухпроводную  магистраль,  в  которой  параллельно  может  находиться 
несколько микропроцессорных устройств и ЭВМ ВУ: 
В настоящее время используются следующие типы промышленных 
сетей: 
–  CAN – сеть (Control 
ЭВМ
Area Network) – сеть 
МПУ1
МПУ1
....
ВУ
области  управления. 
2
2
2
Это  последовательная 
магистраль
магистраль 
с 
разрешением 

 
58
коллизий  на  основе  приоритетов.  Скорость  передачи 
10Мбит/сек., длина ЛС –до нескольких километров.  
–  ProfiBus (RS-485) – маркерная  последовательная  магистраль, 
передача  и  приём  информации  в  которой  каждым  МПУ 
осуществляется  в  строго  выделенные  интервалы  времени . 
Скорость передачи может достигать 12 Мбит/сек. Длина ЛС – 
до неск. км. 
В  современных 16-ти  разрядных  ОМК SAB80C167 (Infineon), Z8 
(Zilog)  реализованы  встроенные  контроллеры  промышленных  сетей. 
Однако  возможна  и  дополнительная  реализация  сети  с  использованием 
внешних контроллеров: SAB80 C91 (CAN–сеть).  
Для  реализации  сопряжения  с  ЛС  используют  следующие  шинные 
формирователи: 
–  RLE6850 (Infineon) – CAN-сеть. 
–  MAX485 (MAXIM) – Pofi Bus. 
Замечание: Эти интегральные схемы подобны MAX232, только для 
промышленных сетей. 
В 
рассмотренных 
промышленных 
сетях 
обязательно 
подразумевается гальваническая развязка с ЛС. 
 
4.6. Средства взаимодействия МПУ с оператором 
Для взаимодействия с оператором в МПУ используют: 
–  индикаторы для отображения информации 
–  клавиатуры для ввода информации. 
Если количество кнопок, подключаемой клавиатуры МПУ>5, то при 
подключении кнопки организуют в виде матрицы: 
Такое  включение  позволяет  экономить  число  требуемых  линий 
портов ввода-вывода для подключения кнопок: 
Пример: 12 кнопок: 
– традиционный способ – 12 линий 
– матричный –7 линий. 
Опрос 
(сканирование) 
матричной 
клавиатуры 
осуществляют 
следующим образом: 
1)  На  линии  порта PS последовательно  выдают  двоичные  коды, 
содержащие 0 только в одном разряде: 
 PS3   PS2   PS1   PS0
 
   
 
 
         1       1        1       0 
 
   
 
 
         1       1        0       1 
 
   
 
 
         1       0        1       1 
 
   
 
 
         0       1        1       1 
2)  Переключение  двоичных  кодов  осуществляют  через  короткие 
интервалы времени: 
20÷40  мкс.  После  каждого  переключения  осуществляется  считывание 
порта PO. 

 
59
Если  в  строке,  в  которой  была  нажата  кнопка,  был  выдан «0» , то 
нулевой  уровень  будет  передан  в  соответствующий  столбец  и  введён  через 
порт PO . По  информации  портов PSи PO можно  судить  о  нажатой  кнопке. 
при  вводе  информации  из  порта PO необходимо  устранить  дребезг 
контактного  датчика.  Диоды VD1, …, VD4 необходимы  для  защиты  линий 
порта PS от к.з. при одновременном нажатии кнопок в одном столбце. 
Для  индикации  алфавитной  и  цифровой  информации  в  МПУ , как 
правило 
используют 
семисегментные 
(матричные), 
светодиодные, 
газоразрядные или ж/к индикаторы. 
Светодиодный  семисегментный  индикатор  представляет  собой 
совокупность  светодиодов,  включённых  по  схеме  с  общим  анодом  или 
катодом: 
В матричных индикаторах 
HG
выводимый 
символ  
A
A
A
синтезируется  из  отдельных 
B
C
мелких 
сегментов, 
B
B
образованных,  как  правило,  в 
C
C
H
матрице: 
H
0 V H
0 V
0 V
5×7, 6×8, 9×12,… 
АЛС 324
АЛС 321
(с ОА)
(с ОК)
 
Возможны два основных способа подключения индикатора: 
–  в режиме статической индикации 
–  в режиме динамической индикации. 
Для  простоты  рассмотрим  указанные  способы  подключения  на  примере 
сегментного индикатора. 
В  режиме  статической  индикации  для  подключения  каждого 
сегмента индикатора используется отдельная линия порта вывода 
 
Определение:  Cемисегментным  кодом  символа 
P1.0
A
P1.1
называют двоичный код, который при записи его в 
B
P1.2
FG
порт  вывода  обеспечивает  свечение  на  индикаторе 
P1.3
C
E
данного символа: 
P1.4
P1.5
D
P1.7
P1.6
Разряды порта вывода→  P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
C H D E  G F  A B 
 
Код двойки: 00111011=3ВН, т.о. семисегментный код двойки – 3ВН. 

 
60
Для  сокращения  требуемых  линий  порта  вывода  при  подключении 
7-ми  сегментного  индикатора  используют  внешние 7-ми  сегментные 
дешифраторы: 
 
DD1
HG1
Семисегментный 
дешифратор 
A
A
DC
B
B
DD1 обеспечивает преобразование 16-
0
C
C
ричной  цифры  в  её  семисегментный 
1
Порт
D
D
выво
код. 
E
E
2
да
F
F
Замечание: 
недостаток 
3
G
G
H
H
использования DD1: вывод 
на 
индикацию только HEX цифр. 
К512ИД1
0V
(с ОА)
Для  уменьшения  требуемых 
К512ИД2
АЛС321В
линий портов при подключении сразу 
(с ОК)
нескольких 
индикаторов 
(индикаторная линейка) используют режим динамической индикации.  
Схема подключения индикаторов имеет вид: 
 
Пример: для подключения пяти семисегментных индикаторов
8 линий  : 
–  в статическом режиме потребуется 5×8=40 линий портов; 
–  в динамическом режиме : 8+5=13 линий. 
 
4.7. Жидкокристаллические индикаторные 
панели 
В  современном  МПУ  (пейджеры,  сотовые  телефоны  и  др.)  часто 
используют 
жидкокристаллические 
индикаторные 
панели. 
Они 
предназначены для вывода как символьной, так и графической информации. 
При этом графическое изображение синтезируется отдельными точками. 
Каждая ЖКИ панель включает: 
–матричный ЖК индикатор; 
–контроллер  вывода  информации,  реализующий  режим  динамической 
индикации. 
Наличие  контроллера  позволяет  осуществить  вывод  информации  в 
динамическом режиме без участия центрального процессора. 
Простейшим ЖКИ панелями являются символьные 1-, 2-, 4-х строчные 
панели с числом символов в строке до 40. 
К таким панелям относятся ЖКИ, например, SUNLIKE (Bolymin). 
Замечание:  Основной  отличительной  особенностью  ЖКИ  является 
подключения к системной магистрали МК. 
Рассмотрим  схему  подключения  ЖКИ  типа CS1609D (Bolymin) 1 
строка 16 символов. 
 
⎧0ААН⎫
Адрес индикатора 1010101х= ⎨
⎬  
⎩0ААВ⎭

 
61
Поясним основные выводы контроллера DD1: 
D7,…,D0–линии  предназначенные  для  записи  выводимой  на 
индикацию информации, а также команд индикатора; 
ЖКИ  панель  имеет  внутреннее  ОЗУ  индикатора,  в  котором  и 
записывается отображаемая информация (как правило в виде ASCII кода) 
R/w–вход линия определяющая осуществляется чтение (1) либо запись 
(0) информации. 
RS–вход линия, передающая записывается данные (0) или команда 
Е–вход сигнал разрешения операции чтения/записи с контроллера. 
Перечень  основных  команд  контроллера DD1 индивидуален  для 
каждой  индикаторной  панели  и  определяется  по  инструкции.  К  этим 
командам относятся: 
–команда записи информации В ОЗУ индикатора; 
–команда чтения информации ОЗУ; 
–очистка ОЗУ (экрана); 
–формирование своих символов в виде точечной матрицы. 
4.8. Совмещенные контроллеры клавиатуры и 
индикатора 
Разработаны БИС (например К580ВД79, I8279,…) представляют собой 
устройства одновременно осуществление: 
–автоматическое  сканирование  матричной  клавиатуры  без  участия 
центрального процессора; 
–вывод  на  индикаторные  линейки  в  режиме  динамической  индикации 
без участия центрального процессора требуемой информации. 
Такие микросхемы называются контроллеры клавиатуры и индикатора 
(ККИ). 
Контроллер  ККИ  К580ВД79 (I8279) обеспечивает  выполнения 
следующих функций: 
1)автоматическое сканирования матричных клавиш размером 8х8 
2)автоматическое устранение дребезга контактных датчиков 
3)индикация  в  автономном  режиме  информации  на  линейке  из 
шестнадцати 7-сегментных индикаторов (в динамическом режиме) 
Общая схема использования ККИ 580ВД79 имеет вид: 
Замечание: ККИ К580ВД79 имеет два внутренних ОЗУ: 
–ОЗУ клавиатуры размером 8байт для хранения кодов нажатых клавиш 
–ОЗУ индикаторов размером 16байт для хранения 7-сегментных кодов 
отражаемых символов 
Назначения основных выводов ККИ ВД79: 
–D0…D7-линии,  используемые  для  обмена  данными  и  командами  с 
ККИ, подключенных к ШД МПУ 
–CS-входной  сигнал  выбора  ККИ  для  обмена  информацией  с 
процессором, подключен к селектору адреса 

 
62
 
+5 В



RL0
D7
КВД
RL1
D6
RL2
D5
RL3
к ШД
D4
RL4
DD2
8
D3
RL5
0
D2
RL6
1
22
D1
RL7
2
DC
VD1...VD8
D0
3
SL2
21
4
SL1
к СА
5
SL0
20
6
CS
BB0
f=0.1-3.1 МГц
7
CLK
BB1
+5 В
+5 В
АО (ША)
AO
BB2
DD3
ЧТВВ
VT1
VT8
RD
BB3
A0
BF
B0
ЗПВВ
WR
BA0
A1
B1
OV
OV
IRQ
BA1
A2
B2
A
A
+5 В
CNTL
BA2
A3
B3
B
B

Shift
К580
BA3
A4
B4
C
C
ВД79
BD
A5
B5
D
D
A6
B6
E
E
A7
B7
F
F
shift
8
G
OE
T
G
H
H
1
HL1
HL8
DD4
8
8
–CLK-вход  для  подачи  тактовой  частоты  синхронизации  ККИ (f=0,1-
3,1 МГц) 
–А0-вход  адресная  линия,  определяющая  доступ  к  двум  внутренним 
регистрам ККИ: 
1)регистру команд (А0=1) 
2)регистру данных (А0=0) 
Замечание:  через  перечисленные  регистры  и  осуществляется  обмен 
данными и командами ККИ. 
–RD, WR-вход  сигналы  чтения  и  записи  информации  ККИ, 
подключается к сигналам ШУ 
–IRQ-вых  сигнал  запрос  прерывания,  генерируемый  при  нажатии 
клавиш, подключается к входам запроса прерываний МП; 
–CNTL, Shift-вход  линии  для  подключения  управляющих  клавиш 
‘CONTR’  и ‘Shift’. В  отличии  от  кнопок  матричных  клавиатуры  не 
генерирует прерывания; 
–RL0…RL7-вход  линии  чтения  состояния  строк  матричной 
клавиатуры; 
–SL0…SL3-выход  линии  сканирования  клавиатуры  и  выбора 
индикатора  в  линейке  при  динамической  индикации,  на  них  выдается 
двоичный  номер  опрашиваемого  столбца  матричной  клавиатуры  и 
индикатора в линейке, на который выдают информацию. Увеличение номера 
на этих линиях осуществляется с интервалом ~1÷100мс. 
–ВВ0…ВВ3,  ВА0…ВА3-выход  линии,  на  которые  выдается 7-
сегментный код отображаемого символа. Информация на линиях изменяется 
синхронно с изменением состояния SL0…SL3. 

 
63
–BD-выход сигнал гашения всех индикаторов в линейке, генерируется 
автоматически ККИ при смене отображаемой информации. 

 
64
_____________________________________________________________ 
Тема 6. - 18 часов  (у.з.-3).  Организация  ввода-вывода  аналоговых 
сигналов. Системы сбора и обработки информации. Системы 
цифрового управления. 

Вывод  аналоговых  сигналов.  Простейшие  ЦАП,  их  недостатки  и  способы 
устранения.  Интегральные  ЦАП.  Получение  биполярного  напряжения  на  выходе 
ЦАП.  Ввод  аналоговых  сигналов.  Структура  канала  ввода.  Устройство  выборки-
хранения.  Алгоритмы  аналого-цифрового  преобразования.  Интегральные  АЦП. 
Устройства  выборки  хранения.  Средства  согласования  с  объектом  управления. 
АЦП с дельта-сигма модуляцией. 
 
5. 
Организация подсистем 
ввода/вывода аналоговых 
сигналов МПУ 

5.1. Вывод аналоговых сигналов 
Основным элементом подсистем вывода аналоговых сигналов является 
устройство преобразования двоичных кодов К в аналоговые величины (U, I). 
В МПУ в качестве таких устройств используются:  
1)  ЦАП; 
2)  ШИМ с НЧ фильтром на выходе; 
Общая структура ЦАП имеет вид: 
 
 
n
К
ЦАП
 
Uцап
 
Uцап=ŋ·К , ŋ=const. 
ЦАП для МПУ выбирают по следующим его характеристикам: 
1)  погрешность  преобразования  (разрешающая  способность  ЦАП) 
1
0
δ =
⋅100 ,            n-разрядность; 
0
n
2 −1
2)  время  преобразования - интервал  времени  между  подачей  кода  на 
входы ЦАП и получение устойчивого напряжения на выходе; 
3)  Нелинейность преобразования  Д К = U
− η . 
нл (
)
К
ЦАП
Простейшим ЦАП является ЦАП суммирования токов на основе ОУ: 
 
R. 2n-1
I1
D
I∑
0
.
R 2n-2
D
I
1
2
 
К
.
код
.
UЦАП
.
двоичный
R
.
2n-0
In
Dn-1

 
65

1
1
1
K
"1"

"1"
U
= −U
D
D
+ ...+ D
= −U
 
ЦАП
⎢ 0 1−
1
n−2
1

0 ⎥
1

2
2
2 ⎦
2 −
D0…Dn-1 – двоичные разряды кода, подаваемого на ЦАП; 
U”1”–напряжение соответствующее уровню «1». 
Недостатки данного ЦАП: 
–из-за нестабильности уровней логической «1» и «0» (U”1” и U”0”), ЦАП 
имеет высокую погрешность (U”1”=5÷2,4В; U”0”=0÷0,4В); 
–требуется определенное количество точных резисторов с номиналами 
отличающихся на 2. 
Для  устранения  первого  недостатка  логические  сигналы  D0…Dn-1 
используют  только  для  управления  ключами,  которые  коммутируют 
сопротивление  к  постоянному  высокостабильному  источнику  напряжения 
(опорное). 
Uопор
D0 R. 2n-1
КТ1…КТn–как 
правило 
КТ1
R
транзисторные  ключи  на  полевых 
D1 R.2n-2
транзисторах. 
КТ2
UЦАП
Для 
устранения 
неполадки 
D
второго  недостатка, (требуем  большой 
КТn
n R . 20
номенклатуры  резисторов)  используют 
лестничные на резисторах типа “R-2R”. 
 
R
R
R
2R
+Uопор
= U
I
ОПОР = const  
I
0
0
I /2
I /4
I /8
I /2n
0
0
0
0
R
2R
2R
2R
2R
2R
 
D
D
D
D
D
n-1
n-2
n-3
1
0
 
 
R
 
 
 
n
I =
I

∑ i
i 1
=

I
I
I
0
0
0 ⎤
−(1
− )
−(n−2)
U
= −R D
D
+ ... + D
= −RI D 2
2
2− =
ЦАП
⎢ 0 1

1
n−2
1

1 ⎥
0 [
1
0
1
1

]

2
2
2 ⎦
= −
К
UОПОР 1
2 −
где К= Dn-1; Dn-2;…-целое двоичное число; 
 
Основным свойством схемы “R-2R” является способность делить ток I0 
на 2 при  любой  коммутации  ключей  Dn-1, Dn-2,…,D0.  Осуществляется 
многократное деление на 2. 

 
66
Пример:  Определить  двоичное  число,  которое  при  выводе  ЦАП 
сформирует  на  выходе  напряжение –5,3В,  если  опорное  напряжение  равно 
Uопор=+10,24, а n=11. 
U
n

ЦАП
3
,
5
1
1
K = -
⋅ 2
=
⋅ 2 − = 530 = 212 =1000010010  
n
k
2
U
− ,
10 24
опор
Современные  ЦАП  строятся  как  правило  на  основе  схем “R-2R” c 
внутренним или внешним суммированием токов на ОУ. 
 
В  зависимости  от  включения  данного  ОУ  и  источника  опорного 
напряжения ЦАПы могут работать в режимах: 
–  однополярного выходного напряжения 0 ≤ UЦАП ≤ UОПОР. 
–  Двуполярного - UОПОР/2 ≤ UЦАП ≤ UОПОР/2. 
 
 
 
5.2. Общая структура подсистемы ввода 
аналоговых сигналов 
Структура имеет вид: 
U11,…,Unm–измеряемые сигналы; 
К1,…,Кn–аналоговые  коммутаторы  сигналов  в  группах;  выбор  сигнала 
определяется кодом подаваемым на шину “выбор в группе”; 
НУ1,…,НУn–нормирующий  усилитель  -для  преобразования  диапазона 
измерения сигнала к максимальному диапазону измерения сигнала на входе 
АЦП (УВХ); 
КГ–коммутатор групп- для подключения одной из групп; 
 
С
С
выбор в группе
U
выбор группы
11
к МПУ
U
С
хранение
12
d
преобразование
К
НУ
1
1
U1m
N
КГ
УВХ
АЦП
к МПУ
Un1
Un2
К
НУ
n
n
Unm
напряжение
с датчиков
 
УВХ–для  сохранения  сигналов  неизменными,  во  время  его  АЦ 
преобразования. 
К1,…,Кn;  КГ–реализуется  на  основе  интегрированных  схем  КМОП  и 
НМОП аналоговых коммутаторов (серии К590, К591,CD4000 и т.д.) 
Основными  характеристиками  при  выборе  аналоговых  коммутаторов 
является: 

 
67
–  число коммутаторных входов; 
–  диапазон коммутируемых напряжений; 
–  максимально коммутируемый ток; 
–  переходное сопротивление с коммутируемого ключа и др. 
 
Ну  как  правило  реализуется  на  основе  инвертируемых  и  не 
инвертируемых усилителей с ООС на основе ОУ. 
Коэффициент  усиления  НУ  выбирается  исходя  из  диапазона 
измеряемого сигнала и диапазона входного сигнала на АЦП: 
 
 
U
− U
АЦП
max 
АЦП
min 
 
К =
ну
U
− U
 
СГ
max 
СГ
min 
 
В случае измерения (слабого изменения) сигналов, ОУ для НУ выбирается по 
напряжению смещения нуля Uсм0:  
U
⋅K ≤ ∆
U
U
max АЦП
 
min АЦП
 
см0
ну
АЦП   ∆
=
АЦП

2n −1
∆АЦП–измерение  входного  напряжения  АЦП  на  единицу  младшего 
разряда (максимальная погрешность). 
Изображенная  схема  подсистемы  ввода  аналоговых  сигналов 
используется  при  измерении  сигналов  с  сильно  различающимися 
диапазонами  измерения.  В  этом  случае  сигналы  с  близким  диапазоном 
измерения  формируется  в  единую  группу.  Такое  объединение  позволяет 
уменьшить число требуемых НУ. 
5.3. Основные типы АЦП, используемые в МПУ. 
Основные характеристики выбора АЦП 
В настоящее время в МПУ используют следующие типы АЦП: 
–  АЦП на основе преобразователей “напряжение-частота”. К данному 
типу относят АЦП с дельта –сигма -модуляцией; 
–  АЦП 
“время-импульсные” 
однократным 
и 
двойным 
интегрированием сигнала, они преобразуют измеряемое напряжение 
в временной интервал; 
–  АЦП  последовательного  счета  и  последовательных  приближений. 
Они строятся на основе ЦАП; 
–  АЦП 
параллельного 
преобразования, 
данный 
тип 
быстродействующий, но малоразрядный. 
Выбор  АЦП  для  МПУ  осуществляют  на  основе  следующих 
характеристик: 
U
− U
АЦП
max 
АЦП
min 
1
1)  погрешность преобразования  ∆ = ±
⋅  
2n −1
2
2)  время преобразования –интервал времени между подачей сигнала на 
вход АЦП и появление устойчивого кода на выходе; 

 
68
3)  апертурное  время  –интервал  времени,  в  течении  которого 
невозможно точно сказать к какому из моментов времени относится 
полученное  измерение  (погрешность  измерения  сигнала  во 
времени). Для интегральных АЦП немаловажными являются: 
4)  интерфейс передачи полученного в МПУ: 
5)  наличие встроенного источника опорного напряжения, УВХ. 
Рассмотрим  подробно,  программно  -аппаратную  реализацию 
основных типов АЦП. 
5.4. Программно–аппаратная реализация время–
импульсного АЦП с однократным 
интегрированием 

Общая структура имеет вид: 
АК –аналоговый компаратор, используется для сравнения Uвх и Uгпн 

вх
 
 U
,
1
〉 гпн
 
U

порт
U =
k

⎬  
МПУ

вх
 
 U
0,
≤ гпн
 
U

конец преобразования
Р1.0
ГПН 
–генератор 
пилообразного 
Uвх
напряжения. 
АК

Алгоритм 
управления 
АЦП 
с 
ГПН
Р1.1
однократным интегрированием: 
Uгпн
пуск
1) 
МПУ  в  момент t1 формирует 
сигнал  Пуск=0,  тем  самым  заставляя  ГПН  формировать  на 
выходе линейно –нарастающее напряжение. 
2) 
Осуществляется 
Uвх, Uгпн
постоянный 
опрос 
выхода  АК,  в  случае, 
когда  выход  АК Uk=0 
Uвх
(Uвх =Uгпн), 
Uгпн
формируется 
второй 
момент време и
н  t2
U k

t1
t2
t3
t
3) 
Измеренный 
ин е
т рвал 
времени  ∆t  с  помощью 
внутренних  таймеров – 
t=t2-t1
счетчиков 
и 
будет 
являться 
числовым 
f мц
t
эквивалентом N входного 
напряжения Uвх. 
число N
 
t
t1
подсчет
t2
М Ц

 
69
Замечания: 
изменяя 
наклон 
R1
мпк
VD
прямой  напряжения  можно  добиться 
VT

DD1
практически  любого  коэффициента 
пуск
     1
(порт вывода)
R2
ic
преобразования к АЦП: 
C
Int[UВХ ]  
конец преобразова
DA1
ния
= =
+5В
N –двоичный  код  на  выходе 
(порт ввода)
R3
АЦП. 
Пример:  принципиальная  схема 
Uвх
программно – аппаратной  реализации 
время – импульсного  АЦП  с 
К521СА3
однократным интегрированием. 
На  элементах VD, R1, VT, R2 реализован  генератор  постоянного тока 
ic=const, которым заряжают конденсатор С: 
U

i ≈ i =
U
VD
VT
 
ЭБ
≈ const
C
Э
R
 
1
Получим 
выражение, 
описывающее 
время 
–импульсное 
преобразование АЦП 
1
t
U =
= 1
U
dt = iC t
t
C
ГПН
C
( 2 1)

−  
С
C
t2
U С
U
=
= i
U
C
t

ВХ
t
∆ =
ВХ
C
   
 (1) 
C
iC
Получили 
выражение, 
описывающее 
время 
–импульсное 
преобразование АЦП. 
Замечание: Т.к. в формулу (1) входят параметры схемы (С,ic), которые 
могут  изменяться  от  температуры  или  старения,  то  можно  сказать,  что 
точность  преобразования  данного  АЦП  невысока  и  зависит  от  изменения 
этих параметров. 
Изображенный  АЦП  имеет  низкую  помехозащищенность,  так 
присутствие  в  Uвх  случайной  помехи  может  резко  повлиять  на  точность 
результата. 
5.5. Время–импульсный АЦП двойного 
интегрирования 
Обладает  более  высокой  помехоустойчивостью.  Общая  структурная 
схема имеет вид (при программно –аппаратной реализации): 
К1
⎧  U
,
0
〈0
ИНТ

Uвх
U =
K

⎬ 
U1
Интегр.
Uинт
⎩  U
,
1
≥ 0
ИНТ

МПК
-Uопор
Работу 
АЦП 
управление
ключем(Р1.0)
AK
двойного  интегрирования 
конец преобразо
U k
поясним 
на 
временной 
вания
диаграмме. 
(Р1.1)

 
70
 
-UИНТ
 
Алгоритм 
работы 
АЦП 
двойного интегрирования: 
U'ИНТ
1)  В момент t1 (когда напряжение 
U1=Uвх
U1= -Uопор
на  интеграторе  Uинт=0)  на 
вход 
интегратора 
подают 
U k
t1
t2
t3
t
T=t2-t1
U1=Uвх.  В  течении  заранее 
заданного  интервала T=t2-t1 
осуществляется 
t=t3+t2
интегрирование  Uвх,  при  этом 
напряжение 
на 
выходе  U счет
t
интегратора достигает U’инт. 
t~Uвх
2)  В 
момент t2 на 
вход 
интегратора 
подключают 
отрицательное 
опорное 
напряжение U1= -Uопор  и  с 
t
измеренное время
момента t2 начинают  подсчет 
пропорциональна Uвх
времени. 
3)  В  момент t3, когда  Uинт=0,  прекращают  подсчет  времени  и  интервал 
∆t=t3-t2  считают  числовым  эквивалентом  измеряемого  входного 
напряжения.  ∆t  измеряют,  как  правило,  внутренними  таймерами  –
счетчиками.  Момент t3 определяют  по  переключению Uk на  выходе 
компаратора. 
Замечание:  интервал T=t2-t1 стараются  выбрать  кратным  периоду основной 
промышленной  частоты (1/50 Гц).  В  этом  случае  интегрирование  Uвх  на 
интервале  Т  автоматически  исключит  из  сигнала  помеху,  обусловленную 
промышленной частотой. 
Данный  АЦП  часто  используют  для  измерения  напряжения  с 
удаленных  датчиков,  т.к.  он  легко  исключает  из  сигнала  промышленную 
частоту. 
Пример:  принципиальная  схема  программно-аппаратного  АЦП  двойного 
интегрирования. 
⎧  U
0,
= U
 U
0,

1
вх


0
инт

Р1.0 =
Р1.1 =
 

⎬    

⎬  
⎩  U
,
1
= −U
 U
,
1

опор
опор ⎭

0
инт

 
 
 
 
 
 
 
 

 
71
 
 
 
 
 
 
 
Получим основное выражение для АЦП двойного интегрирования: 
t
U
U
t
dt
t
t
U'
инт ( 2 )
2
=
= вх
вх
( −
2
1 )

= инт
RC
RC
 
1
t
t
U
t
dt
t
t
инт ( 3 )
3
1
U
U
= U' −
U
= вх T - опор
инт
опор
( −
3
2 )

≡ 0
RC
RC
RC
 
t2
U
U
U
вх T =
опор
t

вх
=
RC
RC
     
T
U
    (2) 
опор
 
Замечание: Т.к. в формулу преобразования (2) для АЦП двойного 
интегрирования не входят параметры схемы (R, C, и т.д.), то следовательно 
эти  параметры  не  влияют  на  точность  преобразования.  И  их  изменения  от 
температуры  или  во  времени  никак  не  сказывается  на  погрешность 
измерения. 
 
Т.к.  это  АЦП  на  компараторе  сравнивается  интеграл  Uвх,  то 
следовательно АЦП не чувствителен к случайным импульсным помехам. 
C
Пример 
DA1
DA2
фрагмента 
MX
Uвх
программы 
x0
U1
управления 
-Uопор
x1
R
Y
Uинт
АЦП  двойного 
управление
A0
интегрирования
К1
(Р1.0)
R
К590КН1
К140УД7
.  Для  подсчета 
ОМК
временных 
DD1
= =
+5 В
интервалов 
R 1К
Т=t2-t1;  ∆t=t3-t2 
используют 
внутренний 
конец преобразования
(Р1.1) ОМК
таймер Т0 ОМК 
К521СА3
ВЕ51. 
 
 
 
 
 
 

 
72
5.6. Программно–аппаратная реализация АЦП 
последовательного счета и 
последовательных приближений 

Данный АЦП реализуется на основе ЦАП по следующей схеме: 
ОМК
АК–аналоговый 
компаратор. 
Порт
U цап
вывода
ЦАП
АК
Работа  данного 
U+ = =
Р2
типа  АЦП  состоит  в 
N
(код К)
подборе 
такого 
U вых
двоичного 
кода 
К 
(порт 
Р2), 
чтобы 
ОМК
U вх
U-
напряжение UЦАП=UВХ.  
Порт
Существует  два 
ввода
типа 
алгоритма 
Р1.1
подбора кода К: 
 
–  алгоритм последовательного счета; 
–  алгоритм последовательных приближений. 
Алгоритм последовательного счета: 
1)  На  цифровые  входы  ЦАП  подается  увеличивающий  на  единицу n-
разрядный  двоичный  код,  при  этом  на  выходе  ЦАП  формируется 
линейно нарастающее напряжение UЦАП. 
2)  При достижении UЦАП уровня входного напряжения UВХ происходит 
переключение аналогового компаратора (АК) и Uk=0. 
Двоичный  код  к  выданной  в  этот  момент  на  ЦАП  и  является  тем 
числовым эквивалентом. 
Замечание: недостатками АЦП последовательного счета является: 
–большое  время  преобразования,  так  при 8-разрядном  ЦАП  требуется 
до 255 циклов суммирования К, а при 16-разрядном до 216=65536. 
–невысокая помехозащищенность. 
Для  ускорения  аналого-цифрового  преобразования  используют 
алгоритм последовательных приближений (поразрядного взвешивания). 
Основные этапы этого алгоритма: 
1) на цифровые входы ЦАП выдают двоичный код К с установленным 
в «1» только  старшим  разрядом (100…0). При  этом  на  выходе  ЦАП 
формируется напряжение: 
U
U
max
 
ЦАП
=
ЦАП
2
,где  Uцап-  напряжение,  соответствующее  коду 
111…1. 
2) анализируется состояние А ,
К  если переключение не произошло (т.е. 
Uвх<Uцап),  то «1» в  старшем  разряде  сохраняется  в  результате 
преобразования, иначе не сохраняется. 

 
73
3) аналогичным образом устанавливают в «1» следующий разряд ЦАП 
(более  младший)  и  при  этом  сохраняют  все  подобранные «1» старших 
разрядов.  Анализируют  состояние  АК.  В  случае  его  не  переключения 
(Uвх<Uцап) «1» в подбираемом разряде результата оставляют, иначе в разряд 
результата записывают «0». 
4)  аналогичным  образом  осуществляют  подбор,  все  оставшиеся 
разряды  ЦАП  вплоть  до  младшего  подобранный  таким  образом  код  К  и 
является двоичным эквивалентом Uвх. 
Замечание:  Число  итераций  для  подбора  кода  К  по  методу 
последовательных приближений равно разрядности ЦАП N. 
Временная диаграмма работы АЦП последовательных приближений: 
Пример 2. Фрагмент  программы  управления  АЦП  последовательных 
приближений: 
Замечание:  АЦП  последовательного  приближения  также  обладает 
низкой помехозащищенностью как и АЦП последовательного счета. 
5.7. Понятия о А
  ЦП с дельта–сигма–модуляцией 
Данный  тип  АЦП  подобен  время-импульсному  АЦП  с  двойным 
интегрированием. 
Основной  принцип  работы  его  состоит  в  компенсации 
 
среднего
входного тока АЦП с помощью внутреннего переключаемого источника тока 
I0 =const. Общая схема АЦП с дельта –сигма -модуляцией имеет вид: 
Основной  принцип  работы  состоит  в  компенсации  входного  тока  IВХ 
путем  подключения  источника  тока  I0.  Ток  I0  подключается  на  интервал 
времени  ∆t  достаточный  для  разряда  с  интегратора  и 
ен
комп сации 
заряжающего тока IВХ. 
Число  тактовых  выходных  импульсов  ТИ  подсчитанных  за  интервал 
времени  ∆t  подключение  I0  и  определяет  числовой  код  К  соответствующий 
UВХ.  Подсчет же импульсов осуществляют с помощью счетчика, который 
сбрасывается через строго заданный интервал времени Т. 
Преимущества АЦП с дельта –сигма –модуляцией: 
–высокая  помехозащищенность,  т.к.  интегрируется  измеряемое 
входное напряжение UВХ (IВХ)  
–высокая 
точность 
преобразования, 
позволяющая 
строить 
многоразрядный АЦП (16, 20, 24-битные) 
–независимость  точности  преобразования  от  изменения  параметров 
схемы АЦП (R, C,…) 
Недостаток: 
–невысокая скорость преобразования. 
5.8. Устрой во
ст
 выборки хранения (УВХ) 
УВХ  предназначен  для  кратковременного  сохранения  измеряемого 
напряжения неизменным, например, на время его А-Ц преобразования. 

 
74
УВХ  представляет  собой  аналоговую  ячейку  памяти,  запоминающую 
уровень (значение) измеряемого напряжения. 
U вых
U вх
УВХ может работать в двух основных режимах: 
УВХ
–выборки,  когда  входное  напряжение  без 
изменения передается на выход УВХ (U
управ.
ВЫХ=UВХ); 
сигнал
–хранения,  когда  на  выходе  УВХ  сохраняется 
(выборка/хранение)
напряжение, которое было на входе в момент перехода 
в режим хранения. 
Покажем диаграмму работы УВХ: 
Простейшая 
реализация 
УВХ на основе ОУ имеет вид:  
U вх
U вх
U вых
U вых
К
ОУ
U вх
U вых
t1
t2
t3
t4
С хр
t
выбор
хран-е выбор хран-е
 
 
 
Основным  элементом  УВХ  является  СХР.  Ключ  К  определяет  режим 
работы УВХ: 
–режим выборки -если ключ замкнут; 
–режим х
  ранения –если ключ разомкнут. 
 
Рассмотрим  принципиальную  схему  реа и
л зации  УВХ  на  дискретных 
элементах: 
 
 
+U пит
+U пит
С1
С3
U-
U+
U-
U+
VT
U
U
вых
вых
К
U вых УВХ
R
U+
U-
управление
R
U+
U-
DA1
DA2
U вх УВХ
(выбор./хран.)
С4
С хр
С2
-U пит
-U пит
 
DA1 – К140УД7 (УД20); 
DA – К140УД8; 
VT – КТ814; С1-С4 – 0,1 мкФ. 
ОУ DA1 и DA2 охвачены единой ООС, поэтому коэффициент передачи 
УВХ=1. 
Основным элементом хранения является СХР, ее значение выбирается в 
пределах  СХР~0.01÷0.1  мкФ,  что  обеспечивает  время  хранения  порядка 

 
75
нескольких  мс  и  минимальную  задержку  при  переходе  в  режим  выборки 
(время на заряд СХР). 
Для  уменьшения  переходных  процессов  колебательного  типа  при 
заряде  СХР  последовательно  с  ней  включается  малое  балластное 
сопротивление R (R~10÷100 Ом). 
Для  замедления  разряда  СХР  ОУ DA2 выбирают  с  высоким  входным 
сопротивлением (входные цепи   
на полевых транзисторах) 
Емкости С1÷С4 представляют собой фильтры, исключающие передачу 
помех по питанию в УВХ. 
Для  ускорения  заряда  СХР  ОУ DA1 снабжен  мощным  выходным 
каскадом  на  транзисторе VT (эмиттерный  повторитель).  Он  обеспечивает 
достаточный ток для быстрого заряда СХР. 
КП301
Ключ  К,  как  правило,  реализуют  на  полевых 
транзисторах по следующей схеме: 
R1
 

C1
VD1–диод 
используется 
для 
запрещения 
VD1
10пФ
отпирания p-n перехода полевого транзистора в прямом 
управление
направлении; 
С1–ускоряющая  емкость  при  отпирании  и 
U упр
запирании транзистора; 
хран.
R1–  сопротивление  обеспечивающее  стекание 
паразитного заряда с затвора транзистора. 
t
Замечание: 
в 
подавляющий 
большинстве 
устройств для реализации УВХ использу т
ю  стандартные 
выбор
ИС типа: 
К1100СК1–однополярный УВХ; 
К1100СК2–двуполярный  УВХ  на  дискретных  элементах  используют 
только  в  случаях  если  необходимо  обеспечить  продолжительное  время 
хранения (порядка нескольких секунд) с одновременными быстрым зарядом 
емкости  Х
С Р. 
Современные АЦП часто включают встроенный УВХ . 

 
76
_____________________________________________________________ 
Тема 7.- 18 часов.  Особенности  внутренней  структуры  и  применения 
16- и 32-разрядных ОМК в МУСУ. 
Общая характеристика 16- и 32-разрядных ОМК. Основные характеристики 
ОМК SAB80C167. Общая  внутренняя  структура  ОМК SAB80C167. Организация 
памяти 
ОМК SAB80C167. Способы 
адресации 
данных. 
Центральный 
процессорный  модуль  ОМК SAB80C167. Особенности  системы  прерываний. 
Периферийный  контроллер  событий.  Модули  захват-сравнение.  Встроенный 
начальный загрузчик. Модуль ШИМ. Контроллер промышленной CAN-сети. 
 
6. 
Общие принципы использования 
16-разрядных ОМК 

6.1. Общая характеристика 16-разрядных ОМК 
Впервые 16-разрядные  ОМК  были  разработаны  японскими  фирмами: 
NEC, HITACHI и TOSHIBA в начале 80-х годов. 
В1982 г. Intel разработала первое 16-разрядное семейство ОМК. (MCS-
96) 
Основные общие черты 16-разрядных ОМК: 
– 
использование  высокопроизводительного 16- или32-разрядного 
процессорного модуля (быстродействие которого 10÷50 MIPS) 
– 
использование внутри 16-разрядной системной магистрали (16-
разрядная ШД) 
– 
использование  широкой  номенклатуры  специализированных 
встроенных 
устройств 
обеспечивающих 
значительное 
ускорение обработки цифровой информации. 
Основные области применения 16-разрядных ОМК: 
– 
распределенные МПС управления станками с ЧПУ, роботами –
манипуляторами и технологическими линиями; 
– 
МПС управления транспортными объектами; 
– 
МПС передачи данных, телекоммуникаций и связей. 
С  появлением 16-разрядных  ОМК  связывают  и  появление  термина « 
мехатроника ». 
Мехатроника  –это  конструктивное  объединение  на  принципиально 
новом  уровне  механических  устройств  и  их  электронных  СУ.  При  таком 
объединении обеспечивается минимальное число коммутационных связей В 
СУ, высокая гибкость управления, а следовательно и высокая надежность. 
Например, схема мехатронного двигателя: 

 
77
16-разрядный
транзисторные
ОМК
ключи
Д
 
управления
RS -232c
(IGBT)
двигателем
команды
напряжение питания
 
Подобные 
электро–механические 
устройства 
часто 
называют 
интеллектуальными  электро–механическими  устройствами,  а 16-разрядный 
ОМК  используемый  в  этих  устройствах  часто  называют  типа “motor 
controls”. 
В нашей стране наиболее широко распространены следующие типы 16-
разрядных ОМК: 
– 
семейство C16xx (Siemens, Infinion), например, 
SAB80C161÷C167; 
– 
семейство MCS-96, 196, 296 (Intel); 
– 
семейство HC12, HC16 (motorola); 
Замечание:  в  данном  курсе  подробно  будем  рассматривать  наиболее 
типичного представителя 16-разрядного ОМК SAB80C167. 
6.2. Основные технические характеристики ОМК 
SAB80C167 
Процессорный 
модуль –16-разрядный, 
обеспечивающий 
быстродействие 10 MIPS при тактовой частоте 20МГц. 
Имеется  встроенный  сопроцессор  операций  умножения  и  деления,  а 
также битовый процессор для ускорения операций с битами. 
Время  выполнения  операций  умножения  и  деления  составляет 0,5-
1мкс. 
1) 16-разрядный  модуль  реализован  на  основе RISC-архитектуры  с 
сокращенным набором команд. 
2)Объем  адресуемой  памяти 16М  (реализована 24-разрядная  шина 
адреса). 
Память  построена  по  фон-неймановской  архитектуре,  т.е.  в  едином 
адресном  размещается  как  данные,  так  и  программы  (не  существует 
раздельной ПП и ПД). 
Имеется встроенное ОЗУ –2К и встроенное ПЗУ –32К (типа PROM) 
 
3)  Реализован  плавающий  регистровый  банк  (регистровый  файл). 
Регистровый  банк  содержит 16 двухбайтных  регистров R0…R15. 
Регистровый банк может размещаться в любом месте внутреннего ОЗУ. Его 
местоположение задается программно. 
Т.о. в ОЗУ может быть реализовано 64 независимых не пересекающих 
регистровых банка. 
 
 

 
78
 
 
4)Система  команд  содержит  более 300 базовых  команд.  Все  команды 
контроллера  либо  двух,  либо  четырех - байтные.  Большинство  команд 
выполняются  за 2 МЦ.  Исключение  составляют  лишь  команды  переходов 
умножения  и  деления.  Система  команд  нацелено  на  реализацию 
высокоэффективных  вычислительных  алгоритмов  и  имеет  несколько 
модификаций команд умножения и деления. 
 
5)  Реализовано  программно – настраиваемая  внешняя  системная 
магистраль.  Программно  можно  задавать  различные  режимы  работы  ША  и 
ШД: 
–ШД может быть 8- или 16-разрядной; 
–ША/ШД  может  быть  совмещенная  (мультиплексированная),  либо 
раздельные шины ША и ШД. 
Замечание:  В  системе,  реализованной  на  ОМК  С167  может 
одновременно  присутствовать  несколько  системных  магистралей,  причем  к 
каждой из магистрали может быть подключены свои устройства. 
Имеется  встроенный  селектор  адреса  для  пяти  внешних  устройств, 
генерирующий  сигналы  выбора CS0,…,CS4. (при  этом  используется 
программно – задаваемая полная 24-разрядная дешифрация адреса) 
В  контроллере  для  обращения  к  внутренней  ОЗУ  и  некоторым 
встроенным устройствам используется режим Х - шины. 
Земачание:  Режим  Х – шины  позволяет  внешним  устройствам, 
подключенным  а  ОМК  обращаться  через  системную  магистраль  к 
внутренним  элементам  (ОЗУ, CAN, …) так,  как  будто  эти  элементы 
находятся вне контроллера и подключены к внешней системной магистрали.  
 
6)  Реализован  встроенный 8-канальный  контроллер    событий (PEC – 
Periferial Events Controller). 
Контролер  событий  предназначен  для  ускоренной  обработки 
прерываний, вызванных обменом данными между внешними устройствами и 
памятью.  
При  обработке  этих  прерываний  п/п  обработки  не  вызывается,  а  весь 
обмен  данными  обеспечивается  аппаратно  контроллером  событий  за  время 
равное 1 МЦ. 
 
7)  Система  прерываний  контроллера  позволяет  обслуживать 57 
внешних  и  внутренних  источников,  причем  каждому  из  них    может  быть 
присвоен 1 из 16 уровней приоритета. 
 
8)  Реализовано  пять 16-разрядных  встроенных  таймеров  счетчика, 
которые организованы в двух модулях таймера: 
–модуль GPT1 (T2, T3, T4) 
–GPT2 (T5, T6) 

 
79
Каждый  из  модулей  представляет  собой  многофункциональный 
таймерный  блок,  таймеры  которые  могут  работать  как  совместно,  так  и 
раздельно. Таймерные модули обеспечивают: 
–подсчет времени; 
–подсчет импульсов; 
–определение длительности импульсов; 
–осуществление, как деления, так и умножение частоты и др. 
9)  Реализованы  два 16-разрядных  модуля  “захват - сравнение” 
(CAPCOM1 и CAPCOM2) 
Данные  модули  предназначены  для  высокоточной  фиксации  или 
генерации  сигнала  во  времени.  Модуль CAPCOM1 работает  совместно  с 
двумя таймерами (Т0 и Т1), а CAPCOM2 – Т7 и Т8. 
 
10) Реализован встроенный модуль ШИМ (PWM). 
Данный модуль предназначен для управления мощными устройствами 
(двигателя)  с  использованием  внешних  транзисторных  ключевых  схем  (не 
ниже пяти транзисторов, как правило, IGBT -транзисторы) 
Например, возможна реализация 3-х фазного управления асинхронным 
двигателем с различной частотой. 
Модуль  ШИМ  имеет 4 канала  для  одновременного  управления 
четырьмя  транзисторными  ключами  на  основе  широтной  модуляции. 
Максимальная частота изменения ШИМ 74 КГц. 
 
11)  Реализован  встроенный  модуль  АЦП (10-разрядный)  с 16-
канальным  аналоговым  коммутатором  и  встроенной  схемой  выборки – 
хранения. Время преобразования АЦП порядка ~9мкс. 
 
12) Реализованы два встроенных последовательных интерфейса: 
–синхро – асинхронный,  типа RS232 (ASC0) (подобный  ОМК  ВЕ51). 
Максимальная скорость передачи данных 625 Кбод. 
–высокоскоростной  синхронный  последовательный  интерфейс (SSC)-
подобный интерфейсу SPI и обеспечивающий передачу данных со скоростью 
5 Мбод. Данный интерфейс обеспечивает передачу потрем линиям: 
–SCLK; 
–MTSR; 
–MRST и может использоваться как дополнительная последовательная 
системная магистраль для подключения ОЗУ, ПЗУ, АЦП. 
 
13)  Реализован  встроенный  контроллер  промышленной CAN –сети, 
обеспечивающий  одновременное  сопряжение  в  единую  сеть  до 100 
различных ОМК. Скорость передачи порядка 1Мбод. Все протоколы CAN –
сети,  а  также  алгоритм  обмена  реализуется  контроллером  на  аппаратном 
уровне. 
 

 
80
14) Реализовано 111 линий для организации портов ввода/вывода. Все 
они сформированы в виде 9 портов Р0÷Р8. 
 
15)  Реализован  встроенный  модуль  начальной  загрузки  контроллера 
(Bootstrap Loader). Загрузчик обеспечивает при включении питания загрузку 
в  память  ОС  или  иной  управляющей  программы.  Загрузка  осуществляется 
через  последовательный  интерфейс ASC0. Т.о.  системы  построенные  на 
основе  ОМК  С167  могут  работать  вообще  без  ПЗУ,  а  управляющие 
программы будут грузиться в ОЗУ и другие модули. 
6.3. Внутренняя структура ОМК SAB80C167 
В  состав  контроллера  С167  входит 9 портов  ввода/вывода  Р0÷Р8 
каждый из перечисленных портов может работать в двух основных режимах: 
– 
как  обычный  порт  ввода/вывода  дискретных  сигналов, 
программируемый пользователем; 
– 
как  порт  для  выдачи  управляемых  сигналов  основных  блоков 
ОМК (альтернативный режим) 
В  первом  случае  использования  портов  их  линии  могут  быть 
запрограммированы: 
–как обычные ТТЛ входы и выходы (при вводе/выводе) 
–как выходы с отрицательным коллектором 
Замечание: в режиме с открытым коллектором могут работать порты Р2, Р2, 
Р6, Р7, Р8. 
Остановимся подробнее на альтернативных функциях портов Р0÷Р8. 
 
6.4. Организация памяти ОМК С167 
Память  организована  с  помощью  Фон - Неймановской  архитектуры, 
т.е. в едином адресном пространстве 16 Мбайт размещается: 
–модули внутренней и внешней ОЗУ; 
–внутренний и внешний модули ПЗУ; 
–регистры  специальных  функций  (РСФ) (SFR, ESFR) предназначены 
для управления всеми встроенными модулями ОМК; 
–регистры  данных  и  управления  всех  подключенных  внешних 
устройств. 
Все  единое  адресное  пространство  объемом 16 Мбайт  разбито  на 256 
сегментов, объем каждого из них 64 Кб. 
Каждый сегмент в свою очередь разбит на 4 страницы, с объемом 16 Кб 
каждая (1024 стр.). Разбивка памяти на сегменты и страницы вызвана малой 
разрядностью  процессорного  модуля (16 бит)  по  сравнению  с 24-разрядной 
ША. 
Построим  карту  памяти  контроллера  С167.  Она  определяет 
распределение  ОЗУ,  ПЗУ  и  регистра  устройств  по  всему  адресному 
пространству: 

 
81
SFR, ESFR–регистры  специальных  функций  для  управления  всеми 
внутренними ОМК. 
XRAM–расширение  внутреннего  ОЗУ , имеется  у  отдельных 
контроллеров модели С167. 
CAN–регистры управления встроенного контроллера CAN-сети. 
Вся внутренняя память ОМК С167 располагается в системном сегменте 
памяти. При этом: 
–внутреннее ПЗУ объемом 32К размещается в ячейках 0’0000÷0’8000; 
–внутреннее ОЗУ объемом 32К располагается вместе с управляющими 
регистрами SFR и ESFR в области с адресами: 0’F000H÷0’FFFFH. 
Внутреннее  ПЗУ  программируемым  способом  может  переключаться  с 
начала ячеек нулевого сегмента в начало ячеек первого сегмента, при этом в 
нулевом  сегменте  с  начальных  ячеек  может  располагаться  внешнее  ПЗУ 
(удобно при отладке программы). 
Рассмотрим  подробнее  организацию  внутреннего  ОЗУ  контроллера. 
Посмотрим карту ОЗУ:  
Внутреннее  ОЗУ  размещается  в  третьей  странице  памяти,  при  этом 
назначения областей ОЗУ следующие: 
–область 
с 
адресами 0’F600H÷0’FA00H используются 
для 
расположения плавающего регистрового банка, состоящего из 16 регистров и 
переменных пользователя; 
–область 0’FA00H÷0’FBFEH используется 
для 
расположения 
системного  стека,  размер  которого    может  программно  задаваться  (по 
умолчанию 256 слов). 
–область 0’FCE0H÷0’FCFEH отведена  для  расположения  регистров 
указателей контроллера событий РЕС. 
–область 0’FCFEH÷0’FE00H используется 
для 
расположения 
прямоадресуемых бит, каждый бит в этой области имеет свой адрес и к нему 
возможно прямое обращение. 
Замечание: заштрихованные области регистров SFR  ESFR также допускают 
прямую адресацию бит. 
6.5. Системный стек ОМК С167 
Располагается  в  ОЗУ  с 0’FA00H и  может  иметь  размер  от 32 до 1024 
байт. Размер стека задается программно через регистр специальных функций 
FSR с именем SYSCON. Помимо указанного управляющего регистра имеется 
два регистра специальных функций SFR, управляющих стеком: 
STKOV–определяет  верхнюю  границу  стека  (в  нем  хранится  адрес 
последней ячейки стека); 
STKUN–определяет  начало  стека  (в  нем  хранится  адрес  последней 
ячейки стека). 
При  выходе  стека  за  границы,  указанные  в STKOV и STKUN 
генерируется  прерывания  (ошибка  стека).  Выход  за  границу STKOV –
переполнение стека, за STKUN –антипереполнение. 

 
82
Запись  и  чтение  информации  в  стек  контролируется  регистром SP 
(Stack Pointer). Этот регистр всегда содержит адрес текущей вершины стека. 
При записи информации в стек он растет от старших адресов в ОЗУ к 
младшим. В стек возможна запись только слов. 
При  записи  информации  типа  «слово»,  оно  располагается  в  памяти 
следующим образом: 
–младший байт слова всегда записывается по четному адресу N; 
–старший байт слова записывается по нечетному адресу N+1. 
Замечание: все команды С167 всегда располагается в памяти только по 
четным адресам (иначе будет генерироваться ошибка). 
Для  обращения  к  данным,  хранящимся  в  памяти  в  ОМК  С167  может 
использоваться различные способы адресации. 
6.6. Способы адресации данных в ОМК С167 
ОМК С167 использует три основных способа адресации данных: 
–короткая  адресация,  при  этом  указывается 8-разрядный  (короткий) 
адрес в команде; 
–длинная  адресация,  если  в  команде  указывается 16-разрядный  адрес 
ячейки или УВВ. 
–косвенная  адресация,  если 16-разрядная  ячейка  памяти  или  УВВ 
содержится в данном из регистров процессора. 
Короткая  адресация  используется  для  обращения  к  регистрам  общего 
назначения  (РОН) R0,…,R15; к  регистрам ESFR и SFR; а  также  к  ячейкам, 
находящимся в области прямоадресуемых бит. 
Короткий  адрес  (КА)  представляет  собой 8-разрядное  смещение 
относительно  определенного  базового 24-разрядного  адреса  (БА).  Адрес 
ячейки 24-разрядный  вычисляется  по  короткому  адресу  по  следующей 
формуле: 

байт
 
адресуется
 
если
 ,
1

ФА=БА+∆·КА,  ∆ = ⎨
⎬  

слово
 
адресуется
 
если
 
0,

В  случае  КА  к  РОН  предыдущая  формула  приобретет  вид: 
ФА=СР+∆·КА 
СР  –контекстный  регистр,  в  нем  всегда  хранится 24-разрядный  адрес 
начала плавающего банка ОЗУ. (СР=0’F600H÷0’FA00H) 
При  короткой  адресации  с  регистром SFR формула  определения 
фактического адреса имеет вид: ФА=0’FE00H+∆·КА 
КА –8-разрядный адрес конкретного регистра SFR (00H÷0FFH)/ 
В случае короткой адресации к расширенным управляющим регистрам 
ESFR формула приобретает вид: ФА=0’F000H+∆·КА 
Пример: коротких адресаций: 
MOV   R0, R1   ; R0←R1 
MOV   SP, #2100H   ; SP←2100H 
Иначе MOV   0E7H, #2100H   ; SP←2100H 

 
83
Длинная  адресация  используется  для  обращения  к  ячейке  памяти  и 
регистру, находящемуся в любом месте адресного пространства 16Мбайт. 
При  длинной  адресации  используется 16-разрядный  адрес  ячейки 
памяти  или  регистра,  а  фактически 24-разрядный  адрес,  вычисляется 
специальным способом. 
Выделяют два типа длинной адресации: 
 
Пример: длинной адресации с использованием EXTS: 
EXTS   #10H, 1   ; устанавливает текущий сегмент с номером 10Н, на 
следующую команду 
MOV   R1, 4225H 
Замечание:  в  случае  сегментной  адресации  ФА (24-разряд.)  вычисляется 
просто, он равен: 
Seg’(16-разрядный  адрес),  т.е.  перед16-разрядным  адресом  достаточно 
дописать  номер  сегмента,  в  рассмотренном  примере:  ФА=104225Н (24-
разрядный) 
Косвенная  адресация  также  использует 16-разрядный  адрес  ячейки 
памяти  и  регистра,  но  он  указывается  не  числом  в  команде,  а  регистр,  в 
котором он находится. 
6.7. Общая структура процессорного модуля 
С167 (CPU C167) 
Ядро процессорного модуля включает: 
–16-разрядное АЛУ; 
–аппаратный модуль умножения/деления (MUL/DIV) со своими 
регистрами: MDC, MDH, MDL; 
–аппаратный сдвигатель –для ускоренной реализации операции сдвига; 
–битовый процессор для скоростной обработки бит; 
–четырех этапный конвейер команд, позволяющий одновременно 
осуществлять выборку до четырех команд из памяти и обработку АЛУ. 
Процессорный модуль также включает банк РОН R0,…, R15, однако 
аппаратно банк располагается во внутреннем ОЗУ в виде плавающего 
регистрового банка. 
Поясним назначение основных управляющих регистров CPU: 
–SP, STKOV, STKUN –регистры управления стеком; 
–CSP (SFR:04H)-(Code Segment Pointer) указатель текущего сегмента 
выполняемой программы; 
–IP (SFR:…(недоступен, только косвенно))-(Instruction Pointer) 
указатель текущей выполняемой команды в сегменте CSP; в IP всегда 
содержится адрес(смещения) текущей выполняемой команды (0÷65535). 
Замечание: полный физический 24-разрядный адрес текущей выполняемой 
команды всегда равен: 
CSP : IP 

 
84
–CP (SFR:08H)-(Context Pointer)-контекстный регистр, определяющий 
начало плавающего регистрового банка во внутреннем ОЗУ (адрес регистра 
R0 в ОЗУ) 0’F600H ≤ CP ≤ 0’FDE0H. 
Для изменения содержимого СР используется специальная команда: 
SCXT  CP, #0F700H. 
–MDH, MDL (SFR: 05, 06H)-старший и младший байт 32-разрядного 
регистра данных аппаратного умножителя/делителя. 
Пример: MULU   R1, R2   ; R1·R2→(MDH, MDL) 
      DIV   R1   ; (MDH, MDL)/R1→MDL 
–MDC (SFR: 87H)- регистр состояния аппаратного  умножителя/ 
делителя, в регистре используется только один четвертый бит MDRIU. Если 
значение этого бита равна, то следовательно полученный результат 
умножения (деления) был считан или модифицирован программой; 
Основными регистрами управления CPU являются: PSW и SYSCON. 
PSW (SFR: 88H)-(Program Status Word) слово состояния или регистр 
признаков полученного результата ОМК. Его формат: 
15
6
5
4
3 2 1
0
ILVL
DMAEN
IEN
USR0
MDRIP
E Z V C N  
PSW содержит следующие биты – признаки результата: 
–N –отрицательного результата; 
–С –признак переноса; 
–V –признак переполнения; 
–Z –признак нулевого результата; 
–Е –признак минимального отрицательного числа (80Н-для байтов, 
8000Н-для слов); 
–MDRIP –бит, показывающий, что результат умножителе/делителе 
получен не был из-за сбоя его работы в результате запуска новой команды 
умножения/деления. В этой ситуации генерируется прерывание ошибки 
умножителя/делителя; 
–USR0 –бит пользователя, модифицируется по усмотрению 
пользователя; 
–IEN –бит разрешения прерываний ОМК (IEN=0-запрещены все 
маскируемые прерывания); 
–DMAEN –бит разрешения режима прямого доступа к памяти (ПДП-
DMA) 
–ILVL –поле бит, определяющее уровень приоритета обрабатываемой в 
данный момент п/п или программы (ОМК имеет 16 уровней приоритета 
прерываний). 
SYSCON (SFR: 89H)-(System Configuration) –регистр задания 
конфигурации и режима работы основных модулей ОМК. 
Формат регистра: 
15
13
0
STKSZ
ROMS1
SGMDIS
ROMEN
BYTDIS
CLROUT
WRCNF
X2
X1
X0
упрввление режимом
Х - шина
 

 
85
–STKSZ – поле бит, определяющее размер стека ОМК реализованного 
во внутреннем ОЗУ. 
256 128 64 32 512
1024 размер стека в байтах
000 001 010 011 100 101 110 111
STKSZ
стек располагается с
0'FDE0H
адреса 0'FAE0
 
–ROMS1 –бит, переключающий внутреннее ПЗУ из нулевого сегмента 
в первый, это делается, чтобы с начала нулевого адреса расположить 
внешнее ПЗУ при отладке. Если ROMS1=1, то начальный адрес внутреннего 
ПЗУ меняется: 0’0000H→1’0000H. 
–SGMDIS –бит, определяет формат адреса возврата, который будет 
сохраняться в стеке при вызове п/п (в том числе п/п прерываний) 
Если SGMDIS=0 в стеке сохраняется полный 24-разрядный 
адрес→CSP:IP 
Если SGMDIS=1 в стеке сохраняется только IP; 
–ROMEN –разрешение работы с внешним ПЗУ. При сбросе 
контроллера бит ROMEN дублирует состояние вывода ЕА контроллера; 
–BYTDIS –запрещение передачи по 16-разрядной ШД D15…D0 
отдельных байт. Если BYTDIS=0, то на разряд Р3.12 ОМК выдается сигнал 
ВНЕ (разрешение передачи по ШД старшего байта). 
6.8. Особенности системы прерываний ОМК 
SAB80C167 
Архитектура  С167  поддерживает  несколько  механизмов  обработки 
прерываний: 
– нормальная обработка прерываний. 
– обработка прерывания с использованием периферийного контроллера 
событий (PEC-Pereferial Events Controller). 
–  прерывания-ловушки (trap), генерируется  в  ответ  на  ошибку 
возникшую при выполнении программы или по линии NMI  
– ускоренная обработка внешних прерываний: 
С каждым источником прерывания связаны: 
–регистр управления прерывания (xxIC) 
–вектор прерывания (IV) 
Регистр управления прерыванием (IC) содержит: 
–биты определения уровня приоритета (0…15) ILVL 
–бит запроса прерывания (xxIR) 
–бит разрешения/запрещения прерывания (xxIE) 
 
В ОМК реализуется векторная система прерываний. 
С  каждым  вектором  прерывания (IV) связана  область  в  нулевом 
сегменте памяти, состоящие из четырех байт: Адрес области = 4·IV 
При  возникновении  прерывания  осуществляется  переход  на  эту 
область ,где хранится команда безусловного перехода на п/п обработки. 

 
86
Замечание:  Со  всеми  прерываниями-ловушками  связан  один  вектор 
прерывания  (ОАН),  для  определения  возникшей  ошибки  используется 
специальный регистр флагов-ловушек (TFR –Trap Flag Register) 
В ОМК имеется 8 входов быстрой обработки прерываний (Р2.8÷Р2.15). 
Если обычные входы запросов прерываний опрашиваются каждые 400 нс (20 
МГц),  то  входы  быстрой  обработки  каждые 50 нс (20 МГц).  Эти  внешние 
входы  могут  программно  задавать  признак  прерываний.  Управляются  они 
через специальный регистр EXICON (0E0H). 
Прерывания – ловушки  (типа trap) генерируется  ОМК  при 
возникновении ошибочной ситуации или поступление запроса прерывания на 
вход NMI (немаскируемое прерывание).  
С  каждым  источником  прерывания  связан  регистр  управления 
прерыванием (xxIC). Все они имеют одинаковую структуру: 
15
0
xxIR
xxIE
ILVL
GLVL
 
xxIR–бит запроса прерывания (1-если этот источник выставил запрос) 
xxIE–бит разрешения/запрещения данного прерывания (0-запрешено) 
ILVL–уровень  приоритета  прерывания  данного  источника (0-низший; 
15-высший) 
GLVL–групповой 
уровень 
приоритета (0-низший; 3-высший) 
анализируется  при  одновременном  (групповом)  поступлении  запросов  с 
одинаковыми уровнями ILVL. 
Биты регистра ххIC устанавливаются программно пользователем. 
При  поступлении  запроса  от  устройства  ОМК  читает  его  уровень 
приоритета ILVL и  сравнивает  с  приоритетом  текущей  программы  (поле 
ILVL  в PSW). Если  приоритет  поступившего  прерывания  выше  оно 
обрабатывается, иначе – игнорируется. 
Замечание: всем прерываниям типа trap соответствует один и тот же вектор 
прерывания  (ОАН),  т.е.  при  их  возникновении  вызывается  одна  п/п 
обработки  и  для  определения  типа  возникшей  ошибки  ОМК  используется 
регистр TFR (trap Flag Register). 
6.9. Периферийный контроллер событий (PEC) 
РЕС  имеет  восемь  независимых  каналов  обработки  прерываний. 
Каждый  из  каналов  позволяет  обрабатывать  свой  запрос  прерывания  на 
аппаратном уровне. 
При обработке прерываний РЕС осуществляет передачу 1байта (слово) 
между  двумя  устройствами  или  памятью.  Каждому  каналу  контроллера 
событий  РЕС  соответствует  по  два  регистра: SRCPх  (х=0…7) – это  регистр 
для  хранения  адреса  устройства  источника  информации; DSTPx – регистр 
для хранения адреса устройства приемника информации. 
Кроме того каждый канал РЕС имеет свой регистр управления РЕССх 
(х=0…7). Его формат:  
15
10 9
8
7
0
 
mod
BWT
COUNT
 

 
87
COUNT –счетчик реализованных обменов данными (битами, словами) 
по каналу РЕС. 
Счетчик COUNT вычитаемый  и  при  его  обнулении  генерируется 
обычное прерывание для обработки полученного массива байт (слов). 
BWT–определяет тип передаваемой информации (байт или слов); 
mod–определяет  режимы  модификации  адресов  в  регистре SRCPx и 
DSTPx после каждого обмена. Mod=00 – адреса не модифицируются; mod=01 
–  после  каждого  обмена SRCPx+1(2) – увеличивается  на1  или 2 (режим 
используется  при  передачи  массива  из  памяти); mod=10 – после  каждого 
обмена DSTPx+1(2). Используется  для  сохранения  массива  информации  в 
памяти; mod=11 – не используется. 
Замечание: РЕС удобно использовать: 
–при чтении данных из АЦП В память; 
–при  реализации  обмена  данными  между  памятью  и  последовательными 
интерфейсами. 
6.10.  Модули захват-сравнение ОМК С167 
В  ОМК  реализованы  два  модуля  захват-сравнение (CAPCOM – 
CAPTURE/COMPARE): CAPCOM1 и CAPCOM2. Они  позволяют 
реализовать  до 32 каналов  захват-сравнение,  каждый  из  которых  может 
работать с 4 таймерами: Т0, Т1, Т7, Т8. 
Каждый канал захват-сравнение связан со своим выводом ОМК ССхIO 
(х=0,…,31). 
Для  реализации  выводов  ССхIO  используются  выводы  портов  Р1,  Р2, 
Р7, Р8 в альтернативном режиме работы. 
Каждый из каналов захват-сравнение может работать в двух основных 
режимах: 
–режим захвата.  
–режим сравнения. 
Каналы САРСОМ наиболее часто используют: 
–для  генерации  сигналов  широтно-импульсной  модуляции  (ШИМ) 
высокоточные во времени; 
–для генерации различных конфигураций логических сигналов; 
–для точной фиксации во времени внешних событий. 
–для формирования до 32 программных таймер - счетчиков. 
Разрешающая способность (точность) САРСОМ ~400нс (20МГц) 
Общая структура модулей САРСОМ1 (2) имеет вид: 
Каждый модуль САОСОМ содержит два 16-разрядных таймера: 
–САРСОМ1: Т0/Т1 
–САРСОМ2: Т7/Т8 
Таймеры в свою очередь управляются регистрами управления T01CON, 
T78CON  и  каждый  имеет  регистр  автоперезагрузки T0REL,…,T8REL. 
Синхронизация работы счетчиков – таймеров может осуществляться, как от 
внешних  источников,  так  и  от  частоты  синхронизации  ОМК  (с 
предварительным делением ее с помощью таймера Т6) 

 
88
6.11.  Встроенный начальный загрузчик ПО или 
ОС ОМК С167 
Встроенный загрузчик, позволяет загрузить в память ОМК по сигналу 
сброс, через последовательный интерфейс программу (таблицу кодов). 
Загрузчик  передает  данные  получаемые  из  интерфейса ASCO во 
внутреннем  ОЗУ  ОМК.  После  передачи  осуществляется  переход  на 
загружаемую программу. 
Замечание: Если полученная программа может осуществлять прием данных 
из последовательного интерфейса и перезаписывает их во внешнее ОЗУ. Т.о. 
в системах с ОМК С167 можно работать вообще без ПЗУ. 
Замечание:  Этот  механизм  загрузки  широко  применяют  в  отладочных 
системах,  а  также  для  записи  информации  во FLASH –память  или  для 
загрузки ОС в ОМК. 
6.12.  Встроенный модуль ШИМ ОМК С167 
В настоящее время во многих СУ мощными устройствами (двигателя, 
электромагнитные 
исполнительные 
устройства, 
печи) 
находит 
распространение принципа кода в аналоговую величину посредством ШИМ. 
Замечание:  Преобразование  кода  в  величину  напряжения  (тока)  с 
помощью АЦП, реализует АИМ. 
ШИМ – широтно-импульсная  модуляция (Pulse Width Modulation)–
PWM,  отличается  от  АИМ,  тем  что  преобразование  не  в  величину 
напряжения, а в длительность импульса. 
код
τ = α ⋅к
1
1
k3
τ = α ⋅к
k2
2
2  
k1
τ = α ⋅к
3
3
t
Т=const –период следования импульсов. 
t1
t2
t3
А
 
 
t
 
T
T
T
 
 
В простейшем случае схема Управления двигателем постоянного тока с 
помощью ШИМ: 

 
89
U п двиг
+
код
DC-мотор
U упр
t
А=const
1
2
IGBT
транзистор
драйвер
(оптронная развязка,
t
световод)
T=const
 
В более сложных случаях управления АС –двигателями, вентильными 
или  индукторными  используют  мостовые  схемы  включения  транзисторов ( 
тиристоров ), инверторы напряжения. 
Генерация  импульсов  управления  транзисторами  осуществляется  с 
помощью модулей ШИМ ОМК. 
ШИМ 
ОМК 
позволяет 
генерировать 
четыре 
независимые 
последовательности импульсов (4-канала ШИМ). Размещающая способность 
изменения τ: ∆τ=50нс. 
Частота следования импульсов ШИМ: от 2,4 Гц до 10(5) МГц. 
Существует четыре способа формирования ШИМ: 
–генерация стандартного ШИМ; 
–генерация симметричного ШИМ; 
–генерация пакетов импульсов; 
–режим одновибратора 
6.13.  Встроенный контроллер промышленной 
CAN-сети (CAN-модуль) 
Контроллер CAN-сети  позволяет  связать  посредством  шины  (витая 
пара,  коаксиальный  кабель,  световод)  ряд  станций  (контроллеров,  ЭВМ). 
Протокол  взаимодействия  станций  по  шине  реализуется  при  этом  на 
аппаратном уровне. 
CAN-модуль  позволяет,  автоматически  от  центрального  процессора, 
осуществлять  прием  и  передачу CAN-сообщений  в  соответствии  со 
стандартом CAN V2.0B. 
Передаваемые сообщения делятся на : 
–стандартные, с 11-разрядным идентификатором 
–расширенные, с 29- разрядным идентификатором 
Каждое  сообщение  содержит 8 байт  данных.  Одновременно CAN-
модуль может передавать и принимать до 15 сообщений (15 каналов связи) 
При приеме/передачи сообщений CAN-модуль обеспечивает: 
–скорость передачи до 1 Мб/с 
–несколько  средств  контроля  ошибок,  в  том  числе  циклическое 
кодирование с исправлением до 5 ошибок в сообщении. 
–при  обнаружении  большого  числа  ошибок  в  принятом  сообщении 
автоматически CAN-модуль 
формирует 
повторный 
запрос. 
Это 

 
90
обеспечивается аппаратно, пока сообщение не будет принято верно, либо не 
переполнится счетчик ошибок (128). 
Схема подключения ОМК С167 c CAN-сетью. 
УС1,…,УСn-устройства 
витая пара
согласования  с  сетью  (например 
120
120
можно 
использовать 
драйвер 
TxD
RxD
интерфейса RS-485, MAX485) 
ОМК
УС
УС
ОМК
1
1
n
n
 
RxD
TxD
 
 
 
 


 

А также другие работы, которые могут Вас заинтересовать

54012. Theatre Lessons for children 62.5 KB
  Many of the skills learned in playing are social skills. Most games worth playing are highly social and have a problem that needs solving within them- an objective point in which each individual must become involved with others while attempting to reach a goal.
54013. Опис графічних операцій у мові програмування Паскаль 139.5 KB
  Мета: Ввести поняття про графічних операторів у Паскалі. Навчити учнів правильно складати програми по обробці графічних функцій й операцій.
54014. Квадратні рівняння 329 KB
  Пропоную конспекти різних типів уроків де розкрито різні способи організації самостійної роботи з учнями при вивченні теми Квадратні рівняння. Квадратне рівняння. Повні та неповні квадратні рівняння їх розв’язання.
54015. Популярність. Популярні зірки 154 KB
  The topic of the today’s lesson is “The Famous Pop Stars”. Well, at the today’s lesson we’re speaking about people who want to be famous. You’ll read the text. You’re going to revise grammar (Past Simple and Present Perfect). By the end of the lesson you’ll be able to ask and answer the questions about pop idols.
54016. Англійська мова у 6 класі «Our English» 193.5 KB
  How do you do, my dears? Are you in a good mood? Are you ready for the lesson? We have got an interesting and unusual lesson today. It will be a competition to see who is the wisest, the most attentive and the most active. The winner will be given a tasty present. Do you want to take part in this competition? So, go ahead!
54018. Индивид, индивидуальность, личность и общество как производители и носители культуры 37 KB
  Индивидом обычно называют единичного конкретного человека, рассматриваемого в качестве биосоциального существа. Понятие «человек», как правило, употребляют, желая показать принадлежность какого-либо лица к человеческому роду (Homo sapiens), а также тот факт, что данное лицо обладает всеобщими, свойственными всем людям чертами и качествами. От этих двух понятий необходимо отличать понятие «личность».
54019. Структура культуры и ее элементы 42.5 KB
  Структура культуры — строение культуры, состоящей из субстанциональных элементов (опредмечиваются в ее ценностях и нормах) и функциональных элементов (характеризуют процесс культурной деятельности, различные ее стороны и аспекты)...
54020. Лексические игры на уроках английского языка 28 KB
  Лексические игры используются в самых различных целях: при введении нового лексического материала для закрепления его в памяти учащихся и для развития их устной речи. Лексические игры преследуют следующие цели: познакомить учащихся с новыми словами и их сочетаниями; тренировать учащихся в употреблении лексике в ситуациях приближенных к естественной обстановке; активизировать речемыслительную деятельность учащихся; развивать речевую реакцию. Лексические игры сосредоточивают внимание учащихся исключительно на лексическом материале...