98920

Микропроцессорная система измерения перемещения

Курсовая

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

Так как в микроконтроллере присутствует три независимых области памяти то для обращения к ним введены различные команды: копирование данных во внутреннем ОЗУ: MOV; обмен данными аккумулятора с внутренним ОЗУ: XCH XCHD; копирование из внешней памяти данных: MOVX; копирование данных...

Русский

2016-07-14

2.13 MB

0 чел.

Минобрнауки РФ

Вологодский государственный технический университет

(ВОГТУ)

Кафедра АВТ

Дисциплина: Микропроцессорные устройства систем управления

КУРСОВОЙ ПРОЕКТ

МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ

Техническое задание № 2012\12

Выполнил: студент группы ЭМ - 31

Поповцев П. В.

Принял: Анкудинов В. Б.

Вологда

2012


Содержание

Введение

Развитие и распространение микропроцессоров, а также микроконтроллеров и микро-ЭВМ, на их основе, стимулируют постоянно возрастающий интерес специалистов технического профиля к их изучению и применению. Изделия микроэлектроники нашли широкое применение в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами.

В последнее время бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС (большой интегральной схемы) и включающие в себя все составные части микроЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. Использование микроконтроллеров в системах управления обеспечивает достижение исключительно высоких показателей эффективности при столь низкой стоимости.

Однако проектирование вычислительных систем представляет собой сложную техническую задачу. Процесс проектирования направлен на выбор приемлемого решения при существовании потенциально огромного числа вариантов и ограниченном количестве пробных реализаций.

В данном курсовом проекте необходимо спроектировать микропроцессорную систему измерения перемещения. Требуется создать систему, принимающую сигналы с датчиков перемещения, подсчитать количество этих сигналов и выдать на индикатор значение перемещения в единицах количества меток. Обработка сигналов с датчиков будет осуществляться в соответствии с разработанной управляющей программой. Проектирование схемы устройства и печатной платы будет производиться в P-CAD 2001.


Техническое задание
1. Аналитический обзор

Самым известным примером системы измерения перемещений служит компьютерная оптико-механическая (шариковая) мышка. Шарик внутри мыши соприкасается с рабочим столом и вращается при перемещении мыши. С шариком соприкасаются два ролика, скрытых внутри мыши. Один из них распознает движения по оси X, другой расположен к первому под углом 90 градусов и распознает движения по оси Y. При вращении шарика вращаются и оба ролика. Каждый ролик соединяется с валиком, который вращает небольшой диск с отверстиями. Когда вращаются ролики, вращаются и валики с дисками. По обеим сторонам диска установлено по одному инфракрасному индикатору и инфракрасному сенсору. Отверстия в диске разбивают лучи индикатора, поэтому инфракрасный сенсор улавливает только пульсирование света. Частота пульсирования непосредственно связана со скоростью и направлением движения мыши. Встроенный процессор мыши считывает сведения о частоте пульсирования с инфракрасных сенсоров, преобразует их в двоичные данные и передает по кабелю, соединяющему мышь с компьютером. В такой оптико-механической конструкции диск вращается механически, а оптическая система следит за пульсированием света. Диаметр шарика составляет 21 мм, диаметр ролика – 7 мм, в диске 36 отверстий. Значит, когда мышь смещается на 25,4 мм, процессор насчитывает 41 световой импульс. Как можно заметить, у каждого диска – два инфракрасных индикатора и два сенсора (то есть, всего в мыши четыре пары индикаторов/сенсоров). Пары индикатор/сенсор располагаются по обе стороны от диска. Такая конструкция позволяет процессору определять направление вращения диска. Между диском и каждым инфракрасным сенсором расположена небольшая пластиковая панель с крошечным, точно размеченным отверстием. Это отверстие является «окном», сквозь которое «видит» инфракрасный сенсор. С одной стороны диска окно расположено несколько выше, чем с другой, – если точнее, то выше на половину высоты одного из отверстий диска. В результате сенсоры обнаруживают импульсы света с небольшой разницей по времени. Иногда один из сенсоров видит свет, которого не видит другой, и наоборот.

Система измерения перемещения будет состоять из трех блоков: датчика, индикатора и однокристальной ЭВМ. Схема показана на Рис. 1.

Рис. 1.1  Схема системы управления

1.1 Датчик

1.1.1 Датчик перемещений

Датчик по заданию представляет собой диск с 512 прорезями (512 метками на оборот) по краю. С помощью оптопары, закрепленной на неподвижной части механизма, считывается количество импульсов. Т.к. максимальное перемещение по заданию составляет 128 мм, а за один оборот диск перемещается на 32 мм, то максимальное число, поступающее на индикатор (см. ниже), составляет 2048=>12 разрядный двоичный код. Схематично диск представлен на Рис. 1.2:

Рис.1.2 Диск с 512 прорезями

Оптрон (оптопара) — электронный прибор, состоящий из излучателя света (обычно — светодиод, в ранних изделиях — миниатюрная лампа накаливания) и фотоприёмника (биполярных и полевых фототранзисторов, фотодиодов, фототиристоров, фоторезисторов), связанных оптическим каналом и как правило объединённых в общем корпусе. Принцип работы оптрона заключается в преобразовании электрического сигнала в свет, его передаче по оптическому каналу и последующем преобразовании обратно в электрический сигнал.

