特殊vb和单片机通信问题

我给单片机发送一个十六进制数单片机用一位数码管显示VB给单片机发送正常但是接受不到单片机发来的数据请各位大哥指教一下。下面是我的VB程序和单片机程序VB程序:'发送和接收... 我给单片机发送一个十六进制数 单片机用一位数码管显示 VB给单片机发送正常 但是接受不到单片机发来的数据 请各位大哥指教一下。下面是我的VB程序和单片机程序
VB程序:
'发送和接收显示
Private Sub Command3_Click()
If MSComm1.PortOpen = False Then
MsgBox "请打开串口"
End If
If Text3.Text = "" Then
MsgBox "请输入要发送的数据"
Else
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
MSComm1.Output = Hex(Val(Text3.Text))
Text1.Text = Val(MSComm1.Input) '接收单片机发回的数据
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
CLR RI
CJNE A,#00H,SJ1;如果00h则数码管显示0
MOV P2,#0C0H
LCALL DELAY;显示1秒
MOV P2,#0FFH
MOV A,#00H;发给VB
MOV SBUF,A
WAIT2: JNB TI,WAIT2
CLR TI
LJMP LOOP
SJ1: CJNE A,#01H,SJ2
MOV P2,#0F9H
LCALL DELAY
MOV P2,#0FFH
MOV A,#01H
MOV SBUF,A
WAIT3: JNB TI,WAIT3
CLR TI
MOV P2,#0C6H
LCALL DELAY
MOV P2,#0FFH
LJMP LOOP
SJ2: mov p2,#88h;不是0和1 就显示A
lcall delay
mov p2,#0ffh
lcall loop
DELAY: MOV TMOD,#10H
MOV TH1,# 0FCH
MOV TL1,#66H
SETB TR1
JNB TF1,$
CLR TF1
RET
END
展开
 我来答
百度网友2caf4f433
2008-07-12 · 超过33用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:0
展开全部
串口接收的时候必须使用二进制方式接收,然后转换为十六进制显示
这个需要设置MSComm1的接收类型为二进制而不是你现在采用的文本方式
2810caijing
2008-07-12 · 超过16用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:0
展开全部
vb上要输入二进制 接受要一预置
汇编太长了 现在都用C写了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a35ab24
2008-07-26 · TA获得超过104个赞
知道答主
回答量:324
采纳率:0%
帮助的人:104万
展开全部
分太少,懒的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式