Sample driver for controlling a
Model DO16 / 64 relay board from an LPT1 or LPT2 port
'Lawson Labs, Inc.
'3217 Phoenixville Pike
'Malvern, PA 19355
'610 725-8800 or 800 321-5355
'www.lawsonlabs.com
'
'
'Sample driver for controling a DO16 relay board from an LPT1 or LPT2 port
'
'Common parallel port addresses are &H278, &H378, or &H3BC
' If you don't know your LPT base address, it is normally displayed
' during the beginning of the boot process. For Windows, you may
' need to press Esc to see the text screen. Press Pause if the
' information does not stay long enough on the screen.
CLS : KEY OFF
LPTADDR = &H3BC: 'put your LPT base address here
LOCATE 24, 20: PRINT "Press Enter to exit";
LOCATE 1, 1
'
ReEnter: 'get the number of the relay to change
INPUT "Enter relay number (1-16) "; Rly$
IF Rly$ = "" THEN PRINT " Done": END
Rly% = VAL(Rly$)
IF Rly% > 16 OR Rly% < 1 THEN GOTO ReEnter
ReEnter1: 'get the new state for the relay
INPUT "Enter 1 for ON or 0 for OFF"; State$
IF State$ = "" THEN PRINT " Done": END
State% = VAL(State$)
IF State% > 1 OR State% < 0 THEN GOTO ReEnter1
PRINT "setting relay"; Rly%; " to ";
IF State% = 1 THEN PRINT "ON" ELSE PRINT "OFF"
CODE% = State% * 32 + (Rly% - 1) XOR 207
OUT LPTADDR, CODE%
OUT LPTADDR, CODE% - 64
OUT LPTADDR, CODE%
PRINT
GOTO ReEnter
'
'DO16 relay contacts: Max voltage= 140 volts
' Max current= 0.5 amps
' Max power= 8 watts (volts * amps)
'
' Interconnections:
' LPT1 or LPT2 connector pin# DO16 terminal
' 2 ------------------ A (address)
' 3 ------------------ B (address)
' 4 ------------------ C (address)
' 5 ------------------ D (address)
' 7 ------------------ F (on or off)
' 8 ------------------ G (strobe)
' 25 ------------*-----GND (ground)
' | +5 (+5 VDC)
' | |
' | |
' | |
' 5 Volt DC Power Supply: GND +5
'
'Power supply must provide at least 60 MA per active relay
'NOTE: Fast languages on fast computers may require a short
' pause after each OUT instruction. 10 microseconds should
' be long enough.