Классификация оптронов:

По степени интеграции:

  •  оптопары (или элементарные оптроны) — состоящие из двух и более элементов (в т. ч. собранные в одном корпусе);
  •  оптоэлектронные интегральные схемы, содержащие одну или несколько оптопар (с дополнительными компонентами, например, усилителями, или без них).

По типу фотоприёмника:

  •  с фоторезистором;
  •  с фотодиодом;
  •  с биполярным (обычным или составным) фототранзистором;
  •  с фотогальваническим генератором (солнечной батарейкой); такие оптроны обычно снабжаются обычным полевым транзистором затвором которого управляет фотогальванический генератор;
  •  с фототиристором или фотосимистором.

1.1.2 Датчик конечный

Конечный датчик служит для сигнализации системе о том, что она максимально переместилась от нулевого положения или находится в нулевом положении. В качестве конечного датчика можно выбрать реле (такие как поляризованные, герметизированные и их виды: шариковые, плунжерные и т.д.) В данной системе требуется один конечный датчик (датчик нулевой позиции).

1.2. Индикатор

По заданию код позиции индицируется на двоичный индикатор. В нашем случае их необходимо 12 штук (т.к. при максимальном перемещении в 128 мм и при 32 мм за оборот получается 4 оборота по 512 меток – 2048= меток, что можно отразить 12 разрядами).

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

Рис.1.3  Формат индикатора

В качестве простейшего индикатора возьмем светодиодный индикатор. Схема подключения такого индикатора показана на Рис. 1.3. Транзистор служит для увеличения тока параллельного порта, при помощи которого микропроцессор зажигает и гасит светодиодный индикатор, до тока, на котором хорошо светится светодиод. Кроме того, транзистор позволяет согласовать уровни напряжения, необходимые для работы цифровых микросхем, к которым относятся и микропроцессорные устройства и уровни напряжения, необходимые для работы светодиодного индикатора. Гальванической развязки транзисторный ключ не обеспечивает.

Рис.1.4  Схема подключения индикатора к ОЭВМ

 

1.3. ОЭВМ МК 51

1.3.1 Краткая информация

В настоящее время среди всех 8-разрядных микроконтроллеров - семейство MCS-51 является несомненным чемпионом по количеству разновидностей и количеству компаний, выпускающих его модификации. Оно получило свое название от первого представителя этого семейства - микроконтроллера 8051, выпущенного в 1980 году на базе технологии n-МОП. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер 8051 являлся для своего времени очень сложным изделием - в кристалле было использовано 128 тыс. транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре 8086.

Важную роль в достижении такой высокой популярности семейства 8051 сыграла открытая политика фирмы Intel, родоначальницы архитектуры, направленная на широкое распространение лицензий на ядро 8051 среди большого количества ведущих полупроводниковых компаний мира.

В результате на сегодняшний день существует более 200 модификаций микроконтроллеров семейства 8051, выпускаемых почти 20-ю компаниями. Эти модификации включают в себя кристаллы с широчайшим спектром периферии: от простых 20-выводных устройств с одним таймером и 1К программной памяти до сложнейших 100-выводных кристаллов с 10-разрядными АЦП, массивами таймеров-счетчиков, аппаратными 16-разрядными умножителями и 64К программной памяти на кристалле. Каждый год появляются все новые варианты представителей этого семейства. Основными направлениями развития являются: увеличение быстродействия (повышение тактовой частоты и переработка архитектуры), снижение напряжения питания и потребления, увеличение объема ОЗУ и FLASH памяти на кристалле с возможностью внутрисхемного программмирования, введение в состав периферии микроконтроллера сложных устройств типа системы управления приводами, CAN и USB интерфейсов и т.п.

Архитектура семейства MCS-51 в значительной мере предопределяется ее назна-чением - построение компактных и дешевых цифровых устройств. Все функции микроЭВМ реализуются с помощью единственной микросхемы. В состав семейства MCS-51 входит целый ряд микросхем от самых простых микроконтроллеров до достаточно сложных. Микроконтроллеры семейства MCS-51 позволяют выполнять как задачи управления различными устройствами, так и реализовывать отдельные узлы аналоговой схемы. Все микросхемы этого семейства работают с одной и той же системой команд, большинство из них выполняется в одинаковых корпусах с совпадающей цоколевкой (нумерация ножек для корпуса). Это позволяет использовать для разработанного устройства микросхемы разных фирм — производителей (таких как Intel, Dallas, Atmel, Philips и т.д.) без переделки принципиальной схемы устройства и программы.

1.3.2 Система команд микроконтроллеров MCS-51

Система команд микроконтроллера предоставляет большие возможности обработки данных, обеспечивает реализацию логических, арифметических операций, а также управление в режиме реального времени.

В этой системе команд реализована побитная, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных. Микросхемы семейства MCS-51 — это 8-разрядные микропроцессоры, а это означает, что ПЗУ, ОЗУ, регистры специального назначения, АЛУ и внешние шины имеют байтовую организацию. Двухбайтовые данные используются только регистром-указателем (DPTR) и счетчиком команд (PC).

В машинном коде команда занимает один, два или три байта в зависимости от типа адресации. Команды выполняются за один, два или четыре (умножение и деление) машинных цикла.

