Отчет МТ11-102(Группа 5) (Примеры старых отчётов)

2017-12-22СтудИзба

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

Файл "Отчет МТ11-102(Группа 5)" внутри архива находится в папке "Примеры старых отчётов". Документ из архива "Примеры старых отчётов", который расположен в категории "". Всё это находится в предмете "системы автоматического управления (сау) (мт-11)" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "системы автоматического управления (сау) (мт-11)" в общих файлах.

Онлайн просмотр документа "Отчет МТ11-102(Группа 5)"

Текст из документа "Отчет МТ11-102(Группа 5)"

МГТУ им. Н.Э.Баумана















Отчёт по лабораторным работам
по курсу
«Системы автоматизированного управления»









Группа: МТ11-102

Выполнили: Арутюнян З.Р.

Березин С.А.

Березина Е.Ю.

Тарасов К.Ю.

Преподаватель: Рябов В.Т.













Москва, 2015 год

Цель лабораторных работ: получить навыки программирования микроконтроллеров на языке программирования «Ассемблер».

Лабораторная работа 1
«НАСТРОЙКА И ИСПОЛЬЗОВАНИЕ ДИСПЕТЧЕРА ПРОЦЕССОВ»



Задача: настроить резидентный таймер на заданный тик, подобрать задержку таймера. Задержка: 2,5 мс

Расчёт и отладка

Таймер считает машинные циклы микроконтроллера, длительность которых определяется подключенным к нему кварцевым резонатором. Частота резонатора составляет 11000кГц. Машинный цикл длится 12 периодов резонатора и составляет 12/11 мкс. За 2,5 мс должно пройти 2500х11/12 = 1100 = 2292 машинных цикла. 65535 - 2292 = 63243 = F70B. Значит, таймер должен считать от числа F70B и в ячейку 24h должно быть записано F7, а в ячейку 25h – 0В. Но это приблизительные значения, их нужно уточнить наилучшим образом экспериментально и здесь нам поможет сам диспетчер процессов вместе с аппаратно-программным эмулятором.

Средства эмулятора позволяют точно следить за временем. Чтобы начальная инициализация диспетчера не влияла на точность расчетов, задаем точку останова по адресу 4Eh. Это адрес перед входом в петлю диспетчера, после чего диспетчер начнет нормально работать. Запустив программу, в точке останова обнуляем счетчик времени эмулятора и снова запустим программу на исполнение. Подождем около минуты и остановим программу. Из окна службы времени считаем значение времени исполнения программы с точностью до микросекунды и определяем «тик» диспетчера:
Тик = Time x 10/DPTR.

Здесь время умножается на 10, так как наш процесс перезапускался через 10 тиков. Многократно повторяя перезапуск, подбираем значение ячейки 25h так, чтобы время тика наилучшим образом соответствовало заданному значению. Необходимо найти значение ячейки, дающее наилучший результат. Данные подбора такого значения приведены ниже.

Номер измерения

1

2

3

4

Число в регистрах таймера


F70B


F71F


F71С


F71В

Реальная задержка, мкс


2519,2


2497,3


2499,7


2501,9

По результатам, представленным в таблице, видно, что наилучший результат под номером 3, где при установке в таймер задержки F71С реальная задержка составляет 2499,7 мкс ­ наиболее близкое значение к заданной задержке в 2500,0 мкс.

Текст программы:

ORG 0

LJMP 2Bh ;-------v dispetcher------------

ORG 0bh

LJMP 0D0h ;-------vector timer-----------

ORG 2bh ;-------dispetcher--------------

MOV SP,#64h

MOV 24h,#0F7h

MOV 25h,#0Bh

MOV TH0,24h

MOV TL0,25h

MOV TMOD,#11h

MOV TCON,#10h

MOV IE,#82h

CLR A

MOV 20h,A

MOV 21h,A

MOV 26h,A

LCALL 0162h

org 4fh

PR0: JNB 21h.0h,PR1

JNB 20h.0h,PR1

CLR 21h.0h

LCALL 149h

JNB 26h.0h,PR0

