Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SCORPIO / DIPLOM / ECONOM / DIPLOM! / PRIL

.DOC
Скачиваний:
23
Добавлен:
16.04.2013
Размер:
219.14 Кб
Скачать

JMP VVV

M5: CPI 05

JNZ M6

LXI H,0F800H

JMP VVV

M6: CPI 06

JNZ M7

LXI H,0FC00H

JMP VVV

M7: CPI 07

JNZ M8

LXI H,0FE00H

JMP VVV

M8: CPI 08

JNZ M9

LXI H,0FF00H

JMP VVV

M9: CPI 09

JNZ M10

LXI H,0FF80H

JMP VVV

M10: CPI 10

JNZ M11

LXI H,0FFC0H

JMP VVV

M11: CPI 11

JNZ M12

LXI H,0FFE0H

JMP VVV

M12: CPI 12

JNZ M13

LXI H,0FFF0H

JMP VVV

M13: CPI 13

JNZ M14

LXI H,0FFF8H

JMP VVV

M14: CPI 14

JNZ M15

LXI H,0FFFCH

JMP VVV

M15: CPI 15

JNZ M16

LXI H,0FFFEH

JMP VVV

M16: LXI H,0FFFFH

JMP VVV

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

VAR1: LDA IND

CPI 00

JNZ P1

LXI H,0000H

JMP VVV

P1: CPI 01

JNZ P2

LXI H,0001H

JMP VVV

P2: CPI 02

JNZ P3

LXI H,0003H

JMP VVV

P3: CPI 03

JNZ P4

LXI H,0007H

JMP VVV

P4: CPI 04

JNZ P5

LXI H,000FH

JMP VVV

P5: CPI 05

JNZ P6

LXI H,001FH

JMP VVV

P6: CPI 06

JNZ P7

LXI H,003FH

JMP VVV

P7: CPI 07

JNZ P8

LXI H,007FH

JMP VVV

P8: CPI 08

JNZ P9

LXI H,00FFH

JMP VVV

P9: CPI 09

JNZ P10

LXI H,01FFH

JMP VVV

P10: CPI 10

JNZ P11

LXI H,03FFH

JMP VVV

P11: CPI 11

JNZ P12

LXI H,07FFH

JMP VVV

P12: CPI 12

JNZ P13

LXI H,0FFFH

JMP VVV

P13: CPI 13

JNZ P14

LXI H,1FFFH

JMP VVV

P14: CPI 14

JNZ P15

LXI H,3FFFH

JMP VVV

P15: CPI 15

JNZ P16

LXI H,7FFFH

JMP VVV

P16: LXI H,0FFFFH

VVV: SHLD DMBRD ;ЗАПИСЬ УПРАВЛЕНИЯ В ДУБЛЬ MBR

REV1: RET

;**********************************************************

END

Приложение 2.

;ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

;КОНТРОЛЛЕРА-КОМПЕНСАТОРА

;РЕАКТИВНОЙ МОЩНОСТИ

;

;************** ПЗУ НАСТРОЙКИ КОНТРОЛЛЕРА **********

;* УСТАНОВКА МИНИМАЛЬНОГО ТОКА И ИЗМЕРЕНИЕ УГЛА ФИ *

;******** ЗАПЛАНИРОВАННЫЙ СДВИГ ФИ - 0 *************

;

;!!!!!!!!!!!! 1 Градус = 10 дискрет !!!!!!!!!

;

;Адреса составных частей ПО

ROM EQU 0000H ;НАЧАЛО ПЗУ

RAM: EQU 7800H ;НАЧАЛО ОЗУ

STACK: EQU 7FFFH ;ВЕРШИНА СТЕКА

; ПРОСТО КОНСТАНТЫ

LONG: EQU 254 ;ДЛИНА МАССИВОВ A,B,C В БАЙТАХ

LONGW: EQU 127 ;ЧИСЛО ЭЛЕМЕНТОВ МАССИВОВ A,B,C

APRED: EQU 1700 ;ЧИСЛО ИМПУЛЬСОВ ПРИ ПРЕД.НАПРЯЖ.

;====================================================

;============ ПОРТЫ ================

;====================================================

;ТАЙМЕР 1 К580ВИ53

ST1Z0: EQU 4800H ;СЧЕТЧИК А ИМПУЛЬСА НАПРЯЖЕНИЯ U

ST1Z1: EQU 4801H ;СЧЕТЧИК В ИМПУЛЬСА ТОКА I

ST1Z2: EQU 4802H ;СЧЕТЧИК С ИМПУЛЬСА ПЕРВОЙ СТУПЕНИ

RUST1: EQU 4803H ;РЕГИСТР УПР. СЛОВА

;ТАЙМЕР 2 К580ВИ53

ST2Z0: EQU 5000H ;ЗАПРОС ПРЕРЫВАНИЯ TRAP МИКРОПРОЦЕССОРА

ST2Z1: EQU 5001H ;СИНХРОНИЗАЦИЯ СЧЕТЧИКОВ A,B,C 180 КГЦ

ST2Z2: EQU 5002H ;СИНХРОНИЗАЦИЯ RS-232C 9.6 КГЦ

RUST2: EQU 5003H ;РЕГИСТР УПР. СЛОВА

;ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС К580ВВ51 (RS-232)

SARTD: EQU 4000H ;РЕГИСТР ДАННЫХ

SARTC: EQU 4001H ;РЕГИСТР СОСТ. И УПРАВЛ.

;ПАРАЛЛЕЛЬНЫЙ ИНТЕРФЕЙС К580ВВ55

PRTA: EQU 5800H ;ПОРТ A

PRTB: EQU 5801H ;ПОРТ B

PRTC: EQU 5802H ;ПОРТ C

RUSP: EQU 5803H ;РЕГИСТР УПР. СЛОВА

;PA3-PA0 -КОЭФФИЦИЕНТ ДЛЯ РАСЧЕТА ДИСКРЕТНОСТИ УПРАВЛЕНИЯ

;PA7-PA4 -КОЭФФИЦИЕНТ ДЛЯ РАСЧЕТА ЗАДАНИЯ ФИ

;PB3-PB0 -КОЭФФИЦИЕНТ ДЛЯ РАСЧЕТА НЕЧУВСТВИТЕЛЬНОСТИ

;PB5 -ПОРЯДОК ВКЛЮЧЕНИЯ КОММУТАТОРОВ

;PB6 -РАЗРЕШЕНИЕ ПЕРЕДАЧИ ВИДЕОБУФЕРА

;PB7 -ЗНАК ЗАДАНИЯ ФИ

