请问怎么来判断串口在发送数据

[复制链接]
10267|53
 楼主| jack.king 发表于 2007-9-6 18:17 | 显示全部楼层

to gyt


   这个图纸不是我设计的.
   我只是看了这个测量温度的板.然后把它画了出来
   就是不知道是什么回事才特意来请教大家的
gyt 发表于 2007-9-6 18:38 | 显示全部楼层

不要用这个线路

两个单片机之间的通讯不要用这个线路,用你自己做过的已经成熟的线路。
 楼主| jack.king 发表于 2007-9-6 20:36 | 显示全部楼层

to gyt

谢谢你gyt
    我想问下您看过了哪个图纸觉得哪个图觉得怎么样?
    我怎么觉得有点跟常规的不同啊!
   P0口都没有用到都是用的其他的脚
      
gyt 发表于 2007-9-7 10:14 | 显示全部楼层

我觉得这个图不太好

P0口没有使用可能是留着做显示之类的东东
 楼主| jack.king 发表于 2007-9-7 15:01 | 显示全部楼层

我去改东西啊

是不是直接把TXD和RXD对接.让后也同时接地就可以了吧?
gyt 发表于 2007-9-7 21:44 | 显示全部楼层

没错

就是这样
yingyuping 发表于 2007-9-9 21:33 | 显示全部楼层
 楼主| jack.king 发表于 2007-9-9 23:01 | 显示全部楼层

用示波器很好测量


  这几天实验下.用示波器很好测量.
    但是新的问题又出现了.就是因为发送程序好象要发几次才能接受
    并且用T2计数器产生波特率好象不行
   只能用T0和T1才是正确
   也许是我把程序错了吧
   但是用T0和T1是正确的.
   
                            T2CON|=0x34;//选择成了波特率发生器方式(RCLK+TCLK=1,TR2=1)//控制寄存器
                         TH2=0xf3;
             TL2=0xf3;
              RCAP2H=0xf3;       //陷阱积存器
                         RCAP2L=0xf3;   
                        SCON=0x50;//方式1(9为UART)
                       ET2=1;
                      EA=1;
                    ES=1;
qjy_dali 发表于 2007-9-9 23:47 | 显示全部楼层

逻辑分析仪也不错,嘿嘿

CONWH 发表于 2007-9-10 03:23 | 显示全部楼层

怎么还没有搞定?

gyt 发表于 2007-9-10 08:47 | 显示全部楼层

如果是同一种单片机相互通讯

不用T2也一样的。不会有误差。
 楼主| jack.king 发表于 2007-9-10 12:26 | 显示全部楼层

不是同一种单片机但是是一个公司的


   我用的是S82和S8253之间通讯
    我用T0和T1产生波特率时候是正常的.有数据发送
  用示波器去测量也是用电平变化.
   但是我改成用T2产生波特率的时候.就没有数据接受了.
     示波器上的变化也只有一点.
   设置T2的程序如下:
 T2CON|=0x34;//选择成了波特率发生器方式(RCLK+TCLK=1,TR2=1)//控制寄存器
 TH2=0xf3;
 TL2=0xf3;
 RCAP2H=0xf3;       //陷阱积存器
 RCAP2L=0xf3;   
 SCON=0x50;//方式1(9为UART)
 ET2=1;
 EA=1;
 ES=1;
        
gyt 发表于 2007-9-10 18:38 | 显示全部楼层

波特率是多少?
lika9527 发表于 2007-9-10 19:19 | 显示全部楼层

串口

串口收发相连   看能否收到就行了啊
地下水 发表于 2007-9-10 19:53 | 显示全部楼层

指示灯和串口调试助手

  指示灯的闪烁还要程序控制,看串口通讯正确率最好是用调试助手。。。
hq_y 发表于 2007-9-10 19:57 | 显示全部楼层

做串口的电路一般是在串口上挂led然后使用串口工具监听数

 楼主| jack.king 发表于 2007-9-10 23:34 | 显示全部楼层

谢谢各位的意见我就去实验下.

谢谢各位的意见我就去实验下.
TO:gyt
   波特率是2400(6MZ)
    请问在什么范围的波特率才是正常的呢?
lyctlidong 发表于 2007-9-11 09:41 | 显示全部楼层

同意

我同意在串口中断里面加上LED指示灯,很直观嘛。
 楼主| jack.king 发表于 2007-9-11 19:31 | 显示全部楼层

接受程序若放到中断里面就没有效果


   谢谢各位的意见我意见把LED装上去了.并且是正确的.
  但是我把接受程序放到中断程序里面的时候就是错误的了.
   不知道什么原因
  程序如下(这个程序是正常的.并且是正确若把接受程序放到串口中断里就没有效果了):
/**********************************************************/
void jieshou(void)
     {  j=1;
        while(1)         //开始接受数据
        {
           while(1)    //等待接受完信号.  
        {
      if(RI)
        {    
       RI=0;
       break;
         }
        } 
       ACC=SBUF;
       temp8=ACC;
      // re_data();
        j++;
        if(j==7)
       break;
        }
     }
/*******************************************************************/
void main(void)
  {
                 TMOD=0x20;
     TH1=0xf3;
     TL1=0xf3;
     SCON=0xd0;
     PCON=0x80;
     TR1=1;
     EA=1;
     led_display(0x01,0x6f);delay(100);
     while(1)
                 {
      diss();
      cleardog();
     led_display(0x02,0x6f);delay(100);
    jieshou();//接受数据(若用中断则不用这个函数了)
     }
  }
/***********************************************/
void serial(void) interrupt 4 using 3//若把接受程序变成这样就没有效果了

     {  j=1;
        while(1)         //开始接受数据
        {
           while(1)    //等待接受完信号.  
        {
      if(RI)
        {    
       RI=0;
       break;
         }
        } 
       ACC=SBUF;
       temp8=ACC;
      // re_data();
        j++;
        if(j==7)
       break;
        }
     }
dreambird 发表于 2007-9-11 20:11 | 显示全部楼层

是有点慢,一个星期了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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