Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекций Микоропроцессорные устройства электрообо...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
940.94 Кб
Скачать

Пример подключения аналого-цифрового преобразователя.

Пример подключения трех контроллеров прерываний КР580ВН59 на 22 прерывания.

Получив запрос на прерывание, ведомая микросхема посылает сигнал INT на ведущую. Ведущая выдает сигнал INT (запрос на прерывание) на микропроцессор. Микропроцессор выдает сигнал разрешения на прерывание INT А, по которому ведущая микросхема выдает на ШД команду CALL (вызов подпрограммы) и на шину каскадирования подает номер ведомой микросхемы выдаваемой запрос. Микросхема по второму сигналу INTA выдает на ШДвторой байт команды CALL, а по третьему—третий байт команды CALL.

 

Для 1-й МС: СКИ1 0 0 0 1 0 100-14Н Для 2-ЙМС: СКИ1 00110100=34Н

СКИ2 ОВН СКИ2 ОВН

СКИЗ 11000000=СОН СКИЗ 00000111=07Н

Для 3-й МС:

СКИ1 01010100=54Н

СКИ2 ОВН

СКИЗ 00000110=ОбН

 

I МС: MVI A,14H : 1 управляющее слово в регистр А

OUT 88H : 1 управляющее слово заносится в микросхему

MVI А, ОВН : 2 управляющее слово в регистр А

OUt 89H : 2 управляющее слово заносится в микросхему

MVI А, СОН : З управляющее слово в регистр А

OUT 89H : З управляющее слово заносится в микросхему

II МС: MVI А,34Н : 1управляющее слово в регистр А

OUT 84H : 1 управляющее слово заносится в микросхему

MVI А, ОВН : 2 управляющее слово в регистр А

OUT 85H : 2 управляющее слово заносится в микросхему

MVI А,07Н : З управляющее слово в регистр А

OUT 85H : З управляющее слово заносится в микросхему

Ш МС: MVI A, 54H : 1 управляющее слово в регистр А

OUT 80H : 1 управляющее слово заносится в микросхему

MVI А. ОВН : 2 управляющее слово в регистр А

OUT 81H : 2управлягощее слово заносится в микросхему

MVI A, 06H : З управляющее слово в регистр А

OUT 81H : З управляющее слово заносится в микросхему

 

 

 

Алгоритм работы

Фрагмент программы

 

LXI ,H ADR  

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

MVT А ООН

: откл

OUT 83H

:АЦП  

MVI A, 03H

: вкл регистра 1(DD1)

OUT 83H

:  

IN 80H

:чтение из порта А

MOV M, A

:загрузка в М содержимого регистра А

INX H  

: содержание HL увеличивается на 1 для получения адреса старшего байта  

MVI A, 02H

: откл. регистра 1 (DD2)

OUT 83H

   

MVI A.05H

:вкл. регистра 2 (DDЗ)

OUT 83H

   

IN 80H

: чтение из порта А

MOV M, A

: запоминание в М содержимого регистра А  

MVI A.

: откл. регистра 2 (DD3)

OUT 83H

:

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

Пример подключения цифро-аналогово преобразователя.

 

 

Алгоритм

Фрагмент программы

LXIH ADR MOV А. М OUT ЗОН

: в I HL заносятся адрес мл. бита кода : запись в регистр1 (DD2), младший байт в аккумулятор

MVI A. 01H OUT 83H

: вкл. Регистра 1(DD2)

MVI А. 00Н OUT 83H

: откл. регистра l(DD2)

INX H MOV A,M OUT 80H

: адресе старшего байта : старший байт в аккумулятор : старший байт в порт А

MVI A,03H OUT 83H

: вкл. Регистра 2 (DD3)

MVI A, 02H OUT 83H

:откл. регистра 2 (DD3)

MVI А, 05Н OUT 83H

: запись в ЦАП из : регистра 1, 2 одновременно

MVI A. 04H OUT 83H

:откл. регистров

