Смекни!
smekni.com

Микропроцессорная система управления предназначенная для использования на лесопильном заводе (стр. 6 из 6)

LDC, L ;

EX DE, HL ;

CALL MINUS ; HL=491H-Ud

EX HL, DE ;

LD H, B ;

LD L, C ;

CALL DIV ; HL= Ud/(491H-Ud)

LD D, 0 ;

LD E, #4F ;

CALL MUL ; HL=a

CALL COS ; HL=cos a

LD D, 0 ;

LD E, #80 ;

CALL MUL ; HL=0,5cos a

LD D, 0 ;

LD E, #A0 ;

EX HL, DE ;

CALL MINUS ; HL=0,625-0,5cos a=d

LD (DIAM), HL ; занести диаметр в память

; формируем сигнал отбраковки

LD A, L ;

CP #33 ;

JR NC, IR1_H5 ; если d>20, то идем дальше

LD A, 1 ; иначе в порт отбраковки записать 1

OUT (#02), A ;

JR IR1_OUT ; и выход, не считая объем

IR1_H5 LDA, L ;

CP #80 ;

JR C, IR1_H6 ; если d<50, то идем дальше

LD A, 1 ; иначе в порт отбраковки записать 1

OUT (#02), A ;

; дальше находим Vi, VS

IR1_H6 LD L, (T1) ;

LD H, (T1+1) ;

LD E, (T2) ;

LD D, (T2+1) ;

CALL DIV ; HL=T1/T2

LD E, (DIAM) ;

LD D, (DIAM+1) ;

PUSH DE ;

CALL MUL ; HL=T1×d/T2

POP DE ;

CALL MUL ; HL=T1×d2/T2

LD D, 0 ;

LD E, #C9 ;

CALL MUL ; HL=(p/4)T1×d2/T2=Vi

EX HL, DE ;

LD L, (V_SUM) ;

LD H, (V_SUM+1) ;

CALL PLUS ; HL=VS

LD (V_SUM), HL ; занести суммарный объем в память

IR1_OUT POP HL ;

POP DE ;

POP BC ;

POP AF ;

RETI ;

Основная исполняемая часть программы

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

Ее функции:

прочесть VS из ячейки V_SUM, перевести его в 2-10 код (подпрограммы B2D, B2D_F), перевести каждую цифру в семисегментный код (подпрограмма D27) и вывести в порт индикаторов (03-0A), присоединив десятичную запятую в индикаторе 06Н;

прочесть время из ячейки TIME (TIME+1–секунды, TIME+2–минуты, TIME+3–часы), перевести его в 2-10 код, перевести каждую цифру в семисегментный код и вывести в порт индикаторов (13-1A), присоединив десятичную запятую в индикаторах 13Н, 15Н, 17Н.

Рис. 7 Расположение объема и времени на индикаторах

Листинг 23: основная часть

; – – – вывести на индикаторы объем и время

; вывод объема

MAIN LD E, (V_SUM) ;

LD D, (V_SUM+1) ; D.E – суммарный объем

; выводим целую часть D

LD C, D ;

CALL B2D ; HL=2-10 код D

LD A, H ;

CALL D27 ; в семисегментный код

OUT (#08), A ; вывести в порт

LD A, H ;

AND #0F ;

CALLD27 ;

OR #80 ; примешать десятичную запятую

OUT (#06), A ; вывести в порт

LDA, H ;

RR A ; четырежды сдвигаем вправо

RR A ;

RR A ;

RR A ;

AND #0F ;

CALL D27 ;

OUT (#07), A ; вывести в порт

; выводим дробную часть E

LDL, E ;

CALL B2D_F ; ABC=три цифры 2-10 кода числа 0.L

CALL D27 ;

OUT (#05), A ; вывестивпорт

LD A, B ;

CALL D27 ;

OUT (#04), A ; вывестивпорт

LD A, C ;

CALL D27 ;

OUT (#03), A ; вывести в порт

; вывод текущего времени

LD HL, (TIME+1) ; HL=адрес секунд

LD B, #13 ; самый правый индикатор

MAIN1 PUSH HL ;

LD A, (HL) ;

LDC, A ;

CALL B2D ; HL=2-10 код секунд/минут/часов (причем Н=0)

LD A, L ;

AND #0F ;

CALLD27 ;

OR #80 ; примешать запятую

OUT (B), A ; вывести в порт

INC B ; следующий индикатор

LDA, L ;

RR A ; четырежды сдвигаем А вправо

RR A ;

RR A ;

RR A ;

AND #0F ;

CALL D27 ;

OUT (B), A ; вывести в порт

INC B ; следующий индикатор

POP HL ;

INC HL ; перейти к следующей ячейке (TIME+2, TIME+3)

LDA, B ;

CP #08 ; проверка конца цикла

JRNZ, MAIN1 ;

JP MAIN ; начинаем все сначала

Общая структура ПЗУ микропроцессорной системы

Наконец, приведем карты ПЗУ и ОЗУ микропроцессорной системы.

ПЗУ

0000 DI
0001 Начало тестовTST_RAMJR 0038
0020 Распределитель обработчиков прерываний0020 JP IR_H00024 JP IR_H10028 JP IR_H2002C JP IR_H30030 JP IR_H40034 JP IR_H5
0038 Продолжение теста ОЗУ (TST_RAM)TST_ROMTST_FELINI_PICINI_VAR
EI
LD SP, #0FFF
Главный цикл программыMAIN
ПодпрограммыE_RAME_ROMPLUSMINUSMULDIVCOS_ACOSB2DB2D_FMUL10D27
ОбработчикиIR_H0IR_H1IR_H2IR_H3IR_H4IR_H5
Область нулей 00000000
0700 Таблица перекодировки
070F 00000000
07FF Последний байт (дополнение контрольной суммы до нуля)

Общая структура ОЗУ микропроцессорной системы. ОЗУ

0800 V_SUM
0802 DIAM
0804 TIME
0808 T1
080A T2
080C D_NUM
080D
0FFF ­ ОБЛАСТЬ СТЕКА ­
1000 Массив напряжений с датчика диаметра(2К)
1FFF Конец ОЗУ

Заключение

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


ПЕРЕЧЕНЬ ЭЛЕМЕНТОВ

Поз. обозн. Наименование Кол. Примечание
DD1 Микросхема Z-80 1
DD2, DD4 Микросхема К155ИР13 2
DD3, DD5 Микросхема К537РУ8 2
DD6 Микросхема К1118ПВ1 1
DD7 Микросхема К546ИР5 1
DD8 Микросхема К155ИД3 1
DD9 Микросхема К541РЕ1 1
DD10 Микросхема К580ВН59А 1
DD11 Микросхема К155ЛД7 1
Rd Резистор МЛТ-5.1К 1
R1, R3 Резистор МЛТ-10К 4
R2, Rдоб Резистор МЛТ-1К 3
R9, R10 Резистор МЛТ-1-13 кОм АТУ ОЖО 467 003 2
R11, R12 Резистор МЛТ-1-510 кОм АТУ ОЖО 467 003 2
R8,R13 – R16 Резистор МЛТ-0.5-1 кОм АТУ ОЖО 467 003
C1, C8, C9 Конденсатор МБМ – 16 В – 0,47 мкФТУ УБО 462 014 7
C6 Конденсатор МБМ – 16 В – 0,1 мкФТУ УБО 462 014 1
C7 Конденсатор МБМ – 16 В – 0,15 мкФТУ УБО 462 014 1
1
2101 420 000 019 ПЭ
Изм Лист № докум. Подп. Дата
Разраб. Молоков Т

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

Перечень элементов
Лит. Лист. Листов
Данилов Д.
Пров. Мокрецов В.

УГТУ – УПИ

РТФ гр. Р–311АКафедра АУТС
Н.Контр. Калинин Н.С
Утв.