⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aduc702x_i2c_downloader.frm

📁 ADuC7026_I2C_downloader是ADuC7026 ARM 单片机的I2C接口的烧写程序
💻 FRM
📖 第 1 页 / 共 3 页
字号:
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form Form1 
   AutoRedraw      =   -1  'True
   BorderStyle     =   1  'Fixed Single
   Caption         =   "ADuC702x-I2C downloader"
   ClientHeight    =   4365
   ClientLeft      =   5220
   ClientTop       =   3960
   ClientWidth     =   5595
   FillStyle       =   0  'Solid
   Icon            =   "ADuC702x_I2C_downloader.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   7.699
   ScaleMode       =   7  'Centimeter
   ScaleWidth      =   9.869
   StartUpPosition =   2  '屏幕中心
   Begin VB.Frame Frame5 
      Caption         =   "状态及进度"
      Height          =   615
      Left            =   0
      TabIndex        =   10
      ToolTipText     =   "状态及进度"
      Top             =   3480
      Width           =   5535
      Begin MSComctlLib.ProgressBar ProgressBar1 
         Height          =   255
         Left            =   0
         TabIndex        =   11
         Top             =   240
         Visible         =   0   'False
         Width           =   5535
         _ExtentX        =   9763
         _ExtentY        =   450
         _Version        =   393216
         Appearance      =   1
         Scrolling       =   1
      End
      Begin VB.Label Status 
         Caption         =   "Http://Computer00.21ic.org"
         Height          =   255
         Left            =   120
         TabIndex        =   19
         Top             =   240
         Width           =   5935
      End
   End
   Begin VB.Frame Frame4 
      Caption         =   "目标文件"
      Height          =   735
      Left            =   0
      TabIndex        =   8
      Top             =   0
      Width           =   5535
      Begin VB.CommandButton OpenFile 
         Caption         =   "OpenFile"
         Height          =   495
         Left            =   4440
         TabIndex        =   14
         ToolTipText     =   "打开文件(*.hex格式)"
         Top             =   150
         Width           =   975
      End
      Begin VB.TextBox FileDir 
         Height          =   270
         Left            =   120
         TabIndex        =   9
         Text            =   "No file open"
         ToolTipText     =   "装载的文件"
         Top             =   240
         Width           =   4215
      End
   End
   Begin MSComDlg.CommonDialog CommonDialog1 
      Left            =   120
      Top             =   5280
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.Frame Frame3 
      Caption         =   "选项"
      Height          =   615
      Left            =   0
      TabIndex        =   6
      ToolTipText     =   "下载器相关设置。"
      Top             =   840
      Width           =   5535
      Begin VB.CheckBox Check2 
         Caption         =   "下载后自动运行"
         Height          =   255
         Left            =   3840
         TabIndex        =   18
         ToolTipText     =   "选中此项,下载完成后,将自动运行程序。"
         Top             =   240
         Width           =   1575
      End
      Begin VB.CheckBox Check1 
         Caption         =   "下载后自动校验"
         Height          =   255
         Left            =   2160
         TabIndex        =   16
         ToolTipText     =   "选中此项,下载完成后将自动校验数据。"
         Top             =   240
         Width           =   1575
      End
      Begin VB.ComboBox Combo1 
         Height          =   300
         Left            =   840
         Style           =   2  'Dropdown List
         TabIndex        =   7
         ToolTipText     =   "为设备选择一个合适的并口。一般地,并口在地址378H处。"
         Top             =   220
         Width           =   1215
      End
      Begin VB.Label Label1 
         Caption         =   "端口选择"
         Height          =   255
         Left            =   120
         TabIndex        =   17
         Top             =   255
         Width           =   735
      End
   End
   Begin VB.Frame Frame2 
      Caption         =   "下载速度"
      Height          =   855
      Left            =   0
      TabIndex        =   4
      ToolTipText     =   "下载速度选择"
      Top             =   1560
      Width           =   5535
      Begin MSComctlLib.Slider Speed 
         Height          =   495
         Left            =   0
         TabIndex        =   5
         ToolTipText     =   "下载速度选择"
         Top             =   240
         Width           =   5535
         _ExtentX        =   9763
         _ExtentY        =   873
         _Version        =   393216
         LargeChange     =   500
         Min             =   1
         Max             =   10000
         SelStart        =   5000
         Value           =   5000
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "命令"
      Height          =   855
      Left            =   0
      TabIndex        =   1
      ToolTipText     =   "各种操作命令"
      Top             =   2520
      Width           =   5535
      Begin VB.CommandButton Verify 
         Caption         =   "Verify"
         Height          =   495
         Left            =   2280
         TabIndex        =   15
         ToolTipText     =   "校验数据"
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton ReadID 
         Caption         =   "ReadID"
         Height          =   495
         Left            =   120
         TabIndex        =   13
         ToolTipText     =   "读取芯片ID"
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton Close 
         Caption         =   "Exit"
         Height          =   495
         Left            =   4440
         TabIndex        =   12
         ToolTipText     =   "退出程序(退出之后就可以去上QQ或者去论坛灌水了^_^)"
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton DownLoad 
         Caption         =   "DownLoad"
         Height          =   495
         Left            =   1200
         TabIndex        =   3
         ToolTipText     =   "下载程序"
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton Run 
         Caption         =   "Run"
         Height          =   495
         Left            =   3360
         TabIndex        =   2
         ToolTipText     =   "运行"
         Top             =   240
         Width           =   975
      End
   End
   Begin MSComctlLib.StatusBar StatusBar1 
      Align           =   2  'Align Bottom
      Height          =   255
      Left            =   0
      TabIndex        =   0
      Top             =   4110
      Width           =   5595
      _ExtentX        =   9869
      _ExtentY        =   450
      _Version        =   393216
      BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} 
         NumPanels       =   3
         BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Object.Width           =   4411
            MinWidth        =   4411
            Text            =   "No chip"
            TextSave        =   "No chip"
            Key             =   "info"
            Object.ToolTipText     =   "芯片信息"
         EndProperty
         BeginProperty Panel2 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Object.Width           =   2999
            MinWidth        =   2999
            Text            =   "Status"
            TextSave        =   "Status"
            Key             =   "status"
            Object.ToolTipText     =   "显示当前状态"
         EndProperty
         BeginProperty Panel3 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Key             =   "time"
            Object.ToolTipText     =   "系统时间"
         EndProperty
      EndProperty
   End
   Begin VB.Timer Timer1 
      Enabled         =   0   'False
      Left            =   720
      Top             =   5280
   End
   Begin VB.Menu File 
      Caption         =   "文件(&F)"
      Index           =   1
      Begin VB.Menu Open 
         Caption         =   "打开(&O)"
      End
      Begin VB.Menu Exit 
         Caption         =   "退出(&X)"
      End
   End
   Begin VB.Menu Settings 
      Caption         =   "设置(&S)"
      Index           =   2
      Begin VB.Menu PortSelect 
         Caption         =   "端口选择(&P)"
         Begin VB.Menu LPT1 
            Caption         =   "378H(LPT1)(&1)"
            Checked         =   -1  'True
         End
         Begin VB.Menu LPT2 
            Caption         =   "278H(LPT2)(&2)"
         End
         Begin VB.Menu LPT3 
            Caption         =   "3BCH(LPT3)(&3)"
         End
      End
      Begin VB.Menu AutoVerify 
         Caption         =   "下载后自动校验(&V)"
      End
      Begin VB.Menu AutoRun 
         Caption         =   "下载后自动运行(&R)"
      End
   End
   Begin VB.Menu Help 
      Caption         =   "帮助(&H)"
      Begin VB.Menu AboutDownloader 
         Caption         =   "关于ADuC702x_I2C_downloader...(&A)"
      End
      Begin VB.Menu DownloaderHelp 
         Caption         =   "ADuC702x_I2Cdownloader帮助...(&H)"
      End
      Begin VB.Menu AboutAuthor 
         Caption         =   "关于作者...(&C)"
      End
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public DelayTime As Long
Dim DataBuffer(0 To 100) As Byte
Public PortAddr As String
Public SDA As Boolean
Public SCL As Boolean
Public ChipOK As Boolean
Public WaitForDelay As Boolean
Public FileEnd As Boolean
Public ChipID As String
Dim PageNeedErase(0 To 200) As Byte