Спроектировать систему управления перемещением тележки по горизонтальной направляющей длиной L, на основе микропроцессорных БИС. Тележка приводится в движение двигателем постоянного тока параллельного возбуждения, управляемым преобразователем, который обеспечивает плавный разгон и торможение с заданной интенсивностью КИ1 и КИ2 =dn/dt [об/мин за сек] и дальнейшую работу двигателя с постоянной А. Преобразователь управляется постоянным напряжением Uу по закону Uвых=Ку*Uу. Микропроцессорная система управления обеспечивает защиту двигателя от перегрузки по току Imах с выдержкой времени tз и превышения скорости Nmах мгновенно. Программа должна обеспечивать движение в любую сторону.

Длина участка разгона и торможения с КИ1 равна L1, а с КИ2 равна L2. Полный путь L разбивается на участки по параметру В. Датчик скорости выдает сигнал Un. Передаточный коэффициент линейной скорости V через угловую скорость n равен Кn==V/n [м/с/об/мин]. Предусмотреть контроль скорости на участке L1 и включение тормоза в конце пути.

 

Исходные данные: L=400м, L1=20 м; L2=50 м; Ку=11; UУ=±10 B; КИ1=1 об/мин за сек; КИ2=50об/мин; Кn=1 .10-3 м/с/об/мин; IMAX=50 A; tз=0.4 с; NMAX= 2500 об/мин, Un = 0,005 n.

 

Рабочая установка представляет собой тележку, которая совершает движение по прямолинейному участку L.

Тележка приводится в движение двигателем постоянного тока параллельного возбуждения, управляемый преобразователем, который обеспечивает плавный разгон и торможение с заданной интенсивностью КИ1 и КИ2 и дальнейшую работу двигателя с постоянной скоростью. Преобразователь управляется постоянным напряжением Uу по закону Uвых=Ку*Uу.

Длина участка разгона и торможения с КИ1 равна L1 а с КИ2 - L2. Полный путь L разбивается на участки по параметрам L1 - датчики, L2 - время.

Датчики SА3 и SА4 на участке L1 должны срабатывать при прохождении тележки возле них и воздействии наних постоянным магнитом.

Датчики SА1 и SА2 используются для полной остановки тележки.

Расчет параметров движения:

1) al = Kи1 . Kna1 =1 .10-3 м/с2

2) V1-Скорость в конце L1; V1=al .tl = 1.10-3.200=0,2 м/с

3) nl – Частота вращения двигателя в конце пути (L1)  nl=KИl .tl= 1. 200 = 200 об/мин

4) Время перехода участка (t2)

По расчёту: t2 =40.9 с

5) V2= V1+ a2t2 = 0,2+0,05.40,9 = 2,245 м/c

6) n2= nl+KИ2t2= 200+50.40,9 = 2245 об/мин n2-не должно превышать заданное максимальное значение nmax.

7) Рассчитываем длинну участка L3:

L3=L-2L1-2L2=260 м

8) Рассчитываем время движения на третьем участке:

 

 

9) Из уравнения скорости идеального Х.Х.

 

 

 

 

 

 

 

 

10) Iя Rя Рассчитывается для номинального режима

Для большинства машин постоянного тока nH меньше n0 на 5%, поэтому

 

 

11) Примем, что скорость в конце L2 и на L3 номинальная т.е. n2=nH и рассчитаем напряжение на двигателе в конце L2и на L3

 

 

U2= n2EФ + IяRя = 2245 . 0,044+5,5 = 104.28 В

12) Так как для механизма всегда справедливо соотношения

 

 

 

13) U1= n1-СEФ + IяRя = 200.0,044+0,11 = 8,91 В

 

 

14) Строим диаграмму, для этого необходимо полное время движения тележки

 

 

t := 2tl + 2t2+t3=597.613c

15) Определим время дискретизации Δt и ΔU

Промежуток времени через который на ЦАП выводится новое значение напряжения управления. Изменения значения напряжения управления не должно превышать 3% от полного изменения напряжения на участке. Выбирается участок с наибольшим ускорением L2.

(UУl)/tl=0,03/Δt

t2=ΔUy2/Δt; ΔUyl=(Uy2-Uyl)* Δt/t2-tl

Δt=0.03-t2 = 7.227

ΔUyl=UУ1 Δt/t1 =0.029 В

Δuy2=UУ2 Δt/t2 =0.284 В

Определим разрядность ЦАП Uref;= 10 Uy=n*Uref; n=Uyl/Uref

n = ΔUyl/Uref=0.0029

 

