STC89C52RC串口通讯

我想通过上位机控制单片机用的是12M晶振,STC89C52RC,上位机需要通过发送“kaideng”,“guandeng”的指令来控制一盏P1.0口LED二极管请直接给出... 我想通过上位机控制单片机用的是12M晶振,STC89C52RC,上位机需要通过发送“kaideng”,“guandeng”的指令来控制一盏P1.0口LED二极管

请直接给出源码,如果调试成功再给50分
上位机是电脑
展开
 我来答
weiyongjun369
2012-03-01 · TA获得超过132个赞
知道答主
回答量:119
采纳率:0%
帮助的人:48.5万
展开全部
TMOD=0x20;//设置定时器1为工作方式2自动重装的8位计数器
TH1=0xfd; //波特率为9600
TL1=0xfd;
建议用11.0592M 晶振
百度网友25510dd
2012-02-26 · TA获得超过217个赞
知道小有建树答主
回答量:131
采纳率:100%
帮助的人:130万
展开全部
如果你需要发送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);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式