;PC3-PC0 -ВЫХОД НА ДЕШИФРАТОР ИНДИКАТОРОВ

;PC4 -РАЗРЕШЕНИЕ ДЕШИФРАТОРА

;БУФЕРНЫЕ РЕГИСТРЫ К589ИР12

MBR1: EQU 6000H ;МЛАДШИЕ РАЗРЯДЫ

MBR2: EQU 6800H ;СТАРШИЕ РАЗРЯДЫ

MBRD: EQU 67FFH ;СЛОВО

;=====================================================

;======= РАСПРЕДЕЛЕНИЕ ОПЕРАТИВНОЙ ПАМЯТИ =========

;=====================================================

;ПО ЭТИМ АДРЕСАМ ОЗУ ПОКОЯТСЯ:

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

BUFBIOS: EQU RAM+0 ;БУФЕР BIOS (20 БАЙТОВ)

VIDEO: EQU RAM+20 ;ВИДЕОБУФЕР (20 БАЙТОВ)

BUFER: EQU VIDEO+20 ;БУФЕР ИМПУЛЬСОВ A,B,C (3 СЛОВА)

ASRED: EQU BUFER+6 ;СРЕДНИЕ ЗНАЧЕНИЯ A,B,C (3 СЛОВА)

BSRED: EQU ASRED+2

CSRED: EQU BSRED+2

APUS: EQU CSRED+2 ;ПУСТЫШКА МАССИВА A

ABEG: EQU APUS+2 ;НАЧАЛО МАССИВА A

AEND: EQU APUS+LONG ;КОНЕЦ МАССИВА A

BPUS: EQU AEND+2 ;ПУСТЫШКА МАССИВА B

BBEG: EQU BPUS+2 ;НАЧАЛО МАССИВА B

BEND: EQU BPUS+LONG ;КОНЕЦ МАССИВА B

CPUS: EQU BEND+2 ;ПУСТЫШКА МАССИВА C

CBEG: EQU CPUS+2 ;НАЧАЛО МАССИВА C

CEND: EQU CPUS+LONG ;КОНЕЦ МАССИВА C

;

CNMI: EQU CEND+8 ;СЧЕТЧИК ПРЕРЫВАНИЙ TRAP (БАЙТ)

DISKU: EQU CEND+9 ;ДИСКРЕТНОСТЬ УПРАВЛЕНИЯ (СЛОВО)

NECH: EQU CEND+11 ;НЕЧУВСТВИТЕЛЬНОСТЬ УПРАВЛЕНИЯ (СЛОВО)

ZADF: EQU CEND+13 ;ЗАДАНИЕ ФИ В ДОП. КОДЕ (СЛОВО)

CINT: EQU CEND+15 ;СЧЕТЧИК ПРЕРЫВАНИЙ RST7.5(СЛОВО)

UPR: EQU CEND+17 ;ПРИЗНАК УПРАВЛЕНИЯ:0-НИЧЕГО,1-ВКЛ,2-ВЫКЛ (БАЙТ)

FA: EQU CEND+18 ;ЗНАЧЕНИЕ F(A) (СЛОВО)

FB: EQU CEND+20 ;ЗНАЧЕНИЕ F(B) (СЛОВО)

FI: EQU CEND+22 ;УГОЛ ФИ В ДОП. КОДЕ (СЛОВО)

DFI: EQU CEND+24 ;РАССОГЛАСОВАНИЕ ФИ В ДОП. КОДЕ (СЛОВО)

IND: EQU CEND+26 ;КОД УПРАВЛЕНИЯ (БАЙТ)

DPRTB: EQU CEND+27 ;ДУБЛЬ ПОРТА B (БАЙТ)

DPRTA: EQU CEND+28 ;ДУБЛЬ ПОРТА A (БАЙТ)

DMBRD: EQU CEND+29 ;ДУБЛЬ РЕГИСТРОВ MBR1 И MBR2 (СЛОВО)

TOK: EQU CEND+31 ;ТЕКУЩИЙ ТОК В ДОПОЛНИТЕЛЬНОМ КОДЕ (СЛОВО)

FIK: EQU CEND+33 ;УГОЛ ФИ В ДОПОЛНИТЕЛЬНОМ КОДЕ

;

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;$ ОБЛАСТЬ ВЕКТОРОВ ПРЕРЫВАНИЙ $

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

ORG ROM

JMP BEGIN

DS 21H

JMP TRAP ;ADDR 0024H TRAP

DS 5H

RET ;ADDR 002CH RST 5.5

DS 7H

RET ;ADDR 0034H RST 6.5

DS 7H

JMP RST75 ;ADDR 003CH RST 7.5

DS 30H

;===============================================

;********** JMP П/П BIOS *************

;===============================================

ZY88B: JMP Y88B ;

ZY24A: JMP Y24A ;

ZY32B: JMP Y32B ;

ZDOPB: JMP DOPB ;

ZDOPD: JMP DOPD ;

ZDOPH: JMP DOPH ;

ZD32A: JMP D32A ;

ZSLOW: JMP SLOW ;

ZUSTB: JMP USTB ;

ZDEBI: JMP DEBI ;

ZRSB: JMP RSB ;

ZRSW: JMP RSW ;

ZMASS: JMP MASS ;

ZSRED: JMP SRED ;

ZD16: JMP D16 ;

ZFUNC: JMP FUNC ;

ZGRAN: JMP GRAN ;

ZCOD: JMP COD ;

;****************************************************

;* ОБЛАСТЬ КОНСТАНТ *

;****************************************************

STEPU: DW 30 ;ШАГ ДЛЯ РАСЧЕТА ДИСКР.УПРАВЛЕНИЯ 30 секунд

STEPN: DW 20 ;ШАГ ДЛЯ РАСЧЕТА НЕЧУВСТВ.УПРАВЛЕНИЯ 1 град

STEPZ: DW 20 ;ШАГ ДЛЯ РАСЧЕТА ЗАДАНИЯ 1град (10 дискрет)

DISKW: DB 50 ;ДИСКРЕТНОСТЬ ЗАПИСИ ИМПУЛЬСОВ=DISKW/5 СЕК

;ТАБЛИЦА ДЛЯ ОПРЕДЕЛЕНИЯ СМЕЩЕНИЯ ИЗМЕРЯЕМЫХ ИМПУЛЬСОВ ТОКА И

;НАПРЯЖЕНИЯ ПО ИХ ДЛИТЕЛЬНОСТИ В ДИСКРЕТАХ, ВЫЗВАННОГО

