Function WriteLPT() 'запись в порт
' Dim cnn As ADODB.Connection
Dim asd(24) As Integer
Dim TableRec As ADODB.Recordset
Dim strCurrentConn As String
' Set cnn = New ADODB.Connection
Set TableRec = New ADODB.Recordset
strCurrentConn = CurrentProject.Connection
' Set cnn = CurrentProject.Connection
TableRec.Open "Send", strCurrentConn
With TableRec
.MoveFirst
Do
asd(1) = .Fields("D0")
asd(2) = .Fields("D1")
asd(3) = .Fields("D2")
asd(4) = .Fields("D3")
asd(5) = .Fields("D4")
asd(6) = .Fields("D5")
asd(7) = .Fields("D6")
asd(8) = .Fields("D7")
asd(9) = .Fields("D8")
asd(10) = .Fields("D9")
asd(11) = .Fields("D10")
asd(12) = .Fields("D11")
asd(13) = .Fields("D12")
asd(14) = .Fields("D13")
asd(15) = .Fields("T0")
asd(16) = .Fields("T1")
asd(17) = .Fields("B0")
asd(18) = .Fields("B1")
asd(19) = .Fields("B2")
asd(20) = .Fields("TB")
asd(21) = .Fields("R0")
asd(22) = .Fields("R1")
asd(23) = .Fields("R2")
asd(24) = .Fields("S")
.MoveNext
Loop Until .EOF
End With
TableRec.Close
' cnn.Close
Set TableRec = Nothing
' Set cnn = Nothing
Dim CLk As String
Dim signaltxt As String
Dim signalinteger As Integer
CLk = "0"
Out &H378, 0
For i = 1 To 24 Step 1 'я не знаю в какой последовательности должны идти сигналы
'вполне возможно что должно быть и вот так For i = 24 To 1 Step -1
If CLk = "0" Then CLk = "1" 'устраиваем кувыркашки
If CLk = "1" Then CLk = "0"
signaltxt = CLk & asd(i) & "1" 'собираем сигнал
Select Case signaltxt 'ищем числовой аналог
Case "001": signalinteger = 1
Case "011": signalinteger = 3
Case "101": signalinteger = 5
Case "111": signalinteger = 7
End Select
Out &H378, signalinteger 'выпихиваем число в порт
'тут бы по уму паузу воткнуть, а я не помню как это делается (смотрите свой рисунок
' там СL идет с периодичностью 1.5 или более мкс)
Next i
Out &H378, 0 'запрещаем изменение
'сигнал ловить СL на выводе D2, Data-D1, CE-D0 согласно схемы распайки разъема
End Function
|