Запись команд в машинных кодах для человека неудобна, кроме того, разные машинные команды выполняют одинаковые действия только над разными ячейками памяти. Поэтому для записи команд микропроцессоров была придумана система мнемонических обозначений. Для записи команды микропроцессора сначала ставится мнемоническое обозначение, затем указывается ячейка памяти – приёмник результата выполнения операции и наконец источник данных для выполнения операции. Например, в команде:

E535        MOV A, 35h

- символы MOV обозначают операцию копирования, второй операнд 35 определяет, что данные необходимо взять из 35 ячейки памяти, а первый операнд A определяет, что результат необходимо поместить в регистр – аккумулятор. При этом старое значение регистра – аккумулятора будет стёрто. Слева приведена машинная команда микроконтроллера в шестнадцатеричной записи, соответствующая мнемонической записи команды.

Мнемоническое обозначение команды отделяется от операндов одним или несколькими символами пробела или табуляции, а операнды отделяются друг от друга запятыми.

Если операция требует для выполнения двух источников и одного приёмника результата операции (например, команда сложения ADD или вычитания SUBB), то первый операнд является одновременно и источником и приёмником результата операции. Например, в команде:

2535        ADD A, 35h

- символы ADD обозначают операцию сложения двух чисел, данные будут взяты из 35 ячейки памяти и аккумулятора а результат будет помещён в аккумулятор вместо старого зна-чения этого регистра.

Систему команд микроконтроллера условно можно разбить на пять групп:

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

1. Арифметические команды:

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

  •  сложение ADD;
  •  сложение с учетом флага переноса ADDC;
  •  вычитание с заемом SUBB;
  •  инкрементирование (увеличение на 1) INC;
  •  декрементирование (уменьшение на 1) DEC;
  •  десятичная коррекция DA;
  •  умножение MUL;
  •  деление DIV.

Действия производятся над целыми числами без знака.

При операции умножения содержимое аккумулятора A умножается на содержимое регистра B, и результат размещается следующим образом: младший байт в регистре B, старший - в регистре А.

В случае выполнения операции деления целое от деления помещается в аккумулятор A, остаток - в регистр В.

2. Логические команды с байтовыми переменными:

Система команд рассматриваемого микроконтроллера позволяет реализовать логические операции:

  •  И ( ANL);
  •  ИЛИ ( ORL);
  •  ИСКЛЮЧАЮЩЕЕ ИЛИ ( XRL).

Логические операции выполняются над аккумулятором или непосредственно над портами ввода/вывода.

Существуют логические операции, которые выполняются только на аккумуляторе:

  •  сброс всех восьми разрядов A ( CLR A);
  •  инвертирование всех восьми разрядов A ( CPL A );
  •  циклический сдвиг влево и вправо без учета флага переноса ( RR A; RL A);
  •  циклический сдвиг влево и вправо с учетом флага переноса ( RRC A; RLC A);
  •  обмен местами старшей и младшей тетрад внутри аккумулятора ( SWAP A).

3. Команды пересылки данных.

Как было рассмотрено ранее, арифметические и логические команды могут быть выполнены только над содержимым регистра аккумулятора, поэтому исключительно важное значение в системе команд приобретают команды пересылки данных. С помощью этих команд можно скопировать содержимое любой ячейки памяти в регистр-аккумулятор или наоборот скопировать содержимое аккумулятора в любую ячейку памяти. Так как в микроконтроллере присутствует три независимых области памяти, то для обращения к ним введены различные команды:

  •  копирование данных во внутреннем ОЗУ: MOV;
  •  обмен данными аккумулятора с внутренним ОЗУ: XCH, XCHD;
  •  копирование из внешней памяти данных: MOVX;
  •  копирование данных из памяти программ: MOVC.

Примеры использования команд пересылки данных:

Любая ячейка 256- байтового блока внутреннего ОЗУ данных может быть выбрана с использованием косвенно-регистровой адресации через регистры указатели R0 и R1 (выбранного банка рабочих регистров):

MOV A, @R0  ;Скопировать число из ячейки памяти с адресом, хранящемся в R0, в аккумулятор.

MOV @R1, A  ;Скопировать число из аккумулятора, в ячейку памяти с адресом, хранящемся в R1.

Команды пересылки с прямой адресацией между ячейками памяти позволяют заносить содержимое порта в ячейку внутреннего ОЗУ или обмениваться содержимым ячеек внутреннего ОЗУ между собой без использования аккумулятора:

MOV 15, 25  ;Скопировать содержимое 25-й ячейки  в 15-ю ячейку.

Таблицы символов (кодов), записанные в ПЗУ программы могут быть скопированы в аккумулятор с помощью команд передачи данных с косвенной адресацией:

MOVC A, @A+DPTR ;Скопировать символ в аккумулятор.

Ячейка адресного пространства 64 Кбайт внешнего ОЗУ также может быть выбрана с использованием косвенно-регистровой адресации через регистр указатель данных DPTR:

MOVX A, @DPTR ;Скопировать число из внешней ячейки памяти с адресом, ;хранящемся в DPTR, в аккумулятор.

Содержимое аккумулятора может быть обменено с содержимым рабочих регистров выбранного банка:

XCH A, R0