;ГИСТЕРЕЗИСОМ ТРИГГЕРА ШМИТТА. ДИАПАЗОН ИЗМЕНЕНИЯ ДЛИТЕЛЬНОСТИ

;ИМПУЛЬСОВ ОТ 700 ДО 1300 ЧЕРЕЗ 10 ДИСКРЕТ. ИТОГО 51 СЛОВА.

TABL: DW 135,131,127,120,116,112,109,105,100,095,090,085

DW 080,078,075,073,070,066,062,059,055,052,050,047

DW 045,043,040,039,037,035,034,032,030,028,027,026

DW 025,024,022,021,020,019,018,017,016,015,014,013

DW 012,011,010,009,008,007,06,05,05,05,05,05,05,05

DW 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5

;==================================================

;**************** П/П BIOS **********************

;==================================================

Y88B:

;###################################################

;ПОДРОГРАММА УМНОЖЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА

;ФОРМАТА 8*8=16.

;МЕТОД УМНОЖЕНИЯ: 8 ЦИКЛОВ СДВИГОВ МНОЖИТЕЛЯ И ТЕКУЩЕЙ

;СУММЫ ЧАСТИЧНЫХ ПРОИЗВЕДЕНИЙ ВЛЕВО.

;ВХОДНЫЕ ПАРАМЕТРЫ: (C)-МНОЖИТЕЛЬ,(E)-МНОЖИМОЕ.ВЫХОДНОЙ

;ПАРАМЕТР: (H,L)-ПРОИЗВЕДЕНИЕ.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ

;СОХРАНЯЮТСЯ (А),(E).

;####################################################

XRA A

MOV H,A

MOV L,A

MOV D,A

ADD C

RZ

XRA A

ADD E

RZ

MOV H,C

MVI B,8 ;СЧЕТЧИК ЦИКЛОВ

;СДВИГ МНОЖИТЕЛЯ И ТЕКУЩЕЙ СУММЫ ЧП ВЛЕВО

Z: DAD H

JNC P ;ЕСЛИ ПАЗРЯД МНОЖИТЕЛЯ=0

;СЛОЖЕНИЕ МНОЖИМОГО С ТЕКУЩЕЙ СУММОЙ ЧП

DAD D

;ПРОВЕРКА КОНЦА ЦИКЛА

P: DCR B

JNZ Z ;ЗАЦИКЛИВАНИЕ

RET

Y24A:

;######################################################

;ПОДПРОГРАММА УМНОЖЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА

;ФОРМАТА 16*8=24 (БЕЗ ПРОВЕРКИ СОМНОЖИТЕЛЕЙ НА НОЛЬ).

;ВХОДНЫЕ ПАРАМЕТРЫ: (А)-МНОЖИТЕЛЬ, (D,E)-МНОЖИМОЕ.ВЫХОД

;НЫЕ ПАРАМЕТРЫ: (A,H,L)-ПРОИЗВЕДЕНИЕ.ИСПОЛЬЗУЮТСЯ ВСЕ

;РЕГИСТРЫ,СОХРАНЯЕТСЯ (D,E)

;######################################################

LXI H,0 ;ОБНУЛЕНИЕ СУММЫ ЧП

LXI B,08 ;(B)=0,(C)- СЧЕТЧИК ЦИКЛОВ

;СДВИГ ТЕКУЩЕЙ СУММЫ ЧП И МНОЖИТЕЛЯ ВЛЕВО

CIKL: DAD H

ADC A

JNC PER ;ЕСЛИ РАЗРЯД МНОЖИТЕЛЯ=0

;СЛОЖЕНИЕ МНОЖИМОГО С ТЕКУЩЕЙ СУММОЙ ЧП

DAD D

ADC B

;ПРОВЕРКА КОНЦА ЦИКЛА

PER: DCR C

JNZ CIKL ;ЗАЦИКЛИВАНИЕ

RET

Y32B:

;#####################################################

;ПОДПРОГРАММА УМНОЖЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА

;ФОРМАТА 16*16=32. ВАРИАНТ Б.

;МЕТОД УМНОЖЕНИЯ: РЕЗУЛЬТАТ 16*16=32 ОПРЕДЕЛЯЕТСЯ КАК

;СУММА ДВУХ СДВИНУТЫХ ОТНОСИТЕЛЬНО ДРУГ ДРУГА ПРОИЗВЕ-

;ДЕНИЙ 16*8=24,ПОЛУЧЕННЫХ УМНОЖЕНИЕМ МНОЖИМОГО СООТВЕТ-

;СТВЕННО НА МЛБ И СТБ МНОЖИТЕЛЯ.

;ВХОДНЫЕ ПАРАМЕТРЫ: (B,C)-МНОЖИТЕЛЬ,(D,E)-МНОЖИМОЕ. ВЫ-

;ХОДНЫЕ ПАРАМЕТРЫ: (B,C,H,L)-ПРОИЗВЕДЕНИЕ.ИСПОЛЬЗУЮТСЯ

;ВСЕ РЕГИСТРЫ.ГЛУБИНА СТЕКА-4.ИСПОЛЬЗУЕТСЯ ПОДРОГРАММА

;*Y24A*.

;#####################################################

;ОБНУЛЕНИЕ ТЕКУЩЕЙ СУММЫ ЧП

XRA A

MOV H,A

MOV L,A

;ПРОВЕРКА МНОЖИМОГО НА 0

ORA D

ORA E

JNZ PER1 ;ЕСЛИ МНОЖИМОЕ НЕ 0

MOV B,A

MOV C,A

RET

;ПРОВЕРКА МНОЖИТЕЛЯ НА 0

PER1: XRA A

ORA B

ORA C

RZ ;ЕСЛИ МНОЖИТЕЛЬ=0

;УМНОЖЕНИЕ МНОЖИМОГО НА МЛБ МНОЖИТЕЛЯ

MOV A,C ;(A)-МЛБ МНОЖИТЕЛЯ

PUSH B ;СОХРАНЕНИЕ МНОЖИТЕЛЯ

CALL ZY24A ;(A,H,L)-ПРОИЗВЕДЕНИЕ 1 (ПР1)

;СОХРАНЕНИЕ ПРОИЗВЕДЕНИЯ 1

XTHL ;СОХРАНЕНИЕ СРБ,МЛБ ПР1

PUSH PSW ;СОХРАНЕНИЕ СТБ ПР1

;УМНОЖЕНИЕ МНОЖИМОГО НА СТБ МНОЖИТЕЛЯ

