at89c2051prog.bas

来自「VB6, paralell port, I2C, parse intel HEX」· BAS 代码 · 共 184 行

BAS
184
字号
Attribute VB_Name = "AT89C2051"
Option Explicit

Public Const XTAL As Integer = &H1          '"P1.0"
Public Const RST As Integer = &H2           '"P1.1"
Public Const PROG As Integer = &H4          '"P1.2"
Public Const P33 As Integer = &H8           '"P1.3"
Public Const P34 As Integer = &H10          '"P1.4"
Public Const P35 As Integer = &H20          '"P1.5"
Public Const P37 As Integer = &H80          '"P1.7"
Public Const SWpower As Integer = &H40      '"P1.6"

Public Function SetPinPort0(ByVal spin As String) As Byte
'0/76543210
Select Case spin
    Case "P0.0"
        SetPinPort0 = &H1
    Case "P0.1"
        SetPinPort0 = &H2
    Case "P0.2"
        SetPinPort0 = &H4
    Case "P0.3"
        SetPinPort0 = &H8
    Case "P0.4"
        SetPinPort0 = &H10
    Case "P0.5"
        SetPinPort0 = &H20
    Case "P0.6"
        SetPinPort0 = &H40
    Case "P0.7"
        SetPinPort0 = &H80
End Select
End Function

Public Function SetPinPort1(ByVal spin As String) As Byte
'1/76543210
Select Case spin
    Case "P1.0"
        SetPinPort1 = &H1
    Case "P1.1"
        SetPinPort1 = &H2
    Case "P1.2"
        SetPinPort1 = &H4
    Case "P1.3"
        SetPinPort1 = &H8
    Case "P1.4"
        SetPinPort1 = &H10
    Case "P1.5"
        SetPinPort1 = &H20
    Case "P1.6"
        SetPinPort1 = &H40
    Case "P1.7"
        SetPinPort1 = &H80
End Select
End Function

' add code for setting RST to 5V or 12V
Public Sub SetRST5V()

End Sub

Public Sub SetRST12V()

End Sub

Public Sub InitDevice()
SetRST5V
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.ChangeP1 P33, 0
I2C_PCA9535.ChangeP1 P34, 0
I2C_PCA9535.ChangeP1 P35, 0
I2C_PCA9535.ChangeP1 P37, 0
I2C_PCA9535.WriteP1
End Sub

Public Sub ResetAddress()
'on rising edge of RST
End Sub

Public Sub IncrementAdress()
I2C_PCA9535.ChangeP1 XTAL, 1
I2C_PCA9535.WriteP1
I2C_PCA9535.ChangeP1 XTAL, 0
I2C_PCA9535.WriteP1
End Sub

Public Sub InitWriteCodeByte()
SetRST12V
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.ChangeP1 P33, 0
I2C_PCA9535.ChangeP1 P34, 1
I2C_PCA9535.ChangeP1 P35, 1
I2C_PCA9535.ChangeP1 P37, 1
I2C_PCA9535.WriteP1
End Sub

Public Sub WriteCodeByte(ByVal CodeData As Byte)
I2C_PCA9535.SetValP0 CodeData
I2C_PCA9535.WriteP0
I2C_PCA9535.ChangeP1 PROG, 0
I2C_PCA9535.WriteP1
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.WriteP1
End Sub

Public Function InitReadCodeByte() As Byte
SetRST5V
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.ChangeP1 P33, 0
I2C_PCA9535.ChangeP1 P34, 0
I2C_PCA9535.ChangeP1 P35, 1
I2C_PCA9535.ChangeP1 P37, 1
I2C_PCA9535.WriteP1
End Function

Public Function ReadCodeByte() As Byte
ReadCodeByte = I2C_PCA9535.ReadP0
End Function

Public Sub InitWriteLock1()
SetRST12V
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.ChangeP1 P33, 1
I2C_PCA9535.ChangeP1 P34, 1
I2C_PCA9535.ChangeP1 P35, 1
I2C_PCA9535.ChangeP1 P37, 1
I2C_PCA9535.WriteP1
End Sub

Public Sub WriteLock1()
I2C_PCA9535.ChangeP1 PROG, 0
I2C_PCA9535.WriteP1
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.WriteP1
End Sub

Public Sub InitWriteLock2()
SetRST12V
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.ChangeP1 P33, 1
I2C_PCA9535.ChangeP1 P34, 1
I2C_PCA9535.ChangeP1 P35, 0
I2C_PCA9535.ChangeP1 P37, 0
I2C_PCA9535.WriteP1
End Sub

Public Sub WriteLock2()
I2C_PCA9535.ChangeP1 PROG, 0
I2C_PCA9535.WriteP1
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.WriteP1
End Sub

Public Sub InitChipErase()
SetRST12V
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.ChangeP1 P33, 1
I2C_PCA9535.ChangeP1 P34, 0
I2C_PCA9535.ChangeP1 P35, 0
I2C_PCA9535.ChangeP1 P37, 0
I2C_PCA9535.WriteP1
End Sub

Public Sub ChipErase()
I2C_PCA9535.ChangeP1 PROG, 0
I2C_PCA9535.WriteP1
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.WriteP1
End Sub

Public Function InitReadSignatureByte() As Byte
SetRST5V
I2C_PCA9535.ChangeP1 PROG, 1
I2C_PCA9535.ChangeP1 P33, 0
I2C_PCA9535.ChangeP1 P34, 0
I2C_PCA9535.ChangeP1 P35, 0
I2C_PCA9535.ChangeP1 P37, 0
End Function

Public Function ReadSignatureByte() As Byte
ReadSignatureByte = ReadP0
End Function

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?