Кроме того, любой бит с прямой адресацией может быть скопирован в бит переноса и наоборот:

MOV C, AdrBit

4. Битовые команды:

Каждый бит из битового пространства внутренней памяти может быть установлен в 1, сброшен в 0, или инвертирован:

  •  установить бит (записать логическую единицу) SETB;
  •  сбросить бит (записать логический ноль) CLR;
  •  проинвертировать значение бита (изменить на прямо противоположное) CPL;
  •  бит может быть записан во флаг переноса или считан из флага переноса MOV.

Могут быть реализованы переходы:

  •  если бит установлен (содержит логическую 1) JB;
  •  если бит не установлен (содержит логический 0) JNB;
  •  переход, если бит установлен со сбросом этого бита после выполнения команды (запись в этот бит 0) JBC.

Между любым битом из битового пространства внутренней памяти и флагом переноса могут быть произведены логические операции "И" или "ИЛИ".

  •  И ( ANL);
  •  ИЛИ ( ORL).

5. Команды ветвления и передачи управления:

Команды ветвления позволяют реализовывать условные операторы и операторы циклов. В микроконтроллерах семейства MCS-51 доступны следующие команды:

  •  безусловный переход: LJMP, AJMP, SJMP;
  •  Вызов и возврат из подпрограммы: LCALL, ACALL, RET, RETI;
  •  проверка содержимого аккумулятора: JZ, JNZ, CJNE, JMP;
  •  проверка флага переноса С: JC, JNC;
  •  проверка содержимого любого бита в битовом пространстве: JB, JNB, JBC.

1.3.3 Способы адресации операндов

При определении способа адресации операндов в команде необходимо учитывать, что адресация для каждого операнда команды своя. В общем случае адресация источника и приёмника могут не совпадать.

Неявная адресация:

При неявной адресации регистр источник или регистр приёмник подразумевается в самом коде операции. Например:

03      RR A  ;Сдвинуть содержимое аккумулятора вправо.

D4      DA A  ;Произвести десятичную коррекцию результата суммирования.

E8      MOV A, R0 ;В первом операнде использована неявная адресация, а во втором – регистровая.

Регистровая адресация:

Используется для обращения к восьми рабочим регистрам выбранного банка рабочих регистров, а также для обращения к регистрам А, В, АВ (сдвоенному регистру), DPTR, и к флагу переноса С. Номер регистра записывается в трех младших битах команды. Например:

F8      MOV R5, A ;В первом операнде использована регистровая адресация, а во втором – неявная.

Прямая байтовая адресация:

Используется для обращения к ячейкам внутренней памяти (ОЗУ) данных (адреса 0:127) и к регистрам специального назначения (адреса 128:256). Адрес ячейки памяти помещается во второй байт команды. Например:

E520    MOV A, 20h ;Во втором операнде использована прямая байтовая адресация, а в первом – неявная.

8D15    MOV 15h,R6 ;В первом операнде использована прямая байтовая адресация, а во втором – регистровая.

Прямая битовая адресация:

Используется для обращения к отдельно адресуемым 128 битам, расположенным в ячейках с адресами 20Н-2FH, и к отдельно адресуемым битам регистров специального назначения. Например:

D220    SETB 20h ;Использована прямая битовая адресация.

C215    CLR  15h ;Использована прямая битовая адресация.

Косвенно-регистровая адресация:

Используется для обращения к ячейкам внутреннего ОЗУ данных. В качестве регистров-указателей адреса используются регистры R0, R1 выбранного банка регистров. Например:

E6    MOV A,@R0 ;В первом операнде использована неявная адресация, а во втором - косвенно-регистровая.

F7    MOV @R1,A ;В первом операнде использована косвенно-регистровая адресация, а во втором – неявная.

Косвенно - регистровая адресация используется также для обращения к внешней памяти данных. В этом случае с помощью регистров- указателей R0 и R1 (рабочего банка рабочих регистров) выбирается ячейка из блока 256 байт внешней памяти данных. Номер блока предварительно задается содержимым порта Р2. Например:

E2    MOVX A,@R0 ;В первом операнде использована неявная адресация, а во втором - косвенно-регистровая.

F3    MOVX @R1,A ;В первом операнде использована косвенно-регистровая адресация, а во втором – неявная.

Если в качестве регистра - указателя используется 16 - разрядный указатель данных (DPTR), то можно выбрать любую ячейку внешней памяти данных объемом до 64 Кбайт. (В некоторых моделях микроконтроллеров семейства MSC-51 таким образом можно обращаться к внутренней памяти данных объемом более 256 байт).

E0    MOVX A,DPTR ;В первом операнде использована неявная адресация, а во втором - косвенно-регистровая.

F0    MOVX DPTR,A ;В первом операнде использована косвенно-регистровая адреса-ция, а во втором – неявная.

Косвенно-регистровая адресация по сумме базового и индексного регистра (содержимое аккумулятора А) упрощает просмотр таблиц, записанных в памяти программ. Любой байт из таблицы может быть выбран по адресу, определяемому суммой содержимого DPTR или РС и содержимого А, например:

83    MOV A, @A+PC  ;В первом операнде использована неявная адресация, а во втором - косвенно-регистровая.

93    MOV A, @A+DPTR ;В первом операнде использована неявная адресация, а во втором - косвенно-регистровая.