PR1: JNB 21h.1h,PR2

JNB 20h.1h,PR2

CLR 21h.1h

LCALL 014Ch

JNB 26h.0h,PR0

PR2: JNB 21h.2h,PR3

JNB 20h.2h,PR3

CLR 21h.2h

LCALL 14Fh

JNB 26h.0h,PR0

PR3: JNB 21h.3h,PR4

JNB 20h.3h,PR4

CLR 21h.3h

LCALL 0152h

JNB 26h.0h,PR0

PR4: JNB 21h.4h,PR5

JNB 20h.4h,PR5

CLR 21h.4h

LCALL 0155h

JNB 26h.0h,PR0

PR5: JNB 21h.5h,PR6

JNB 20h.5h,PR6

CLR 21h.5h

LCALL 0158h

JNB 26h.0h,PR0

PR6: JNB 21h.6h,PR7

JNB 20h.6h,PR7

CLR 21h.6h

LCALL 015Bh

JNB 26h.0h,PR0

PR7: JNB 21h.7h,PR0

JNB 20h.7h,PR0

CLR 21h.7h

LCALL 015Eh

JNB 26h.0h,PR0

SJMP PR0

ORG 0D0h ;---------timer--------------

CLR EA

PUSH PSW

PUSH ACC

SETB RS0

MOV TH0,24h

MOV TL0,25h

DJNZ 23h,FL0

DJNZ R0,FH1

SETB 21h.0h

FH1: DJNZ R1,FH2 ;-----macro_tick--------------

SETB 21h.1h

FH2: DJNZ R2,FH3

SETB 21h.2h

FH3: DJNZ R3,FH4

SETB 21h.3h

FH4: DJNZ R4,FH5

SETB 21h.4h

FH5: DJNZ R5,FH6

SETB 21h.5h

FH6: DJNZ R6,FH7

SETB 21h.6h

FH7: DJNZ R7,EHDMT

SETB 21h.7h

EHDMT: SJMP 013Bh ;-------end_mackro_tick--------

FL0: JB 22h.0h,FL1 ;-------micro_tick-------------

DJNZ R0,FL1

SETB 21h.0h

FL1: JB 22h.1h,FL2

DJNZ R1,FL2

SETB 21h.1h

FL2: JB 22h.2h,FL3

DJNZ R2,FL3

SETB 21h.2h

FL3: JB 22h.3h,FL4

DJNZ R3,FL4

SETB 21h.3h

FL4: JB 22h.4h,FL5

DJNZ R4,FL5

SETB 21h.4h

FL5: JB 22h.5h,FL6

DJNZ R5,FL6

SETB 21h.5h

FL6: JB 22h.6h,FL7

DJNZ R6,FL7

SETB 21h.6h

FL7: JB 22h.7h,ENDTM

DJNZ R7,ENDTM

SETB 21h.7h ;----end_mickro_tick-----------

ENDTM: POP ACC

POP PSW

SETB EA

RETI

;--------------------USER PROGRAMM MEMORY----------------------

;------------------------user vectors--------------------------

ORG 149h ;-------name thread0-----------

LJMP TIC25

ORG 14Ch ;-------name thread1-----------

; LJMP NAME1

ORG 14Fh ;-------name thread2-----------

; LJMP NANE2

ORG 152h ;-------name thread3-----------

; LJMP NAME3

ORG 155h ;-------name thread4-----------

; LJMP NAME4

ORG 158h ;-------name thread5-----------

; LJMP NAME5

ORG 15Bh ;-------name thread6-----------

; LJMP NAME6

ORG 15Eh ;-------name thread7-----------

; LJMP NAME7

ORG 162h ;-------name user-start programm

; LJMP START

;----------------------USER PROGRAMM----------------------------

;------------------user start programm--------------------------

START:

MOV DPTR,#0 ;---obnulit' registr------------

CLR 22h.0h ;---sbros registra--------------

MOV 08h,#0Ah ;---vosstanavlivaem zaderzhku---

SETB 20h.0h ;---ustanovka nulevogo processa-

RET ;---vozvrat---------------------

;-----------------------user quants---------------------------

TIC25:

INC DPTR ;----uvelichit' dptr na 1-------

MOV 08h,#0Ah ;---vosstanavlivaem zaderzhku---

RET ;---vozvrat---------------------

;----------------------------------------------

END

Лабораторная работа 2
«ОТЛАДКА ДИСПЕТЧЕРА ПРОЦЕССОВ»



Задача: написать программу "дворник".

Программа "дворник" подразумевает то, что после нажатия на клавиатуре кнопки "пуск" шаговый двигатель должен сделать полный оборот (56 шагов), остановиться и сделать полный оборот в другую сторону. Так цикл повторяется, пока не будет нажата кнопка "стоп". Была изменена подпрограмма "step" программы из методических указаний к лабораторным работам, остальные части программы остались неизменны.

Сама программа проверена и отлажена на шаговом двигателе. Она работает корректно и в полном объёме.

Текст программы:

ORG 0

LJMP 2Bh ;-------v dispetcher------------

ORG 0bh

LJMP 0D0h ;-------vector timer-----------

ORG 2bh ;-------dispetcher--------------

MOV SP,#64h

MOV 24h,#0FCh

MOV 25h,#82h

MOV TH0,24h

MOV TL0,25h

MOV TMOD,#11h

MOV TCON,#10h

MOV IE,#82h

CLR A

MOV 20h,A

MOV 21h,A

MOV 26h,A

LCALL 0162h

org 4fh

PR0: JNB 21h.0h,PR1

JNB 20h.0h,PR1

CLR 21h.0h

LCALL 149h

JNB 26h.0h,PR0

PR1: JNB 21h.1h,PR2

JNB 20h.1h,PR2

CLR 21h.1h

LCALL 014Ch

JNB 26h.0h,PR0

PR2: JNB 21h.2h,PR3

JNB 20h.2h,PR3

CLR 21h.2h

LCALL 14Fh

JNB 26h.0h,PR0

PR3: JNB 21h.3h,PR4

JNB 20h.3h,PR4

CLR 21h.3h

LCALL 0152h

JNB 26h.0h,PR0

PR4: JNB 21h.4h,PR5

JNB 20h.4h,PR5

CLR 21h.4h

LCALL 0155h

JNB 26h.0h,PR0

PR5: JNB 21h.5h,PR6

JNB 20h.5h,PR6

CLR 21h.5h

LCALL 0158h

JNB 26h.0h,PR0

PR6: JNB 21h.6h,PR7

JNB 20h.6h,PR7

CLR 21h.6h

LCALL 015Bh

JNB 26h.0h,PR0

PR7: JNB 21h.7h,PR0

JNB 20h.7h,PR0

CLR 21h.7h

LCALL 015Eh

JNB 26h.0h,PR0

SJMP PR0

ORG 0D0h ;---------timer--------------

CLR EA

PUSH PSW

PUSH ACC

SETB RS0

MOV TH0,24h

MOV TL0,25h

DJNZ 23h,FL0

DJNZ R0,FH1

SETB 21h.0h

FH1: DJNZ R1,FH2 ;-----macro_tick--------------

SETB 21h.1h

FH2: DJNZ R2,FH3

SETB 21h.2h

FH3: DJNZ R3,FH4

SETB 21h.3h

FH4: DJNZ R4,FH5

SETB 21h.4h

FH5: DJNZ R5,FH6

SETB 21h.5h

FH6: DJNZ R6,FH7

SETB 21h.6h

FH7: DJNZ R7,EHT

SETB 21h.7h

EHT: SJMP 013Bh ;-------end_mackro_tick--------

FL0: JB 22h.0h,FL1 ;-------micro_tick-------------

DJNZ R0,FL1

SETB 21h.0h

FL1: JB 22h.1h,FL2

DJNZ R1,FL2

SETB 21h.1h

FL2: JB 22h.2h,FL3

DJNZ R2,FL3

SETB 21h.2h

FL3: JB 22h.3h,FL4

DJNZ R3,FL4

SETB 21h.3h

