请问51单片机从串口通信SBUF接收的数据可以进行运算吗?

如果不能,为什么呢?有其他的方法吗?呵呵~我是用C语言编的,不知各位大侠有什么建议呢?程序片段如下:但是却没反应?为什么呢??temp=SBUF;//读入缓冲区的值SBU... 如果不能,为什么呢?有其他的方法吗?
呵呵~我是用C语言编的,不知各位大侠有什么建议呢?程序片段如下: 但是却没反应?为什么呢??
temp=SBUF; //读入缓冲区的值
SBUF=temp; //把接收到的值再发回电脑端
//定时器中断子程序片段:
if (seconds==temp) //定时4秒后
{
LED=1; //把值输出到P0口,用于观察
}

TH0=(65536-50000)/256;
TL0 =(65536-50000)%256; // 设置T0计数量高8位元、低8位元
TMOD = 0x21; //将Timer1设置为Mode2以产生波特率
PCON = 0x00; //SMOD为0
SCON = 0x50; //设置为MODE1
TH1 = 0xFd; //波特率9600
TL1 = 0xFd;
TR1 = 1; //启动TIMER1
TR0 = 1;

if (IntCount==20) // 若T0已中断20次数,即一秒
{ IntCount=0; // 重新计次
seconds++;
if (seconds==temp) //定义的temp变量没反应???????
{
LED=1; //把值输出到P0口,用于观察
}
展开
 我来答
haolizhong4924
2011-05-21 · TA获得超过5217个赞
知道小有建树答主
回答量:600
采纳率:50%
帮助的人:259万
展开全部
当然能。
但是要靠您的软件来接收,正确的读出(从通信格式中解出)所要数据。编出正确的运算指令。
追问
大侠你好~可以具体讲讲怎么实现吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西门不败
2011-05-21 · TA获得超过4078个赞
知道大有可为答主
回答量:3749
采纳率:75%
帮助的人:4427万
展开全部
一般都是先送到累加器A
不推荐直接运算,因为一旦SBUF的值被改变,他会启动一个发送过程,可能会影响到你的程序。
更多追问追答
追问
那怎麽办?麻烦可以教教我吗?我调试了很久啦,希望您可以帮我解脱~~
追答
先送到累加器A或者其他的地址
再运算啊
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_10008
2011-05-21
知道答主
回答量:44
采纳率:0%
帮助的人:0
展开全部
最好自己做个缓冲区 在这个缓冲区里做运算
更多追问追答
追问
我也想过,但是用数组吗?我不是很懂,可以教教我吗?麻烦啦~
追答
QQ:251234994
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-21
展开全部
为什么不能呢?

否则 要他 干嘛?

呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式