**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,也是初学,出现的问题不知道怎么解决,希望各位大神能不吝赐教,在此谢过了!**