FL4: JB 22h.4h,FL5

DJNZ R4,FL5

SETB 21h.4h

FL5: JB 22h.5h,FL6

DJNZ R5,FL6

SETB 21h.5h

FL6: JB 22h.6h,FL7

DJNZ R6,FL7

SETB 21h.6h

FL7: JB 22h.7h,ENDTM

DJNZ R7,ENDTM

SETB 21h.7h ;----end_mickro_tick-----------

ENDTM: POP ACC

POP PSW

SETB EA

RETI

;--------------------USER PROGRAMM MEMORY----------------------

ORG 149h ;-------name thread0-----------

LJMP STEP

ORG 14Ch ;-------name thread1-----------

LJMP KLAV

ORG 14Fh ;-------name thread2-----------

; LJMP NANE2

ORG 152h ;-------name thread3-----------

; LJMP NAME3

ORG 155h ;-------name thread4-----------

; LJMP NAME4

ORG 158h ;-------name thread5-----------

; LJMP NAME5

ORG 15Bh ;-------name thread6-----------

; LJMP NAME6

ORG 15Eh ;-------name thread7-----------

; LJMP NAME7

ORG 162h ;-------name user-start programm

LJMP START

;----------------------USER PROGRAMM----------------------------

;------------------user start programm--------------------------

START: MOV R3,#0Ch ;00001100 в ФАЗУ

MOV R2,#0Ah ;00001010 в МАСКУ

CLR 20h.0h ;снять статус кванта STEP

MOV P1,R3 ;фазу в порт

MOV R1,#20h ;задержка кванта STEP 32 тика

MOV 08h,R1 ;переписать ее в регистр задержек кванта STEP

MOV 23h,#0FFh ;задержка кванта STEP

SETB 20h.1h ;установить статус кванта KLAV

MOV 09h,#80h ;записать 128 в регистр задержек кванта KLAV

MOV 28h,#0FFh ;можно не делать

MOV 22h,#00 ;все задержки в микротиках

MOV 30h,#38h ;загрузить в 30 ячейку константу 56

RET ;возврат из ПП

;-----------------------Step_SM---------------------------

STEP:

CLR A ;очистить аккумулятор

ORL A,P1 ;фазу в аккумулятор

XRL A,R2 ;исключающее или фазы и маски

MOV P1,A ;результат в порт

XRL 02h,#0Fh ;исключающее или и маски и 0Fh

MOV 08h,R1 ;установить задержку кванту из R1

MOV R3,A ;новую фазу в R3

DJNZ 30h,M00 ;вычесть из счетчика шагов 1 и в М00, если не 0

MOV 30h,#38h ;загрузить в 30 ячейку константу 56

XRL 02,#0Fh ;реверс

M00: RET ;возврат из пп

;------------------------KLAV--------------------------

KLAV: ORL P1,#0F0h

;-------------------------p1.7-----------------

P1_7: JB P1.7,N_P1_7

JNB 28h.7h,P1_6

LCALL PUSK_STOP

INV7: CPL 28h.7h

SJMP P1_6

N_P1_7: JB 28h.7h,P1_6

SJMP INV7

;------------------------p1.6-------------------

P1_6: JB P1.6,N_P1_6

JNB 28h.6h,P1_5

LCALL REVERS

INV6: CPL 28h.6h

SJMP P1_5

N_P1_6: JB 28h.6h,P1_5

SJMP INV6

;------------------------p1.5-------------------

P1_5: JB P1.5,P1_4

LCALL FASTER

;------------------------p1.4-------------------

P1_4: JB P1.4,EKL

LCALL SLOWLY

EKL: RET

;-----------------------------------------------

PUSK_STOP:

CPL 20h.0h

MOV P1,#0F0h

JNB 20h.0h,ENDPS

MOV P1,R3

ENDPS: RET

;-----------------------------------------------

REVERS:

XRL 02,#0Fh

RET

;-----------------------------------------------

SLOWLY:

INC R1

RET

;----------------------------------------------

FASTER:

DEC R1

RET

;----------------------------------------------

END

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