
怎么用上位机通过串口去控制51单片机点亮一个LED? 求程序。。
展开全部
编了一个小程序,供参考,没有环境调试,大概意思就这样,你可以参考自己试试。
#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;
}
}
}

2023-06-12 广告
复位电路的目的就是在上电的瞬间提供一个与正常工作状态下相反的电平。一般利用电容电压不能突变的原理,将电容与电阻串联,上电时刻,电容没有充电,两端电压为零,此时,提供复位脉冲,电源不断的给电容充电,直至电容两端电压为电源电压,电路进入正常工作...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
控制,没有必要发出很长的字符串,用一个字节,就个解决问题。
更多追问追答
追问
单个的字节我会啊,我就是不知道怎么接收上位机发来的多个字节。求大哥支招啊
追答
到我的百度空间看看吧,有现成的程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询