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条回答

    报告相同问题?

    悬赏问题

    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?