CHECK (различные ДЗ)

2013-09-29СтудИзба

Описание файла

Файл "CHECK" внутри архива находится в папке "различные ДЗ". Документ из архива "различные ДЗ", который расположен в категории "". Всё это находится в предмете "микропроцессорные устройства" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "микропроцессорные устройства управления" в общих файлах.

Онлайн просмотр документа "CHECK"

Текст из документа "CHECK"

.Program CHECK

C ---------------------------------------------------

C Программа управления роботом РМ-01 для игры в шашки

C ---------------------------------------------------

C Выполняемые фрагменты:

C 1 GO.HOME - выйти в исходное положение

C 2 SET.SPEED - установить скорость движения робота

C 3 TAKE - взять шашку и убрать в коробку

C 4 REPLACE - переставить шашку

C 5 GIVE - взять и передать шашку другому роботу

C 6 PUT - взять шашку у другого робота и поставить

C 7 Exit - выход из программы

C

C Инициализация

CALL INIT

C

GO READY

GO #READY0

GO #SPACE

GO #HOME

OPEN

C

PRINT 'Robot is ready'

C <NULL.> ==> ЭВМ

SET MARKER. = NULL.

CALL TRANSC.

C Ошибка

RETURN

C ------

10 PRINT '$'

C <==> ЭВМ - ожидание команды

CALL SWITCH.

JUMP 101

JUMP 10

C 1 фрагмент

CALL GO.HOME

JUMP 101

JUMP 10

C 2 фрагмент

CALL SET.SPEED

JUMP 101

JUMP 10

C 3 фрагмент

CALL TAKE

JUMP 101

JUMP 10

C 4 фрагмент

CALL REPLACE

JUMP 101

JUMP 10

C 5 фрагмент

CALL GIVE

JUMP 101

JUMP 10

C 6 фрагмент

CALL PUT

JUMP 101

JUMP 10

C 7 фрагмент - выход из программы

GO #SPACE

GO #READY0

GO READY

RETURN

C ------

C

101 CALL ERROR.

JUMP 10

.End

C

C==============================================================

C Рабочие фрагменты C==============================================================

C

.Program GO.HOME

C --------------------------

C 1 Выйти в исходное положение

C --------------------------

C Параметров нет

C

PRINT 'Go home position'

ENABLE INCALLS

OPEN

GO #SPACE

GO #HOME

DISABLE INCALLS

C <NULL.> ==> ЭВМ

SET MARKER. = NULL.

CALL TRANSC.

JUMP 101

C

RETURN 1

C Ошибка

101 RETURN

.End

C

.Program SET.SPEED

C ---------------------------------------

C 2 Установить скорость движения робота (%)

C ---------------------------------------

C Параметр:

C PAR1. - относительная скорость робота (1%-300%)

C

PRINT 'Set speed % ',PAR1.

IF PAR1. < 1 THEN JUMP 102

IF PAR1. > 300 THEN JUMP 102

SET SPEED = PAR1.

SPEED% SPEED

C <NULL.> ==> ЭВМ

SET MARKER. = NULL.

CALL TRANSC.

JUMP 101

C

RETURN 1

C Ошибка в параметре

102 SET ERRORW. = ER1

C <ERRORW.> ==> ЭВМ

SET MARKER. = ERRORW.

CALL TRANSC.

JUMP 101

C Ошибка

101 RETURN

.End

C

.Program TAKE

C ------------------------------

C 3 Взять шашку и убрать в коробку

C ------------------------------

C Параметры:

C PAR1. - номер позиции X на доске (1-8)

C PAR2. - номер позиции Y на доске (1-8)

C

PRINT 'Take off checker'

PRINT PAR1.

PRINT PAR2.

C

SET PAR1 = PAR1.

SET PAR2 = PAR2.

C Вычислить координаты шашки

CALL POS.XY

JUMP 102

C Взять шашку

ENABLE INCALLS

GO #WAIT

OPEN

C Ожидание освобождения рабочей зоны

WAIT IN I.WORK.N

C Занять рабочую зону

OUT O.WORK.Y

C

GO #WORK

GONEAR POS,30

SPEED% 100

SPEED NEXT 50

GOS POS

CLOSE

SPEED% SPEED

GOSNEAR POS,30

GO #WORK

GO #SPACE

C Освободить рабочую зону

OUT O.WORK.N

C

GO #PUT

GONEAR #BOX,100

SPEED% 100

SPEED NEXT 100

GOS #BOX

DELAY 0.5

OPEN

SPEED% SPEED

GOSNEAR #BOX,100

GO #PUT

GO #SPACE

GO #HOME

DISABLE INCALLS

C <NULL.> ==> ЭВМ

100 SET MARKER. = NULL.