MOV A,H ;(A)-СТБ МНОЖИТЕЛЯ

CALL Y24A ;(A,H,L)-ПРОИЗВЕДЕНИЕ 2 (ПР2)

;СЛОЖЕНИЕ СДВИНУТЫХ НА 8 РАЗРЯДОВ ПР1 И ПР2

MOV B,A ;(B)-СТБ ПР2

POP PSW ;(A)-СТБ ПР1

ADD H

MOV C,A ;(C)-СУММА СТБ ПР1 И СТБ ПР2

JNC PER2

INR B ;УЧЕТ ПЕРЕНОСА В СТБ

PER2: MOV H,L ;(H)-МЛБ ПР2

MVI L,0

POP D ;(D,E)-СРБ,МЛБ ПР1

DAD D

RNC

INX B ;УЧЕТ ПЕРЕНОСА В СТБ

RET

DOPB:

;###################################################

;ПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ КОДА ЧИСЛА В РЕГИСТРО-

;ВОЙ ПАРЕ (B,C) В ДОПОЛНИТЕЛЬНЫЙ КОД.

;ВХОДНОЙ ПАРАМЕТР: (B,C)-ДВОИЧНЫЙ КОД ЧИСЛА.ВЫХОДНОЙ

;ПАРАМЕТР: (B,C)-ДОПОЛНИТЕЛЬНЫЙ КОД.

;###################################################

PUSH PSW

MOV A,B

CMA

MOV B,A

MOV A,C

CMA

MOV C,A

INX B

POP PSW

RET

DOPD:

;###################################################

;ТО ЖЕ, НО РЕГИСТРОВАЯ ПАРА (D,E)

;###################################################

PUSH PSW

MOV A,D

CMA

MOV D,A

MOV A,E

CMA

MOV E,A

INX D

POP PSW

RET

DOPH:

;###################################################

;ТО ЖЕ, НО ПАРА (H,L)

;###################################################

PUSH PSW

MOV A,H

CMA

MOV H,A

MOV A,L

CMA

MOV L,A

INX H

POP PSW

RET

D32A:

;##################################################

;ПОДПРОГРАММА ДЕЛЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА

;ФОРМАТА 32: 16=(16,16)

;ВХОДНЫЕ ПАРАМЕТРЫ: (H,L,D,E)-ДЕЛИМОЕ,(B,C)-ДЕЛИТЕЛЬ

;ВЫХОДНЫЕ ПАРАМЕТРЫ: (D,E)-ЧАСТНОЕ,(H,L)-ОСТАТОК,CY=0-

;-ПРИЗНАК ПЕРЕПОЛНЕНИЯЧАСТНОГО.ИСПОЛЬЗУЮТСЯ ВСЕ РЕ-

;ГИСТРЫ,ГЛУБИНА СТЕКА-2.ИСПОЛЬЗУЕТСЯ ПОДПРОГРАММА

;*DOPB*

;##################################################

;ПРОВЕРКА ЧАСТНОГО НА ПЕРЕПОЛНЕНИЕ: ЧАСТНОЕ>16 БИТ?

MOV A,L

SUB C

MOV A,H

SBB B

RNC ;ЕСЛИ ПЕРЕПОЛНЕНИЕ,CY=0

;ДОПОЛНЕНИЕ ДЕЛИТЕЛЯ

CALL ZDOPB ;(B,C)-ДОПОЛНИТЕЛЬНЫЙ КОД

XRA A ;(А)=0-СЧЕТЧИК ЦИКЛОВ

;СДВИГ ВЛЕВО ОСТАТКА И ЧАСТНОГО В (H,L,D,E)

ZIKL: DAD H

RAR ;СОХРАНЕНИЕ ПЕРЕНОСА

XCHG

DAD H

XCHG

JNC ER1

INX H ;УЧЕТ ПЕРЕНОСА

;СЛОЖЕНИЕ ОСТАТКА С ДОПОЛНИТЕЛЬНЫМ КОДОМ ДЕЛИТЕЛЯ

ER1: PUSH H ;СОХРАНЕНИЕ ОСТАТКА

DAD B

;ПРОВЕРКА ЗНАКА СУММЫ

JNC ER2 ;ЕСЛИ СУММА < 0

RAL ;ВОССТАНОВЛЕНИЕ ПЕРЕНОСА

ER3: INX D ;РАЗРЯД ЧАСТНОГО=1

INX SP

INX SP ;БАЛАНС СТЕКА

;ПРОВЕРКА КОНЦА ЦИКЛА

ADI 16

JNC ZIKL ;ЗАЦИКЛИВАНИЕ

STC ;CY=1

RET

;ПРОВЕРКА ПЕРЕНОСА ОТ СДВИГА ОСТАТКА

ER2: RAL ;ВОССТАНОВЛЕНИЕ ПЕРЕНОСА

JC ER3

;ВОССТАНОВЛЕНИЕ ОСТАТКА,ПРОВЕРКА КОНЦА ЦИКЛА

POP H

ADI 16

JNC ZIKL ;ЗАЦИКЛИВАНИЕ

STC ;CY=1

RET

SLOW:

;####################################################

;ПЕРЕСЫЛКА СЛОВА. MEM(DE) <- MEM(HL)

;####################################################

USTB: ;*****************************************************

RET

DEBI: ;***************************************************

;* ПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ ДВОИЧНО-ДЕСЯТИЧНОГО *

;* ЧИСЛА В ДВОИЧНОЕ. ВХОДНОЙ ПАРАМЕТР: (А), *

;* ВЫХОДНОЙ ПАРАМЕТР: (А). ВСЕ РЕГИСТРЫ СОХРАНЯЮТСЯ*

;***************************************************

PUSH B

;ВЫДЕЛЕНИЕ СТАРШЕЙ СТЦ И МЛАДШЕЙ МЛЦ ЦИФР ЧИСЛА

MOV B,A

ANI 0FH ;МАСКА НА МЛЦ

MOV C,A

MOV A,B

ANI 0F0H ;МАСКА НА СТЦ

RRC

MOV B,A

;ДВОИЧНОЕ СЛОЖЕНИЕ: СТЦ*(8+2)+МЛЦ

RRC

RRC

ADD B

ADD C

POP B

RET

RSB: ;****************************************************

;* П/П ПЕРЕДАЧИ БАЙТА ЧЕРЕЗ RS-232C *

;* ПЕРЕДАВАЕМЫЙ БАЙТ В РЕГИСТРЕ С *

;****************************************************

PUSH B

PUSH PSW