Теперь переведем это число в двоичный код:

n=2.927-10-3 n1 =5.854-10-3 n2=0.012 n3=0.023 n4=0.047 n5=0.094 n6=0.187 n7=0.375 n8=0.749 n9=1.499 n10= 2.997

Разрядность ЦАП получаем 10

Выбор датчика скорости

Определение разрядности АЦП

Датчик скорости выбирается из условия: nдc>nmах. В зависимости от этого принимаем датчик скорости или тахометр тока ТМГ-30П возбуждаемый постоянными магнитами. Паспортные данные ТМГ-30П. Р2= 20Вт; V= 230 В;

I = 0,087A; n= 4000об/мин;

 

 

Rn = 2650 0м

По условию выбранный датчик подходит Для определения разрядности АЦП построим характеристику

 

U0=144B; n0=2500 nmin=50 Uirn=5 B Найдем Umin

Umin=U0nmin/n0=2.88 B

Найдем минимальное напряжение на входе АЦП

Uirnmin=UirnUmin/U0=0.1 B

Uirnmin =0.1 Uirnmin1 =0.2 Uirnmin2 =0.4 Uirnmin3 =0.8 Uirnmin4 = 0.6 Uirnmin5 = 1.2 Uirnmin6 == 2.4 Uirnmin7 = 4.8 Uirnmin8 =9.6 Uirnmin9 = 19.2 Uimmin =0.1 Разрядность АЦП получаем 5

 

Таблица прерываний.

IRQO

SAI

подастся "0", на выходе ЦАП ступенчато возрастает напряжение На механический тормоз подастся "1", на выходе ЦАП напряжение исчезает DB -> "0"

IRQI

SA2

На механический тормоз подастся "1", на выходе ЦАП напряжение исчезает DB -> "0" На механический тормоз подается "0", на выходе ЦАП ступенчато возрастает напряжение

IRQ2

SA3

Запускается таймер загружая коэффициент и подается сигнал на СЕ. И изменяем величину напряжения Изменяем величину напряжения производим проверку (т.е сравниваем теоретическое значение с действительным)

IRQ3

SA4

