串口通信 发射数据如何保持为上一个数据?

[复制链接]
2276|7
 楼主| jin1song 发表于 2012-5-10 11:28 | 显示全部楼层 |阅读模式
接收到一个数据,如果是0x55,0x76,0x88,0x08其中一个,原样返回,如果不是四个中的一个,则返回上一个数据。假如上一个收到的是0x76,则返回0x76。这种怎么实现?谢谢
ayb_ice 发表于 2012-5-10 11:47 | 显示全部楼层
记录上一个数据,简单的判断一下不就可以了
 楼主| jin1song 发表于 2012-5-10 11:57 | 显示全部楼层
怎么记录上一个数据呢?
dengm 发表于 2012-5-10 12:21 | 显示全部楼层
本帖最后由 dengm 于 2012-5-10 12:23 编辑

MOV A, SBUF
          CJNE A, #55H, L_100
             SJMP L_80
L_100:CJNE A, #76H, L_110
             SJMP L_80
L_110: CJNE A, #88H, L_120
             SJMP L_80
L_120: CJNE A, #8H, L_200
L_80:
             MOV  30H, A
L_200:
             MOV SBUF, 30H
amwrdfe 发表于 2012-5-10 12:29 | 显示全部楼层
哎,这怎么会是问题呢~

static get_buf;

if (buf==0x55|buf==0x76|buf==0x88|buf==0x08) {
   get_buf=buf;
   return buf;
   }
else
   return get_buf;
 楼主| jin1song 发表于 2012-5-10 12:52 | 显示全部楼层
ls两位的程序看不太懂,
joyme 发表于 2012-5-10 16:59 | 显示全部楼层
确实太有必要提高了
 楼主| jin1song 发表于 2012-5-11 08:48 | 显示全部楼层
如果接收也要保持上一个状态呢
假如收到的是四个数据中的一个,分别执行一个操作,收到的不是四个中的一个,保持上一个状态,怎么办?
if(rec==0x55)
{P0=0x45;}
else if(rec==0x76)
{P0=0x47;}
else if(rec==0x88)
{P0=0x87;}
else if(rec==0x08)
{P0=0x07;}
else
{
保持上一个状态
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:在顺境中感恩,在逆境中依旧心存喜乐,认真的活在当下!

1

主题

250

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部