单片机电机测试系统的研制-上位机监控系统设计(6)

2019-02-15 16:06

武汉工程大学毕业设计(论文)说明书

'数组指针计数器 Dim mc_bPtr As Byte 'unsigned char i; Dim i As Byte 'unsigned int crc=0; Dim crc As Long LSres = le crc = 0 mc_bPtr = 0

'<--------CRC计算入口 Do While (le <> 0) le = le - 1 'for(i=0x80; i!=0; i/=2)

Dim c As Byte '模拟i=0x80 c = &H80 For i = 0 To 7

If ((crc And &H8000) <> 0) Then crc = crc And &H7FFF crc = CLng(crc) * 2

crc = CLng(crc) Xor &H1021 Else

crc = CLng(crc) * 2 End If

If ((data(mc_bPtr) And c) <> 0) Then crc = CLng(crc) Xor &H1021 Else End If c = c / 2

23

武汉工程大学毕业设计(论文)说明书

Next

mc_bPtr = mc_bPtr + 1 Loop 'return(crc);

bCRC = CLng(crc) End Function

Private Sub Command3_Click() '输出电机的PWM与方向命令 Dim lSende(0 To 8) As Byte Dim rSende(0 To 4) As Byte Dim g_lcrcLow As Byte Dim g_lcrcHigh As Byte Dim lmotordp As Byte Dim rMotordp As Byte Dim lpwm As Byte Dim rpwm As Byte 'left motor

If (Combo2(0).Text = \正转\ lmotordp = &H2

ElseIf (Combo2(0).Text = \反转\ lmotordp = &H4

ElseIf (Combo2(0).Text = \停止\ lmotordp = &H0 End If 'right motor

If (Combo2(1).Text = \正转\ rMotordp = &H20

ElseIf (Combo2(1).Text = \反转\ rMotordp = &H40

24

武汉工程大学毕业设计(论文)说明书

ElseIf (Combo2(1).Text = \停止\ rMotordp = &H0 End If

lSende(0) = &H0 lSende(1) = &H0 lSende(2) = &H10 lSende(3) = &H90 lSende(4) = lmotordp lSende(5) = rMotordp 'left motor PWM

lpwm = Val(Text1(0).Text) If (lpwm <= 0) Then lpwm = 0

ElseIf (lpwm >= 100) Then lpwm = 100 End If

'right motor PWM rpwm = Val(Text1(1).Text) If (rpwm <= 0) Then rpwm = 0

ElseIf (rpwm >= 100) Then rpwm = 100 End If

lSende(6) = lpwm lSende(7) = rpwm lSende(8) = &H50 'sende(4) = 10

g_lcrcLow = bCRC(lSende, 9) And &HFF

25

武汉工程大学毕业设计(论文)说明书

g_lcrcHigh = bCRC(lSende, 9) \\ 256 lSende(1) = g_lcrcHigh lSende(0) = g_lcrcLow 'Text3(3).Text = g_lcrcLow ' Print \ MSComm1.Output = lSende 'right motor End Sub

Private Sub Form_Load()

Combo1.ListIndex = 5 ' 设置COM口选项默认值 Timer1.Enabled = False

' MSComm1.InBufferSize = 40 '初始化串口 MSComm1.InBufferCount = 0

MSComm1.InputMode = comInputModeBinary ' 二进制方式 ' MSComm1.CommPort = 1 MSComm1.Settings = \

MSComm1.RThreshold = 1 ''设置接收一个字节就产生OnComm事件 MSComm1.InputLen = 1 'input一次从缓冲区读取1字节数据 Combo2(0).Text = Combo2(0).List(0) Combo2(1).Text = Combo2(1).List(0) gi_byRcvCount = 0 g_ucRcvCrcLow = 0 g_ucRcvCrcHigh = 0 g_uCrcLow = 0 g_uCrcHigh = 0 gc_BufCount = 0 End Sub

Private Sub MSComm1_OnComm()

26

武汉工程大学毕业设计(论文)说明书

If MSComm1.CommEvent = comEvReceive Then

ga_byRcvBuf(gi_byRcvCount) = AscB(MSComm1.Input) gi_byRcvCount = gi_byRcvCount + 1 gc_BufCount = gc_BufCount + 1 'Text4.Text = AscB(MSComm1.Input) 'Text4.Text = ga_byRcvBuf(0)

If (ga_byRcvBuf(gi_byRcvCount - 1) = &H50) Then MSComm1.DTREnable = False gi_byRcvCount = 0 'Text4.Text = ga_byRcvBuf(0)

g_ucRcvCrcLow = ga_byRcvBuf(0) g_ucRcvCrcHigh = ga_byRcvBuf(1) ga_byRcvBuf(0) = 0 ga_byRcvBuf(1) = 0 g_uCrcLow = 0 g_uCrcHigh = 0 'Text4.Text = gc_BufCount

g_uCrcLow = bCRC(ga_byRcvBuf, 9) And &HFF 'Text4.Text = gc_BufCount

g_uCrcHigh = bCRC(ga_byRcvBuf, 9) \\ 256 'Text4.Text = g_uCrcHigh gc_BufCount = 0

If (g_ucRcvCrcLow = g_uCrcLow And g_ucRcvCrcHigh = g_uCrcHigh) Then

'Text4.Text = g_uCrcLow '这里执行命令

If (ga_byRcvBuf(3) = &H34) Then Text4.Text = \成功!\

27


单片机电机测试系统的研制-上位机监控系统设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:安全检查表应用培训计划和内容 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: