Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Текст программы управления моделью крана





 

Procedure delayy(time,dn); процедура реализует задержку, замена

For j=1 To time; стандартной delay()

For g=1 To dn Step 1

y=100

Next g

Next j

EndProcedure

 

Procedure LPT_Inp(Address); процедура получения информации

Value = CallFunction(1, "Inp32", Address); из регистра состояния LPT-порта

ProcedureReturn Value; принятый байт

EndProcedure

 

Procedure kod(nomer); подпрограмма преобразования порядкового

If nomer=0; номера в единицу соответствующего разряда

n=1

EndIf

If nomer=1

n=2

EndIf

If nomer=2

n=4

EndIf

If nomer=3

n=8

EndIf

If nomer=4

n=16

EndIf

If nomer=5

n=32

EndIf

If nomer=6

n=64

EndIf

If nomer=7

n=128

EndIf

ProcedureReturn n

EndProcedure

 

Procedure LPT_Out(Address, Value); процедура записи информации в

CallFunction(1,"Out32", Address, Value); регистр данных LPT-порта

EndProcedure

 

If OpenLibrary(1,"inpout32.dll")=0; Открываем файл inpout32.dll, для использования его функций

MessageRequester("Нет файла!", "Для работы программы требуется файл"+Chr(10)+Chr(13)+ " inpout32.dll",16)

End; Завершаем работу программы при отсутствии файла inpout32.dll

EndIf

lpt_out($378,0)

OpenLibrary(2,"user32.dll"); Открываем файл user32.dll, для использования его функций

string1.s

; Создаём окно.

InitMouse()

InitKeyboard()