CALL TRANSC.

JUMP 101

C

RETURN 1

C <ERRORW.> ==> ЭВМ

102 SET MARKER. = ERRORW.

CALL TRANSC.

JUMP 101

C Ошибка

101 RETURN

.End

C

.Program REPLACE

C -----------------

C 4 Переставить шашку

C -----------------

C Параметры:

C PAR1. - номер исходной позиции X на доске (1-8)

C PAR2. - номер исходной позиции Y на доске (1-8)

C PAR3. - номер конечной позиции X на доске (1-8)

C PAR4. - номер конечной позиции Y на доске (1-8)

C

PRINT 'Replace chacker'

PRINT PAR1.

PRINT PAR2.

PRINT PAR3.

PRINT PAR4.

C Начальные координаты шашки

SET PAR1 = PAR1.

SET PAR2 = PAR2.

C Вычислить координаты шашки

CALL POS.XY

JUMP 102

C

LOCATE POS1 = POS

C Конечные координаты шашки

SET PAR1 = PAR3.

SET PAR2 = PAR4.

C Вычислить координаты шашки

CALL POS.XY

JUMP 102

C Взять шашку

ENABLE INCALLS

GO #WAIT

OPEN

C Ожидание освобождения рабочей зоны

WAIT IN I.WORK.N

C Занять рабочую зону

OUT O.WORK.Y

C

GO #WORK

GONEAR POS1,30

SPEED% 100

SPEED NEXT 50

GOS POS1

CLOSE

SPEED% SPEED

GOSNEAR POS1,30

C

GONEAR POS,30

SPEED% 100

SPEED NEXT 50

GOS POS

GOSNEAR ,-1

DELAY 0.5

OPEN

SPEED% SPEED

GOSNEAR POS,30

GO #WORK

GO #SPACE

C Освободить рабочую зону

OUT O.WORK.N

C

GO #HOME

DISABLE INCALLS

C <NULL.> ==> ЭВМ

100 SET MARKER. = NULL.

CALL TRANSC.

JUMP 101

C

RETURN 1

C <ERRORW.> ==> ЭВМ

102 SET MARKER. = ERRORW.

CALL TRANSC.

JUMP 101

C Ошибка

101 RETURN

.End

C

.Program GIVE

C -------------------------------------

C 5 Взять и передать шашку другому роботу

C -------------------------------------

C Параметры:

C PAR1. - номер позиции X на доске (1-8)

C PAR2. - номер позиции Y на доске (1-8)

C

PRINT 'Give checker'

PRINT PAR1.

PRINT PAR2.

C

SET PAR1 = PAR1.

SET PAR2 = PAR2.

C Вычислить координаты шашки

CALL POS.XY

JUMP 102

C Взять шашку

ENABLE INCALLS

GO #WAIT

OPEN

C Ожидание освобождения рабочей зоны

WAIT IN I.WORK.N

C Занять рабочую зону

OUT O.WORK.Y

C

GO #WORK

GONEAR POS,30

SPEED% 100

SPEED NEXT 50

GOS POS

CLOSE

SPEED% SPEED

GOSNEAR POS,30

GO #WORK

GO #SPACE

C Освободить рабочую зону

OUT O.WORK.N

C

GO #GIVE

GONEAR #MEET,150

C Ожидание другого робота

WAIT IN I.MEET.Y

C

SPEED% 100

SPEED NEXT 100

GOS #MEET

C Выход в зону встречи

OUT O.MEET.Y

SPEED% SPEED

C Ожидание другого робота

WAIT IN I.MEET.N

C

DELAY 0.5

OPEN

GOSNEAR #MEET,150

C Выход из зоны встречи

OUT O.MEET.N

C

GO #GIVE

GO #SPACE

GO #HOME

DISABLE INCALLS

C <NULL.> ==> ЭВМ

100 SET MARKER. = NULL.

CALL TRANSC.

JUMP 101

C

RETURN 1

C <ERRORW.> ==> ЭВМ

102 SET MARKER. = ERRORW.

CALL TRANSC.

JUMP 101

C Ошибка

101 RETURN

.End

C

.Program PUT

C ----------------------------------------

C 6 Взять шашку у другого робота и поставить

C ----------------------------------------

C Параметры:

C PAR1. - номер позиции X на доске (1-8)

C PAR2. - номер позиции Y на доске (1-8)

C

PRINT 'Take and put checker'

PRINT PAR1.

PRINT PAR2.

C

SET PAR1 = PAR1.

SET PAR2 = PAR2.

C Вычислить координаты шашки

CALL POS.XY

JUMP 102

C

ENABLE INCALLS

GO #SPACE

GO #GIVE

GONEAR #MEET,150

C Выход в зону встречи

