导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[原创]INT0 作模拟串口的收。数据经常收错,大家来看看什

* 84897: [原创]INT0 作模拟串口的收。数据经常收错,大家来看看什么原因。

   risun007 
risun007发表的帖子 

 [原创]INT0 作模拟串口的收。数据经常收错,大家来看看什么原因。
程序如下
INT0_INTERRUPT: procedure          interrupt X0_VECT   using X0_REG_BANK;
 declare  COUNT             byte,
         cc                byte;
  
 TL2    = 020H;
 TH2    = 0FFH;          /*保证第一位是1.5bit*/
  
 TR2 = 1;        
 TF2 = 0;   
 cc  = 0; 
 do COUNT = 0 to 7; 
  TF2    = 0;
  do while (TF2 =0); 
    SDA =not SDA;  
  end;  
  cc = shr(cc,1);
  if(RXD1 = 1)then cc = cc + 80H;   
 end;  
  
 TL2    = 0A0H;
 TH2    = 0FFH;          /*保证第一位是0.5bit*/
 TF2    = 0;
 JFQ_RX_FIFO(JFQ_RX_INP_PTR) = cc;
 JFQ_RX_INP_PTR =JFQ_RX_INP_PTR + 1;
 if JFQ_RX_INP_PTR =JFQ_RX_BUF_SIZE
  then JFQ_RX_INP_PTR =0;  
 
 do while (TF2 =0); 
  SDA =not SDA;  
 end;   
 
 TR2  = 0;
end INT0_INTERRUPT;

串口数据的开始位为0时,进入中断。然后接收数据。我分析是不是进入中断是有延时的,从而影响以后的时序

发表时间:2005年10月21日8:55:51

  
回复该帖

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

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

[上一篇帖子]:键盘扫描出错啊!各位大虾救我[upload=bmp]uploadFile/2005102192731
[下一篇帖子]:[求助]KEIL C6.12版本CRC程序出错,请执教本人在做项目时候,想用C51来实现C