Private Sub Delay()
 Dim i As Long
 Dim X As Long
  For i = 0 To DelayTime
   X = 0  '延时用的空操作
  Next
End Sub

Private Sub SetSCL()
 Dim Result As Boolean
 Dim PortVal As Long
 
 Result = GetPortVal(Val(PortAddr), PortVal, 1)
 If Result = False Then
  MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
  Exit Sub
 End If
 PortVal = PortVal And &H7F
 Result = SetPortVal(Val(PortAddr), PortVal, 1)
' MsgBox "SetSCL"
 If Result = False Then MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
 Call Delay
End Sub

Private Sub ClrSCL()
 Dim Result As Boolean
 Dim PortVal As Long
 
 Result = GetPortVal(Val(PortAddr), PortVal, 1)
 If Result = False Then
  MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
  Exit Sub
 End If
 PortVal = PortVal And &HFF
 PortVal = PortVal Or &H80
 Result = SetPortVal(Val(PortAddr), PortVal, 1)
' MsgBox "ClrSCL"
 If Result = False Then MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
 Call Delay
End Sub

Private Sub SetSDA()
 Dim Result As Boolean
 Dim PortVal As Long
 
 Result = GetPortVal(Val(PortAddr), PortVal, 1)
 If Result = False Then
  MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
  Exit Sub
 End If
 PortVal = PortVal And &HBF
 Result = SetPortVal(Val(PortAddr), PortVal, 1)
