上位机发送Open led就点亮LED,发送Close led就关闭led,我要C语言的程序。
ç¼äºä¸ä¸ªå°ç¨åºï¼ä¾åèï¼æ²¡æç¯å¢è°è¯ï¼å¤§æ¦ææå°±è¿æ ·ï¼ä½ å¯ä»¥åèèªå·±è¯è¯ã
#include<reg51.h>
#include<string.h>
#define uchar unsigned char
sbit LED=P1^0;
uchar buf[16],num;
uchar strOpen="Open";
uchar strClose="Close";
void uart() interrupt 4
{
if(RI)
{
RI=0;
buf[num]=SBUF;
num++;
}
if(TI)TI=0;
}
void initbuf()
{
uchar i;
for(i=0;i<16;i++)buf[i]=0x00;
}
main()
{
TMOD=0x20;
SCON=0x50;
TH1=TL1=0xfd;
TR1=1;
ES=1;
EA=1;
initbuf();
while(1)
{
switch(num)
{
case 0:break;
case 1:break;
case 2:break;
case 3:break;
case 4:
if(strcmp(strOpen,buf)==0)LED=0;
initbuf();
num=0;
break;
case 5:
if(strcmp(strClose,buf)==0)LED=1;
initbuf();
num=0;
break;
default:num=0;break;
}
}
}
#include<reg51.h>
#include<string.h>
#define uchar unsigned char
sbit LED=P1^0;
uchar buf[16],num;
uchar strOpen="Open";
uchar strClose="Close";
void uart() interrupt 4
{
if(RI)
{
RI=0;
buf[num]=SBUF;
num++;
}
if(TI)TI=0;
}
void initbuf()
{
uchar i;
for(i=0;i<16;i++)buf[i]=0x00;
}
main()
{
TMOD=0x20;
SCON=0x50;
TH1=TL1=0xfd;
TR1=1;
ES=1;
EA=1;
initbuf();
while(1)
{
switch(num)
{
case 0:break;
case 1:break;
case 2:break;
case 3:break;
case 4:
if(strcmp(strOpen,buf)==0)LED=0;
initbuf();
num=0;
break;
case 5:
if(strcmp(strClose,buf)==0)LED=1;
initbuf();
num=0;
break;
default:num=0;break;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-09-15
控制,没有必要发出很长的字符串,用一个字节,就个解决问题。追问
单个的字节我会啊,我就是不知道怎么接收上位机发来的多个字节。求大哥支招啊
追答到我的百度空间看看吧,有现成的程序。
追问我找不到啊,大哥,帮忙写一个程序啊,感激不尽。
第2个回答 2012-09-16
学习