code cua K2
Chương trình điều khiển
Private LptAdd, CRG, PortA, PortB, PortC, d As Integer
Dim boNhoDem, soThuTu, Stt1, Stt2 As Integer
Private Declare Function Inp32 Lib "inpout32.dll" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out32 Lib "inpout32.dll" (ByVal PortAddress As Integer, ByVal Value As Integer)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
soThuTu = 0
TimerLpt.Enabled = True
Text1.Enabled = True
End Sub
Private Sub Command2_Click()
tatMatrix
TimerLpt.Enabled = False
Text1.Enabled = False
End Sub
Private Sub Command3_Click()
tatMatrix
Out32 LptAdd, 0
Out32 LptAdd + 2, 0
If TimerLpt.Enabled = True Then TimerLpt.Enabled = False
End
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text1.Enabled = False
LptAdd = &H378
PortA = &H3
PortB = &H2
PortC = &H1
CRG = &H0
caiDat8255 ' goi chuong trinh cai dat cho 8255
tatMatrix ' goi chuong trinh tat Matrix
' bo font chua hoa khong dau A-Z va 0-9
boNhoDem = Array(&HFF, &HE0, &HD7, &HB7, &HB7, &HD7, &HE0, &HFF, &HFF, &H80, &HB6, &HB6, &HC6, &HF9, &HFF, &HFF, _
&HFF, &HC1, &HBE, &HBE, &HBE, &HDD, &HFF, &HFF, &HFF, &H80, &HBE, &HBE, &HBE, &HC1, &HFF, &HFF, _
&HFF, &H80, &HB6, &HB6, &HBE, &HFE, &HFF, &HFF, &HFF, &H80, &HB7, &HB7, &HBF, &HBF, &HFF, &HFF, _
&HFF, &HC1, &HBE, &HBE, &HB6, &HB0, &HFF, &HFF, &HFF, &H80, &HEF, &HEF, &HEF, &H80, &HFF, &HFF, _
&HFF, &HFE, &HBE, &H80, &HBE, &HFE, &HFF, &HFF, &HFF, &HFF, &HBD, &HBE, &HBE, &H81, &HFF, &HFF, _
&HFF, &H80, &HF7, &HEB, &HDD, &HFE, &HFF, &HFF, &HFF, &H80, &HFE, &HFE, &HFE, &HFE, &HFF, &HFF, _
&HFF, &H80, &HDF, &HEF, &HEF, &HDF, &H80, &HFF, &HFF, &H80, &HDF, &HE7, &HFB, &HFD, &H80, &HFF, _
&HFF, &HC1, &HBE, &HBE, &HBE, &HBE, &HC1, &HFF, &HFF, &H80, &HB7, &HB7, &HB7, &HCF, &HFF, &HFF, _
&HFF, &HCF, &HB7, &HB7, &HB7, &H80, &HFF, &HFF, &HFF, &H80, &HB7, &HB3, &HB5, &HCE, &HFF, &HFF, _
&HFF, &HCF, &HB6, &HB6, &HB6, &HB6, &HF9, &HFF, &HFF, &HBF, &HBF, &H80, &HBF, &HBF, &HFF, &HFF, _
&HFF, &H81, &HFE, &HFE, &HFE, &H80, &HFF, &HFF, &HFF, &H83, &HFD, &HFE, &HFE, &HFD, &H83, &HFF, _
&HFF, &H81, &HFE, &HFE, &HE1, &HFE, &HFE, &H81, &HFF, &HDE, &HED, &HF3, &HF3, &HED, &HDE, &HFF, _
&HFF, &HBE, &HDD, &HEB, &HF7, &HEF, &HDF, &HBF, &HFF, &HBC, &HBA, &HB6, &HAE, &H9E, &HBE, &HFF, _
&HFF, &HC1, &HBC, &HBA, &HA6, &H9E, &HC1, &HFF, &HFF, &HFF, &HDE, &H80, &HFE, &HFF, &HFF, &HFF, _
&HFF, &HDE, &HBC, &HBA, &HB6, &HAE, &HDE, &HFF, &HFF, &HBE, &HBE, &HB6, &HB6, &HC9, &HFF, &HFF, _
&HFF, &HF7, &HE7, &HD7, &HB7, &HE0, &HF7, &HFF, &HFF, &H86, &HB6, &HB6, &HB6, &HB6, &HF9, &HFF, _
&HFF, &HC1, &HB6, &HB6, &HB6, &HB6, &HF9, &HFF, &HFF, &HFF, &HBE, &HBD, &HBB, &HB7, &H8F, &HFF, _
&HFF, &HC9, &HB6, &HB6, &HB6, &HB6, &HC9, &HFF, &HFF, &HCF, &HB6, &HB6, &HB6, &HB6, &HC1, &HFF, _
&HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF)
End Sub
Sub caiDat8255() ' Chuong trinh cai dat 8255
Out32 LptAdd + 2, &H4
Out32 LptAdd, &H80
Out32 LptAdd + 2, CRG
Out32 LptAdd + 2, &H4
End Sub
Private Sub Timer1_Timer()
Label4.Caption = "Time : " & Format(Now, "hh:nn:ss") & " - Date : " & Format(Now, "dd/mm/yyyy")
Label4.FontSize = 12
Label4.FontBold = True
End Sub
Sub outPortA(data As Integer) ' Xuat du lieu ra PORTA - 8255 - Quet Hang
Out32 LptAdd + 2, &H7
Out32 LptAdd, data
Out32 LptAdd + 2, PortA 'xuat ra PORTA = data
Out32 LptAdd + 2, &H7
End Sub
Sub outPortB(data As Integer) ' Xuat du lieu ra PORTB - 8255 - Quet Cot Matrix1
Out32 LptAdd + 2, &H6
Out32 LptAdd, data
Out32 LptAdd + 2, PortB 'xuat ra PORTB = data
Out32 LptAdd + 2, &H6
End Sub
Sub outPortC(data As Integer) ' Xuat du lieu ra PORTC - 8255 - Quet cot Matrix2
Out32 LptAdd + 2, &H5
Out32 LptAdd, data
Out32 LptAdd + 2, PortC 'xuat ra PORTC = data
Out32 LptAdd + 2, &H5
End Sub
Sub quetLed() ' Chuong trinh quet Matrix
Dim X, i, j, n, Tre As Integer
For n = 0 To 15
'Dim x As Byte
tatMatrix
Tre = 1 ' tre 1 minisec
For i = 0 To 1
X = 1
soThuTu = Stt1
For j = 0 To 7
outPortB (X)
X = X * 2
outPortA (boNhoDem(soThuTu))
Sleep (Tre)
soThuTu = soThuTu + 1
tatMatrix
Next j
X = 1
soThuTu = Stt2
For j = 0 To 7
outPortC (X)
X = X * 2
outPortA (boNhoDem(soThuTu))
Sleep (Tre)
soThuTu = soThuTu + 1
tatMatrix
Next j
tatMatrix
Next i
Next n
End Sub
Sub tatMatrix() ' tat ma tran
outPortA (&HFF)
outPortB (&H0)
outPortC (&H0)
End Sub
Private Sub TimerLpt_Timer()
Dim LenTxt As Integer
Dim Str1, Str2 As String
LenTxt = Len(Text1.Text)
Str1 = Right(Text1.Text, 1)
If (LenTxt = 0) Then ' Neu khong co ki tu
Str1 = ""
Str2 = ""
Stt1 = 288 ' tat Matrix
Stt2 = 288
ElseIf (LenTxt = 1) Then ' Neu co 1 ki tu
Str1 = " "
Stt1 = 288
Str2 = Text1.Text
Stt2 = Asc(Str2) ' chuyen string - asc
ElseIf (LenTxt = 2) Then ' Neu co 2 ki tu
Str1 = Mid(Text1.Text, 1, 1)
Str2 = Mid(Text1.Text, 2, 1)
Stt1 = Asc(Str1) ' chuyen string - ascii
Stt2 = Asc(Str2) ' chuyen string - ascii
End If
' kiem tra cac ky tu A-Z
If ((Stt1 > 64) And (Stt1 < 98)) Then
Stt1 = (Stt1 - 65) * 8
' Kiem tra cac so 0-9
ElseIf ((Stt1 > 47) And (Stt1 < 59)) Then
Stt1 = ((Stt1 - 48) * 8) + 208
End If
' kiem tra cac ky tu A-Z
If ((Stt2 > 64) And (Stt2 < 98)) Then
Stt2 = (Stt2 - 65) * 8
' Kiem tra cac so 0-9
ElseIf ((Stt2 > 47) And (Stt2 < 59)) Then
Stt2 = ((Stt2 - 48) * 8) + 208
End If
quetLed
End Sub
Bạn đang đọc truyện trên: truyentop.pro