导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→单片机串口通讯问题!大家帮我看一下程序!

* 99606: 单片机串口通讯问题!大家帮我看一下程序!

   5460wjh 
5460wjh发表的帖子 

 单片机串口通讯问题!大家帮我看一下程序!
我最近写了一段485的通讯程序,发现通讯的时间特别长才能保证数据在通讯的时候不丢失(50ms)。大家帮我看看程序怎样优化才能减少通讯的时间(最好能减到30ms)!谢谢!
程序如下:
#include   <reg51.h>  
#define uchar unsigned char
#define unint unsigned int
#define SLAVE1  0x61            //1#从机地址

sbit RE_DE=P1^4;
char buf[4]={1,2,3,4};     
uchar point=1;
uchar add;

void serial() interrupt 4 using 1
{
 if(RI)
 {RI=0;
  add=SBUF;
 }
 if(add==SLAVE1)
  { SM2=0;                              //设置为点对点通信状态  
    RE_DE=1;                            //设置MAX483进入发送状态 
    SBUF=''s'';                          //发起始符s 
    while(TI==0);TI=0;   
 for(point=1;point  <=3;point++)          //连续发送3位数据 
 {
   SBUF=buf[point]; 
   while(TI==0);TI=0; 
  }
  SBUF=''o'';                           //发送结束符o
  while(TI==0);TI=0; 
  RE_DE=0;      }
   
}

main()
{
 TMOD=0x21;               //T/C0方式1,T/C1方式2
 TL1=0xfd;                //9600 bit/s
 TH1=0xfd;
 SCON=0x70;          //选择串口工作方式为1,打开接收允许
 PCON=0x00;
 TR1=1;
 REN=1;
 RI=0;
 ES=1;
 PS=1;
 EA=1;
 SM2=1;                   //处于地址检测状态
 RE_DE=0;
while(1);
}




发表时间:2006年11月14日13:34:49

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:x5045  请教高手作了一个板子,程序差不多了,才发现一个复位键不能用了。。。
[下一篇帖子]:我们可以帮你开发啊!我们可以帮你开发,如果有兴趣可以电话联系我们。 电话:0731-4479