Непосредственная адресация:

Позволяет выбрать из адресного пространства памяти программ константы, явно указанные в команде. Например:

7414    MOV A, #14h  ;В первом операнде использована неявная адресация, а во втором – непосредственная.

902048  MOV DPTR, #2048h ;В первом операнде использована неявная адресация, а во втором – непосредственная.

1.3.4 Внутренняя память данных микроконтроллеров MCS-51

Несмотря на то, что это самое маленькое адресное пространство из рассматриваемых, оно устроено наиболее сложным образом. Распределение памяти данных микроконтроллеров серии MCS-51 приведено на рисунке 1.5.

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

Внутреннее ОЗУ данных предназначено для временного хранения информации, используемой в процессе выполнения программы, и занимает 128 младших байт, с адресами от 000h до 07Fh для микроконтроллеров 8051, 8031, КР1816ВЕ31, КР1816ВЕ51, КР1816ВЕ751 КР1830ВЕ31, КР1830ВЕ51, КР1830ВЕ751 или 256 восьмиразрядных ячеек, с адресами от 000h до 0FFh для всех остальных микроконтроллеров семейства.
2. Обоснование выбранного варианта

Для данного проекта можно использовать датчик перемещения, который подаёт логическую единицу на один из выходов при перемещении в прямом направлении и на другой выход при движении в обратном направлении. Эти сигналы можно принять на один из портов ОЭВМ. Такой же сигнал должен приходить и с конечного выключателя объекта управления при позиционировании его в начальном положении. Управление объектом осуществляется только в начале работы для установки его в начальное положение. Для этого объект должен принимать сигнал от ОЭВМ. При наличии логической единицы должен включаться привод объекта, перемещающий его в сторону начального положения, и отключаться при её исчезновении.

В качестве ОЭВМ возьму по заданию МПК 1816ВЕ 51. Использую порт P2 на ввод информации с конечного датчика и с датчика перемещения (оптопара+ и оптопара-), а порты P0 и P1 на вывод.

Максимальное перемещение – 128 мм, это 2048 меток, будем считать, что привод не может вращаться дальше, и чтобы избежать попытки перегреть его от невыполнимой операции, управляющая программа будет считать ошибкой «+» воздействие, когда привод прошел 128 мм и «-» воздействие, когда привод находится в нулевой позиции.

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

3.Разработка микропроцессорной системы измерения перемещения

3.1.  Разработка блок-схемы

Устройство будет состоять из следующих блоков: однокристальная ЭВМ, датчик, светодиодный индикатор, объект управления, привод объекта управления, датчик нулевого положения объекта управления (конечный выключатель).

Составим из этих блоков структурную схему устройства:

Рис. 3.1 – Структурная схема устройства

где:

ОЭВМ – однокристальная ЭВМ;

Д – датчик;

СИ – светодиодный индикатор;

ОУ – объект управления;

ПОУ – привод объекта управления;

КВ – конечный выключатель.

3.2. Разработка принципиальной схемы

В основе устройства лежит ОЭВМ К1816ВЕ51:

Рисунок 3.2  ОЭВМ К1816ВЕ51

Для питания микросхемы к выводу 40 (VCC) микросхемы нужно подключить источник напряжения +5В. Общий вывод 20 (GRD) нужно заземлить.

Выводы 18 (BQ1) и 19 (BQ2) предназначены для подключения кварцевого резонатора. Как говорилось раньше, возьмем кварцевый резонатор РК374. Это кварцевый резонатор широкого применения на диапазон частот 3,0 – 125 МГц. Предположим, что при таком диапозоне частот, длительность одного машинного цикла позволит нам не обращать внимание на длительность команд, так как их длительность, все равно, будет намного меньше скорости перемещения объекта управления.

Для разрешения работы с внутренней памятью программ к выводу 31 (EA) нужно подключить напряжение логической 1 (+5В).

Вывод 9 (RST) предназначен для сигнала общего сброса. При включении питания необходимо подать этот сигнал на время, достаточное для запуска тактового генератора ОЭВМ плюс ещё минимум два машинных цикла. Для появлении сигнала при включении питания вход RST нужно подключить к источнику напряжения +5В через конденсатор. Тогда логическая 1 будет присутствовать во время зарядки конденсатора.

Для ввода информации с датчика будем использовать первые два разряда порта P2. На 0 разряд будут приходить импульсы при движении объекта управления в положительном направлении, на 1 разряд – в отрицательном.

В качестве датчика перемещения возьму диск с 512 прорезями и две оптопары с фотодиодными приемниками. В единичном цикле оптопары могут принимать следующие значения:

• 00 01 11 10 00 (при положительном движении привода);

• 00 10 11 01 00 (при отрицательном движении привода);

Целью нашей программы будет являться «поймать» значение оптопары+ (01h), или оптопары- (10h) и вывести изменение положения объекта управления на дисплей.

На 7 разряд порта P2 будем принимать сигнал от конечного выключателя (датчика нулевого положения).

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

Для вывода информации на двоичный индикатор будем использовать порт P0 и первые 4 разряда порта P1 (0,1,2,3). Чтобы синхронизировать информацию на индикаторе, между портами и индикатором надо подключит буферные регистры, которые выдают информацию на индикатор только после подачи импульса с разряда 4 порта P1 (STB). Возьмем два 8-разрядных буферных регистр К580ИР82

