LabVIEWwilliam hill官网
直播中

kh1445291129

11年用户 73经验值
擅长:嵌入式技术
私信 关注
[问答]

labview与单片机通信

小弟想做一个上位机程序,上位机发送数字,单片机接收该数据并比较该数字是否等于50,如果等于就点亮led灯。然后单片机给上位机回应“I get XX”(XX是上位机发送的数字)。现在的问题是我发送50,led灯也不亮。查找了好多帖子,感觉应该是数字的进制转换问题。什么十六进制,十进制,ASCII码,搞得头大。。。请大神指导应该怎么改程序,谢谢。labview程序和单片机程序如下,单片机我是用proteus仿真的。


#include       
#define uchar unsigned char
#define uint unsigned int
uint flag,a,i;
uchar code table[]="I get "; //字符串数组,如果单片机收到数据就把这个字符串数组发到上位机
***it led=P0^0;

void init()// STC89C52单片机的串口初始化(程序没问题,按书上写的)
{
    TMOD=0x20;
     TH1=0xfd;
     TL1=0xfd;
     TR1=1;
     REN=1;
     SM0=0;
     SM1=1;  
     EA=1;
     ES=1;  
}

void main()
{
    init();
     while(1)
     {
          if(flag==1)
          {
               ES=0;
               for(i=0;i<6;i++)
               {
                SBUF=table[i]; //把字符串数组发送到上位机
                while(!ti);
                TI=0;
               }
               SBUF=a; //把收到的数字也发送到上位机,这样做的目的是我想在上位机上显示“I get 50”
               while(!TI);
               TI=0;
               ES=1;
               flag=0;
          }
     }
}
void ser() interrupt 4
{
    RI=0;
    a=SBUF;//接收上位机发送来的数字,并把值赋给变量a
    flag=1;
    if(a==50) //如果接收到的数字为50就点亮led灯
        led=1;
}

  • 1.jpg
  • 2.jpg
  • 3.jpg

回帖(7)

kh1445291129

2014-5-31 17:23:25
怎么没人来,如果能解决要多少积分都行呀!
举报

NO.1丁丁

2014-5-31 17:25:19
四大四大四大四大四大四大是
举报

大叔在吃草

2014-5-31 22:08:55
点赞。 。                     
举报

加饭

2014-6-1 08:54:57
正在找这方面的程序~感谢楼主
举报

更多回帖

发帖
×
20
完善资料,
赚取积分