3.5 Программа

.include "m8def.inc"

;***** Register used by all programs

.def temp =r16 ;general scratch space

.def status =r17

.def d1 =r18 ;registers for delay routines

.def d2 =r19

.def resS =r20 ;ADC result for sensor

.def resIA =r21 ;ADC result for A-input

.def resID =r22 ;register for D-input

.def pp =r23 ;program input pointer

.def data =r24

.def control=r25

;***Source code**************************************************

.cseg ;CODE segment

.org 0

rjmp reset ;Reset handler

.org ADCCaddr

rjmp ADCRes

reset:

ldi temp,high(RAMEND);Initialize stack pointer

out SPH,temp ;High byte only required if

ldi temp,low(RAMEND);RAM is bigger than 256 Bytes

out SPL,temp

ldi temp,0b11110001

out DDRD,temp ;Set PORTD as output

ldi temp,0b00000001

out PORTD,temp

ldi temp,0b00100101 ;init ADC

out ADMUX,temp

ldi temp,0b10110011

out ADCSRA,temp

sbi ADCSRA,6 ; start AD conversing

ldi temp,0b01111111 ;init PWM

out TCCR2,temp

ldi temp,(1<<PB4) ; Set MISO output, all others input

out DDRB,temp

ldi temp,(1<<SPE) ; Enable SPI

out SPCR,temp

ldi r31,TABLE

sei

main:

cpi status,1

brlo DInput

cpi status,2

brlo AInput

rjmp program

DInput:

rcall SPI_SlaveReceive

mov data,resID

rjmp run

AInput:

mov data,resIA

rjmp run

program:

ld data,Z+

cpi r31,TABLE+10

brne run

ldi r31,TABLE

rjmp run

run:

mov control,resS

sub control,data

brlo set2

set1:

out OCR1,control

rjmp exit

set2:

out OCR2,control

exit:

rcall delay2

rjmp main

ADCRes:

sbis ADMUX,2

rjmp s4

s3:

in resS,ADCH

ldi temp,0b00100011

out ADMUX,temp

reti

s4:

in resIA,ADCH

ldi temp,0b00100100

out ADMUX,temp

reti

SPI_SlaveReceive:

sbis SPSR,SPIF ; Wait for reception complete

rjmp SPI_SlaveReceive

in resID,SPDR ; Read received data and return

ret

;delay routines

delay:

ldi d1,255

loop: dec d1

brne loop

ret

delay2:

ldi d2,196 ;delay=0.1 sec

loop2: rcall delay ;

dec d2 ;

brne loop2 ;

ret

TABLE:

.db 0,0,0,0,0,0,0,0,0,0

4 Практическое применение и техническая эффективность. Акт внедрения

4.1 Практическое применение

Электрогидравлический усилитель мощности типа “сопло-магнитно-жидкостная заслонка” может применяться практически во всех сферах применения гидроусилителей, где требуется усилитель мощности. Огромный коэффициент усиления при малых размерах данного усилителя позволяет применять его в тех сферах, где раньше невозможно было применять усилительную гидротехнику ввиду её довольно больших размеров.

Высокая степень автоматизации позволяет применять электрогидравлический усилитель мощности типа “сопло-магнитножидкостная заслонка” в любых системах автоматики и легко встраивать его в уже существующие системы.

Несколько способов задания входного воздействия позволяет выбрать оптимальный способ управления – управление аналоговым сигналом (рисунок 21), управление от цифрового источника (ЭВМ, цифровая САР более высокого уров-ня – рисунок 22) или даже без внешнего управления – следованием загруженной в микроконтроллер программе.

З – задатчик (потенциометр, сельсин); УУ – аналоговое устройство управления; ЭГУМ – электрогидравлический усилитель мощности; РО – регулируемый орган

Рисунок 21 – Применение ЭГУМ, управляемой аналоговым сигналом

ЭВМ – система регулирования более высокого порядка; И – интерфейсный блок ЭВМ; УС – управляющая схема; П – программа управления; ЭГУМ – электрогидравлический усилитель мощности; РО – регулируемый орган

Рисунок 22 – Применение ЭГУМ, управляемой цифровым сигналом