Принципиальная схема приведена в Приложении А.
3.3 Разработка программы для микропроцессорной системы управления

3.3.1 Разработка алгоритма программы

Основная программа включает в себя:

1. Проверка начального положения системы: если она не в нулевой позиции, то даем сигнал приводу ехать в начало.

2. Даем сигнал приводу остановиться в нулевой позиции (это нужно для остановки привода в тех случаях, когда срабатывает конечный датчик, либо требуется вернуть привод в нулевое положение).

3. Индицируем нулевое положение на светодиодный дисплей.

4. Проверяем порт входа на наличие сигнала с оптопары+. Если сигнал есть, мы считаем.

5. Если регистр r0 не переполнен, мы увеличиваем его на единицу. Если переполнен, увеличиваем на единицу регистр r1, а r0 обнуляем.

6. Выводим обновленную информацию на двоичный индикатор.

7. Если мы не встретим посреди движения привода в положительную сторону максимальное перемещение – ждем окончания единичного сигнала. Если встречаем – возвращаем привод в нулевую позицию.

8. Проверяем порт входа на наличие сигнала с датчика оптопары+. Если сигнала нет, то проверяем порт входа на наличие сигнала с оптопары-. Если сигнала нет, система ожидает сигнал. Если сигнал есть, мы считаем.

9. Если регистр r0 не обнулен, то мы вычитаем из него единицу. Если обнулен – вычитаем единицу из r1, r0 увеличиваем до FFh.

10.  Выводим информацию на двоичный индикатор.

11. Если мы не встретим посреди единичного сигнала с порта ввода сигнала с конечного датчика – ждем окончания единичного сигнала. Если сигнал с конечного датчика пришел – устанавливаем привод в нулевую позицию, а потом ждем нового сигнала.

Выполним по заданным параметрам разработку блок-схемы алгоритма работы микропроцессорного измерителя перемещения.

Алгоритм представлю в виде блоков основной программы:

Рис.3.3 Блоки основной программы

Теперь разберем алгоритм каждого блока отдельно:

1. Обозначение нулевой позиции:

Рис. 3.4 Обозначение нулевой позиции

2. Установка оптопар в положение 00h:

Рис 3.5 Установка оптопар в положение 00h

3. Вывод информации на светодиодный дисплей:

Рис 3.6 Вывод информации на светодиодный дисплей

4. Опрос состояния датчика положения:

Рис 3.7 Опрос состояния датчика положения

5. Движение привода в нулевую позицию:

Рис 3.8 Движение привода в нулевую позицию

6. Положительное движение привода:

Рис. 3.9 Положительное движение привода

7. Отрицательное движение привода:

Рис. 3.10 Отрицательное движение привода

3.3.2 Разработка управляющей программы

Текст программы с комментариями – в таблице 3.1.

Таблица 3.1

Метка

Мнемокод

Комментарий

Обозначение нулевой позиции:

M1:

MOV A, P2

A <- P2

ANL A, #80h

A <- A & 80h

JZ PRIVOD

Пока не сработает конечный датчик, двигатель крутим влево

MOV P0, #00h

Заносим нулевые условия в P0

MOV P1, #10h

В P1, так же подаем логическую единицу на STB (разрешаем передачу информации на индикаторы)

MOV R0, #00h

Обнуляем регистры банка R0=00h

MOV R1, #00h

и R1=00h

JMP M4

Установка оптопар в положение 00h:

M2:

MOV A, P2

Проверяем состояние оптопар,

ANL A, #03h

Требуемое состояние:

JNZ M2

P2.0=0 и P2.1=0

Вывод информации на светодиодный дисплей:

MOV P1, #00h

Запрещаем передачу информации на индикаторы

M3:

MOV P0, R0

Записываем младшие 8 бит на порт P0

MOV A, R1

A <- R1

ORL A, #10h

A <- A V 10h (разрешаем передачу информации на индикаторы)

MOV P1, A

P1 <- A

Опрос состояний оптопар:

M4:

MOV A, P2

Проверяем состояние оптопары +

ANL A, #01h

Маскируем бит, отвечающий за сигнал с оптопары+

JNZ M5

Если сигнал есть, идем на подпрограмму сложения

MOV A, P2

Проверяем состояние оптопары -

ANL A, #02h

Маскируем бит, отвечающий за сигнал с оптопары-

JNZ M6

Если сигнал есть, идем на подпрограмму вычитания

JMP M4

Если сигналов с датчиков нет - ожидаем

Подпрограмма PRIVOD:

PRIVOD:

MOV P1, #80h

«Крутим» двигатель вправо

PRIVODGO:

MOV A, P2

Привод работает,

ANL A, #03h

пока не пройдет

JNZ PRIVODGO

цикл датчика

MOV P1, #00h

Запрещаем приводу двигаться

JMP M1

Возвращаемся  на проверку нулевого положения

Продолжение таблицы 3.1

Подпрограмма положительного движения привода:

M5:

MOV A, R1

Проверяем,

XRL A,  #08h

Не достигли ли мы 2048-ой метки.

JZ M1

Если да, то возвращаем привод в нулевое положение

