Private Sub Form_Load() '端口设置
MSComm1.CommPort = 3
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
MSComm1.InputLen = 1
MSComm1.OutBufferCount = 0
MSComm1.SThreshold = 1
MSComm1.InBufferCount = 0
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary
call send(220)
End Sub
Private Sub sendcommand(n) '发送命令子程序
head_data(0) = CByte(n)
MSComm1.Output = head_data
For x = 0 To 10000 Step -1
Next
End Sub
单片机程序
ORG 0023H ;
AJMP TCOM ; 转串行口中断
main: MOV TH1,#0FDH ;波特率9600 ,晶体震荡器 频率11.0592 mhz
MOV TL1,#0FDH
MOV TMOD,#20H ;定时器1,工作在方式2自动重装
MOV PCON,#00H ;使SMOD=0
MOV SCON,#50H ;串口工作在方式1;允许接收
CLR ET1
SETB TR1 ;开定时器
SETB EA ;开总中断
SETB ES ;开窜口中断 注意:在发送时要关闭串口中断
CLR RI
sjmp $
TCOM: MOV A,SBUF
CLR RI
RETI
接收的数据有这样的问题:
我发 (221)ddh ,单片机接收到的是 9d h
(204)cch,单片机接收到的是 8c h
会不会是波特率 的问题?
还有是不是vb发送数据的格式不对 ?