OUT O.MEET.Y

OPEN

C Ожидание другого робота

WAIT IN I.MEET.Y

C

SPEED% 100

SPEED NEXT 100

GOS #MEET

CLOSE

SPEED% SPEED

C Схватил шашку

OUT O.MEET.N

C Ожидание другого робота

WAIT IN I.MEET.N

C

GOSNEAR #MEET,150

GO #GIVE

GO #SPACE

C Положить шашку

GO #WAIT

C Ожидание освобождения рабочей зоны

WAIT IN I.WORK.N

C Занять рабочую зону

OUT O.WORK.Y

C

GO #WORK

GONEAR POS,30

SPEED% 100

SPEED NEXT 50

GOS POS

GOSNEAR ,-1

DELAY 0.5

OPEN

SPEED% SPEED

GOSNEAR POS,30

GO #WORK

GO #SPACE

C Освободить рабочую зону

OUT O.WORK.N

C

GO #HOME

DISABLE INCALLS

C <NULL.> ==> ЭВМ

100 SET MARKER. = NULL.

CALL TRANSC.

JUMP 101

C

RETURN 1

C <ERRORW.> ==> ЭВМ

102 SET MARKER. = ERRORW.

CALL TRANSC.

JUMP 101

C Ошибка

101 RETURN

.End

C C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ C Подпрограммы C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ C C============================================================== .Program POS.XY

C --------------------------

C Вычислить координаты шашки

C --------------------------

C Параметры:

C PAR1 - номер позиции X на доске (1-8)

C PAR2 - номер позиции Y на доске (1-8)

C

IF PAR1 < 1 THEN JUMP 102

IF PAR1 > 8 THEN JUMP 102

C

IF PAR2 < 1 THEN JUMP 102

IF PAR2 > 8 THEN JUMP 102

C

LOCATE CIJ = C00

C

10 IF PAR1 <= 1 THEN JUMP 20

SHIFT CIJ = 34.5

SET PAR1 = PAR1 - 1

JUMP 10

C

20 IF PAR2 <= 1 THEN JUMP 30

SHIFT CIJ = ,34.5

SET PAR2 = PAR2 - 1

JUMP 20

C

30 LOCATE POS = CHECK(CIJ)

RETURN 1

C

102 SET ERRORW. = ER1

C Ошибка в параметрах

101 RETURN

.End

C C############################################################## .Program ALARM

C ----------------------------

C Прерывание по датчику аварии

C ----------------------------

C

PRINT 'ALARM'

C

WAIT IN I.ALARM.N

C

STOP 'Continue ?'

C

ENABLE INCALLS

RETURN

.End C############################################################## C C============================================================== .Program INIT

C ------------------------------------

C Инициализация программы игры в шашки

C ------------------------------------

C

C Инициализация последовательного порта

CALL INID2.

C

C************ Технологические входы / выходы **************** C

OUTGROUP 1 = 0

OUTGROUP 2 = 0

C

C--------------------------- Входы ---------------------------- C Авария

C да

SET I.ALARM.Y = 15

C нет

SET I.ALARM.N = -15

C Рабочая зона

C занята

SET I.WORK.Y = 14

C свободна

SET I.WORK.N = -14

C Ожидание другого робота

C 1

SET I.MEET.Y = 13

C 0

SET I.MEET.N = -13

C

C--------------------------- Выходы --------------------------- C Рабочая зона

C занять

SET O.WORK.Y = 14

C освободить

SET O.WORK.N = -14

C Сигналы другому роботу

C 1

SET O.MEET.Y = 13

C 0

SET O.MEET.N = -13

C C************************************************************** C

SPEED 166

ODELAY 1

CDELAY 1

TOOL

FRAME CHECK = O,X,Y

C

C*************************** Ошибки ************************* C Неверный параметр (A)

SET ER1 = 65

C

C************************* Переменные *********************** C

C Временные: PAR1, PAR2,

C Число фрагментов

SET MAX.FR. = 7

C Текущая относительная скорость робота

SET SPEED = 200

SPEED% SPEED

C

INCALL I.ALARM.Y, ALARM

RETURN

C ------

C

C************************* Положения ************************ C Обучаемые:

C #READY0 - начальное положение после READY

C #SPACE - переходное положение

C #HOME - исходное положение

C #BOX - коробка для шашек

C O - начало системы координат доски

C X - ось X доски

C Y - ось Y доски

C #PUT - положение над стержнями

C #WAIT - положение у рабочей зоны

C #WORK - положение над доской

C #MEET - положение для передачи шашки

C #GIVE - исходное положение для передачи шашки

C C00 - первая шашка в системе координат доски

C Вычисляемые:

C CHECK, CIJ, POS, POS1

.End

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее