📄 at89c2051prog.bas
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -