close

Вход

Забыли?

вход по аккаунту

?

395.МИКРОПРОЦЕССОРНАЯ ТЕХНИКА

код для вставкиСкачать
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Воронежский государственный
архитектурно-строительный университет
Кафедра автоматизации технологических процессов
МИКРОПРОЦЕССОРНАЯ ТЕХНИКА
Методические указания к лабораторным работам
для студентов 4-го курса специальности 220301
“Автоматизация технологических процессов и производств
(в строительстве)”
Воронеж 2005
Составитель В.И. Енин
УДК 681.3
ББК 32.97
Микропроцессорная техника [Элктронный ресурс]: метод. указания к лаб.
работам / Воронеж. гос. арх.- строит. ун-т; сост.: В.И. Енин. - Воронеж, 2005. - 52
с.
Методические указания содержат необходимые сведения и рекомендации по
подготовке, выполнению и обработке результатов проведения лабораторных работ
по микропроцессорным средствам автоматизации в рамках учебной дисциплины
"Микропроцессорная техника".
Методические указания предназначены для студентов 4-го
курса
специальности
220301
"Автоматизация технологических процессов и
производств (в строительстве)", изучающих дисциплину " Микропроцессорная
техника ", и используются при проведении лабораторных работ.
Ил. 10. Табл. 6.
Библиогр.: 19 назв.
Печатается по решению редакционно-издательского совета Воронежского
государственного архитектурно-строительного университета
Рецензент - В.Д. Волков, д.т.н., проф.
Начало
Оглавление
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
4
1. ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА
5
2. ЛАБОРАТОРНАЯ РАБОТА № 1 СИНТЕЗ УПРАВЛЯЮЩЕГО АВТОМАТА
7
3. ЛАБОРАТОРНАЯ РАБОТА № 2 АРХИТЕКТУРА ОДНОКРИСТАЛЬНОГО
МИКРОПРОЦЕССОРА
13
4. ЛАБОРАТОРНАЯ РАБОТА № 3 ПРОГРАММНОЕ УПРАВЛЕНИЕ
ИСПОЛНИТЕЛЬНЫМ МЕХАНИЗМОМ
23
5. ЛАБОРАТОРНАЯ РАБОТА № 4 ВЫВОД ДАННЫХ НА ВНЕШНИЙ
ДИНАМИЧЕСКИЙ ИНДИКАТОР
26
6. ЛАБОРАТОРНАЯ РАБОТА № 5 РЕАЛИЗАЦИЯ РЕЛЕЙНОГО ЗАКОНА
УПРАВЛЕНИЯ НА ЭВМ
29
7. ЛАБОРАТОРНАЯ РАБОТА № 6 АРХИТЕКТУРА И СИСТЕМА КОМАНД
ПРОЦЕССОРА INTEL 286
31
8. ЛАБОРАТОРНАЯ РАБОТА № 7 РАБОТА INTEL 286 В РЕАЛЬНОМ МАСШТАБЕ
ВРЕМЕНИ
37
9. ЛАБОРАТОРНАЯ РАБОТА №8 ФОРМИРОВАНИЕ АНАЛОГОВОГО СИГНАЛА
41
10. ЛАБОРАТОРНАЯ РАБОТА № 9 ВВОД АНАЛОГОВОГО СИГНАЛА
44
11. ЛАБОРАТОРНАЯ РАБОТА №10 ПРОГРАММИРУЕМЫЙ ТАЙМЕР
47
Микропроцессорная техника
Методические указания к лабораторным работам для студентов 4-го курса
специальности 220301 “Автоматизация технологических процессов
и производств (в строительстве)”
Составитель: В. И. Енин
Отпечатано в авторской редакции
Подписано в печать ___________.
Уч. – изд. л. 2.7. Усл. – печ. л. 2.8.
Объем 3,96 Мб.
4
ВВЕДЕНИЕ
Микропроцессорные устройства и ЭВМ широко используются для
построения как локальных систем регулирования и управления технологическими
объектами, так и для реализации иерархических многоуровневых систем
управления.
Методические указания к выполнению лабораторных работ по курсу
"Микропроцессорная техника " предназначены для студентов 4-го курса
специальности
210200
"Автоматизация технологических процессов и
производств (в строительстве)", изучающих эту дисциплину и используются при
проведении лабораторных работ. Настоящие методические указания составлены в
соответствии с программой курса "Микропроцессорная техника".
Целью
лабораторных
работ
является
изучение
принципов
функционирования цифровых и микропроцессорных устройств, приобретение
практических навыков разработки программного обеспечения для реализации
заданных алгоритмов регулирования и управления. Рассмотрены системы
управления и регулирования на базе микропрограммного автомата,
микропроцессоров К580ИК80А и ЭВМ INTEL_*86.
Выполнение лабораторных работ требует предварительного изучения
студентами соответствующих разделов лекционного материала и детального
ознакомления с описаниями лабораторных работ и макетов. Методические
указания содержат необходимые сведения о макетах, программном обеспечении и
порядке проведения лабораторных работ.
Включение аппаратуры и проведение работ осуществляется после
персонального разрешения преподавателя. При обнаружении неисправности
студенты обязаны немедленно снять напряжение питания с силовых цепей макета
и выключить компьютер, обеспечив сохранение программы. По окончании
работы студенты обязаны предъявить преподавателю функционирующий, в
соответствии с заданием, макет системы и после проверки его работоспособности
преподавателем выключить аппаратуру и разобрать схему.
Зачет по выполненной лабораторной работе осуществляется в
индивидуальном порядке при наличии оформленного отчета. Отчет должен
содержать:
- название, цель работы и заданный алгоритм функционирования системы,
- функциональную схему исследуемой системы,
- графическое представление алгоритма работы управляющего устройства,
- программу или таблицы задающие алгоритм работы,
- полученные результаты и выводы по работе.
Выводы в сжатой форме должны содержать итоги исследования
реализованной системы управления или регулирования и объяснять причины,
вызвавшие возможные отклонения результатов от ожидаемых.
5
1. ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА
Лабораторный стенд состоит из микро-ЭВМ INTEL_*86, программируемого
контроллера “Электроника МС2721” на базе процессора КР580ИК80А и
лабораторного макета объекта управления. В лабораторный макет входят объекты
управления и блоки сопряжения. Блок схема стенда представлена на рис. 1.1.
Кнопки
ручного
управления
Выбор
режима
ПБР
ИМ
Согласующий
усилитель
ДУП
РО
Тепловой объект
Нагреватель Датчик
Усилитель
мощности
Переключатель
выбора
управляющего
устройства
ЭВМ
Двухпозиционный
Контроллер
Тактовый вход таймера
Переключатель
объектов
RC цепь
Выход
релейный элемент
Выход таймера
Выход
Выход
Аналоговый
вход
Осциллограф
Рис. 1.1. Функциональная схема стенда
В лабораторном стенде в качестве управляющих устройств используются
ЭВМ или контроллер, каждый из которых формирует на своем выходе
дискретные управляющие сигналы перемещения исполнительного механизма
вперед и назад по двум линиям. Управляющие сигналы с ЭВМ передаются через
порт LPT1, имеющий базовый адрес 378H. Порт буферизирован внешней схемой
на TTL элементах, включение которой производится передачей в порт 37АН
(базовый адрес LPT1+2) числа 3 (установкой 0-го и 1-го разрядов выходного
регистра). Выходной сигнал, прошедший буфер, через разъем на задней стороне
стенда поступает на переключатель выбора управляющего устройства,
расположенный на крышке стенда. Дискретные выходные сигналы с контроллера
поступают на переключатель выбора управляющего устройства через гнезда на
боковой панели стенда. При поступлении сигнала "Логической 1" на левое
(правое) входное гнездо макета происходит перемещение РО в сторону
увеличения (уменьшения) входного воздействия на объект управления.
Управляющие сигналы, прошедшие переключатель выбора управляющего
устройства, через согласующий усилитель поступают на переключатель выбора
режима управления "ЭВМ - Ручное" и, далее, на бесконтактный реверсивный
пускатель (ПБР-2), к выходам которого подключен исполнительный механизм
6
МЭО-25. Переключатель "ЭВМ - Ручное управление" отключает входы макета,
передавая управление перемещением ИМ на кнопки "Больше" и "Меньше".
Исполнительный механизм (ИМ) осуществляет перемещение регулирующего
органа, представляющего собой потенциометр, на выходе которого формируется
управляющее воздействие в виде электрического сигнала, поступающего на
усилитель мощности и далее через переключатель "Объект управления" на объект
№ 1 или № 2.
Объект управления № 1 является реальным тепловым объектом и
содержит нагреватель и тепловой датчик, выполненный по мостовой схеме, в
одно из плеч которой включено термосопротивление. Выходной сигнал датчика
изменяется от 0 до 10 V при изменении температуры от 20 до 100 0С. Выход
датчика выведен на переднюю панель макета.
Объект управления
№ 2 представляет собой две последовательно
включенных RC цепочки. Конденсатор второй цепочки может быть отключен.
Таким образом, объект управления представляет собой одно-емкостный или двухемкостный объект. Выход RC цепочки выведен на переднюю панель.
К внутреннему реостатному датчику
положения исполнительного
механизма подключен
дистанционный указатель положения (ДУП),
установленный на передней панели макета. Выход другого реостатного датчика
положения ИМ через согласующий усилитель выведен на переднюю панель
макета.
Питание макета осуществляется от внутреннего источника, включаемого
тумблером "Сеть".
Блок релейного элемента, выполнен в виде отдельного устройства. Он
содержит два независимых канала. Первый канал предназначен для согласования
высокого выходного сопротивления датчиков с низкоомными входами
управляющих устройств и представляет собой повторитель на операционном
усилителе 140УД6. Второй канал служит для преобразования выходного
аналогового сигнала датчиков в выходной дискретный сигнал, т. е. является
релейным элементом.
Аналоговый вход релейного элемента подключается к одному из выходов
датчиков, а выход – к дискретным входам управляющих устройств.
Релейный элемент выполнен на операционном усилителе (м/с 140УД6).
Зависимость выходного сигнала релейного элемента от входного представлена
на рис. 1.2. Положение передней ветви петли гистерезиса регулируется
потенциометром "Уровень", а положение ветви
возврата (ширина петли ) - потенциометром
UВЫХ
"Ширина". Тумблер "Гистерезис" ликвидирует
4в
неоднозначность
релейной
характеристики.
Питание блока осуществляется от внешнего
Uвх
источника +15 и -15в.
На вход тактовых импульсов таймера
Рис. 1.2. Характеристика контроллера подается сигнал от внешнего
релейного элемента
генератора.
Выходной
сигнал
таймера
контролируется с помощью осциллографа.
7
2. ЛАБОРАТОРНАЯ РАБОТА № 1
СИНТЕЗ УПРАВЛЯЮЩЕГО АВТОМАТА
Цель работы: Целью работы является изучение структуры и метода
синтеза дискретного управляющего автомата, реализующего микропрограммный
принцип управления.
Оборудование:
1. лабораторный макет структурного управляющего автомата,
2. лабораторный стенд (п.1) или исполнительный механизм дискретного
действия ( операционный автомат) или аналоговый объект управления с
блоком релейного элемента.
2.1.
Лабораторный макет управляющего автомата
При использовании микропрограммного принципа управления дискретное
устройство принято делить на операционный и управляющий автоматы.
Операционный автомат (ОА) служит объектом управления со стороны
управляющего автомата (УА). ОА предназначен для выполнения заданного
набора операций в процессах приема, обработки, хранения и передачи
материалов, энергии и информации. Он может вырабатывать выходные
дискретные сигналы Z(z1,z2…zn) и сигналы-признаки X(x1…xk),
которые
поступают на УА и информируют его о результатах выполненной операции. На
управляющий автомат могут подаваться также внешние управляющие входные
сигналы, определяющие работу автомата.
УА генерирует последовательность управляющих сигналов Y=(y o ... ym) для
ОА в соответствии с заданной микропрограммой, внешними управляющими
сигналами и с результатами выполненной операции в ОА. Каждый управляющий
сигнал yi инициирует выполнение соответствующей микрооперации в ОА.
Работа синхронного управляющего автомата тактируется внешними
импульсами от генератора тактовых сигналов. Управляющий синхронный
автомат представляется в виде совокупности двух основных блоков:
комбинационной схемы (КС) и блока элементов памяти, предназначенного для
хранения в течение одного такта работы части выходных сигналов КС
содержащих информацию о состоянии автомата, т. е. его предыстории. Другая
часть выходов КС предназначена для управления операционным автоматом
(объектом управления).
Блок-схема макета управляющего автомата приведена на его передней
панели (рис.2.1.). Макет автомата содержит:
8
+15 В
+5 В
-15 В
уровень
1
0
A0
A1 RAM D0
A2
A3
D0
D0
D1
D0
D2
D3
D0
E
+5в
0
0
коммутатор
работа
4
8
1
2
3
4
Данные
Адрес
программирование
D0
T
1
ГТИ
D0
2
2
D1
Вкл.
D1
4
Частота
4
D2
D2
D3
C
D3
8
8
Импульс.
+5 В
+5 В
Модулятор
Данные
2
Запись.
Адрес
Адрес
1
1
Вкл.
1
A0
A1 RAM D0
A2
A3
D0
D0
D1
D0
D2
D3
D0
E
Запись.
1
2
С
СT
1
D0
2
2
D1
Импульсы Паузы
4
4
D2
8
8
D3
+5 В
Рис.2.1. Передняя панель автомата
Кодовые диски
1) комбинационную схему на базе программируемого запоминающего
устройства (ЗУ), реализующую 8 логических функций четырех
переменных x0, x1, x2, x3;
2) память переменных состояний в виде четырехразрядного регистра на Dтриггерах;
3) генератор уровня (ГУ), предназначенный для выработки сигналов
логической “1” и логического “0” и управляемый тумблером;
4) генератор одиночных импульсов (ГОИ), предназначенный для генерации
одиночного тактового импульса при нажатии кнопки;
5) генератор тактовых импульсов (ГТИ);
6) двоичный счетчик на 4 разряда,
7) модулятор,
8) кодовые диски.
Микропрограммный автомат состоит из КС и памяти переменных состояний.
Комбинационная схема, имеющая 4 входа и 8 выходов, искусственно разделена на
две части со структурой 4x4. Верхняя часть предназначена для управления
памятью переменных состояний, реализованной на четырехразрядном D-тригере,
нижняя – для выработки сигналов управления исполнительными механизмами
(ОА). Каждая часть КС реализована на микросхеме (м/с) статического
оперативного запоминающего устройства (ОЗУ) 155РУ2. Входы данных двух м/c
155РУ2 объединены и подключены к правому кодовому диску и предназначены
для установки с кодового диска входных данных при программировании.
Адресные входы 155РУ2 также объединены. Они подключаются через
управляемый тумблером “РАБОТА/ПРОГРАММИРОВАНИЕ” коммутатор на м/с
155КП11, или к левому кодовому диску для задания адреса в режиме
программирования или ко входам автомата в режиме работы.
9
Для реализации импульсного режима работы исполнительных механизмов
макет содержит модулятор (прерыватель), управляющий работой двух выходов
(D0, D1) нижней комбинационной схемы. Модулятор включается своим
тумблером и имеет ручки регулировки длительности импульса и длительности
паузы.
Для записи входных данных в каждом такте работы D- тригеров макет
содержит генератор тактовых импульсов (ГТИ). Запись данных в память
состояний осуществляется по переднему фронту тактового импульса. ГТИ имеет
тумблер “вкл/выкл” и ручку управления частотой тактовых импульсов. Подача
одиночного тактового импульса при отладке работы автомата осуществляется
кнопкой при отключенном ГТИ. ГТИ не работает в режиме
“ПРОГРАММИРОВАНИЕ”.
С целью расширения функциональных возможностей макета к выходу ГТИ
подключен двоичный счетчик (на м/с 155ИЕ5), выходы которого выведены на
панель макета. Он используется как источник входных сигналов при реализации
микропрограммных алгоритмов работы автомата. Изменение содержимого
счетчика происходит по заднему фронту положительного импульса.
Для записи информации, установленной на входах данных микросхем памяти
по установленному адресу, под каждым элементом ПЗУ расположена кнопка
записи. При нажатии кнопки на вход записи ОЗУ поступает импульс, по которому
производится запись.
Генератор уровней, управляемый тумблером, используется в качестве
источника внешних входных сигналов. Его выход "Уровень", расположенный
рядом с тумблером, выдает сигнал логического "0" или "1".
Входы и выходы отдельных блоков выведены на коммутационную панель.
Соединение блоков производится студентами при синтезе автомата. Состояние
выходов комбинационной схемы, регистра переменных состояний и счетчика
индицируется светодиодами, что позволяет визуально наблюдать за работой
автомата.
Макет имеет 4 входа питания : +15, -15, +5, 0 V.
2.2.
Программирование комбинационной схемы
Комбинационная схема разделена на две части с организацией 4x4, каждая
из которых выполнена на микросхеме (м/с) оперативного запоминающего
устройства (ОЗУ) 155РУ2 и реализует четыре выходных логических функции
(Y0..Y3) четырех входных логических переменных (X0..X3). Адресные входы м/с
ОЗУ являются входами КС, а выходы данных - выходами КС. Для задания
требуемой логической функции для каждого выхода КС м/с ОЗУ должна быть
запрограммирована, т.е. в нее должны быть занесены необходимые данные
(функции выходов).
Для программирования м/с ОЗУ по графу автомата составляется таблица
истинности для каждой части КС по форме табл. 2.1. При достаточности четырех
выходов КС можно программировать (использовать) только верхнюю часть КС.
10
Каждому набору входных значений двоичных сигналов (аргументу) и
набору двоичных выходных сигналов (значений функций) ставится в
соответствие двоичное число. Присваивая каждому сигналу х i двоичный вес (2i) в
соответствии с номером входного разряда, на который он поступает,
записываются входные и, аналогично, выходные сигналы КС в виде двоичных и
десятичных чисел.
Для программирования верхней (нижней) м/с ОЗУ необходимо перевести
переключатель
коммутатора
"Работа/Программирование"
в
режим
"Программирование", тем самым, подключить адресные входы и входы данных
ОЗУ к своим кодовым дискам адреса и данных. Для каждой строки таблицы
истинности на кодовых дисках адреса и данных устанавливаются десятичные
числа, соответствующие входным (аргументам) и выходным сигналам (значениям
функций) верхней (нижней) м/с. Для записи выходных сигналов КС
(программирование ячейки ОЗУ) необходимо нажать кнопку "Запись"
соответствующей микросхемы.
X3
1
0
Таблица истинности
Таблица 2.1.
Аргументы функций
Значение функций
X2 X1 X0 Двоичный Десятичный Y3 Y2 Y1 Y0 Двоичный Десятичный
код Х
код Х
код Y
код Y
0 0 1
1001
9
0 0 1 1
0011
3
1 1 0
0110
6
1 1 1 0
1110
14
2.3.
Операционный автомат
В качестве объектов управления в лабораторной работе используются
дискретные устройства, реализуемые на базе лабораторного стенда описанного в
разделе 1. Каждый объект управления в лабораторной работе рассматривается как
дискретный автомат. Он представляет собой последовательное соединение
исполнительного механизма постоянной скорости и аналогового объекта
управления, к выходу которого подключен релейный элемент для преобразования
аналогового выходного сигнала в дискретный сигнал. Дискретное управление
перемещением исполнительного механизма (ИМ) осуществляется подачей
выходных управляющих сигналов автомата на гнезда входов расположенные на
боковой стороне лабораторного стенда.
В качестве аналогового объекта управления может быть предложены:
реальный тепловой объект с нагревателем и датчиком температуры,
одноемкостный или двухемкостный объект на RC цепочках,
исполнительный механизм.
11
Выходной сигнал аналогового объекта поступает на вход релейного
элемента и с него на вход автомата для ввода дискретного сигнала о состоянии
объекта управления.
В работе могут быть предложены и другие объекты управления.
2.3. Задание
Реализовать релейное регулирование заданной величины.
2.4. Порядок выполнения работы
1. Получить у преподавателя задание: объект управления и алгоритм его
работы для построения системы управления на основе автомата с памятью.
2. Определить количество управляющих входов объекта управления и
выходов данных о его состоянии.
3. Определить требуемое число внутренних состояний управляющего
автомата для реализации заданного алгоритма работы.
4. Назначить входы комбинационной схемы для подключения источников
внешних входных сигналов, источника информации о состоянии объекта
управления и выходов регистра памяти состояний управляющего автомата.
5. Назначить выходы комбинационной схемы для подключения
операционного автомата (объекта управления) и входов памяти состояний
(входов регистра на D-триггерах).
6. Провести кодирование состояний управляющего автомата, его входных и
выходных сигналов. При исходном задании двоичных сигналов на входах и
выходах часть кодирования подразумевается выполненной.
7. По результатам кодирования уточнить число входных и выходных полюсов
КС и число разрядов в регистре памяти. Проверить реализуемость
предложенного алгоритма работы на лабораторном макете.
8. Построить граф работы автомата.
9. Построить таблицу истинности комбинационной схемы.
10. В соответствии с п. 4,5 произвести подключения на коммутационной
панели с помощью проводников.
11. Предоставить схему соединений для проверки преподавателю.
12. Включить питание.
13. Провести программирование комбинационной схемы согласно указаниям
раздела 2.2.
14. Записать в память состояний код исходного состояния автомата. Для этого в
режиме программирования при выключенном ГТИ установить на кодовом
диске “Адрес” адрес ячейки, содержащей код исходного состояния. При
этом на входе регистра состояний появится код исходного состояния
автомата. Записать его в регистр, подав одиночный тактовый импульс.
15. Включить исполнительный механизм, подав напряжение питания.
12
16. Перейти в режим “Работа” и проверить правильность работы автомата при
потактовом прохождении вершин графа, подавая одиночные тактовые
импульсы. При обнаружении ошибок в работе системы немедленно снять
питание с исполнительного механизма, выявить и устранить их причину.
17. Включить ГТИ и проверить правильность работы автомата в автономном
режиме.
18. Продемонстрировать работу системы преподавателю и представить отчет,
содержащий исходное задание, назначения сигналов, граф автомата и
таблицу истинности КС.
2.5. Контрольные вопросы
Чем различаются автоматы Мили и Мура?
Назовите способы задания алгоритма работы автомата.
Каким образом описывается структурный автомат.
Объясните назначение блоков структурного автомата.
Составьте схему подключения внешних устройств к структурному
автомату.
6. Поясните метод синтеза структурного автомата.
7. Какова особенность программирования КС в макете?
8. Объясните построенный граф заданного автомата и получение таблицы
истинности комбинационной схемы.
9. Объясните схему соединений на макете.
10. Каким образом можно уменьшить емкость ОЗУ, реализующей функцию
комбинационной схемы?
1.
2.
3.
4.
5.
ЛИТЕРАТУРА
1. Баранов С.И., Синев В,Н, Автоматы и программируемые матрицы. Минск:Вышэйш. Школа, 1980.-135с.
2. Баранов С.И. Синтез микропрограммных автоматов.-Л.:Энергия. 1974.216с.
13
3. ЛАБОРАТОРНАЯ РАБОТА № 2
АРХИТЕКТУРА ОДНОКРИСТАЛЬНОГО МИКРОПРОЦЕССОРА
Цель работы: изучение архитектуры и освоения методов программирования
контроллера на базе однокристального микропроцессора серии КР580ИК80А,
применяемого в МП системах управления.
Оборудование - Микроконтроллер МС2721, лабораторный стенд, дискретные
объекты управления.
3.1. Описание микроконтроллера
Блок-схема контроллера МС2721 представлена на рис.3.1. В состав
контроллера входят:
центральный процессор КР580ИК80А,
ППЗУ, содержащее программное обеспечение,
ОЗУ,
2 программируемых параллельных интерфейса КР580ВВ55 (ППИ ).
программируемый последовательный интерфейс КР530ВВ51,
таймер КР580ВИ53,
контроллер прерываний (КП) КР580ВН59,
пульт управления (ПУ), подключенный через параллельный интерфейс.
Шина
Шина
Шина
адреса
данных
управления
Процессор
К580ИК80А
Пульт
управления
ОЗУ
ППЗУ
ППИ
Посл.
инт.
Тайм.
ППИ
КП
Рис. 3.1. Функциональная схема контроллера
Периферийные устройства связаны с центральным процессором через шины
адреса, данных и управления. Программное обеспечение представлено
программой МОНИТОР, поддерживающей связь оператора с контроллером и
библиотекой подпрограмм.
Программа монитор размещена по адресам ППЗУ 0 - F2EH, кроме того, она
использует область ОЗУ 1200H – 1899H. Глубина используемого стека не более
30 байт. Для автоматического запуска программы пользователя точка входа в
14
программу должна иметь адрес 5020H, а содержимое ячейки 2000H должно быть
равно С3H. В программах пользователя не допускается использовать 0-й канал
таймера, нулевой и первый векторы прерывания, т.к. они используются
монитором. При проведении лабораторных работ рекомендуется размещать
программы пользователя с адреса 1А00H. Выход в программу МОНИТОР из
программ пользователей производится командой JMP 01FEH. При запуске
программы командой G рекомендуется установить точку разрыва на последней
команде программы.
Адреса внешних устройств контроллера представлены в таблице 3.1.
Устройство
Параллельный
А - канал
интерфейс
В - канал
КР580ВВ55
С - канал
РУС - управл. слово
Параллельный
А - канал
интерфейс
В - канал
КР580ВВ55
С - канал
РУС - управл. слово
Параллельный
А - канал
интерфейс
В - канал
КР580ВВ55
С - канал
РУС - управл. слово
Последовательный Данные, инструкция
интерфейс
режима
КР580ВВ51
Инструкция
команды
Контроллер
СКИ1
прерываний
СКИ2, СКО2
KF580BH59
Таблица 3.1.
Адрес
F4H
F5H
F6H
F7H
F0H
F1H
F2H
F3H
Е4H
Е5H
Е6H
Е7H
F8H, FAH
F9H, FBH
FE, FC
FF, FD
Центральный процессорный элемент КР580ИК80А является функционально
законченным однокристальным параллельным 8-разрядным микропроцессором с
фиксированной системой команд.
В микропроцессоре используются одно-, двух- и трехбайтовые форматы
команд. Содержимое 1-го байта указывает на формат команды, код операции, вид
адресации и регистры или регистровые пары, если они участвуют в выполнении
операции.
К двухбайтовым командам относятся команды с непосредственной
aдресацией и команды ввода-вывода. В этом случае второй байт содержит или 8разрядный операнд, или номер устройства ввода-вывода.
В трехбайтовых командах 1-ый байт содержит код операции, второй байт
содержит младшую, а третий - старшую часть двухбайтового адреса операнда или
перехода, или двухбайтового операнда.
15
В микропроцессоре используется 4 метода адресации: прямой регистровый,
непосредственный, косвенный, абсолютный.
Система команд микропроцессора КР580ИК80А приведена в таблицах 3.2,
3.3. Для каждого типа команд особым образом формируются признаки.
Особенности формирования признаков при выполнении команд отражены в
таблице 3.2.
3.2. Назначение и использование команд монитора
Программа МОНИТОР представляет собой программный модуль
диалогового взаимодействия пользователя с МП и предназначена для управления
выполнением программ контроллера и их отладки.
МОНИТОР выполняет следующие функции:
- управление выполнением программ;
- управление обменом информации с внешними устройствами;
- отладку программ.
Диалог МП - пользователь происходит с помощью пульта. При поступлении
с пульта очередной команды программы MОНИТОР происходит прерывание
работающей программы пользователя и осуществляется переход к обработке
заданной команды. В пульте управления используется шестнадцатеричная
система счисления, поэтому все адреса и данные в дальнейшем представлены в
шестнадцатеричной системе счисления.
Пользователь обращается к программе МОНИТОР с помощью команд.
Действие программы МОНИТОР сводится к обработке ее команд. По
окончании выполнения команды программы МОНИТОР управление
передается прерванной программе.
В зависимости от формы выполнения команды возможно три режима
работы программы МОНИТОР.
1) Работа на фоне программы пользователя. В этом режиме после обработки
каждого символа, вводимого с пульта, и после завершения выполнения команды
программы МОНИТОР (кроме команд G и ST) управление передается программе
пользователя. Признаком работы программы пользователя является символ " — "
в восьмой позиции дисплея.
2) Автономный режим. Режим устанавливается при достижении одной из точек
разрыва, введенной командой G с точками разрыва. В этом режиме выполняется
только программа МОНИТОР. Программа пользователя остановлена на точке
разрыва. Признаком работы в автономном режиме является отсутствие символа "
— " в восьмой позиции индикатора. Режим отменяется по команде G без точек
разрыва, т.е. передается управление программе пользователя.
3) Режим трассировки. Этот режим устанавливается командой ST. После каждой
выполненной команды происходит остановка программы и управление
передается программе МОНИТОР, т. е. возможен ввод любой команды, кроме G
и ST. Режим продолжается командой ST и отменяется командой G без точек
разрыва.
Процесс ввода команды, и также результат ее выполнения отражаются на
16
восьми цифровых индикаторах, расположенных на передней' панели пульта,
Символ "—“ в крайней левой позиции индикатора свидетельствует о готовности
программы МОНИТОР к восприятию команды.
При вводе имени команды символ "— " в позиции 1 дисплея заменяется
символами "," в позициях 1-4 или 2-3 в зависимости от формата введенной
команды. Побуждающие символы говорят о необходимости ввода параметров
команды, если это необходимо для пользователя. Параметры: команд вводятся
через разделитель "_”. Данные и адреса вводятся и выводятся в
шестнадцатеричной системе счисления.
Команда начинает выполняться при нажатии клавиши "CR".
Некоторые команды (X, S, I) начинают выполняться при нажатии клавиши
"___" и завершаются при нажатии клавиши " CR".
При вводе цифр параметра каждая новая цифра видится в младший разряд
поля, отведенного под индикацию параметра, а предыдущая информация
сдвигается на одну позицию влево. Цифры, выходящие слева за формат
параметра, теряются.
Следовательно, если в процессе ввода параметра допущена ошибка, можно
не сбрасывать команду (с помощью клавиши " # "), а продолжать ввод параметра
до тех пор, пока на индикаторе не окажется нужный параметр. Параметры,
вводимые с пульта, поступают в память после нажатия клавиши " ", а последний
параметр вводится нажатием клавиши “CR”.
3.2.1. Обращение к программе МОНИТОР
Обращение к программе МОНИТОР предполагает и его начальный запуск. Для
запуска программы необходимо:
- нажать клавишу " R " при этом на индикаторе отображается “- 80 1, 0 ”
- нажать клавишу "#".
При нажатии этой клавиши происходит начальная установка
соответствующих ячеек ОЗУ, т. е. осуществляются подготовительные операции
для выполнения команд программы МОНИТОРА. При этом в крайней левой
позиции дисплея индицируется символ "—", что свидетельствует о готовности
системы к работе. Если памяти есть программа, то ей автоматически передается
управление. О ее работе свидетельствует индикация "—" в крайней правой
позиции индикатора.
3.2.2. Команды МОНИТОРА
Команда С
По команде С (мнемоника СОМРALЕ – сравнить) производится сравнение
содержимого области памяти, ограниченной первыми двумя параметрами, с
содержимым области памяти, начинающейся с третьего параметра команды. При
неравенстве содержимого двух областей памяти на индикатор выводится адрес
ячейки памяти из первой области. Сравнение продолжается после нажатия
клавиши « CR «.
Команда X
17
С помощью команды X (EXAMINE – исследовать) производится исследование
и модификация содержимого регистров программы пользователя. Регистры
процессора:
A, B, C, D, L, E, H – регистры общего назначения микропроцессора;
F-регистр признаков микропроцессора;
P – организуемый в оперативной памяти 16-битовый регистр адреса передачи
управления программе пользователя. При остановах в точках разрыва
регистр Р имеет значение регистра адреса прерывания программы
пользователя;
S – указатель стека.
Выполнение команды производится в следующей последовательности:
1.
вводится символ X;
2.
в позиции 2 индикатора выводится имя регистра А, в позициях 5-6 –
содержимое исследуемого регистра;
3.
при вводе разделителя “ ” на индикатор выводится имя следующего
регистра и его содержимое (в позициях 5-6 или 4-7);
4.
модификация содержимого текущего регистра производится путем
ввода с пульта нового содержимого (в шестнадцатеричном коде), а
после него – разделителя “ ”.
5.
при нажатии клавиш «CR» исследование содержимого регистров
прекращается.
Команда S
По команде S (мнемоника SUBSTITUTE – заменить) производится
исследование и модификация содержимого памяти.
Выполнение команды ведется в диалоговом режиме. Последовательность
выполнения команд следующая:
1. вводится символ S и шестнадцатеричный адрес первой исследуемой
ячейки памяти, а затем разделитель“ ”. При этом адрес ячейки
выводится в позициях 1 – 4, содержимое исследуемой ячейки памяти
в позициях 6 – 7 индикатора;
2. производится модификация текущей ячейки путем ввода с пульта нового
содержимого (в шестнадцатеричном коде), а затем разделителя;
3. при нажатии клавиши «CR» исследование содержимого памяти
прекращается.
Команда М
Команда М перемещает содержимое одной области памяти в другую.
Данные исходной области остаются без изменения. Выполнение команды
производится в следующей последовательности.
1. Вводится символ “М” и шестнадцатеричный адрес начала исходной
области памяти, т.е. адрес первого перемещаемого байта. Введенный
адрес индицируется в позициях 1- 4.
2. Вводится разделитель “ ”, а затем шестнадцатеричный адрес последнего
перемещаемого байта, т.е. адрес конца исходной области памяти.
3. Вводится разделитель “ ” и шестнадцатеричный адрес начала области
18
назначения.
4. При нажатии клавиши “СR” происходит выполнение команды, при ее
окончании индицируется символ “—“ в первой позиции индикатора.
Команда I
По команде I (мнемоника INPUT – ввод) производится индикация
содержимого регистра внешнего устройства по адресу, вводимому с пульта.
Команда О
По команде О (мнемоника OUTPUT – вывод) производится вывод байта
данных на регистр внешнего устройства по адресу, задаваемому в параметре
команды с пульта.
Команда G
Команда G (мнемоника GO – перейти) является командой запуска
программ. Запуск программы заключается в осуществлении необходимых
передач управления от программы МОНИТОР к выполняемой программе и
наоборот. Команда S имеет несколько режимов.
Если: задан только первый параметр, он- интерпретируется как точка входа
в программу пользователя и происходит передача управления по этому адресу.
Если заданы дополнительные параметры (один или два), они
рассматриваются как точки разрыва, т.е. адресов программы, по достижении
которых управление передается программе МОHИTOP. При этом состояние
прерванной программы запоминается и нa индикатор выводится адрес точки
разрыва. При нажатии клавиши «#» индицируется «—», что говорит с готовности
программы, МОНИТОР к восприятию команд.
Если первый параметр не задан (или вместо него введен разделитель “ ”),
сохраненное значение счетчика команд программы пользователя используется как
точка входа в эту программу. Следовательно, отсутствие первого параметра
означает, что программа выполнявшаяся последней запускается с адреса
предыдущей точки разрыва.
Команда ST
При вводе команда ST (мнемоника STEP – шаг) последующее выполнение
программы производится с остановами после каждой машинной команды
исследуемой программы.
Переход на последующую машинную команду происходит при нажатии
клавиши “ ”. При этом в позициях 1 – 4 индицируется адрес выполняемой
команды, а в позициях 6-7 – ее код. После каждого останова управление
передается программе МОНИТОР. Перед вводом команд необходимо, нажать
клавишу «#», что позволяет исследовать и модифицировать содержимое
интересующих регистров и ячеек памяти, аннулировать режим трассировки либо
просто остановить выполнение программы и оценить полученные
промежуточные результаты. Затем, если необходимо продолжить выполнение
программы пользователя, вводят команду G или ST (шаговый режим) без
параметров.
Следует учесть, что при покомандном выполнении программы происходит
существенное замедление ее выполнения.
19
3.3. Система команд процессора КР580ИК80А.
Коды регистров: B - 000 H - 100
Коды пар регистров: BС - 00
С – 001 L - 101
DE - 01
D – 010 M - 110
HL - 10
E – 011 A - 111
Под регистром М понимается ячейка памяти, адрес которой помещен в пару
регистров HL.
Некоторые часто употребляемые команды
Таблица 3.2.
Структура
Выполняемая операция
Мнемоника
Признаки
кода
Z S C V P
команды
Команды пересылки
01 Ri Rj
MOV Ri, Rj - - - - 1. Регистр- регистр Ri
Rj
00 Ri 110
2. Непосредственная загрузка
MVI Ri
- - - - регистра Ri
<B2>
00 Ri 001
3.Непосредственная загрузка пары LXI Ri
- - - - регистров Ri <B3> , Rj <B2>
При Ri=110; SP <B3> <B2>
4. Запоминание/загрузка A и HL
00000010
STAX B
- - - - [(BC)] (A)
00010010
STAX D
- - - - [(DE)] (A)
00001010
LDAX B
- - - - A [(BC)]
00110010
STA
- - - - [<B3> <B2>] A
00111010
LDA
- - - - A [<B3> <B2>]
00101010
- - - - L [<B3> <B2>], H [<B3> <B2>]+1 LHLD
Положительное/отрицательное
приращение
00 Ri 100
Положительное приращение
INP Ri
+ + - + +
регистра Ri (Ri)+1
00 Ri 101
Отрицательное приращение
DCP Ri
+ + - + +
регистра Ri (Ri)-1
00 Ri 0011 Положительное приращение пары INX Ri
- - - - регистров RiRi+1 ( RiRi+1)+1;
При Ri=110 - приращение SP
00 Ri 1011 Отрицательное приращение пары
DCX Ri
- - - - регистров RiRi+1 ( RiRi+1)-1;
При Ri=110 - приращение SP
Арифметические и логические
операции
10000 Ri
ADD
+ + + + +
A (A)+(Ri)
10001 Ri
ADC
+ + + + +
A (A)+(Ri)+(TC)
10010 Ri
SUB
+ + + + +
A (A)-(Ri)
20
Структура
кода
команды
10011 Ri
10100 Ri
10101 Ri
10110 Ri
10111 Ri
11000110
11001110
11010110
11011110
11100110
11101110
11110110
11111110
11011011
11010011
11111011
11110011
00100111
00000000
01110110
Выполняемая операция
Мнемоника
Z S C V P
A (A)-(Ri) )-(TC)
A (A) (Ri)
A (A) (Ri)
A (A) (Ri)
A (A)-(Ri); Сравнение
Арифметические и логические
операции с непосредственной
адресацией
A (A)+(B2)
A (A)+( B2)+(TC)
A (A)-( B2)
A (A)-( B2) )-(TC)
A (A) ( B2)
A (A) ( B2)
A (A) ( B2)
A (A)-( B2); Сравнение
Операции ввода и вывода
Ввод: A (Входные данные)
Вывод: Шина данных (A)
Прочие операции
Разрешение прерывания
Запрет прерываний
Двоично-десятичная коррекция
Отсутствие операции
Останов
SBB
ANA
XRA
ORA
CMR
+
+
+
+
+
+
+
+
+
+
+
0
0
0
+
+
0
0
0
+
+
+
+
+
+
ADI
ACI
SU1
SBI
ANI
XRI
ORI
CPI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
0
0
0
+
+
+
+
+
0
0
0
+
+
+
+
+
+
+
+
+
IN
OUT
-
-
-
-
-
EI
DI
DAA
NOP
HLT
+
-
+
-
+
-
+
-
+
-
Некоторые команды ветвления
Условия
Переходы
Вызов подпрограмм
перехода
Код
Мнемоника
Код
Мнемоника
команды
команды
Нет
11000011 JMP
11001101 CALL
Не ноль 11000010 JNZ
11000100 CNZ
(Tz )=0
Ноль
11001010 JZ
11001100 CZ
(Tz )=1
Плюс
11110010 JP
11110100 CP
(Ts)=0
Минус
11111010 JM
11111100 CM
(Tz )=0
Таблица 3.3
Возврат из
подпрограммы
Код
Мнемоника
команды
11001001 RET
11000000 RNZ
11001000 RZ
11110000 RP
11111000 RM
21
3.4. Подключение объекта управления
В микропроцессоре разряды 0 и 1 выходного регистра с адресом F4
используются для подключения линии управления дискретным объектом. При
использовании описанного выше лабораторного макета они подсоединяются к
линиям управления перемещением исполнительного механизма вперед и назад
соответственно.
Первый разряд входного регистра с адресом F5H используется для ввода
дискретных данных. К нему подключается дискретный датчик состояния объекта
управления (выход релейного элемента подключенного к выходу аналогового
объекта).
В работе могут быть предложены различные объекты управления.
3.5. Задание
Реализовать релейное регулирование заданной величины.
3.6. Порядок выполнения работы
1. Получить у преподавателя объект управления и алгоритм его работы для
построения системы управления на базе микроконтроллера.
2. Уточнить у преподавателя используемые адреса и разряды регистров
ввода/вывода.
3. Разработать блок-схему алгоритма управления.
4. На основе блок-схемы разработать управляющую программу.
5. Произвести необходимые переключения на макете.
6. Используя команды монитора, ввести программу в контроллер.
7. Проверить правильность функционирования программы.
8. Подать питающее напряжение на объект управления.
9. Убедиться в правильности функционирования системы управления. При
обнаружении опасных отклонений в поведении объекта управления
немедленно снять питающее напряжение.
10. Предъявить функционирующую систему преподавателю.
11. Снять напряжение с объекта управления и выключить контроллер.
12. Отчет должен содержать название и цель работы, вербальное описание
алгоритма управления, блок-схему программы управления, программу в
машинных кодах с комментариями.
22
3.7. Контрольные вопросы
Укажите назначение регистров процессора.
Перечислите методы адресации, поддерживаемые процессором.
Каким образом используются регистры процессора?
Укажите форматы команд процессора.
Выполните перевод десятичного числа в шестнадцатеричную систему
счисления.
6. Назовите команды монитора и укажите их формат.
7. Как организуется вывод данных на внешнее устройство?
8. Поясните выполнение процедуры обработки прерывания
1.
2.
3.
4.
5.
3.8. Литература
1. Калабеков Б. А. Микропроцессоры и их применение в системах передачи и
обработки .сигналов: Учеб. пособие для вузов. -М. : Радио и Связь, 1988. - 368
с.
2. Щелкунов Е. II. , Дианов А. П. Микропроцессорные средства и системы, М.: Радио и связь, 1989.- 288 с.
3. Хвощ С. Т., Варлинский Н.Н., Попов Е. А. Микропроцессоры и микроЭВМ
в системах автоматического управления, Справочник. –Л.:
Машиностроение, 1987.-640с
23
4. ЛАБОРАТОРНАЯ РАБОТА № 3
ПРОГРАММНОЕ УПРАВЛЕНИЕ ИСПОЛНИТЕЛЬНЫМ МЕХАНИЗМОМ
Цель работы: изучение системы программного управления дискретными
исполнительными механизмами с использованием ЭВМ.
Оборудование – Компьютер Intel_*86, лабораторный стенд, дискретные объекты
управления.
4.1. Организация ввода-вывода в ЭВМ
Внешние устройства (ВУ) подключаются к процессору через шину вводавывода, состоящую из шин адреса, данных и управления. Объекты управления
выполняют функции в соответствии с сигналами управления, передаваемыми в
них из ЭВМ, и формируют информацию о своем состоянии, передаваемую в
ЭВМ. Для сопряжения внешнего устройства с конкретной ЭВМ служат так
называемые интерфейсные устройства (или просто интерфейсы). Каждый канал
обмена информацией внешнего устройства с процессором представлен в
интерфейсе своим портом ввода/вывода (регистром), имеющим свой адрес
(номер) и доступным как внешнему устройству, так и процессору. Порт вводавывода (или регистр ввода-вывода) представляет собой группу разрядов (регистр),
содержимое которых программно доступно процессору во время операций вводавывода. С другой стороны к разрядам регистра подключены линии связи с
управляемым объектом.
Передача (вывод) числа или кода из ЭВМ во внешнее устройство
фактически реализуется их передачей из регистра процессора или ячейки памяти
ЭВМ в регистр данных (порт вывода) интерфейса внешнего устройства.
Аналогично, прием (ввод) информации из внешнего устройства заключается в
чтении процессором содержимого (числа или кода) регистра данных (порта
ввода). Передача или прием информации через порты ввода-вывода во многих
ЭВМ осуществляется с помощью специальных команд ввода-вывода. В ЭВМ
используют три основных режимов обмена информацией с внешними
устройствами: программный обмен, обмен по прерыванию и обмен с прямым
доступом к памяти. Программный обмен осуществляется по инициативе и под
управлением выполняемой программы пользователя. В связи с низкой
скоростью обработки данных внешними устройствами (ВУ) передача данных в
регистр или чтение их из регистра данных ВУ должны осуществляться в моменты
времени, когда оно закончило обработку или формирование очередного слова
данных и готово к обмену. Для сообщения процессору о состоянии готовности к
обмену данными обычно служит регистр состояния устройства. Один из
разрядов регистра состояния устройства устанавливается самим внешним
устройством в единицу или сбрасывается в ноль ВУ в зависимости от состояния
готовности или неготовности. Этот разряд часто называют флагом готовности
внешнего устройства. Перед выполнением обмена процессор должен убедиться в
готовности ВУ к обмену путем опроса (чтения) регистра состояния ВУ.
24
4.2. Подключение объекта управления к портам ввода/вывода
В лабораторном макете используются 8 разрядные порты ввода/вывода.
Поэтому в порт могут быть записаны или считаны из него данные типов Byte или
Shortint, занимающие один байт. Линии управления исполнительным механизмом
(ИМ) подключены к нулевому и первому разряду регистра выходного порта LPT1, имеющего адрес равный базовому адресу порта, который равен 378H. Каждая
из линий управления ИМ объединены по схеме «И» со своим нулевым и первым
разрядом выходного регистра с адресом 37АH. Поэтому для работы ИМ в порт с
адресом базовый+2 необходимо вывести число 3. Выходные сигналы управления
с логической схемы через согласующий усилитель далее подаются на
реверсивный пускатель. Аналоговый сигнал (с датчика положения ИМ) подается
на релейный элемент для преобразования во входной дискретный сигнал.
Дискретный сигнал с объекта управления (выходной сигнал релейного элемента)
в макете подается на третий разряд входного регистра порта имеющего адрес
равный базовый+1 (379H). Значение остальных битов входного порта не
определено.
4.3. Задание
Разработать
программе.
систему
управления
перемещением
ИМ по
заданной
4.4. Программирование системы управления
Управляющую программу рекомендуется написать на языке ПАСКАЛЬ с
использованием
стандартных
библиотечных функций,
процедур
и
предопределенных переменных. Использование модуля CRT позволит обратиться
к процедуре Delay, выполняющую ожидание (задержку) и к функциям ReadKey и
KeyPressed, связанным с нажатием клавиши. Для обращения к порту вывода или
ввода необходимо использовать предопределенную переменную port[$адрес], где
знак $ указывает, что адрес задан в шестнадцатеричной системе счисления. Для
вывода данных необходимо переменной типа port присвоить выводимое
значение, а для чтения порта необходимо некоторой переменной присвоить
значение переменной port.
4.5. Порядок выполнения работы
13. Получить у преподавателя объект управления и алгоритм его работы для
построения системы управления на базе ЭВМ.
14. Уточнить у преподавателя используемые адреса и разряды регистров
ввода/вывода.
15. Разработать блок-схему алгоритма управления.
16. На основе блок-схемы разработать управляющую программу.
25
17. Произвести необходимые переключения на макете.
18. Ввести программу в ЭВМ.
19. Проверить правильность функционирования программы.
20. Подать питающее напряжение на объект управления.
21. Убедиться в правильности функционирования системы управления. При
обнаружении опасных отклонений в поведении объекта управления
немедленно снять питающее напряжение.
22. Предъявить функционирующую систему преподавателю.
23. Снять напряжение с объекта управления и выключить ЭВМ.
24. Отчет должен содержать название и цель работы, вербальное описание
алгоритма управления, блок-схему программы управления, программу в
машинных кодах с комментариями
4.6. Контрольные вопросы
9. Укажите назначение регистров процессора.
10. Перечислите способы обмена данными с внешними устройствами.
11. Каким образом используются регистры состояния внешних устройств?
12. Каким образом реализуется в ЭВМ управление внешними устройствами?
13. Выполните перевод десятичного числа в шестнадцатеричную систему
счисления.
14. Назовите назначение регистров внешнего устройства.
15. Как организуется вывод данных на внешнее устройство?
16. Поясните выполнение разработанной программы.
4.7. Литература
4. Немнюгин С.А. Turbo Pascal: -СПб.: Питер, 2000. - 496 с.
5. Новиков Ю.В., Калашников О.А., Гуляев С.Э. Разработка устройств
сопряжения для персонального компьютератипа IBM PC, -М.: ЭКОМ, 1997.224 с.
6. Пей Ан. Сопряжение ПК с внешними устройствами: Пер. с англ. –М.: ДМК
Пресс, 2003.-320с
7.
26
5. ЛАБОРАТОРНАЯ РАБОТА № 4
ВЫВОД ДАННЫХ НА ВНЕШНИЙ ДИНАМИЧЕСКИЙ ИНДИКАТОР
Цель работы: изучение принципа действия динамических индикаторов, схемой
их подключения и освоения метода программного управления внешними
устройствами .
Оборудование – Компьютер Intel_*86, индикатор с блоком питания.
5.1. Организация динамической индикации
Важной частью автоматической системы управления являются средства
отображения информации, обеспечивающие ее взаимодействие с оператором.
В газоразрядных цифровых
индикаторах используется свечение
прикатодной области газового тлеющего
UП
разряда. Индикатор изготовляется на одно
знакоместо в виде радиолампы и имеет 1
анод и много катодов (10), выполненных в
виде цифр или знаков (рис.4.1.). При
К РАЗРЯДУ
протекании тока через один из катодов,
ВЫХОДНОГО
высвечивается соответствующая цифра или
РЕГИСТРА
знак. Питание индикатора осуществляется
. . . . . . . .
напряжением порядка 100в при токе в
несколько ма. При подключении индикатора
Рис.4.1. Газоразрядный
в
анодную
цепь
устанавливается
индикатор
ограничивающее сопротивление, а катоды
через высоковольтный транзистор замыкаются на землю как показано на рисунке
4.1. База транзистора через согласующее и/или разделительное устройство
подключается к соответствующему разряду выходного регистра. При выво де
многоразрядного числа используется динамическая и статическая индикация. При
статической индикации каждое знакоместо высвечивается постоянно. При
динамической индикации свечение знакомест включается поочередно.
Такое использование выходного регистра не оптимально, т.к. для
представления
10 цифр достаточно 4
U
П
8
разрядов.
Поэтому специально для
4
газоразрядных индикаторов выпускается
155 0
2
ИД 1
микросхема
двоично-десятичного
2
1
.
1
3
.
дешифратора
К155ИД1,
имеющая
4
.
.
5
высоковольтные ключи на выходе. Схема
. . . . .
6
подключения катодных цепей индикатора
7
8
показана на рисунке 4.2. Ограничивающее
9
сопротивление определяется допустимым
Рис 4.2. Подключение индикатора током через микросхему и индикатор.
Для
организации
динамической
индикации одноименные катоды всех знакомест объединяются и подключаются к
27
дешифратору знака, а выводы анодов через высоковольтный транзистор
подключаются к дешифратору знакомест. При этом может быть использована
приведенная
ниже
UП
+5В
UП
схема
подключения
8
анодных
цепей
4
155 0
2
(рис.4.3.). Для развязки
.
ИД 1
. . . . .
2
1
.
анодных цепей в них
1
3
.
иногда устанавливают
4
. +5В
5
диоды.
6
7
Примером цифрового
8
индикатора
может
9
служить ИН12А.
Рис.4.3. Организация динамической индикации
5.2. Подключение индикатора
В лабораторном макете используются 8 разрядные порты ввода/вывода.
Поэтому в порт могут быть записаны или считаны из него данные типов Byte или
Shortint, занимающие один байт. Вход данных дешифратора цифры подключен к
нулевому – четвертому разрядам регистра выходного порта LPT-1, имеющего
адрес равный базовому адресу порта, который равен 378H. К седьмому разряду
этого регистра подключено знакоместо отображения знаков минус и плюс.
Вход данных дешифратора знакоместа подключен к нулевому – четвертому
разрядам регистра выходного порта LPT-1, имеющего адрес равный базовому
адресу порта+2, т.е. равный 37АH.
Для отображения одного знакоместа необходимо выполнить следующие
операции:
вывести в соответствующие регистры двоичное число десятичной
цифры и двоичный номер знакоместа,
задержать выполнение программы на несколько мсек.
Затем можно выводить цифру на другое знакоместо.
4.3. Задание
На базе ЭВМ реализовать секундомер с выводом на индикатор.
Организовать
вывод
на
индикатор
вводимой
с
клавиатуры
последовательности цифр
5.4. Порядок выполнения работы
25. Уточнить задание у преподавателя выводимые на индикатор данные.
26. Уточнить у преподавателя используемые адреса и разряды регистров
ввода/вывода.
27. Разработать блок-схему алгоритма обеспечивающего вывод заданной
переменной на индикатор.
28
28. На основе блок-схемы разработать управляющую программу на языке Pascal.
29. Ввести программу в ЭВМ.
30. Включить индикатор.
31. Убедиться в правильности функционирования программы. При
необходимости произвести отладку.
32. Предъявить функционирующую систему преподавателю.
33. Снять напряжение с объекта управления и выключить ЭВМ.
34. Отчет должен содержать название и цель работы, вербальное описание
алгоритма, блок-схему программы, программу с комментариями
5.5. Контрольные вопросы
17. Укажите назначение регистров ввода/вывода.
18. Каким образом организуется динамическая индикация?
19. Поясните принцип работы газоразрядного индикатора.
20. Объясните структуру блок-схемы программы.
5.6. Литература
8. Новиков Ю.В., Калашников О.А., Гуляев С.Э. Разработка устройств
сопряжения для персонального компьютератипа IBM PC, -М.: ЭКОМ, 1997.224 с.
9. Пей Ан. Сопряжение ПК с внешними устройствами: Пер. с англ. –М.: ДМК
Пресс, 2003.-320с.
10. В.И. Иванов и др. Полупроводниковые оптоэлектронные приборы:
Справочник-М. : Энергоатомиздат, 1988.-448с.
11. Вуколов Н.И., Михайлов А.Н. Знакосинтезирующие индикаторы: Справочник/
Под ред. Балашова. -М.: Радио и связь, 1987.-576с.
29
6. ЛАБОРАТОРНАЯ РАБОТА № 5
РЕАЛИЗАЦИЯ РЕЛЕЙНОГО ЗАКОНА УПРАВЛЕНИЯ НА ЭВМ
Цель работы: приобретение практических навыков синтеза управляющих
устройств на базе ЭВМ, реализующих релейный закон управления.
Оборудование – Компьютер Intel_*86, лабораторный стенд.
6.1. Подключение объектов управления
Рассмотрим реализацию релейного закона, при использовании
управляющего устройства на базе ЭВМ. Основные соотношения,
характеризующие релейный закон управления, теоретически рассмотрены в
лабораторной работе № 1 по техническим средствам автоматизации.
Лабораторная работа выполняется на базе стенда, описанного в разделе 1.
Информация о состоянии выбранного объекта управления снимается с
соответствующих выходов стенда и подается на вход релейного элемента, выход
которого подключен к одному из разрядов входного регистра интерфейса ЭВМ.
ЭВМ использует считанную с входного регистра информацию для формирования
управляющих сигналов перемещения ИМ, поступающих на вход пускателя.
Линии управления пускателем подключены к нулевому и первому разрядам
выходного регистра с базовым адресом LPT порта. Выход релейного элемента
подключен к третьему разряду входного регистра с адресом базовый+1.
6.2. Задание
На базе ЭВМ реализовать систему стабилизации выходного параметра
объекта с внешним релейным элементом.
6.3. Порядок выполнения работы
1. Получить у преподавателя объект управления и контролируемый параметр.
2. Подключить входы исполнительного механизма к разрядам выходного
регистра.
3. Подключить вход релейного элемента к выходу датчика контролируемого
параметра, а выход релейного элемента к выбранному разряду входного
регистра.
4. Написать программу стабилизации на заданном уровне контролируемого
параметра на языке Pascal.
5. Оттранслировать, запустить программу и снять зависимость выходного сигнала
от времени. Построить график.
6. Повторить п. 1-5 при уменьшенной средней скорости перемещения ИМ.
7. Повторить п. 1-6 для другого регулируемого параметра заданного
преподавателем.
8. Объяснить полученные графики.
30
9. Отчет должен содержать название и цель работы, блок-схему программы
управления, программу в машинных кодах с комментариями
6.4. Контрольные вопросы
21. Нарисуйте функциональную схему системы стабилизации.
22. Каким образом в системе происходит цифро-аналоговое и аналого-цифровое
преобразование?
23. Укажите назначение регистров ввода/вывода.
24. Каким образом в системе изменяется задание?
25. Каким образом в системе изменяется ширина зоны неоднозначности?
26. Как влияет скорость перемещения ИМ на работу системы стабилизации?
27. Как изменить среднюю скорость перемещения ИМ?
28. Объясните структуру блок-схемы программы.
29. Поясните использование операторов программы.
4.6. Литература
1. А.С. Клюев. Двухпозиционные автоматические регуляторы и их настройка.-М.:
Энергия, 1967.
2. Новиков Ю.В., Калашников О.А., Гуляев С.Э. Разработка устройств
сопряжения для персонального компьютератипа IBM PC, -М.: ЭКОМ, 1997.224 с.
3. Пей Ан. Сопряжение ПК с внешними устройствами: Пер. с англ. –М.: ДМК
Пресс, 2003.-320с.
4. Сопряжение датчиков и устройств ввода данных с компьютерами IBM PC/ Под
ред. У. Томпкинса иДж. Уэбстера: Пер. с англ. –М.:Мир, 1992.- 592с.
31
7. ЛАБОРАТОРНАЯ РАБОТА № 6
АРХИТЕКТУРА И СИСТЕМА КОМАНД ПРОЦЕССОРА INTEL 286
Цель работы: изучение архитектуры и системы команд процессора
Оборудование – компьютер Intel_*86, лабораторный стенд.
7.1. Архитектура процессора INTEL 286
Процессор имеет 24-разрядную шину адреса, т.е. позволяет адресовать до
4Мбайт памяти. Процессоры поддерживают аппаратные и программные
прерывания и прямой доступ к памяти. Предусмотрено использование
математического
сопроцессора
287,
существенно
повышающего
производительность вычислений с плавающей
запятой.
РЕГИСТРЫ ДАННЫХ
Процессор имеет 14+5 видимых 16-разрядных
AX AH
AL
регистров доступных пользователю. Операнды
BX
BH
BL
могут иметь 8 или 16 бит и представлять
CX CH
CL
двоичные и двоично-десятичные числа.
DX DH
DL
Структура некоторых регистров процессора
РЕГИСТРЫ УКАЗАТЕЛЕЙ И ИНДЕКСОВ приведена на рисунке. 16-битные регистры
общего назначения (РОН) AX, BX, CX, DX
SP
STACK POINTER
состоят из двух 8-битных половинок, к
BP
BASE POINTER
которым можно обращаться по именам AH,
SI
SOURCE INDEX
BH, CH, DH (старшие байты) AL, BL, CL, DL
DI DESTINATION INDEX
(младшие байты). Это позволяет программам,
разработанным для 8-раздядных ЭВМ (8080)
РЕГИСТРЫ СЕГМЕНТОВ
выполняться после повторной трансляции.
CS
CODE
Регистры в командах могут адресоваться явно.
DS
DATA
В ряде команд подразумевается неявное
SS
STACK
использование регистров. Например: AX
ES
EXTRA
(аккумулятор)- используется в командах
умножения, деления, ввода и вывода слова;
УКАЗАТЕЛЬ ИНСТРУКЦИЙ И
CX- как счетчик циклов и указатель длины
РЕГИСТР ФЛАГОВ
строковых операций, DX - при умножении и
IP
CODE
делении слов, при операциях ввода- вывода он
FLAGS
FLAGS
содержит номер порта и т.д. (смотри описание
команд).
Рис.7.1. Регистры процессора
Регистры-указатели SP (указатель стека),
BP (указатель базы) и индексные регистры SI
(индекс источника), DI (индекс приемника) допускают только 16-битное
обращение. 16-битные регистры - указатели сегментов CS (сегмент кодов
команд), DS (сегмент данных),
ES (дополнительный сегмент данных),
SS(сегмент стека) могут изменяться только командами их загрузки. SI, DI
32
предназначены для удобства доступа к данным в текущем сегменте данных; SP,
BP - в текущем сегменте стека.
Сегментные регистры используются для задания текущих сегментов. Они
16-разрядные. CS (Code Segment)- сегмент кодов команды, DS (DATA Segment )сегмент данных, SS(Stack Segment )_ сегмент стека, ES(Extra Segment)дополнительный сегмент данных. Эти регистры могут модифицироваться только
непосредственными командами их загрузки. Использование сегментных
регистров определяется типом обращения к памяти. Для некоторых типов
обращений возможно применение альтернативных сегментных регистров,
которое вводится префиксами команд CS:,SS:,DS:,ES:. Т.е., сегмент, из которого
считывается операнд в общем случае можно явно указать, если перед командой
поставить специальный однобайтный префикс. Он определяет, из какого
текущего сегмента считывается операнд. При отсутствии префикса операнд
берется из текущего сегмента данных.
Указатель команд IP содержит смещение следующей выполняемой команды
в текущем сегменте кода CS. Он играет роль счетчика команд. IP не доступен
программисту, но он явно управляется командами переходов, прерываниями и
исключениями.
Регистр флагов содержит расширенный набор признаков, по которым
возможны переходы, и биты управляющие режимом работы процессора:
разрешение прерывания, трассировка (пошаговое прохождение), направление
смещения индекса при работе со строками.
Процессор поддерживает следующие типы данных: байты, слова, целый без
знака, целый (8 и16-разрядный) в дополнительном коде, двоично-десятичный,
ближний указатель (16-разрядный логический адрес внутри сегмента), дальний
указатель (32-разрядный логический адрес, состоящий из адреса сегмента и
смещения), строка (последовательность байтов или слов длиной до 64Кбайт).
Набор инструкций содержит основные группы операций: инструкции
пересылки данных, арифметические и логические инструкции, инструкции
работы со строками, инструкции передачи управления, инструкции управления
процессором. Каждая команда один или два байта кода инструкции, за которым
может следовать 1,2 или 4байта операнда или описателя его адреса. Перед
инструкцией возможно применение однобайтных префиксов для указания на
использование заданных сегментных регистров вместо обычных, для указания на
необходимость повтора инструкции указанное в регистре CX число раз.
Процессор имеет 92 типа команд.
Предусмотрено 24 способов адресации операндов. По существу режимы
(методы) адресации можно разбить на 7 групп.
Регистровая адресация - операнд находится в регистре.
Непосредственная адресация - 8 или16-битовый операнд находится в команде.
Прямая адресация - исполнительный адрес является составной частью команды.
Косвенная регистровая адресация исполнительный адрес операнда
содержится в базовом регистре BX, регистре указателя базы BP или индексном
регистре ( SI или DI).
33
Адресация по базе - исполнительный адрес получается сложением значения
сдвига с содержимом регистров BX или BP.
Прямая адресация с индексированием - исполнительный адрес вычисляется как
сумма значений сдвига и индексного регистра (DI или ) SI.
Адресация по базе с индексированием - исполнительный адрес вычисляется как
сумма значений базового регистра, индексного регистра и ,возможно, сдвига.
Процессор предусматривает разделение пространства памяти и вводавывода. Логическая память разбивается на сегменты размером по 64Кбайта.
Физический адрес в реальном режиме формируется из двух 16-битных частей:
адреса находящегося в сегменте (Seg) и исполнительного адреса (EA)
суммируемых со смещением на 4 бита ( A=16*Seg+EA). Исполнительный адрес
может быть константой, содержимым регистра или ячейки памяти или суммой
нескольких величин. С сегментацией связаны понятия ближнего и дальнего
адреса. При ближнем (внутрисегментном) обращении указывается только
смещение, а адрес сегмента определяется текущим содержимым
соответствующего регистра сегмента. При дальнем (межсегментном) обращении
указывается полный адрес, содержащий16-битное значение сегмента
(загружаемое в сегментный регистр) и 16- битное смещение. При адресации
внешних устройств используются только 16 разрядов адресной шины ,
следовательно, пространство ввода вывода ограничено 64Кбайт.Данные при
чтении ВУ помещаются в регистр AL или AX и выводятся из этих же регистров.
Адрес устройства задается либо в команде (только младший байт, старший
нулевой) либо берется их регистра DX(16- бит).
7.2. Особенности программирования при выполнении работы
В лабораторном макете линии управления исполнительным механизмом
подключены к нулевому и первому разряду регистра выходного порта LPT-1,
имеющего адрес равный базовому адресу порта. Релейный датчик положения
ИМ подключен к третьему разряду входного регистра порта имеющего адрес
равный базовый+1. Значение остальных битов порта не определено . Для работы
ИМ в порт с адресом базовый+2 необходимо вывести 3. Операционная система
помещает базовый адрес порта в ячейку $408 (408Н) оперативной памяти. Для
извлечения базового адреса необходимо считать содержимое этой ячейки,
предварительно записав в дополнительный сегмент данных ES число 0, затем
прочитать адрес, используя метод адресации с указанием префикса ES.
При написании программ на языке ПАСКАЛЬ возможно использование
программных вставок, написанных языке АССЕМБЛЕР. Такая вставка начинается
командой (директивой) транслятора asm , за которой следует тело программы.
Программа вставки завершается командой end. Внутри вставок Ассемблер
использует переменные Паскаля. Управляющая программа составляется на языке
Pascal с максимально возможным количеством вставок на языке Assembler.
34
7.3. Задание
1.
Написать на языке ПАСКАЛЬ с использованием вставок на языке
АССЕМБЛЕР программу управления перемещением ИМ с клавиатуры ЭВМ.
2.
Составить программу реализации системы релейного регулирования
выходного параметра заданного объекта.
7.4. Порядок выполнения работы
Составить блок-схемы алгоритмов управления.
Написать на Паскале разделы программы с описанием модулей, меток,
констант и переменных типа байт и целое. Использовать модули Паскаля
Crt, Dos.
3. В основное тело программы поместить ассемблерную вставку,
определяющую адреса регистров ввода и вывода. Вывести найденные
адреса на дисплей для контроля.
4. Определить базовый адрес порта.
5. Написать на Паскале далее в основном теле программы блок опроса
клавиатуры и вывода в выходной порт команд управления, оформив
команды управления в виде процедуры Паскаля.
6. Проверить работу программы.
7. Написать процедуру вывода команды управления на языке Паскаль с
Ассемблерной вставкой.
8. Проверить работу программы.
9. Написать процедуру чтения входного порта, используя ассемблерную
вставку.
10. Составить программу, реализующую релейный закон управления
положением ИМ при использовании дискретного датчика.
11. Проверить работу программы.
12. Отчет должен содержать название и цель работы, вербальное описание
алгоритма,
блок-схему программы
управления,
программу с
комментариями.
1.
2.
7.5. Контрольные вопросы
1.
2.
3.
4.
5.
6.
Перечислите регистры процессора и их назначение.
Какие методы адресации используется в работе?
Как определить адрес порта ввода/вывода LPT1?
Укажите форматы команд ввода/вывода
Для чего используется префикс?
Как выполняются условные и безусловные переходы?
35
7.6. Приложение
7.6.1. Формат кодирования
Основной формат кодирования команд Ассемблера имеет вид:
[Метка] команда [операнд(ы)]
Метка (если она имеется), команда и операнд (если он имеется), разделяются
по крайней мере одним пробелом или знаком табуляции. Первым символом метки
должна быть буква. Метка заканчивается двоеточием. Комментарии отделяются
от команды точкой с запятой.
7.6.2. Особенности представления данных.
Ассемблер воспринимает данные как десятичные числа. Десятичные числа
можно обозначать последней буквой D . Например, 23D. В шестнадцатеричном
формате число должно начинаться символом “$” или обозначаться в конце буквой
H. Например, $2E, 2ЕН, 0FEH. Двоичный формат обозначается в конце цифры
буквой В.
Ассемблер сам определяет тип данных. Для прямого указания Ассемблеру
на тип данных ( и соответственно, размещение данных в памяти) используется
директива ptr , перед операндом. Формат директивы: Тип данных ptr. Например,
Word ptr – представление данных в одно слово (2 байта).
7.6.3. Примеры команд языка Ассемблер
Примеры команд
Таблица 3.1
Команда
Операция
mov ax,dx
Пересылка данных из регистра dx в регистр ax
mov ax,12Н
Загрузка регистра ax шестнадцатеричным числом 12
mov ax,(dat)
Пересылка в ax содержимого ячейка, адрес которой
находится в переменной dat.
mov ax, word ptr x Пересылка в ax операнда x с прямым указанием типа
Word. Word – тип данных,
xor ax,dx
Исключающее ИЛИ
out dx,al
Вывод содержимого регистра al во внешний порт, адрес
которого содержится в dx
in al,dx
Ввод содержимого порта, адрес которого содержится в
dx, в регистр al
shl al,4
Сдвиг содержимого регистра al влево на 4 бита.
Освобожденные биты заполняются 0.
shr al,4
Сдвиг содержимого регистра al вправо на 4 бита.
Освобожденные биты заполняются 0.
mov es,ax
Пересылка содержимого регистра ax в дополнительный
36
Команда
mov ax,es:[a]
cmp bx,cx
and bx,cx
dec cx
Inc cx
Sub cx,dx
Add cx,dx
jmp loop
Je/Jz loop
Jne/Jnz loop
Jg loop
Jl loop
Jnle loop
Jnge loop
сегментный регистр данных es
Операция
Пересылка в ax содержимого ячейки памяти с адресом
4*es+a
Сравнение, второй операнд вычитается из первого и
устанавливаются признаки. Операнды не изменяются.
Логическое умножение «И»
Вычитает 1 из байта или слова в регистре или памяти
Добавляеь 1 к байту или слову в регистре или памяти
Вычитает байт или слово в регистре, памяти из
регистра, памяти.
Прибавляет один байт или слово в регистре . памяти
или непосредственно к содержимому регистра или
ячейки памяти
Безусловный переход. Для указания адреса перехода
обычно используется метка. Существует 5 типов
команды (форматов) для передачи управления внутри
сегмента и между сегментами.
Используется для проверки знаковых и без знаковых
данных. Если флаг нуля установлен, то к указателю
команд добавляется смещение (происходит переход по
метке внутри сегмента).
Используется для проверки знаковых и без знаковых
данных. Если флаг нуля не установлен (не равно 0), то
к указателю команд добавляется смещение (происходит
переход по метке внутри сегмента).
Переход по «больше» для знаковых данных
Переход по «Меньше» для знаковых данных
Переход по «не меньше или равно» для знаковых
данных
Переход по «не больше или равно» для знаковых
данных
7.7. Литература
1. Нортон П. Программно-аппаратная организация IBM PC: Пер. с англ. –М.:
Радио и связь, 1991.- 368с.
2. Гук М. Процессоры Pentium II, Pentium Pro и просто Pentium – СПб: ЗАО
“Издательство ”Питер”, 1999.-288 с.
3. Абель П. Язык Ассемблера ддля IBM PC и программирования / Пер. с англ.М.: Высш. Шк., 1992.- 447 с.
4. Джордейн Р. Справочник программиста персональных компьютеров типа IBM
XT и AT: Пер с англ. – М.: Финансы и статистика, 1992 – 544 с.
37
8. ЛАБОРАТОРНАЯ РАБОТА № 7
РАБОТА INTEL 286 В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ
Цель работы: применение прерываний от таймера для дискретного управления в
реальном масштабе времени.
Оборудование – Компьютер Intel_*86, лабораторный стенд, другие дискретные
объекты управления по предложению преподавателя.
8.1. Прерывания в ЭВМ
Отсчет реального времени в ЭВМ необходим для цифровой обработки
входящие сигналов в реальном масштабе времени при построении систем
управления. Считается, что обработка идет в реальном масштабе времени, если
задержка в получении выходного сигнала существенно меньше длительности
переходных процессов в системе.
Для работы ЭВМ в режиме отсчета реального времени в можно
использовать прерывания от таймеров внешних или внутренних. Входы внешних
запросов прерывания IRQN (N- номер запроса) поступают на контроллер
прерываний, который осуществляет арбитраж запросов в соответствии с их
приоритетом и указаниями пользователя. Максимальный приоритет имеет
прерывание IRQ0. Запросы на прерывания IRQ0 – IRQ7 соответствуют векторам
прерывания8H-0FH, а запросы прерывания IRQ8 – IRQ15 соответствуют векторам
70H – 77H. Прерывание 8H осуществляется от внутренних часов реального
времени ЭВМ. Некоторые прерывания переопределяются BIOS.
Векторы прерывания системы BIOS делятся на 5 групп:
1. Вектора прерывания микропроцессора (0H-7H).
2. Вектора прерывания контроллера прерывания (8H-0FH, 70H-77H).
3. Входные точки процедур системы BIOS (10H-1AH, 40H).
4. Вызовы процедур пользователя (1BH-1CH).
5. Указатели системных таблиц (1DH, 1EH, 1FH, 41H).
Для реализации работы в реальном масштабе времени при управлении
медленными процессами можно использовать прерывание от таймера
(внутренних часов реального времени ЭВМ). Это прерывание с вектором 8H
выполняется с частотой 18.2 гц. При обработке этого прерывания выполняется
обращение к программе обработки прерывания TIMER_INT. Эта программа
обработки увеличивает содержимое 32-разрядного счетчика регистрирующего
время дня. Счетчик располагается в двух смежных ячейках памяти TIMER_LOW
(0040:006C) и TIMER_HIGH (0040:006E). Затем программа обработки прерывания
TIMER_INT вызывает прерывание с вектором 1CH. Таким образом, с частотой
18.2 гц вызывается прерывание 1CH. Система BIOS имеет в программе обработки
прерывания с вектором 1CH одну команду IRET (возврат из прерывания). Это
прерывание ничего не выполняет и предназначено для пользователей, которые
38
могут занести в этот вектор указатель на свою программу обработки. Поэтому
вектор 1CH можно использовать в пользовательских программах для отсчета
реального времени. Для этого в этот вектор необходимо поместить адрес
программы обработки прерывания пользователя, тем самым подменить
программу операционной системы обработки этого прерывания программой
пользователя. Программа обработки прерывания должна заканчиваться командой
возврата из прерывания. Если требуется прерывание с другой частотой при
использовании прерывания 1CH, то необходимо перепрограммировать таймер
ЭВМ. Однако, такая операция приведет к искажению показаний часов реального
времени и может привести к нарушению в работе дисководов, т.к. в них
предусмотрено формирование временных задержек при выполнении операций.
При замене программы обработки прерывания пользователь должен обеспечить
при завершении работы корректный возврат системного вектора прерывания.
Для использования новой программы обработки прерывания 1CH
выполняют следующую последовательность действий:
1.
Присвоить переменной типа указатель (pointer) значение адреса новой
программы обработки прерывания
2.
Запретить маскируемые прерывания,
3.
Запомнить старый вектор прерывания в переменной типа указатель,
4.
Занести с вектор прерывания значение адреса новой программы
обработки.
5.
Разрешить прерывание,
6.
При завершении работы основной программы запретить прерывание
7.
Восстановить старый вектор, записав в него старое запомненное значение.
В языках программирования высокого уровня (например, языке Паскаль)
существуют операторы и команды, облегчающие работу с прерываниями. При их
использовании часть необходимых операций выполняется автоматически.
В работе предлагается использовать язык программирования Паскаль.
В работе используется стенд описанный в разделе 1.
8.2. Задание
Реализовать программное управление заданным дискретным объектом в
реальном масштабе времени.
8.3. Порядок выполнения работы
1. Получить у преподавателя временную .
2. Написать на Паскале разделы программы с описанием модулей, меток,
констант и переменных. Указать на использование библиотечных модулей
Паскаля Crt, Dos.
3. Написать подпрограмму обработки прерывания, заголовок которой в
«Паскале» имеет вид:
Procedure Int(Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP:word); INTERRUPT;
39
Int- имя программы обработки прерывания. Список параметров обязательно
должен иметь указанный вид. Некоторые параметры в заголовке программы
могут быть опущены. Но они могут опускаться только подряд, начиная с первого
элемента списка. Опускать промежуточные элементы списка запрещено.
Параметры передаются в подпрограмму через новые значения регистров. При
вызове подпрограммы обработки прерывания старое содержимое регистров
помещается в стек, из которого восстанавливается при возврате. В регистры
загружаются новые значения. Ошибки, связанные с передачей параметров в
прерываниях, часто не отмечаются при трансляции.
Можно использовать процедуру без указания списка параметров, назначая
переменным процедуры абсолютные адреса, совпадающие с адресами
переменных в основной программе. В этом случае переменная подпрограммы и
переменная основной программы, которые должны быть одного типа, будут
располагаться в одном месте оперативной памяти. Они будут тождественны. Для
этого в разделе описания переменных подпрограммы используют описания
переменных:
Var A: T absolute B; , где: A и B – переменные соответственно подпрограммы и
основной программы, T – тип переменной.
Тело процедуры обработки прерывания должно содержать все операции, которые
необходимо выполнить в данном такте. В завершении программы обработки
должна быть команда разрешения контроллеру прерывания вновь реагировать на
очередное прерывание: port[$20]:=$20;. Оператор возврата из прерывания в
неявной форме присутствует в описании процедуры. Его не нужно вводить в
явном виде.
3. Организовать в теле подпрограммы программный счетчик прерываний,
значения которого могут быть переданы в основную программу.
4. В теле основной программы определить адрес своей программы обработки
прерывания. Для этого присвоить некоторой переменной An типа pointer
(указатель) значение функции addr, возвращающей адрес переменной.
Например, An:=addr(Int);
Переменная An будет иметь значение дальнего адреса программы обработки
прерывания.
5. Запомнить старый (системный) адрес обработки прерывания. Для этого
используется процедура GetIntVec($1C, A_old);. Первый параметр процедуры –
шестнадцатиричный номер вектора прерывания, адрес программы обработки
которого мы сохраняем. Знак $ указывает на шестнадцатеричную систему
счисления. В примере сохраняется адрес программы обработки прерывания с
вектором $1C. Второй параметр – имя переменной типа Pointer, в которой
будет храниться адрес старой программы обработки
6. Установить новый адрес программы обработки прерывания. Для этого
используют процедуру SetIntVec($1C,An);. Первый параметр процедуры номер вектора прерывания, адрес программы обработки которого мы
устанавливаем. Второй параметр – имя переменной типа Pointer, в которой
содержится адрес новой программы обработки. При выполнении смены
программ обработки процедура автоматически запрещает прерывания.
40
7. Используя значения счетчика прерываний составить программу заданного
перемещения ИМ, предусмотрев выход из основной программы пользователя
по нажатию клавиши.
8. Организовать при выходе из программы пользователя восстановение старого
вектора прерывания, используя процедуру SetIntVec($1C,A_old);.
9. Отчет должен содержать название и цель работы, вербальное описание
алгоритма, блок-схему программы управления, программу с комментариями.
8.4. Контрольные вопросы
1. Как обрабатываются прерывания?
2. Каким образом формируется в процессоре прерывание $1С?
3. Что такое вектор прерывания?
4. Перечислите последовательность операций при смене вектора прерывания.
5. Как происходит передача параметров в процедуре обработки прерывания?
6. Какие операторы Паскаля предназначены для работы с прерываниями?
7. Как работает контроллер прерываний?
8.5. . Литература
5. Абель П. Язык Ассемблера ддля IBM PC и программирования / Пер. с англ.М.: Высш. Шк., 1992.- 447 с.
6. Джордейн Р. Справочник программиста персональных компьютеров типа IBM
XT и AT: Пер с англ. – М.: Финансы и статистика, 1992 – 544 с.
7. Турбо Паскаль 7.0 – К.: Торгово-издательское бюро BHV, 1995-448с.
8. Марченко А.И., Марченко Л.А. Программирование а среде Турбо Паскаль 7.0 –
М.: Бином Универсал, К.: ЮНИОР, 1997.-496 с.
41
9. ЛАБОРАТОРНАЯ РАБОТА №8
ФОРМИРОВАНИЕ АНАЛОГОВОГО СИГНАЛА
Цель работы: получение аналогового сигнала в реальном масштабе
времени.
Оборудование: INTEL286 c платой L-154, осциллограф.
9.1. Плата ввода-вывода L-154
В лабораторной работе используется универсальная плата ввода-вывода L154 и ее программное обеспечение. Плата имеет в своем составе
программируемый таймер для отсчета интервалов времени, 8-разрядные
параллельные интерфейсы ввода и вывода, 16/32 аналоговых входа, аналоговый
выход и устройство запросов прерывания. Программно установлен запрос
прерывания по линии IRQ5. Необходимое программное обеспечение для
выполнения работы размещено в модуле lpas.
Плата содержит в своем составе одноканальный ЦАП, аналоговый выход
которого выведен на осциллограф. Обращение к регистру вывода ЦАП
происходит по адресу 300H. Для вывода в этот регистр можно использовать
библиотечную процедуру OUTDA объектной библиотеки размещенной в модуле
lpas. Для включения этой процедуры необходимо отметить этот модуль в числе
вызываемых модулей в директиве USES.
Содержимое регистра данных ЦАП может изменятъся от 0 до 4096. Числу 0
типа WORD (целому числу без знака) соответствует выходное напряжение (–
5.12в), числу 2048 соответствует 0в, а числу 4096 соответствует напряжение
(+5.12в).
В работе предлагается использовать язык программирования Паскаль.
9.2. Программное обеспечение платы
В программное обеспечение платы для выполнения работы включены
следующие процедуры, размещенные в модуле lpas:
procedure OUTDA(dat:integer);- вывод данных в ЦАП;
procedure INITINTR(rate1,rate2:word, name:pointer);- инициализация режима
прерывания
Процедура выполняет следующие действия:
1. Запоминает регистры DX, DI, SI в стеке.
2. Запрещает прерывания на плате.
3. Запоминает адрес старой программы обработки прерывания (старый
вектор) в переменной OldHand.
4. Устанавливает новую программу name обработки вектора
прерывания от внутреннего таймера.
5. Инициализирует контроллер прерывания.
6. Устанавливает период между прерываниями равный rate1*rate2 мксек.
42
7. Разрешает прерывания.
8. Восстанавливает регистры DX, DI, SI.
procedure STOP_INTR; выключение прерывания
Процедура выполняет следующие действия:
1. Запоминает регистры в стеке.
2. Запрещает прерывания.
3. Восстанавливает старый, ранее запомненный в переменной
OldHand, вектор.
4. Восстанавливает контроллер прерываний.
5. Восстанавливает регистры.
procedure RESET_IRQ; - Процедура сбрасывает контроллер прерываний. Она
должна быть последней в программе обработки прерывания.
procedure INTR_SETUP(n:word); - Данная процедура сообщает драйверу о номере
прерывания IRQ, установленному на плате с помощью перемычек.
Для IRQ5 значение n должно быть равно 2, для IRQ3 n равно 0.
9.3. Задание
Вывести заданный аналоговый периодический сигнал в реальном масштабе
времени на аналоговое внешнее устройство или осциллограф.
9.4. Порядок выполнения работы
1.
Получить у преподавателя временную функцию и период прерываний
(отсчетов).
2.
Рассчитать значения выводимого в ЦАП сигнала при каждом
прерывании.
3.
Составить блок-схему программы вывода на аналоговый выход
заданной функции, используя прерывания платы L-154.
4.
Написать на Паскале разделы программы с описанием модулей,
меток, констант и переменных. При написании программы необходимо указать на
использование библиотечных процедур Паскаля модулей Crt, Dos и процедур
модуля lpas, написанных для обслуживания платы L-154.
5.
Написать программу обработки прерывания.
Программа обработки прерывания должна содержать:
1.
Определение выводимого значения функции при очередном
прерывании.
2.
Вывод вычисленного значения в ЦАП.
3.
Сброс контроллера прерывания.
6. Написать основное тело программы.
Основная программа должна содержать:
1.
Указание драйверу на номер используемого IRQ.
2.
Определение адреса программы обработки прерывания.
3.
Запоминание старого вектора.
4.
Запрет прерывания.
43
5.
Установку нового вектора и периода прерываний от таймера.
6.
Разрешение прерываний.
7.
Зацикленный участок программы.
8.
Условия выхода из зацикленной программы.
9.
Запрет прерывания и восстановление старого вектора при
выходе из программы.
10.
Сброс контроллера прерываний.
10. Ввести программу и проверить соответствие полученных параметров
выходного сигнала параметрам, заданным преподавателем.
11. Отчет должен содержать название и цель работы, формируемую функцию,
описание алгоритма, обоснование выбранного периода между прерываниями,
блок-схему программы, программу с комментариями, осциллограмму.
9.5. Контрольные вопросы
Поясните назначение используемых процедур и функций модуля lpas.
Объясните порядок операций при смене процедуры обработки прерывания.
Где размещается вектор прерывания в памяти ЭВМ?
Поясните назначение и функционирование контроллера прерываний.
Каким образом формируется аналоговый сигнал в реальном масштабе
времени?
6. Как выбрать период прерываний?
1.
2.
3.
4.
5.
9.6. Литература
1.
Техническое описание платы L-154.
44
10. ЛАБОРАТОРНАЯ РАБОТА № 9
ВВОД АНАЛОГОВОГО СИГНАЛА
Цель работы: получение практических навыков организации ввода/вывода
аналоговых данных в реальном масштабе времени.
Оборудование – Компьютер Intel_*86 с платой L-154, генератор сигналов и
осциллограф.
10.1. Ввод аналоговыхданных
В лабораторной работе используется универсальная плата ввода-вывода L154 и ее программное обеспечение.
12 разрядный АЦП, входящий в состав платы, может быть включен в одном
из двух режимах: 16 дифференциальных канала или 32 канала с общей землей. В
плате перемычками установлен второй режим. АЦП на своем входе имеет
предварительный усилитель, обеспечивающий коэффициент усиления 1, 2, 5.
При усилении равном 1 диапазон входного напряжения равен –(5.12в)
(+5.12в). Напряжение на выходе АЦП представлено в дополнительном 12разрядном коде, так что напряжению 0в соответствует код 0, а напряжению 5.12в
– код 2048. Отрицательному напряжению
(–5.12в)
соответствует
дополнительный код числа –2048. Так что при выводе напряжения Nв в ЦАП
необходимо заслать код равный целому числу от величины
2048
*N
5.12
2048 . Ввод
этого сигнала через АЦП даст дополнительный код целого числа от величины
N
* 2048 Таким образом, можно считать, что напряжения представлены целыми
5.12
числами со знаком (integer) в диапазоне (-2048)- (2048), но при выводе в ЦАП
необходимо добавлять число 2048.
При вводе данных через АЦП номер канала ввода и усиление задаются в
виде кода присвоенного целочисленной переменной “Номер канала”. Для
нулевого канала и единичного усиления значение этой переменной равно $c0.
Необходимое программное обеспечение платы размещено в модуле lpas. В
программное обеспечение платы для выполнения работы включены следующие
функции и процедуры:
function ADCHAN(channel:word):integer ;- однократный ввод с установкой
номера канала.
Функция выполняет следующие действия:
Устанавливает номер канала channel. Нулевой канал, к которому
подключен аналоговый вход, при единичном усилении имеет
значение channel=C0h (в Паскале $c0).
Дожидается установления номера канала.
.Дает старт преобразования в АЦП.
Дожидается бита готовности.
Считывает данные с АЦП.
45
procedure SETCHANNEL(Nch:word); - установка номера канала.
Процедура устанавливает номер канала (см. выше).
Другие необходимые процедуры и функции описаны в работе №8.
10.2. Задание
Составить программу чтения аналогового входа с заданным периодом и
передачи считанных данных на аналоговый вывод. Исследовать влияние частоты
дискретизации на искажения сигнала.
10.3. Порядок выполнения работы
При написании программы необходимо использовать процедуры модуля.
5. Получить у преподавателя характеристики вводимого сигнала.
6. Определить частоту отсчетов.
7. Написать программу однократного ввода с нулевого канала данных и вывода
считанного кода на дисплей.
8. Запустить программу, подавая последовательно на вход напряжения +5 и –5в
и проверить считываемые коды.
9. Составить блок-схему программы ввода-вывода данных.
10. Написать на Паскале разделы программы с описанием модулей, меток,
констант и переменных. При написании программы необходимо указать на
использование библиотечных процедур Паскаля модулей Crt, Dos и процедур
модуля lpas, написанных для обслуживания платы L-154.
11. Написать программу обработки прерывания.
Программа обработки прерывания должна содержать:
7.1 Чтение входного порта.
7.2 Вычисление выводимого значения в ЦАП.
7.3 Вывод данных в ЦАП.
7.4 Сброс контроллера прерывания.
8.
Написать основное тело программы.
Основная программа должна содержать:
8.1 Указание драйверу на номер используемого IRQ.
8.2 Определение адреса программы обработки прерывания.
8.3 Запоминание старого вектора.
8.4 Запрет прерывания.
8.5 Установку нового вектора и периода прерываний от таймера.
8.6 Разрешение прерываний.
8.7 Зацикленный участок программы.
8.8 Условия выхода из зацикленной программы.
8.9 Запрет прерывания и восстановление старого вектора при выходе из
программы.
8.10 Сброс контроллера прерываний.
12. Подключить генератор и осциллограф к плате L-154.
46
13. Ввести и запустить программу.
14. Установить заданные значения параметров сигнала на генераторе.
15. Сравнить входной и выходной сигналы ЭВМ. Объяснить результаты
сравнения.
16. Провести п.12 при различных частотах дискретизации.
17. Отчет должен содержать название и цель работы, формируемую функцию,
описание алгоритма, обоснование выбранного периода между прерываниями,
блок-схему программы, программу с комментариями, осциллограмму.
10.4. Контрольные вопросы
7. Поясните назначение используемых процедур и функций модуля lpas.
8. Объясните порядок операций при смене процедуры обработки прерывания.
9. Где размещается вектор прерывания в памяти ЭВМ?
10. Каким образом вычисляется выводимое в ЦАП значение?
11. Как выбрать период прерываний?
10.5 Литература
2. Техническое описание платы L-154.
47
11. ЛАБОРАТОРНАЯ РАБОТА №10
ПРОГРАММИРУЕМЫЙ ТАЙМЕР
Цель работы: изучение методов формирования временных интервалов при
использовании программируемого таймера.
11.1. Программируемый таймер
Для отсчета реального времени в ЭВМ используется программируемый
интервальный таймер. Он может быть реализован на БИС КР580ВИ53, на его
зарубежном аналоге или на других микросхемах, полностью эмулирующих
работу таймера. БИС таймера является функционально законченным
периферийным однокристальным устройством (ПУ) встраиваемого типа,
предназначенным для работы совместно с микропроцессорами. Интервальный
таймер решает одну из наиболее общих проблем любой микропроцессорной
системы — генерацию точных временных интервалов под программным
контролем. Микросхема выполнена в 24-выводном корпусе и имеет
единственный источник питания +5 В.
В состав БИС
CLK0
(рис. 11.1) входят три
Буфер
D0-D7
Счетчик
16-разрядных
шины
GATE0
1
вычитающих счетчика
данных
(СТ0)
OUT0
(СТ) с частотой счета
по входу CLK (С1осk)
RD
до 2 МГц. Каждый СТ
Логика
WR
CLK1
может
работать
в
чтения
Счетчик
A0
из
шести
записи
GATE1 одном
1
программно-заданных
A1
(СТ1)
режимов независимо
OUT1
CS
от
других.
Все
счетчики программно
Регистры
доступны для записи и
CLK2
CW
чтения с помощью слов
Счетчик
GATE2 данных DW и могут
1
работать
как
в
(СТ2)
OUT2
двоичном коде, так и в
двоично-десятичном
коде.
Управление
Рис. 11.1. Структурная схема таймера
режимами выполняется
с помощью управляющих (командных) слов CW. Слово команды (рис. 11.2)
определяет: режим работы (поле М), код счета (двоичный или двоичнодесятичный), формат обмена данными с МП при операциях со счетчиками
(только старшим байтом, только младшим байтом или всем словом) (поле RL).
48
Поле SC используется для указания счетчика, к которому относится очередное
слово.
Связь
таймера
с
D7 D6 D5 D4 D3 D2 D1 D0
микропроцессорной
системой
осуществляется
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
через двунаправленную 8разрядную шину данных
D0-D7 под управлением
Код 2/10
пяти сигналов: A0, A1
0 0 0 Режим 0
(младшие разряды адреса),
0 0 1 Режим 1
WR (запись), RD (чтение),
Х 1 0 Режим 2
SC (выбор кристалла) в
Х 1 1 Режим 3
соответствии с таблице
1
0 0 Режим 4
11.1. При двухбайтовом
1
0 1 Режим 5
формате данных операция
со счетчиками выполняется
0
0
Защелкивание
дважды:
сначала
0
1
Чтение/запись
записывается
или
младшего
считывается младший байт,
байта
затем
—
старший.
1
0
Чтение/запись
Обслуживание
счетчиков
старшего байта
(СТ)
выполняется
1
1
Чтение/запись
слова
параллельно и независимо
друг от друга. При подаче
0
0 Выбор счетчика 0
питания их состояния и
0
1 Выбор счетчика 0
режим работы оказываются
1 0 Выбор счетчика 0
неопределенными. Поэтому
1 1 Недопустимо
перед
началом
работы
каждый СТ должен быть
Рис. 11.2. Формат управляющего слова
инициализирован
индивидуально
посылкой
соответствующего командного слова CW. Каждое CW, за исключением
операции защелкивания, сопровождается 1-2 байтами слова данных DW
начального состояния выбранного СТ. Выполнение операции начинается только
после загрузки последнего байта данных. Последовательность инициализации и
переинициализации счетчиков произвольна. Допускается приостановка
последовательности инициализации любого СТ на неопределенное время с
последующим ее продолжением или началом но вой.
11.2. Режимы работы таймера
Режим 0 (прерывание по окончанию счета). По окончании записи CW на
выходе OUT устанавливается 0. После загрузки DW счетчик начинает вычитать
по каждому срезу CLK. При переходе счетчика в 0 на выходе OUT
устанавливается 1. Работа СТ при этом не останавливается. Перезапуск канала
49
производится при загрузке новых данных DW. Запись первого байта
останавливает счет, второй байт запускает новый счет. Вход GATE разрешает счет
при высоком и запрещает при низком уровне напряжения.
Таблица 11.1.
Режим 1 (программируемый
одновибратор).
Выход
OUT
генерирует 0 по первому срезу CLK
после фронта GATE, и счетчик
начинает считать. При переходе СТ
в 0 на выходе OUT устанавливается
1. Перезагрузка СТ во время счета
не изменяет длительности текущего
импульса.
Однако
появление
нового фронта GATE перезапускает
СТ с новым или старым значением.
Чтение счетчика возможно в любое
время.
Режим 2 (генератор частоты) таймер генерирует периодический сигнал с
частотой в N раз меньшей частоты тактовых импульсов. Выход OUT= 0
устанавливается на последнем такте периода, который определяется значением
DW, и только в течение одного периода входной частоты CLK. Перезагрузка СТ
не приводит к изменению длительности текущего периода, но влияет на
длительность последующего. При подаче на управляющий вход GATE 0
осуществляется переход в 1 выхода OUT. Фронт GATE запускает СТ из
начального состояния. Он может служить для аппаратной синхронизации
счетчика.
Режим 3 (генератор прямоугольных импульсов) отличается от режима 2 тем,
что в течение первой половины периода на выходе формируется сигнал высокого
уровня, а в течение второй половины – низкого уровня. На выходе OUT 1 будет
сохраняться до тех пор, пока не закончится одна половина счета. При нечетном DW
на протяжении (N+ 1)/2 тактов удерживается 1 и на протяжении (N- 1)/2 тактов — 0.
При перезагрузке СТ новое значение скажется на результате работы толь ко при
переходе OUT в другое состояние. В остальном режим подобен предыдущему.
Режим 4 (программная задержка строба). После записи CW на выходе OUT
устанавливается 1. Запуск счета осуществляется после загрузки DW. При
достижении 0 на выходе OUT генерируется импульс длительностью в один период
CLK, а СТ продолжает работать. Перезагрузка младшего байта в процессе
счета не влияет на текущий счет. Загрузка старшего байта приводит к
перезапуску СТ. Генерация 0 на входе GATE приостанавливает счет.
Режим 5 (аппаратная задержка строба). Счетчик начинает работать только по
фронту GATE. Новый фронт перезапускает текущий счет. В остальном
режим подобен предыдущему.
Во всех режимах сигнал GATE является управляющим: запрещает счет
низким уровнем напряжения и (или) перезапускает фронтом
A1
0
0
1
1
0
0
1
1
х
х
A2 R D W R S C
Операция
0
0
1
0 D
Счетчик 0
1
0
1
0 D
Счетчик 1
0
0
1
0 D
Счетчик 2
1
0
1
0 Нет операции
0
1
0
0 Счетчик 0
D
1
1
0
0 Счетчик 1
D
0
1
0
0 Счетчик 2
D
1
1
0
0 Управление
D
х
1
1
0 Нет операции
х
х
х
1 Нет операции
50
В ряде случаев необходимо контролировать текущее состояние СТ,
например, когда СТ используется в качестве счетчика событий или реальных
часов. Существуют два метода чтения содержимого СТ. Первый метод
состоит в обычном чтении 1 — 2 байтов выбранного СТ. Для устойчивого чтения
текущего состояния СТ функция счета может быть подавлена с помощью входа
GATE или внешним запретом импульсов CLK. Сначала читается младший,
затем старший байт. Если формат данных обмена с СТ - слово, то оба байта
должны быть сосчитаны до подачи на данный СТ новой команды.
Второй метод заключается в чтении содержимого СТ «на ходу» _ без
запрета его работы. Для этого в таймер должна быть послана специальная
команда (Защелкивания), при которой поле выбора счетчика SC кодирует выбор
СТ. Остальные разряды CW могут быть произвольными. По команде
защелкивания текущее состояние выбранного СТ записывается в специальный
регистр, что не мешает работе СТ. Следующая за командой операция чтения
приводит регистр в исходное состояние. Операция чтения подвержена тем же
ограничениям, что и в предыдущем случае.
11.3. Подключение таймера в контроллере МС2721
В лабораторном макете системы управления исполнительным механизмом
используется микропроцессорный контроллер МС2721, выполненный на
микропроцессорном наборе К580. В контроллере для ввода и вывода
используется программируемый параллельный интерфейс К580ВВ55, базовый
адрес которого равен F4H. Порт F4 запрограммирован на вывод данных. К
нулевому и второму разрядам подключены линии управления перемещением
исполнительного механизма вперед и назад. Выходные сигналы имеют TTL
уровень. Входной порт F5 запрограммирован на ввод дискретных данных TTL
уровня. Релейный преобразователь входного сигнала подключен к первому
разряду входного порта.
Программируемый таймер К580ВИ53 используется операционной системой
контроллера для формирования необходимых временных последовательностей:
счетчик 0 - для аппаратной поддержки мониторных функций, счетчик 2 – для
синхронизации работы последовательного приемопередатчика.
Счетчик 1 может быть использован по усмотрению пользователя. На его
тактовый вход CLK поступают тактовые импульсы с частотой 2048 Кгц от
внутреннего генератора. На управляющем входе GATE аппаратно установлена 1.
Таким образом, счетчик может работать в режимах 0, 2, 3, 4. Выход таймера OUT
1 выведен на внешний разъем.
Базовый адрес программируемого таймера E0H. Следовательно, регистр
счетчика 1 имеет адрес E1H, а регистр управляющего слова – E3H.
51
1.
2.
11.4. Задание
Получить последовательность импульсов с заданными частотой и
скважностью.
Реализовать перемещение исполнительного механизма с заданными
интервалами времени.
11.5. Выполнение работы
1. Подключить выход таймера к входу осциллографа.
2. Уточнить у преподавателя используемые адреса регистров микроконтроллера и
и подключение внешних линий ввода-вывода.
3. Вычислить управляющее слово для работы первого счетчика в режиме 3
(генератор прямоугольных импульсов).
4. Вычислить слово данных для генерации импульсов заданной преподавателем
длительности.
5. Составить и загрузить в контроллер программу запуска счетчика.
6. Измерить по осциллографу длительность импульсов.
7. Составить и отладить программу, демонстрирующую работу счетчика в режиме
0.
8. Составить и отладить программу, демонстрирующую работу счетчика в режиме
2.
9. Составить и отладить программу, демонстрирующую работу счетчика в режиме
4.
10.
Составить
и отладить программу импульсного перемещения
исполнительного механизма с заданным временем включения и выключения.
При выполнении работы необходимо контролировать функционирование
таймера по осциллографу.
10.1 Составить и отладить часть программы, программирующей счетчик в
режиме работы 0 или 1 с выбранной длительностью импульсов.
10.2 Дополнить и отладить часть программы, выполняющей опрос
содержимого счетчика “на ходу” (с защелкиванием содержимого).
10.3 Дополнить и отладить часть программы, определяющей по содержимому
счетчика момент его обнуления.
10.4 Дополнить и отладить часть программы, перезапускающей счетчик при
его обнулении.
10.5 Для отсчета длительных интервалов времени организовать
дополнительный программный счетчик числа обнулений счетчика
таймера.
10.6 Дополнить и отладить часть программы, отсчета временных интервалов
по содержимому программного счетчика.
10.7 Дополнить и отладить часть программы, включающей и выключающей
исполнительный механизм через заданные промежутки времени.
52
10.8 Отчет должен содержать название и цель работы, вербальное описание
алгоритма, блок-схему программы управления, программу с
комментариями.
Примечание. Конкретные пункты задания уточняются преподавателем.
11.6. Контрольные вопросы
1.
2.
3.
4.
5.
6.
Функциональная схема таймера.
Подключение таймера к системной шине.
Программирование таймера.
Формат команды.
Режимы работы таймера.
Использование таймера в системе управления.
11.7. Литература
12. Калабеков Б. А. Микропроцессоры и их применение в системах передачи и
обработки .сигналов: Учеб. пособие для вузов. -М. : Радио и Связь, 1988. - 368
с.
13. Щелкунов Е. II. , Дианов А. П. Микропроцессорные средства и системы, М.: Радио и связь, 1989.- 288 с.
14. Хвощ С. Т., Варлинский Н.Н., Попов Е. А. Микропроцессоры и микроЭВМ
в системах автоматического управления, Справочник. –Л.:
Машиностроение, 1987.-640с.
Документ
Категория
Без категории
Просмотров
5
Размер файла
408 Кб
Теги
техника, микропроцессорам, 395
1/--страниц
Пожаловаться на содержимое документа