ADDFUNC:

MOV A, #FFh

A <- FFh

XRL A, R0

Если R0=FFh, то

JZ ADDOVERFLOW

Вызываем подпрограмму ADDOVERFLOW

INC R0

R0 <- ++R0

JMP M2

Выводим на светодиодный дисплей новые значения

Подпрограмма отрицательного движения привода:

M6:

MOV A, P2

Проверяем

ANL A, #80h

Не сработал ли, конечный датчик нулевого положения

JNZ M1

Если да, то возвращаем привод в нулевое положение

DECFUNC:

MOV A, #00h

A <-00h

XRL A, R0

Если R0=00h, то

JZ DECOVERFLOW

Вызываем подпрограмму DECOVERFLOW

DEC R0

R0 <- --R0

JMP M2

Выводим на светодиодный дисплей новые значения

Переполнение ++

ADDOVERFLOW:

INC R1

R1 <- ++R1

MOV R0, #00h

R0 = 00h

JMP M2

Возвращаемся в подпрограмму сложения

Переполнение --:

DECOVERFLOW:

DEC R1

R1 <- --R1

MOV R0, #FFh

R0=FFh

JMP M2

Возвращаемся в подпрограмму вычитания

3.3.3 Отладка управляющей программы

Запустим данную программу в MCStudio в пошаговом режиме; будем основные ключевые моменты программы.

Запуск программы:

Рис. 3.11

Система не получила информации от конечного выключателя, а значит она не в начальном положении и вызывается подпрограмма PRIVOD, которая «крутит» привод, чтобы тот прошел 1 метку в лево:

Рис. 3.12

Программа снова опрашивает систему на наличие сигнала с конечного выключателя. Симулируем сигнал с конечного выключателя - 80h на входе порта P2 (что означает сигнал "Система в нулевом положении"). Программа не пошла отдавать сигнал приводу на движение влево:

Рис. 3.13

Система показала, что она находится в нулевой позиции (с портов P0 и P1, получив сигнал STB, буферные регистры вывели информацию на светодиодный дисплей):

Рис. 3.14

Программа идет на опрос датчика перемещения. На порт P2 симулируем сигнал от оптопары+: 00000001b=01h:

Рис. 3.15

Идет проверка положения системы (система находилась на 2048 метке?), для этого проверяем регистр банка R1 на значение 0000 1000b=08h, что означает, что значение метки в данном случае 1000 0000 0000b = 2048d:

Рис. 3.16

Пройдя проверку на положение системы, проверяется не переполнен ли младший 8-миразрядный резистр банка R0 (R0==FFh):

Рис. 3.17

Так как в нашем случае регистр R0=00h, то проверка на переполнение проходится и выполняется R0++:

Рис. 3.18

Далее мной была симулирована ситуация, что с датчика перемещения на порт P2 приходит сигнал 0000 0011b, что значит, что единичный цикл датчика еще не прошел, и метка не перескочила:

Рис. 3.18

После того, как система получила сигнал 0000 0000b (что означает, что датчик начал новый единичный цикл), снимаем сигнал STB – буферные регистры защелкнутся, после обновим информацию на портах P0 и P1 и снова дадим сигнал STB, для вывода обновленной информации на дисплей:

Рис. 3.19

Программа снова идет на опрос датчика перемещения. На порт P2 симулируем сигнал от оптопары: 00000010b=02h:

Рис. 3.20

Идет проверка положения системы (система находилась на нулевой отметке?), для этого проверяем сработал ли конечный выключатель:

Рис. 3.21

Пройдя проверку на положение системы, проверяется не переполнен ли младший 8-миразрядный резистр банка R0 (R0==00h):

Рис. 3.22

Так как в нашем случае регистр R0=01h, то проверка на переполнение проходится и выполняется R0--:

Рис. 3.23

Снова снимаем сигнал STB – буферные регистры защелкиваются, после обновляем информацию на портах P0 и P1 и снова даем сигнал STB, для вывода обновленной информации на дисплей:

Рис. 3.24

Проверим систему, на переполнение при выполнении операции «+», для этого искусственно зададим значение R0=FFh, тогда:

Рис. 3.25

Сработает проверка на переполнение, и программа отправит нас на обработку данной ситуации:

Рис. 3.26

Программа увеличит на 1 значение в регистре R1, обнулит регистр R0 и отправит новые значения выводиться на дисплей.

Проверим систему, на переполнение при выполнении операции «-», для этого искусственно зададим значение R0=00h и R1=01h, тогда:

Рис. 3.27

Сработает проверка на переполнение, и программа отправит нас на обработку данной ситуации:

Рис. 3.28

Программа уменьшит на 1 значение в регистре R1, регистр R0=FFh и отправит новые значения выводиться на дисплей.

Проверим, что будет если система получит запрос на операцию «+», если значение в регистрах равно 2048. По замыслу, система, для того, чтобы избежать износ привода, выкинет ошибку и вернет систему в исходное положение (нулевую позицию):

Рис. 3.29

Проверим, что будет если система получит запрос на операцию «-», если значение в регистрах равно 0. По замыслу, система, для того, чтобы избежать износ привода, выкинет ошибку и вернет систему в исходное положение (нулевую позицию):

Рис. 3.30

4. Разработка конструкции

