经典非经典vb和单片机通信问题!

来源:百度知道 编辑:UC知道 时间:2024/05/25 02:33:06
谁能帮我写一下VB发送一个十六进制数据给单片机,单片机通过一个数码管显示, 单片机向VB发送所显示的数据并在中显示出来。我之前写过一个但是单片机会送数据接收不下来。
VB程序:
Private Sub Form_Load()
MSComm1.Settings = "1200,n,8,1"
MSComm1.CommPort = 4
End Sub
'发送和接收显示
Private Sub Command3_Click()
Dim a(0) As Variant
If MSComm1.PortOpen = False Then
MsgBox "请打开串口"
End If
If Text3.Text = "" Then
MsgBox "请输入要发送的数据"
Else
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
MSComm1.Output = Chr(Text3.Text)
Text2.Text = Text3.Text '用文本框text2显示text3要发送的内容
MSComm1.InputMode = comInputModeBinary
a(0) = Val(MSComm1.Input) '接收单片机发回的数据
Text1.Text = a(0)
End If
End Sub
单片机程序:ORG 00H
AJMP MAIN
ORG 0035H
MAIN: MOV SP,#60H
MOV TMOD,#20H ;波特率是1200
LOOP: MOV TH1,#0D0H
MOV TL1,#0D0H
SETB TR1
MOV PCON,#80H
MOV SCON,#60H
WAIT1: JNB RI,WAIT1

Private Sub MSComm1_OnComm()
Dim Data As String
Select Case MSComm1.CommEvent
Case comEvReceive '接收事件。
Dim Buffer As Variant
Buffer = MSComm1.Input
Text3.Text = Buffer
End Select
End Sub

Private Sub MSComm1_OnComm()
Dim Data As String
Select Case MSComm1.CommEvent
Case comEvReceive '接收事件。
Dim Buffer As Variant
Buffer = MSComm1.Input
Text3.Text = Buffer
End Select
End Sub
'*********************************************************
'可以
'我是搞电子的。VB是自学的,没有你那么精通,你说的东西我搞过,自'己搞着玩的。时间很长了。这个你先查查线路有没有什么问题呀,再'就是通信速度有没有不一样的呀。这个应该很简单的。先用个成型的串'口调试助手测试一下,确保单片机是正确的,再用自己编写的VB测试。

我是搞电子的。VB是自学的,没有你那么精通,你说的东西我搞过,自己搞着玩的。时间很长了。这个你先查查线路有没有什么问题呀,再就是通信速度有没有不一样的呀。这个应该很简单的。先用个成型的串口调试助手测试一下,确保单片机是正确的,再用自己编写的VB测试。