您当前的位置:五五电子网电子知识电子制作自动控制-单片机基于VB做的串口编程调试软件 正文
基于VB做的串口编程调试软件

基于VB做的串口编程调试软件

点击数:7308 次   录入时间:03-04 11:50:32   整理:http://www.55dianzi.com   自动控制-单片机
Public strSet As String         '协议设置
Public intTime As Integer       '发送时间间隔

'发送与接收标志

Public blnAutoSendFlag As Boolean   '发送标志
Public blnReceiveFlag As Boolean    '接收标志

'发送模块

Public intOutMode As Integer    '发送模式
Public strSendText As String    '发送文本数据
Public bytSendByte() As Byte    '发送二进制数据

'显示标志


Public intHexChk As Integer         '十六进制编码标志
Public intAsciiChk As Integer       'ASCII码标志
Public intAddressChk As Integer     '地址标志
Public intAdd48Chk As Integer       '4/8位地址标志

'**********************************

'模块 Modeule1(Modeule1.bas)_程序
'**********************************


'接收模块

Public bytReceiveByte() As Byte     '接收到的字节
Public intReceiveLen As Integer     '接收到的字节数

'显示模块

Public strAddress As String     '地址信息
Public strHex As String         '十六进制编码
Public strAscii As String        'ASCII码


Public intHexWidth As Integer       '显示列数

Public intOriginX As Long       '横向原点(像素)
Public intOriginY As Integer    '纵向原点(行)
Public intLine As Integer       '总行数

'显示常量

Public Const ChrWidth = 105             '单位宽度
Public Const ChrHeight = 2 * ChrWidth   '单位高度
Public Const BorderWidth = 210          '预留边界
Public Const LineMax = 16               '最大显示行数

'**********************************
'输入处理
'处理接收到的字节流,并保存在全局变量
'bytReceiveRyte()
'**********************************

Public Sub InputManage(bytInput() As Byte, intInputLenth As Integer)

   

  
    Dim n As Integer                                '定义变量及初始化
   
    ReDim Preserve bytReceiveByte(intReceiveLen + intInputLenth)

    For n = 1 To intInputLenth Step 1
        bytReceiveByte(intReceiveLen + n - 1) = bytInput(n - 1)
    Next n
   
    intReceiveLen = intReceiveLen + intInputLenth
   
End Sub

'为输出准备文本
'保存在全局变量
'strText
'strHex
'strAddress
'总行数保存在
'intLine

Public Sub GetDisplayText()

    Dim n As Integer
    Dim intValue As Integer
    Dim intHighHex As Integer
    Dim intLowHex As Integer
    Dim strSingleChr As String * 1
   
    Dim intAddress As Integer
    Dim intAddressArray(8) As Integer
    Dim intHighAddress As Integer
   
   
   
    strAscii = ""            '设置初值
    strHex = ""
    strAddress = ""
   
    '*****************************************
    '获得16进制码和ASCII码的字符串
    '*****************************************
   
   
   
    For n = 1 To intReceiveLen
        intValue = bytReceiveByte(n - 1)
       
        If intValue < 32 Or intValue > 128 Then         '处理非法字符
            strSingleChr = Chr(46)                      '对于不能显示的ASCII码,
        Else                                            '用"."表示
            strSingleChr = Chr(intValue)
        End If
       
        strAscii = strAscii + strSingleChr
       
        intHighHex = intValue \ 16
        intLowHex = intValue - intHighHex * 16
       
        If intHighHex < 10 Then
            intHighHex = intHighHex + 48
        Else
            intHighHex = intHighHex + 55
        End If
        If intLowHex < 10 Then
            intLowHex = intLowHex + 48
        Else
            intLowHex = intLowHex + 55
        End If
       
        strHex = strHex + " " + Chr$(intHighHex) + Chr$(intLowHex) + " "
       
        If (n Mod intHexWidth) = 0 Then                 '设置换行
            strAscii = strAscii + Chr$(13) + Chr$(10)
            strHex = strHex + Chr$(13) + Chr$(10)
        Else
           
        End If
    Next n
   
   
   
    '***************************************
    '获得地址字符串
    '***************************************
   
    intLine = intReceiveLen \ intHexWidth
   
    If (intReceiveLen - intHexWidth * intLine) > 0 Then
    intLine = intLine + 1
    End If
   
    For n = 1 To intLine
        intAddress = (n - 1) * intHexWidth
       

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:软件  自动控制-单片机电子制作 - 自动控制-单片机