На основе полученной принципиальной схемы в P-CAD Schematic с помощью PCB получена печатная плата и выполнена ее трассировка при помощи P-CAD Quick Route.  

Печатная плата разработана в программе P-CAD-2001.  Размеры платы выбраны равными 150х80 мм , плата сделана из стеклотекстолита толщиной 1,5 мм с двухсторонней металлизацией. В приложении Б приведен сборочный  чертеж платы с указанием перечня компонентов. В приложении В приведена разводка печатной платы.

При разработке платы использованы библиотеки компонентов, предложенные препо-давателем. Расстановка компонентов на плате выполнена вручную, поскольку количество компонентов относительно не велико.
Заключение

В ходе данной работы:

  1.  Была изучена ОЭВМ 1816ВЕ51, а также элементы, которые необходимы для создания системы измерения перемещения.
  2.  Разработана принципиальная схема устройства измерения перемещения на основе выше указанной ОЭВМ.
  3.  Разработана блок-схема управляющей программы для измерения перемещения.
  4.  По блок-схеме создана программа, выдающая значение перемещения системы в количестве меток на светодиодные индикаторы.
  5.  Разработана принципиальная схема микропроцессорного измерителя перемещения (приложение А) в программе schematic из программного пакета PCAD-2001.
  6.  Сборочный чертеж (приложение Б) на основе созданной принципиальной схемы был построен в программе PCB, которая так же входит в программный пакет PCAD-2001
  7.  Чертеж печатной платы (приложение В) так же разработанный в программе PCB с помощью автотрассировки.


Список литературы

1.Шляндин. Цифровые измерительные устройства

2.Анкудинов В.Б. Микропроцессорные устройства систем управления: учебное пособие. – Вологда: ВоГТУ,2009  -184с.

3.Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. –М.: Энергоатомиздат, 1987.

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

5.Сайт – http://digteh.ru/proc/

6.Сайт – http://rw6hry.qrz.ru/mcs51.htm

7.Сайт – http://elanina.narod.ru/lanina/index.files/student/mcs51/


Приложение А

Принципиальная схема:



Приложение Б

Монтажная плата:



Приложение В

Печатная плата:



Приложение Г

Листинг программы:


 

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

73481. Система применения удобрений в хозяйстве АО «Дружба» 226.5 KB
  Определить потребность севооборота в элементах питания с учетом его продуктивности и разработать наиболее эффективную рациональную систему удобрения в севообороте с учетом агроклиматических ресурсов, плодородия почвы, биологических особенностей культур...
73482. Инвестиционная деятельность предприятий нефтедобывающей отрасли 220 KB
  Целью данной курсовой работы является анализ организации финансов предприятий нефтедобывающей отрасли. Для достижения данной цели были поставлены следующие задачи: раскрыть теоретические аспекты организации финансов предприятий нефтедобывающей отрасли...
73483. Форма сделок 212.5 KB
  Актуальность темы данной курсовой работы в том, что среди вопросов, связанных с оформлением гражданско-правовых договоров, важное значение имеют проблемы квалификации различных форм сделок, приобретающих все более широкое распространение в современном гражданском обороте.
73484. Организация бухгалтерского учета на предприятии «Елена» 208 KB
  Целью практики являлось углубить и закрепить теоретические и практические умения и навыки, полученные в университете при изучении учебных дисциплин; продолжить работу по формированию базовых и ключевых компетенций экономиста в сфере создания бухгалтерской службы на предприятии...
73485. Пути развития коммуникативной компетенции подростков в процессе внеучебной деятельности 202 KB
  Цель исследования: изучить и выявить пути развития коммуникативной компетенции подростков в процессе внеучебной деятельности. Дать характеристику внеучебной деятельности и ее роли в развитии коммуникативной компетенции подростков.
73486. Управління асортиментом товарів 202 KB
  Представлення маркетологів щодо оптимальних обсягів асортименту багато в чому залежать від роду діяльності тих або інших компаній: виробництво оптова торгівля роздріб та інші особливості вужчої спеціалізації. Наприклад у випадку з роздрібним товаром зусилля направлені...
73487. Пути повышения инвестиционной привлекательности ООО «НефтехимРесурс» 196 KB
  Актуальность оценки управления реальными инвестициями предприятия подтверждается большим значением инвестиций не только для будущего положения предприятия но и для экономики страны в целом. При оценке инвестиционной привлекательности предприятия потенциальные инвесторы в первую...
73488. Английские фразеологизмы как отражение английской национальной культуры 195.5 KB
  Рассмотреть фразеологию как самостоятельную дисциплину английского языка. Осветить предмет и основные задачи фразеологии. Рассмотреть понятие идиома и идиоматическое выражение. Исследовать специфику английских фразеологизмов, отражающих особенности английской национальной культуры.
73489. ДОКУМЕНТУВАННЯ ТРУДОВОЇ ДІЯЛЬНОСТІ. ВІДРЯДЖЕННЯ ТА ВІДПУСТКИ ПРАЦІВНИКІВ 195 KB
  Механізм прийняття працівника на роботу звільнення та переведення. Оформлення праці найважливіший етап працевлаштування від якого залежить майбутнє будьякого працівника. З іншого боку трудові відносини творяться у разі фактичного припущення працівника на роботу з відома...