2 u014234867 u014234867 于 2014.05.04 17:30 提问

VB与单片机通信出现不正常通信

**vb代码:
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case "1"
P1.CurrentX = 400
P1.CurrentY = 800
P1.Print "赞"
Case "2"
P1.CurrentX = 800
P1.CurrentY = 400
P1.Print "赞"
Case "3"
P1.CurrentX = 1200
P1.CurrentY = 800
P1.Print "赞"
Case "4"
P1.CurrentX = 1600
P1.CurrentY = 400
P1.Print "赞"
Case "5"
P1.CurrentX = 2000
P1.CurrentY = 800
P1.Print "赞"
Case Else
Print " "
End Select
End Sub
单片机程序代码如下:
#include
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^7;
sbit key2=P3^6;
sbit key3=P3^5;
sbit key4=P3^4;
sbit key5=P3^3;
uchar a,b,c,d,e,m,n,flag;
void send();
/*延时函数*/
void delay(uchar x)

{

for(m=x;m>0;m--)
for(n=110;n>0;n--);
}
void main ()
{
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xfd; //波特率为9600
TL1=0xfd;
TR1=1;
//ES=1;
//EA=1;
while(1)
{
send();
}
}
/*上传函数*/
void send()
{
//SBUF=flag;
if(!key1)
{ delay(5);
if(!key1)
{

SBUF='1';
while(!TI);
TI=0;
SBUF=0;
}
while(!key1);
}
if(!key2)
{

delay(5);
if(!key2)
{
SBUF='2';
while(!TI);
TI=0;
SBUF=0;
}
while(!key2);
}
if(!key3)
{
delay(5);
if(!key3)
{

SBUF='3';
while(!TI);
TI=0;
SBUF=0;
}
while(!key3);
}
if(!key4)
{

delay(5);
if(!key4)
{
SBUF='4';
while(!TI);
TI=0;
SBUF=0;
}
while(!key4);
}
if(!key5)
{

delay(5);
if(!key5)
{

    SBUF='5';
    while(!TI);
    TI=0; 
    SBUF=0;
    }
    while(!key5);
}

  //SBUF=flag;

}
出现的问题:按下按键只有key2指示的坐标重复显示“赞”字,其他位置不显示,是串口通信发送有问题还是VB的串口接收有问题?我是自学的VB,也是初学,出现的问题不知道怎么解决,希望各位大神能不吝赐教,在此谢过了!**

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!