本帖最后由 cgd 于 2012-7-1 11:43 编辑
clr es ;禁止串行中断
mov a ,sbuf ;从缓冲区取出数据,用来判断是否停止发送。
clr ri ;清除接收标志位
cjne a,#00h,Loop ;接收到非00,则转移。
setb es ;允许串行中断
reti ;中断返回
以上为程序的一部分,用来判断接收到的数据。如果接收的数据是00,则中断返回,此功能没有问题。
为非00的时候,转移到别处执行另外的功能。
问题:上位机只发送一次数据“30”,第一次读取sbuf的时候若为30,在第二次读取的时候仍然是30。我想实现第一次读取sbuf的时候为30,在第二次执行此程序的时候sbuf是03。
在上位机只发送一次30的情况下,能不能实现呢? |