OpenWindow(1,10,10,640,400,"Управление Моделью Крана",#PB_Window_MinimizeGadget)

LoadImage(0,"screen_1.bmp")

ButtonGadget(2,131,137,25,25,"")

ButtonGadget(3,230,137,25,25,"")

ButtonGadget(4,178,98,25,25,"")

ButtonGadget(5,178,180,25,25,"")

ButtonGadget(6,350,20,280,25,"Режим управления клавиатурой и мышью")

ButtonGadget(7,480,360,140,25,"Выйти из программы")

;ButtonGadget(11,50,250,250,30,"Получить информацию о состоянии регистра")

;StringGadget(12,50,280,80,20, "",#PB_String_Numeric)

TextGadget(10,10,330,150, 30,"Длительность управляющих импульсов - мс ")

StringGadget(9,80,342,40,18, "10",#PB_String_Numeric)

ImageGadget(0, 0, 0, 400, 300, ImageID(0))

;StringGadget(8, 8, 200, 100, 20, "")

AddKeyboardShortcut(1, #PB_Shortcut_Escape, 7)

;AddKeyboardShortcut(1, #PB_Shortcut_Right, 3)

;AddKeyboardShortcut(1, #PB_Shortcut_Up, 4)

;AddKeyboardShortcut(1, #PB_Shortcut_Down, 5)

StartTime = ElapsedMilliseconds(); Get the actual value

For u=1 To 10000000 Step 1

y=100

Next u

ElapsedTime = ElapsedMilliseconds()-StartTime

dn=Round(10000000/ElapsedTime*100/200, #PB_Round_Up)

;text.s=StrQ(dn)

;SetGadgetText(8,text)

Repeat; Начало главного цикла.

If e=1

lpt_out($378,0)

OpenWindow(1,10,10,640,400,"Управление Моделью Крана",#PB_Window_MinimizeGadget)

LoadImage(0,"screen_1.bmp")

ButtonGadget(2,131,137,25,25,"")

ButtonGadget(3,230,137,25,25,"")

ButtonGadget(4,178,98,25,25,"")

ButtonGadget(5,178,180,25,25,"")

ButtonGadget(6,350,20,280,25,"Режим управления клавиатурой и мышью")

ButtonGadget(7,480,360,140,25,"Выйти из программы")

;ButtonGadget(11,50,250,250,30,"Получить информацию о состоянии регистра")

;StringGadget(12,50,280,80,20, "",#PB_String_Numeric)

TextGadget(10,10,330,150, 30,"Длительность управляющих импульсов - мс ")

StringGadget(9,80,342,40,18, "10",#PB_String_Numeric)

ImageGadget(0, 0, 0, 400, 300, ImageID(0))

;StringGadget(8, 8, 200, 100, 20, "")

AddKeyboardShortcut(1, #PB_Shortcut_Escape, 7)

;AddKeyboardShortcut(1, #PB_Shortcut_Right, 3)

;AddKeyboardShortcut(1, #PB_Shortcut_Up, 4)

;AddKeyboardShortcut(1, #PB_Shortcut_Down, 5)

e=0

EndIf

Event=WaitWindowEvent(); Получаем идентификатор события.

Gadget=EventGadget(); Узнаём идентификатор активного гаджета.

string1=GetGadgetText(9)

t=ValQ(string1)

If Gadget=7 And event=#PB_Event_Gadget

x=1

EndIf

If Gadget=2 And event=#PB_Event_Gadget;движение влево

For i=1 To 10 Step 1

For j=3 To 0 Step -1

k=kod(j)

lpt_out($378,k)

Delayy(t,dn)

Next j

lpt_out($378,0)

Next i

EndIf

If Gadget=3 And event=#PB_Event_Gadget;движение вправо

For i=1 To 10 Step 1

For j=0 To 3 Step 1

a=lpt_inp($379)

If a=126

k=kod(j)

lpt_out($378,k)

Delayy(t,dn)

EndIf

Next j

lpt_out($378,0)

Next i

 

EndIf

If Gadget=4 And event=#PB_Event_Gadget;движение вверх

For i=1 To 40 Step 1

For j=4 To 7 Step 1

k=kod(j)

lpt_out($378,k)

Delayy(t,dn)

Next j

lpt_out($378,0)

Next i

EndIf

If Gadget=5 And event=#PB_Event_Gadget;движение вниз

For i=1 To 40 Step 1

For j=7 To 4 Step -1

k=kod(j)

lpt_out($378,k)

Delayy(t,dn)

Next j

lpt_out($378,0)

Next i

EndIf

If Event=#PB_Event_Gadget And Gadget=6

j=0

i=0

s=0

InitSprite()

OpenWindowedScreen(WindowID(1), 0, 0, 40, 30, 0, 0, 0)

Repeat

a=lpt_inp($379)

j=j+1

If j>3

j=0

k=kod(j)

lpt_out($378,k)

Delayy(t/2,dn)

Else

k=kod(j)

lpt_out($378,k)

Delayy(t/2,dn)

EndIf

Until a=118

Repeat

ExamineMouse();слежение за состоянием курсора мыши

ExamineKeyboard();слежение за нажатыми клавишами

x = MouseDeltaX()

y = MouseDeltaY()

w=MouseWheel()

a=lpt_inp($379)

If (x>1 Or KeyboardPushed(#PB_Key_Right)) And (a=126)

j=j+1

s=s-1

If j>3

j=0

k=kod(j)

lpt_out($378,k)

Delayy(2*t,dn)

Else

k=kod(j)

lpt_out($378,k)

Delayy(2*t,dn)

EndIf

 

EndIf

If (x<-1 Or KeyboardPushed(#PB_Key_Left)) And (s<170)

j=j-1

If j<0

j=3

k=kod(j)

lpt_out($378,k)

Delayy(2*t,dn)

Else

k=kod(j)

lpt_out($378,k)

Delayy(2*t,dn)

EndIf

s=s+1

EndIf

If y<-1 Or KeyboardPushed(#PB_Key_Up)

i=i+1

If i>7

i=4

k=kod(i)

lpt_out($378,k)

Delayy(t,dn)

Else

k=kod(i)

lpt_out($378,k)

Delayy(t,dn)

EndIf

EndIf

If y>1 Or MouseButton(2) Or KeyboardPushed(#PB_Key_Down)

i=i-1

If i<4

i=7

k=kod(i)

lpt_out($378,k)

Delayy(t,dn)

Else

k=kod(i)

lpt_out($378,k)

Delayy(t,dn)

EndIf

EndIf

If w>0

For i=1 To 20 Step 1

For j=4 To 7 Step 1

k=kod(j)

lpt_out($378,k)

Delayy(t,dn)

Next j

Next i

EndIf

If w<0

For i=1 To 20 Step 1

For j=7 To 4 Step -1

k=kod(j)

lpt_out($378,k)

Delayy(t,dn)

Next j

Next i

EndIf

lpt_out($378,0)

Until KeyboardPushed(#PB_Key_Escape)

e=1

EndIf

lpt_out($378,0)

If Gadget=11 And event=#PB_Event_Gadget

a=lpt_inp($379)

text.s=StrQ(a)

SetGadgetText(12,text)

EndIf

Until Event = #PB_Event_CloseWindow Or x=1; Прерываем цикл если в переменной "Event" будет число равное числу в константе.

lpt_out($378,0)

TextGadget(14,100,380,150, 30,"Shevelev I.V. Syktyvkar 2010 ")

Delay(1000)

End; Директива, завершающая программу.

 

Date: 2015-05-05; view: 513; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию