怎么用上位机通过串口去控制51单片机点亮一个LED? 求程序。。

上位机发送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;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-15
控制,没有必要发出很长的字符串,用一个字节,就个解决问题。追问

单个的字节我会啊,我就是不知道怎么接收上位机发来的多个字节。求大哥支招啊

追答

到我的百度空间看看吧,有现成的程序。

追问

我找不到啊,大哥,帮忙写一个程序啊,感激不尽。

第2个回答  2012-09-16
学习
相似回答