Измеряем величину изменения напряжения, производим проверку Запуск таймера ( подаем сигнал на СЕ, загружаем коэффициент изменяем ДУ

IRQ4

SAI

При поступлении сигнала запускаем таймер на отсчет t3. После отсчета напряжения на "0", включается механический тормоз DC7 -> "1"

IRQ6

CЧ2(OUT1)

Отключается таймер, величину напряжения ди = 0, загружаем новый коэффициент, запускаем таймер

IRQ5

C41(OUT2)

Увеличиваем напряжение на ΔU

IRQ7

RAD

Считываем данные с АЦП

 

 

Программа с помощью которой задается движение тележки веред и назад.

Инициализация системы.

Адрес

код

команда

Комментарий

3E90H

MVI А,90Н

УВВ упр. слово 10010000 (90H)

D383H

OUT 83H

 

3E36H

MVI А,36Н

СЧ 0 упр. слово 00110110 36Н

D387H

OUT 87Н

 

3E20H

MVI A,20H

Загрузка коэффициента N0=20000

200A

D384H

OUT 84H

 

200C

3E4EН

MVI A,4EH

 

200E

D384H

OUT 84H

 

3E74H

MVI A,74H

СЧ 1 упр. слово 01110100(74Н)

D387H

OUT 87Н

 

3EB2H

MVI A,B2H

СЧ 2 упр. слово 10110010(В2Н)

D387H

OUT 87Н

 

3Е12Н

MVI A,12H

КППСКИ1 00010010(12Н)

201A

D388H

OUT 88H

 

201C

3E09H

MVI A,09H

СКИ2 00001001(09Н)

201E

D389H

OUT 89H

 

 

Подпрограмма прерываний КПП.

 

CD0050

CALL конт1

IRQO

 

C9

RET

 

CD0D50

CALL конт2

IRQ 1

090В

C9

RET

 

CD1A50

CALL конт3

 

 

C9

RET

 

 

CD2E50

CALL конт3

IRQ 2

 

C9

RET

 

CD2450

CALL конт4

 

 

C9

RET

 

 

CD3850

CALL конт4

IRQ3

 

 

C9

RET

 

CD5551

CALL защ.

IRQ 4

C9

RET

 

CD

CALL

IRQ 5

092B

C9

RET слог.

 

CD

CALL время2

IRQ 6

C9

RET

 

CD

CALL

IRQ7

093B

C9

RET

 

 

Основная программа (движение вперед).

 

адрес

код

метка

команда

Комментарий

CD4D51

 

CALL

обнул. ячейку содерж. информ. о датчике

CD6A51

прогр1

CALL

откл мех. тормоз f

CD3051

 

CALL

устанавливаем знак "+"

CD050

 

CALL

включаем счетчик 1 на Δt

ЗООС

CD5050

 

CALL

заносим ΔUу1 в регистр

300F

CDA050

 

CALL

заносим кол-во байт числа

CDB050

мук1

CALL

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

CD 1551

 

CALL

вывод на ЦАП

CD1A50

 

CALL

проверка сигнала с датчика SA3

301B

CDED50

прогр2

CALL

включаем счетчик 2 на t2 9

301E

CD5B50

 

CALL

заносим дПу2 в регистр

CDA050

 

CALL

заносим кол-во байт числа

CDB050

мук2

CALL

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

CD1551

 

CALL

вывод на ЦАП

302D'

CDFA50

прогрЗ

CALL

включаем счетчик 2 на t3 ^

CD6650

 

CALL

заносим Δuу3=0 в регистр

CDA050

 

CALL

Заносим кол-во байт числа

CDB050

мукЗ

CALL

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

CD1551

 

CALL

Вывод на ЦАП

303C

 

 

 

 

303F

CD7F50

прогр4

CALL

Заносим (-ΔUу2) в регистр

CDA050

 

CALL

Заносим кол-во байт числа

CDB050

мук4

CALL

Сложение

CD1551

 

CALL

Вывод на ЦАП

304B

CD 2450

 

CALL

Проверка сигнала с датчика SA4

304E

CD7150

прогр5

CALL

Заносим (-ΔUyl)B регистр

CDA050

 

CALL

Заносим кол-во байт числа

CDB050

мук5

CALL

Сложение

CD1551

мук6

CALL

вывод на ЦАП

305A

CD8750

 

CALL

заносим (-AUim) в регистр

305D

CD9250

 

CALL

заносим AUim в регистр

CDOB50

 

CALL

сложение

CD4051

 

CALL

проверка скорости

CD0В50

 

CALL

проверка сигнала с датчика SA2

CD6F51

 

CALL

напряжение исчезает

 

 

Основная программа (движение назад)

 

адрес

код

Метка

Команда

Комментарий

306С

CD4D51

 

CALL

обнул. ячейку содерж. информ. о датчике

306F

CD6A51

Прогр6

CALL

откл мех. тормоз

CD3551

 

CALL

устанавливаем знак "-"

CDE050

 

CALL

включаем счетчик 1 на At

CD7150

 

CALL

заносим –ΔUyl в регистр

307В

CDA050

 

CALL

заносим кол-во байт числа

307В

CDB050

мук4'

CALL

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

CD 1551

 

CALL

вывод на ЦАП

CD2450

 

CALL

проверка сигнала с датчика SA4

CDED50

Прогр7

CALL

включаем счетчик 2 на t2

308A

CD7C50

 

CALL

заносим –ΔUy2 в регистр

308D

CDA050

 

CALL

заносим кол-во байт числа

CDB050

мук2

CALL

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

CD 1551

 

CALL

вывод на ЦАП

 

 

 

 

CDFA50

Прогр8

CALL

включаем счетчик 2 на t3

309C

CD6650

 

CALL

заносим ΔUу3=0 в регистр

309F

CDA050

 

CALL

заносим кол-во байт числа

30A2

CDB050

Мук3

CALL

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

30A5

CD 1551

 

CALL

вывод на ЦАП

30A8

 

 

 

 

30AB

CD5B50

прогр9

CALL

заносим ΔUу2 в регистр

30АЕ

CDA050

 

CALL

заносим кол-во байт числа

30В1

CDB050

мук 1*

CALL

сложение

30В4

CD 1551

 

CALL

вывод на ЦАП

30В7

CD1A50

 

CALL

проверка сигнала с датчика SA3

30ВА

CD5050

Прогр10

CALL

заносим дUу1 в регистр

30BD

CDA050

 

CALL

заносим кол-во байт числа

30С0

CDB050

мук5'

CALL

Сложение

30С3

CD 1551

Мук6

CALL

вывод на ЦАП

30С6

CD8750

 

CALL

заносим (-дUirn) в регистр

30С9

CD9250

 

CALL

заносим дUirn в регистр

30СС

CDB050

 

CALL

Сложение

30CF

CD4051

 

CALL

проверка скорости

30D2

CD0050

 

CALL

проверка сигнала с датчика SA на срабатывание

30D5

CD6F51

 

CALL

напряжение исчезает

30D8

 

HLT

 

 

 

Таблица памяти МП.

 

<HL>

Датчики

 

+дUу1

 

+дUу2

 

040C

дUу3=0

 

-дUу2

 

-дUу1

 

-дUirn

<ВС>

Uy

 

Uirn

 

Подпрограмма проверки сигнала с датчиков.

 

адрес

код

метка

команда

Комментарий

конт1

LXI Н,0400Н

загрузка адреса в HL

ЗА

 

LDAXH

загрузка числа в <А> из <HL>

E601

 

ANI 01Н

лог "и" (маска 01Н)

CC C030

 

CZMyK5"

вызов подпрограммы

CD6551

 

CALL вкл.т.

вызов подпрограммы

500C

C9

 

RET

выход из подпрограммы

500D

конт2

LXI Н,0400Н

 

ЗА

 

LDAXH

 

E601

 

ANI 02H

лог "и" (маска 02H)

CC 5430

 

CZMyK5

 

CD6551

 

CALL вкл.т.

вызов подпрограммы

C9

 

RET

выход из подпрограммы

501A

контЗ

LXI Н,0400Н

 

501D

ЗА

 

LDAXH

 

501E

E604

 

ANI 04H

лог "и" (маска 04H)

CC 1230

 

CZ мyк 1

 

C9

 

RET

выход из подпрограммы

конт4

LXI Н,0400Н

 

 

LDAXH

 

E608

 

ANI 08H

лог "и" (маска 08H)

502A

CC1530

 

CZ мyк 4

 

502D

C9

 

RET

выход из подпрограммы

5052E

контЗ*

LXI Н,0400Н

 

ЗА

 

LDAXH

 

E604

 

ANI 04H

лог "и" (маска 04H)

CCB130

 

CZ мyк 1*

 

C9

 

RET

выход из подпрограммы

конт4'

LXI Н,0400Н

 

503B

ЗА

 

LDAXH

 

503C

E608

 

ANI 08H

лог "и" (маска 08H)

503E

CC 7E30

 

CZ мyк 4'

 

C9

 

RET

выход из подпрограммы

 

Подпрограмма загрузки ΔUу в регистр.

 

адрес

код

метка

команда

Комментарий

напр1

LXI Н,0404Н

загрузка адреса в HL

3E80

 

MVI А,80Н

загрузка младшего байта ΔUу1 в<А>

 

MOV M,A

 

 

INX H

Увеличить адрес на 1 (т.е 0405Н)

3EOO

 

MVI А,00Н

загрузка старшего байта ΔUyl в <А>

 

МОV М,A

 

505A

C9

 

RET

выход из подпрограммы

505B

Напр2

LXI Н,0408Н

загрузка адреса в HL

505E

3EOO

 

MVI А,00Н

загрузка младшего байта ΔUу2 в<А>

 

MOV M,A

 

 

INX H

 

3E04

 

MVI A,04H

загрузка ст байта ΔUy2 в <А>

 

МОV М,A

 

C9

 

RET

выход из подпрограммы

210C04

НапрЗ

LXI H,040CH

загрузка адреса в HL

3EOO

 

MVI А,00Н

загрузка младшего байта ΔUуЗ в<А>

506B

 

МОV М,A

 

506C

 

INX H

 

506D

3EOO

 

MVI A,00H

загрузка старшего байта ΔUуЗ в <А>

506F

 

MOV M,A

 

C9

 

RET

выход из подпрограммы

Напр5

LXI H,0414H

загрузка адреса в HL

3E80

 

MVI А,80Н

загрузка младшего байта (-ΔUyl) в <А>

 

MOV M,A

 

 

INX H

 

3EFF

 

MVI A,FFH

загрузка старшего байта (-ΔUyl)в <А>

507A

 

MOV M,A

 

507В

C9

 

RET

выход из подпрограммы

507C

Напр4

LXI H,0410H

загрузка адреса в HL

507F

3E00

 

MVI A,00H

загрузка младшего байта (-ΔUy2) в <А>

 

МОV М,A

 

 

INX H

 

3EFC

 

MVI A,FCH

загрузка старшего байта (-ΔUy2) в <А>

 

MOV M,A

 

C9

 

RET

выход из подпрограммы

Напр6

LXI H,0418H

загрузка адреса в HL

508A

3E00

 

MVI A,00H

загрузка младшего байта (-Uirn) в <А>

508C

 

MOV M,A

 

508D

 

INX H

 

508E

3EF0

 

MVI A,F0H

загрузка старшего байта (-Uirn) в <А>

 

MOV M,A

 

C9

 

RET

выход из подпрограммы

Ном

LXI B,0504H

загрузка адреса в ВС

3E00

 

MVI A,00H

загрузка младшего байта (Uirn) в <А>

 

MOV M,A

 

 

INX B

 

3E80

 

MVI A,80H

загрузка старшего байта (Uirn) в <А>

509B

 

MOV M,A

 

509C

C9

 

RET

выход из подпрограммы

 

Подпрограмма загрузки числа байтов.

 

адрес

код

метка

Команда

Комментарий

50А0

число

LXI В,0500Н

загрузка адреса в ВС

50А3

1Е02

 

MVI Е,02Н

загрузка числа в регистр Е

50А5

С9

 

RET

выход из подпрограммы

Подпрограмма сложения.

 

адрес

код

Метка

Команда

Комментарий

50ВО

Слог1

MOV D,E

запоминаем количество байт

50В1

С5

 

PUSH В

запоминаем адр. младш, байта 1 слагаемого

50В2

AF

 

XRA A

 

50В3

м1

LDAX B

перенос в <А> младшего байта первого слагаемого

50В4

 

ADC M

сложение содержимого <А> с ячейкой <М>

50В5

ID

 

DCR E

уменьшаем счетчик байт на 1

50В6

CABF50

 

JZM2

условие = 0 то переход на М2

50В9

 

STAX B

запоминаем байт суммы по адресу наход. <ВС>

ЗОВА

 

INX B

увеличиваем на 1 вычисляется адрес

50ВВ

-

INXBH

увеличиваем на 1 следующего байта

50ВС

C3B350

 

JMPM1

безусловный переход на М1

50BF

 

м2

MOV E,A

проверка на переполнение ст. байта, сум в <Е>

50СО

ОА

 

LDAX B

загрузка старшего байта 1 слаг. в<А>

50С1

AE

 

XRA M

искл "или" над <А> и <М>

50С2

 

MOV A,E

перенос в <А> суммы старшего байта

50СЗ

 

STAX B

запоминаем байт суммы по адресу наход. <ВС>

50С4

 

STC CY=1

установить триггер переноса в 1(CY=1)

50C5

FACF50

 

JM M3

<0 то М3

50C8

7E

 

MOV A,M

Загрузка старшего байта 2 слаг. в<А>

50C9

AB

 

XRA E

искл"или" над <А> и <Е>

50CA

 

STC CY=1

установить триггер переноса в 1 (CY=1)

50CB

FACF50

 

JM M4

<0 то М4

50CE

ЗЕ

м3

CMC

(CY=0)

50CF

Cl

м4

POP В

восстановить содерж. регистра <ВС>

50DO

 

 

MOV E,D

из D в Е (восстон. в per Б кол-во байт)

50DI

C9

 

RET

возврат из подпрограммы

 

 

Подпрограмма включения счетчиков на время.

 

адрес

код

метка

Команда

Комментарий

50ЕО

ЗЕ02

время 1

MVI А,02Н

загрузка младшего байта Δt в <А>

50Е2

D385

 

OUT 85Н

 

50Е4

3E2D

 

MVI A,2DH

загрузка старшего байта Δt в <А>

50Е6

D385

 

OUT 85Н

 

50Е8

ЗЕ07

 

MVI A,07H

запуск счетчика 1 (DC3=> "1")

50ЕА

D382

 

OUT 82H

 

50ЕС

C9

 

RET

выход из под программы

50ED

ЗЕ1А

время2

MVI A,IAH

загрузка младшего байта t2 в <А>

50EF

D386

 

OUT 86H

 

50FI

ЗЕ5Е

 

MVI A,5EH

загрузка старшего байта t2 в <А>

50F3

D386

 

OUT 86H

 

50F5

ЗЕ09

 

MVI A,09H

запуск счетчика 2 (DC4=> "1")

50F7

D382

 

OUT 82H

 

50F9

C9

 

RET

выход из под программы

50FA

3E3D

Время3

MVI A,3DH

загрузка младшего байта t3 в <А>

D381

 

OUT 81H

 

ЗБ04

 

MVI A,04H

отключение регистра DD7 (DC2=>0)

512В

D382

 

OUT 82H

 

512D

 

DCX B

уменьшаем адрес ячейки на 1

512E

C9

 

RET

выход из подпрограммы

Подпрограмма учитывающая знак напряжения управления.

 

адрес

код

метка

команда

Комментарий

3Е0В

Знак1

MVI А,0ВН

увеличиваем DC5 в 1 (знак +)

D383

 

OUT 83H

 

C9

 

RET

выход из подпрограммы

 

 

 

 

 

3ЕОА

знак2

MVI А,0АН

увеличиваем DC5 в 0 (знак -)

D383

 

OUT 83H

 

C9

 

RET

выход из подпрограммы

 

Подпрограмма контроля скорости.

 

адрес

код

метка

команда

Комментарий

3E00

контр

MVI A,00H

вывод напряжения с АЦП

D381

 

OUT 81H

из порта В во внешнее устройство

3EF8

 

MVI A,F8H

 

D381

 

OUT 81H

 

 

SUB В

Вычитание <В> из <А>

F4

 

CP MUK5

вызов подпрограммы

514C

FC

 

CM MUK6

 

 

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

адрес

код

метка

команда

Комментарий

514D

обнуление

LXI Н,0400Н

загрузка адреса в <HL>

ЗЕ00

 

MVI А,ООН

перенос нолей в <А>

 

MOV М,А

перенос <А> в <М>

C9

 

RET

выход из подпрограммы

 

Подпрограмма отключения системы, если ток превысил Imax .

адрес

код

метка

команда

Комментарий

защита

LXI Н,0400Н

проверка датчика тока на срабатывание

ЗЕ10

 

MVI А, 10Н

 

515А

P6

 

ORA M

 

515В

 

МОV М,A

 

551С

3E08

 

MVI А,08Н

 

515Е

T383

 

OUT 83H

 

CD0751

 

CALL врсмя4

вызов подпрограммы время4

C9

 

RET

выход из подпрограммы

 

Подпрограмма включения и отключения тормоза.

адрес

код

метка

команда

Комментарий

3E0F

вкл. тормоз

MVI A,0FH

установка DC7=> 1

D382

 

OUT 83Н

 

C9

 

RED

выход из подпрограммы

516А

3E0F

откл. тормоз

MVI А,0ЕН

установка DC7=>0

516С

D382

 

OUT 83H

 

516Е

C9

 

RET

выход из подпрограммы

 

Подпрограмма установления напряжения на «О».

адрес

код

метка

команда

Комментарий

516F

3E03

ноль

MVI А,03Н

установка DC7=> 1 включение DD6

D382

 

OUT 82H

 

3E00

 

MVI А,00Н

вывод нолей во внешнее устройство DD6

D381

 

OUT 81H

с порта В

ЗБ02

 

MVI А,02Н

установка DC 1 =>0 включение DD6

D382

 

OUT 82H

 

517В

3E05

 

MVI А,05Н

установка DC2=> 1 включение DD7

517D

D382

 

OUT82H

 

517F

3E00

 

MVI А,00Н

вывод нолей во внешнее устройство DD7

D381

 

OUT 81H

с порта В

3E04

 

MVI А,04Н

установка DC2->0 отключение DD7

D382

 

OUT 82H

 

C9

 

RET

выход из подпрограммы