' MsgBox "SetSDA"
 If Result = False Then MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
 Call Delay
End Sub

Private Sub ClrSDA()
 Dim Result As Boolean
 Dim PortVal As Long
 
 Result = GetPortVal(Val(PortAddr), PortVal, 1)
 If Result = False Then
  MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
  Exit Sub
 End If
 PortVal = PortVal And &HFF
 PortVal = PortVal Or &H40
 Result = SetPortVal(Val(PortAddr), PortVal, 1)
' MsgBox "ClrSDA"
 If Result = False Then MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
 Call Delay
End Sub

Private Sub GetSCL()
 Dim Result As Boolean
 Dim PortVal As Long
 
 Result = GetPortVal(1 + Val(PortAddr), PortVal, 1)
 If Result = False Then
  MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
  Exit Sub
 End If
 PortVal = PortVal And &H20
 If (PortVal = &H20) Then
  SCL = True
 Else
  SCL = False
 End If
End Sub

Private Sub GetSDA()
 Dim Result As Boolean
 Dim PortVal As Long
 
 Result = GetPortVal(1 + Val(PortAddr), PortVal, 1)
 If Result = False Then
  MsgBox "并口错误!程序被迫关闭", vbOKOnly + vbCritical, "错误"
  Exit Sub
 End If
 PortVal = PortVal And &H40
 If (PortVal = &H40) Then
  SDA = True
 Else
  SDA = False
 End If
End Sub




Private Sub DelayXms(ByVal X As Long)
 
Sleep X
 
End Sub


Private Function ErasePage(ByRef Address() As Byte, NPages As Byte) As Long
 StatusBar1.Panels("status").Text = "Erase page"
 DataBuffer(0) = &H7
 DataBuffer(1) = &HE
 DataBuffer(2) = &H6
 DataBuffer(3) = Asc("E")
 DataBuffer(4) = Address(0)
 DataBuffer(5) = Address(1)
 DataBuffer(6) = Address(2)
 DataBuffer(7) = Address(3)
 DataBuffer(8) = NPages
 Cal_Sum DataBuffer, 9
 WritePacket &H4, DataBuffer, 10
 DelayXms 40 * NPages
 ReadData &H4, DataBuffer, 1
 ErasePage = DataBuffer(0)
End Function

Private Function MassErase() As Long
 StatusBar1.Panels("status").Text = "Mass Erase"
 DataBuffer(0) = &H7
 DataBuffer(1) = &HE
 DataBuffer(2) = &H6
 DataBuffer(3) = Asc("E")
 DataBuffer(4) = 0
 DataBuffer(5) = 0
 DataBuffer(6) = 0
 DataBuffer(7) = 0
 Cal_Sum DataBuffer, 9
 WritePacket &H4, DataBuffer, 10
 DelayXms 3500
 ReadData &H4, DataBuffer, 1
 MassErase = DataBuffer(0)
End Function

Private Function RunTo(ByRef Address() As Byte) As Long
 StatusBar1.Panels("status").Text = "Run to"
 DataBuffer(0) = &H7
 DataBuffer(1) = &HE
 DataBuffer(2) = &H5
 DataBuffer(3) = Asc("R")
 DataBuffer(4) = Address(0)
 DataBuffer(5) = Address(1)
 DataBuffer(6) = Address(2)
 DataBuffer(7) = Address(3)
 Cal_Sum DataBuffer, 8
 WritePacket &H4, DataBuffer, 9
 DelayXms 2
 ReadData &H4, DataBuffer, 1
 RunTo = DataBuffer(0)
End Function

⌨️ 快捷键说明

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