;ОЖИДАНИЕ ГОТОВНОСТИ КР580ВВ51 К ПЕРЕДАЧЕ БАЙТА

POL: LDA SARTC

;ОЖИДАНИЕ ГОТОВНОСТИ IBM К ПРИЕМУ БАЙТА

RUL: LDA SARTC

ANI 80H ;1000 0000

JZ RUL

;ПЕРЕДАЧА БАЙТА

MOV A,C

STA SARTD

POP PSW

POP B

RET

;*****************************************************

RSW: RET

;*****************************************************

MASS:

;*****************************************************

;* ПЕРЕПИСЬ МАССИВА ПО НОВОМУ АДРЕСУ *

;* B -ПРИЕМНИК, D -ИСТОЧНИК, H -ДЛИНА (В БАЙТАХ) *

;* РЕГИСТРЫ НЕ СОХРАНЯЮТСЯ *

;*****************************************************

LDAX D

STAX B

INX D

INX B

DCX H

MOV A,H

ORA L

JNZ MASS

RET

;****************************************************

SRED: ;* СРЕДНЕЕ ЗНАЧЕНИЕ ЭЛЕМЕНТОВ МАССИВА СЛОВ *

;* BC - ЧИСЛО ЭЛЕМЕНТОВ , HL - НАЧАЛЬНЫЙ АДРЕС, *

;* DE- СРЕДНЕЕ ЗНАЧЕНИЕ *

;****************************************************

;ОЧИСТКА СУММЫ

XRA A

STA BUFBIOS

STA BUFBIOS+1

STA BUFBIOS+2

STA BUFBIOS+3

STA BUFBIOS+4

PUSH B ;ЧИСЛО ЭЛЕМЕНТОВ В СТЕКЕ

MORE: MOV E,M ;ЧТЕНИЕ СЛАГАЕМОГО ЭЛЕМЕНТА МАССИВА

INX H ;И ПРИРАЩЕНИЕ АДРЕСА

MOV D,M

INX H

XCHG

DCX B ;ПРОВЕРКА КОНЦА

MOV A,B

ORA C

JZ DEL ;НА ДЕЛЕНИЕ

;СУММИРОВАНИЕ

XRA A ;ОБНУЛЕНИЕ ПРИЗНАКА (CY)

LDA BUFBIOS

ADD L

STA BUFBIOS

LDA BUFBIOS+1

ADC H

STA BUFBIOS+1

LDA BUFBIOS+2

ACI 0

STA BUFBIOS+2

LDA BUFBIOS+3

ACI 0

STA BUFBIOS+3

XCHG

JMP MORE

;ДЕЛЕНИЕ

DEL: POP B ;ДЕЛИТЕЛЬ В (ВС)

DCX B

LHLD BUFBIOS

XCHG

LHLD BUFBIOS+2 ;ДЕЛИМОЕ В (HLDE)

CALL ZD32A ;ЧАСТНОЕ В (DE)

RET

D16: ;***************************************************

;ПОДПРОГРАММА ДЕЛЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА

;ФОРМАТА 16: 8=(8,8).

;МЕТОД ДЕЛЕНИЯ С ВОССТАНОВЛЕНИЕМ ОСТАТКА.

;ВХОДНЫЕ ПАРАМЕТРЫ: (HL)-ДЕЛИМОЕ, (C)-ДЕЛИТЕЛЬ.ВЫХОД-

;НЫЕ ПАРАМЕТРЫ: (H)-ОСТАТОК,(L)-ЧАСТНОЕ,CY-ПРИЗНАК

;ПЕРЕПОЛНЕНИЯ ЧАСТНОГО.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ,

;КРОМЕ (DE) ; СОХРАНЯЕТСЯ (С).

;ОЦЕНКА: ДЛИНА -28 БАЙТ,ВРЕМЯ НЕ БОЛЕЕ 619 ТАКТОВ

;***************************************************

;ПРОВЕРКА ЧАСТНОГО НА ПЕРЕПОЛНЕНИЕ: ЧАСТНОЕ > 8 БИТ ?

MOV A,H

SUB C

RNC ;ЕСЛИ ПЕРЕПОЛНЕНИЕ, CY=0

MVI B,8 ;СЧЕТЧИК ЦИКЛОВ

;СДВИГ ВЛЕВО ОСТАТКА И ЧАСТНОГО В (HL)

Q9: DAD H

MOV A,H ;(A)- СТБ ОСТАТКА

JC Q1 ;ЕСЛИ ПЕРЕПОЛНЕНИЕ ОСТАТКА

;ВЫЧИТАНИЕ ДЕЛИТЕЛЯ ИЗ ОСТАТКА

SUB C

JNC Q2 ;ЕСЛИ РАЗНОСТЬ > 0

;РАЗНОСТЬ < 0, ВОССТАНОВЛЕНИЕ ОСТАТКА

ADD C

MOV H,A

JMP Q3

;ПЕРЕПОЛНЕНИЕ ОСТАТКА,РАЗРЯД ЧАСТНОГО = 1

Q1: SUB C

Q2: MOV H,A

INX H ;+1 В ЧАСТНОЕ

;ПРОВЕРКА КОНЦА ЦИКЛА

Q3: DCR B

JNZ Q9 ;ЗАЦИКЛИВАНИЕ

STC ;CY=1

RET

;

FUNC: ;***************************************************

;* ВЫЧИСЛЕНИЕ ТАБЛИЧНОЙ ФУНКЦИИ *

;* ВХОДЫ: (HL)-АРГУМЕНТ, (DE)-ПЕРВЫЙ ТАБЛ. АРГУМЕНТ,*

;* (BC)-АДРЕС ТАБЛИЦЫ, (A)-ШАГ АРГУМЕНТА. *

;* ВЫХОД: (HL)-ЗНАЧЕНИЕ ФУНКЦИИ *

;***************************************************

;НАЧАЛЬНЫЕ УСТАНОВКИ

PUSH B ;АДРЕС ТАБЛИЦЫ В СТЕКЕ

MOV C,A ;ШАГ АРГУМЕНТА В (C)

;ОПРЕДЕЛЕНИЕ АДРЕСА ЗНАЧЕНИЯ ФУНКЦИИ

CALL ZDOPD

DAD D ;(HL)=(HL)-(DE)

CALL ZD16

MVI H,0 ;В (HL) ИНДЕКС

DAD H ;УДВОЕНИЕ ИНДЕКСА

POP B ;В (BC) АДРЕС ТАБЛИЦЫ

DAD B ;В (HL) АДРЕС ЗНАЧЕНИЯ

;ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЯ ФУНКЦИИ

