Sophie_zhu 2014-05-04 09:30
浏览 707

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

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题