STC89C52RC串口通讯
我想通过上位机控制单片机用的是12M晶振,STC89C52RC,上位机需要通过发送“kaideng”,“guandeng”的指令来控制一盏P1.0口LED二极管请直接给出...
我想通过上位机控制单片机用的是12M晶振,STC89C52RC,上位机需要通过发送“kaideng”,“guandeng”的指令来控制一盏P1.0口LED二极管
请直接给出源码,如果调试成功再给50分
上位机是电脑 展开
请直接给出源码,如果调试成功再给50分
上位机是电脑 展开
展开全部
如果你需要发送kaideng来控制开灯的话麻烦,需要发送7次才能使单片机接收。
你的上位机是什么?电脑还是单片机?如果是电脑话就简单,用串口调试助手,只需要编辑单片机指令就好。
描述清楚了给你写。
你的上位机是什么?电脑还是单片机?如果是电脑话就简单,用串口调试助手,只需要编辑单片机指令就好。
描述清楚了给你写。
更多追问追答
追问
是电脑
追答
已经测试过了。
发送1开灯,发送2关灯。(以字符的形式发送,别以16进制发送)
//TI;RI为发送接收中断,需在发送一字节后程序清零
//SBUF为接收发送缓存区,SBUF=a设置发送 a=SBUF取接收
#include
unsigned char flag,a,ii;
sbit led=P1^0;
void ser() interrupt 4
{
RI=0;
if(SBUF==0x31) //如果收到的数据为字符'1'则发送一次字符串
led=0;
else if(SBUF==0x32)
led=1;
}
void main()
{
TMOD=0x20;//设置定时器1为工作方式2自动重装的8位计数器
TH1=0xfd; //波特率为9600
TL1=0xfd;
TR1=1; //启动定时器1
REN=1; //允许接收
SM0=0;
SM1=1; //设置工作方式1
EA=1;//总中断允许
ES=1; //串口中断允许
while(1);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询