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

Tags: