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 数学的三元一次方程求解
    • ¥20 iqoo11 如何下载安装工程模式
    • ¥15 本题的答案是不是有问题
    • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
    • ¥15 C++使用Gunplot
    • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
    • ¥15 matlab数字图像处理频率域滤波
    • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
    • ¥15 ELGamal和paillier计算效率谁快?
    • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题