'Lawson Labs, Inc. ' 'April 1987 ' 'Sample driver for controlling a DO16 relay board from an LPT1 or LPT2 port ' CLS : KEY OFF LPTADDR = &H3BC: ' For LPT2 use LPTADDR= &H378 State% = 0: FOR relay% = 1 TO 16: GOSUB Changerelay: NEXT 'initialize to off lastrly% = -1 'keeps track of last relay turned on. Init to an invalid number Enterit: INPUT "Enter relay number (1-16) "; relay% IF (relay% > 16) OR (relay% < 1) OR (lastrly% = relay%) THEN GOTO Enterit IF (lastrly% <> -1) THEN State% = 0: rly% = lastrly% GOSUB Changerelay ' turn off the last one END IF State% = 1: rly% = relay% GOSUB Changerelay ' turn on this one PRINT rly%; " selected" GOTO Enterit Changerelay: 'Set relay # RLY% to STATE% CODE% = State% * 32 + (rly% - 1) XOR 207 OUT LPTADDR, CODE% ' wait 2 ms or more OUT LPTADDR, CODE% - 64 ' wait 2 ms or more OUT LPTADDR, CODE% ' wait 2 ms or more IF State% = 1 THEN lastrly% = rly% RETURN ' '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 MODEL 66 terminal ' 2 ------------------ A (address)---------same ' 3 ------------------ B (address)---------same ' 4 ------------------ C (address)---------same ' 5 ------------------ D (address)---------same ' 6 -----------------------------------------E (address) ' 7 ------------------ F (on or off)-------F (address) ' 8 ------------------ G (strobe) ' 14 -----------------------------------------OUT output ' 25 ------------*-----G (ground)--------- GND (ground) ' | +5 (+5 VDC)--------- + (+5 VDC) ' | | ' | | ' | | ' 5 Volt DC Power Supply: GND +5 '