MOV E,M

INX H

MOV D,M

XCHG ;В (HL) ЗНАЧЕНИЕ ФУНКЦИИ

RET

GRAN: ;*************************************************

;* ВВЕДЕНИЕ АРГУМЕНТА В ГРАНИЦЫ *

;*ВХОДЫ: (HL)-АРГУМЕНТ,(DE)-МАКСИМУМ,(BC)-МИНИМУМ*

;*ВЫХОД: (HL)-АРГУМЕНТ В ГРАНИЦАХ *

;*************************************************

SHLD BUFBIOS

CALL ZDOPH

DAD D ;MAX-ARG

XRA A

MOV A,H

RAL

JNC DUNA ;ПРОВЕРЯЕМ ДАЛЬШЕ

MOV H,D

MOV L,E ;(HL)=MAX

JMP SESE

DUNA: LHLD BUFBIOS

CALL ZDOPH

DAD B ;MIN-ARG

XRA A

MOV A,H

RAL

JC NICH

MOV H,B

MOV L,C ;(HL)=MIN

JMP SESE

NICH: LHLD BUFBIOS

SESE: RET

COD: ;***************************************************

;* П/П ПЕРЕКОДИРОВКИ КОДА ДЛЯ ВЫВОДА НА ИНДИКАТОРЫ *

;* ВХОД: ЧИСЛО ОТ 0 ДО 16 В РЕГИСТРЕ А *

;* ВЫХОД: КОД СИМВОЛА ДЛЯ ВЫВОДА НА ИНДИКАТОРЫ В *

;* РЕГИСТРЕ А *

;***************************************************

PUSH H

PUSH D

LXI H,BCOD ;АДРЕС ТАБЛИЦЫ КОДОВ В HL

MVI D,0

MOV E,A

DAD D

MOV A,M

POP D

POP H

RET

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

;ТАБЛИЦА КОДОВ ОТ 0 ДО 16

BCOD: DB 10H,0,1,2,3,4,6,9,11,5,7,8,10,13,14,15,12

;************************************************

;

;<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>

;<<<<< Н А Ч А Л О П Р О Г Р А М М Ы >>>>>>

;<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>

BEGIN: DI

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

;УСТАНОВКА СТЕКА

LXI SP,STACK

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

;ОЧИСТКА ОЗУ

LXI H,RAM ;НАЧАЛО

LXI D,STACK-100 ;КОНЕЦ

CALL ZDOPH

DAD D

LXI D,RAM

XCHG

MVI B,0

Q: MOV M,B

INX H

DCX D

MOV A,E

ORA D

JNZ Q

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

;УСТАНОВКА БАЙТА СИНХРОНИЗАЦИИ НАЧАЛА СТРОКИ НА

;МОНИТОРЕ IBM

MVI A,55H

STA VIDEO

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

;ПРОГРАММИРОВАНИЕ ППИ К580ВВ55

MVI A,92H ;1001 0010

STA RUSP ;PA,PB - ВВОД ; PC - ВЫВОД

MVI A,10H ;ПОГАСИЛ ИНДИКАТОР

STA PRTC

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

;ПРОГРАММИРОВАНИЕ ТАЙМЕРА 1

MVI A,34H ;0011 0100, РЕЖИМ 2, СЧЕТЧИК 0

STA RUST1

MVI A,0FFH

STA ST1Z0 ;МЛ. БАЙТ

STA ST1Z0 ;СТ. БАЙТ

;

MVI A,74H ;0111 0100, РЕЖИМ 2, СЧЕТЧИК 1

STA RUST1

MVI A,0FFH

STA ST1Z1 ;МЛ. БАЙТ

STA ST1Z1 ;СТ. БАЙТ

;

MVI A,0B4H ;1011 0100, РЕЖИМ 2, СЧЕТЧИК 2

STA RUST1

MVI A,0FFH

STA ST1Z2 ;МЛ. БАЙТ

STA ST1Z2 ;СТ. БАЙТ

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

;ПРОГРАММИРОВАНИЕ ТАЙМЕРА 2

MVI A,34H ;0011 0100, РЕЖИМ 2, СЧЕТЧИК 0

STA RUST2 ;RST7.5 1ГЦ ИЗ TRAP 50ГЦ

MVI A,5

STA ST2Z0 ;МЛ. БАЙТ

MVI A,0

STA ST2Z0 ;СТ. БАЙТ

;

MVI A,74H ;0111 0100, РЕЖИМ 2, СЧЕТЧИК 1

STA RUST2 ;СИНХРОНИЗАЦИЯ A,B,C 180 КГЦ

MVI A,6

STA ST2Z1 ;МЛ. БАЙТ

MVI A,0

STA ST2Z1 ;СТ. БАЙТ

;

MVI A,0B4H ;1011 0100, РЕЖИМ 2, СЧЕТЧИК 2

STA RUST2 ;RS-232C 9600x16 ГЦ

MVI A,7

STA ST2Z2 ;МЛ. БАЙТ

MVI A,0

STA ST2Z2 ;СТ. БАЙТ

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

;ПРОГРАММИРОВАНИЕ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА

MVI A,0CEH ;1100 1110,ПОСЫЛКА 8 БИТ,2 СТОП-БИТА,

STA SARTC ;9600х16, НЕТ БИТА ПАРИТЕТА

MVI A,1

STA SARTC ;РЕЖИМ ПЕРЕДАЧИ

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

;УСТАНОВКА ДУБЛЕЙ ПОРТОВ

LDA PRTA

STA DPRTA

LDA PRTB

STA DPRTB

MVI A,0

STA IND

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

;ОПРЕДЕЛЕНИЕ ДИСКРЕТНОСТИ УПРАВЛЕНИЯ В СЕКУНДАХ

;от 30 сек до 8 минут (15х30+30 сек)

LDA PRTA ;ПРИ КОЭФ.=0 DISKU=STEPU

ANI 0FH

MOV C,A ;КОЭФФИЦИЕНТ

LHLD STEPU ;ШАГ

MOV E,L

CALL ZY88B

XCHG

LHLD STEPU

DAD D

SHLD DISKU ;ДИСКРЕТНОСТЬ УПРАВЛЕНИЯ

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

;ОПРЕД. ЗАДАНИЯ ФИ от -30град до +30град (15х2град)

LDA PRTA ;ПРИ КОЭФ.=0 ZADF=0

RAR

RAR

RAR

RAR

ANI 0FH

MOV C,A ;КОЭФФИЦИЕНТ

LHLD STEPZ ;ШАГ

MOV E,L

CALL ZY88B

LDA PRTB ;ЗНАК:

ANI 80H ;"0" -ЕМКОСТНОЙ КВАДРАНТ "+"

JNZ VPER ;"1" -ИНДУКТИВНЫЙ КВАДРАНТ "-"

CALL ZDOPH

VPER: SHLD ZADF ;ЗАДАНИЕ В ДОПОЛНИТЕЛЬНОМ КОДЕ

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

;ОПРЕДЕЛЕНИЕ НЕЧУВСТВИТЕЛЬНОСТИ УПРАВЛЕНИЯ

;от 2 град до 32 град (15х2+2 град)

LDA PRTB ;ПРИ КОЭФ.=0 NECH=STEPN

ANI 0FH

MOV C,A ;КОЭФФИЦИЕНТ

LHLD STEPN ;ШАГ

MOV E,L

CALL ZY88B

XCHG

LHLD STEPN

DAD D

SHLD NECH ;НЕЧУВСТВИТЕЛЬНОСТЬ

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

;СБРОС ТРИГГЕРА RST7.5

MVI A,10H ;0001 0000

DB 30H ;КОМАНДА SIM

;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ МИКРОПРОЦЕССОРА

EI

MVI A,18H

DB 30H

BASE: ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;$ ЦИКЛ ОСНОВНОЙ ПРОГРАММЫ, ПРЕРЫВАЕМЫЙ $

;$ ВРЕМЯ ОТ ВРЕМЕНИ ЗАПРОСАМИ TRAP, RST7.5 $

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

JMP BASE

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

;****************************************************

;* ОБРАБОТКА ПРЕРЫВАНИЯ TRAP 20MC *

;****************************************************

TRAP: PUSH PSW

PUSH B

PUSH D

PUSH H

;СЧИТЫВАНИЕ СЧЕТЧИКОВ A,B,C ТАЙМЕРА 1

;ИНВЕРСИЯ И ЗАПИСЬ В БУФЕР

MVI A,04H ;0000 0100

STA RUST1

LDA ST1Z0 ;МЛ. БАЙТ

CMA

MOV L,A

LDA ST1Z0 ;СТ. БАЙТ

CMA

MOV H,A

SHLD BUFER

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

MVI A,44H ;0100 0100

STA RUST1

LDA ST1Z1 ;МЛ. БАЙТ

CMA

MOV L,A

LDA ST1Z1 ;СТ. БАЙТ

CMA

MOV H,A

SHLD BUFER+2

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

MVI A,084H ;1000 0100

STA RUST1

LDA ST1Z2 ;МЛ. БАЙТ

CMA

MOV L,A

LDA ST1Z2 ;СТ. БАЙТ

CMA

MOV H,A

SHLD BUFER+4

;ПРОГРАММИРОВАНИЕ ТАЙМЕРА 1

MVI A,34H ;0011 0100, РЕЖИМ 2, СЧЕТЧИК 0

STA RUST1

MVI A,0FFH

STA ST1Z0 ;МЛ. БАЙТ

STA ST1Z0 ;СТ. БАЙТ

;

MVI A,74H ;0111 0100, РЕЖИМ 2, СЧЕТЧИК 1

STA RUST1

MVI A,0FFH

STA ST1Z1 ;МЛ. БАЙТ

STA ST1Z1 ;СТ. БАЙТ

;

MVI A,0B4H ;1011 0100, РЕЖИМ 2, СЧЕТЧИК 2

STA RUST1

MVI A,0FFH

STA ST1Z2 ;МЛ. БАЙТ

STA ST1Z2 ;СТ. БАЙТ

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

LDA DPRTB

ANI 10H

JZ JJJ

;НАСТРОЙКА ИМПУЛЬСА МИН. ТОКА НА ЗНАЧЕНИЕ 790...810

LHLD BUFER+2

CALL ZDOPH

SHLD TOK

;ПРОВЕРЯЮ ЛЕВУЮ ГРАНИЦУ

LXI D,810

DAD D

MOV A,H

MVI C,1

RAL

JC KRALA

;ПРОВЕРЯЮ ПРАВУЮ ГРАНИЦУ

LHLD TOK

LXI D,790

DAD D

MOV A,H

MVI C,8

RAL

JNC KRALA

;ЦЕНТР

MVI C,4

KRALA: MOV A,C

CALL ZCOD

STA PRTC

JJJ: POP H

POP D

POP B

POP PSW

EI

RET

;

;****************************************************

;* ОБРАБОТКА ПРЕРЫВАНИЯ RST7.5 1CЕК *

;****************************************************

RST75: PUSH PSW

PUSH B

PUSH D

PUSH H

MVI A,10H

DB 30H ;СБРОС ТРИГГЕРА RST7.5

CALL WRITE

CALL CONTROL ;ВЫЗОВ CONTROL

POP H

POP D

POP B

POP PSW

EI

RET

;****************************************************

WRITE: ;* ПОДПРОГРАММА ПЕРЕЗАПИСИ ИЗ БУФЕРА В СКОЛЬЗЯЩИЕ *

;* МАССИВЫ A,B,C ФИКСИРОВАННОЙ ДЛИНЫ 127 СЛОВ *

;****************************************************

;СДВИГ МАССИВА ВЛЕВО НА МЕСТО ПУСТЫШКИ

LXI B,APUS ;ПРИЕМНИК

LXI D,ABEG ;ИСТОЧНИК

LXI H,LONG ;ДЛИНА

CALL ZMASS

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

LXI B,BPUS ;ПРИЕМНИК

LXI D,BBEG ;ИСТОЧНИК

LXI H,LONG ;ДЛИНА

CALL ZMASS

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

LXI B,CPUS ;ПРИЕМНИК

LXI D,CBEG ;ИСТОЧНИК

LXI H,LONG ;ДЛИНА

CALL ZMASS

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

;ПЕРЕЗАПИСЬ ИЗ БУФЕРА В МАССИВ

LHLD BUFER

SHLD AEND

LHLD BUFER+2

SHLD BEND

LHLD BUFER+4

SHLD CEND

RET

;****************************************

CONTROL: ;* ПОДПРОГРАММА ИНДИКАЦИИ УГЛА ФИ *

;****************************************

;

;ПРОВЕРКА ЗАПОЛНЕНИЯ МАССИВОВ A,B,C

LHLD APUS

MOV A,L

ORA H

JZ KONEC

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

;УСРЕДНЕНИЕ ЗНАЧЕНИЙ A,B,C

LXI B,LONGW

LXI H,ABEG

CALL ZSRED

XCHG

SHLD ASRED

;---------

LXI B,LONGW

LXI H,BBEG

CALL ZSRED

XCHG

SHLD BSRED

;---------

LXI B,LONGW

LXI H,CBEG

CALL ZSRED

XCHG

SHLD CSRED

;

;==========================================

;ВЫЧИСЛЕНИЕ ФИ В ДИСКРЕТАХ

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

;ОПРЕДЕЛЕНИЕ СМЕЩЕНИЯ F(A)

LHLD ASRED ;АРГУМЕНТ

LXI B,700 ;MIN

LXI D,1300 ;MAX

CALL ZGRAN ;ГРАНИЦЫ

LXI D,700 ;ПЕРВЫЙ ТАБЛИЧНЫЙ АРГУМЕНТ

LXI B,TABL ;АДРЕС ТАБЛИЦЫ

MVI A,10 ;ШАГ АРГУМЕНТА

CALL ZFUNC

SHLD FA

;ОПРЕДЕЛЕНИЕ СМЕЩЕНИЯ F(B)

LHLD BSRED ;АРГУМЕНТ

LXI B,700 ;MIN

LXI D,1300 ;MAX

CALL ZGRAN ;ГРАНИЦЫ

LXI D,700 ;ПЕРВЫЙ ТАБЛИЧНЫЙ АРГУМЕНТ

LXI B,TABL ;АДРЕС ТАБЛИЦЫ

MVI A,10 ;ШАГ АРГУМЕНТА

CALL ZFUNC

SHLD FB

;ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ ФИ=C-(((A-FA)-(B-FB))/2+000)

LHLD ASRED

XCHG

LHLD FA

CALL ZDOPH

DAD D

PUSH H

LHLD BSRED

XCHG

LHLD FB

CALL ZDOPH

DAD D

CALL ZDOPH ;(HL)=-(B-FB)

POP D ;(DE)=A-FA

DAD D ;(HL)=СУММА

XRA A

MOV A,H

RAR

MOV H,A

MOV A,L

RAR

MOV L,A ;(HL)=СУММА/2

LXI D,000 ;ЗАПЛАНИРОВАННЫЙ СДВИГ !!!!!!!!!!!!

DAD D

CALL ZDOPH

XCHG

LHLD CSRED ;В (HL) C

DAD D

SHLD FI ;УГОЛ ФИ В ДОПОЛНИТЕЛЬНОМ КОДЕ

;

;ИНДИКАЦИЯ УГЛА ФИ НА СВЕТОДИОДАХ

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

LDA DPRTB

ANI 10H

JNZ KONEC

;ПРОВЕРКА КВАДРАНТА

LHLD FI

MOV A,H

RAL

JC STUK

MVI A,0 ;НОЛЬ, ЕСЛИ ФИ В ЕМКОСТНОМ КВАДРАНТЕ

STA FIK

JMP ZVER

;Т.К. ФИ В ИНДУКТИВНОМ КВАДРАНТЕ ОТРИЦАТЕЛЬНЫЙ

STUK: CALL ZDOPH

;ДЕЛЮ НА 40 (линейка через 4 градуса!!!!)

MVI C,40

CALL ZD16

MOV A,L

STA FIK

ZVER: ;ВЫВОД НА СВЕТОДИОДЫ

LDA FIK

CALL ZCOD

STA PRTC

KONEC: RET

;**********************************************************

END

Приложение 3.

program new;

{прием по rs-232c сообщений от контроллера­-компенсатора. Сообщение из 18 байтов (синхрослово начала строки + 8 слов данных). Формат 8 бит, 2 стоп-бита, 9600 бод}

uses crt;

var

i,a,b,c:integer;

procedure init;

begin

asm

mov dx,1

mov ax,00e7h

int 14h

mov dx,2f9h

mov al,0

end

end;

function priem:integer;

begin

asm

{проверка клавиатуры}

mov ah,6

mov dl,0ffh

int 21h

jnz @3

{выставил запрос DTR}

mov dx,2fch

mov al,1

out dx,al

{проверка готовности}

mov dx,2fdh

@1:in al,dx

and al,1

jz @1

{снял запрос DTR}

mov dx,2fch

mov al,0

out dx,al

{чтение байта}

mov dx,2f8h

in al,dx

mov ah,0

jmp @4

@3:mov ax,5555

@4:mov @Result,ax

end

end;

begin

Clrscr;

writeln('инициализация');

init;

writeln('принимаю');

while priem<>85 do;

a:=priem;

repeat

for i:=1 to 9 do

begin

a:=priem;b:=priem;c:=b*256+a;

if i<>9 then write(c:8);

if a=5555 then break;

end;

Clrscr;

until a=5555;

end.

Приложение 4.

Плата контроллера. Спецификация.

Обознач.

Наименование

К-во

Примечание

Розетки соединительные

XS1

PC-40-7

1

XS2..S3

PC-28-7

2

XS4

PC-16-7

1

XS5

PC-8-7

1

Вилки внешних разъемов

XP1,XP4

MPH 4-1 12

2

XP2

D-разъем IBM 9pin (мама)

1

XP3

1

VD1.VD4

Диод КД 522Б

4

VS1...VS2

Стабилитрон КС162А

2

V1...V16

Светодиод типа АЛ307АМ прямоуг.

16

Выключатели

Q1,Q2

Выключатель ВДМ1-8

2

Наборы резисторов

DR1..DR3

HP1-4-9-0.125-10кОм 10%

3

Резисторы МЛТ

R1

МЛТ-0.125-3.6 кОм 10%

1

R2

МЛТ-0.125-100 кОм 10%

1

Only!

R3

МЛТ-2-160 кОм 10%

1

R4

МЛТ-2-5.6 кОм 10%

1

R5...R6

МЛТ-0.125-3.6 кОм 10%

2

Only!

R7

МЛТ-0.125-2кОм 10%

1

R8

МЛТ-0.125-24 Ом 10%

1

На РУ10

R9

МЛТ-0.125-330 Ом 10%

1

RH1

МЛТ-0.125-240 Ом 10%

1

ТМ2(2,4,10,13)

RH2

МЛТ-0.125-560 Ом 10%

1

ИР12(12)+ИР12(12)

RH3

МЛТ-0.125-330 Ом 10%

1

ВИ53(11,14,16)

Потенциометр

RP1

СП5-16ВА-0.25ВТ 680 ОМ

(или 1 кОм)

1

Транзисторная оптопара

Т1

АОТ101АС

1

Соседние файлы в папке DIPLOM!