⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs485m.lst

📁 书中详细说明了多路数据采集的方法,以及怎么样用AD来采集数据哟,大家不妨看看嘛,说不定有所帮助哟?
💻 LST
字号:
C51 COMPILER V7.50   RS485M                                                                03/17/2007 10:53:10 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE RS485M
OBJECT MODULE PLACED IN RS485M.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RS485M.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <C8051f020.h>
   2          #include "main.h"
   3          
   4          sbit DE_RE=P2^5;
   5          
   6          void UART0_TX(unsigned char send[],unsigned char ii)
   7          {
   8   1          unsigned char i;
   9   1              DE_RE = 1;//设置RS485处于发送状态
  10   1          IE &= ~0x10;//关闭UART0中断用查询方式发送
  11   1              for(i=0;i<ii;i++)
  12   1              {
  13   2                  if(i==0)//发送从机地址,实现多机通信
  14   2                      {
  15   3                          TI0=0;
  16   3                              TB80=1;
  17   3                          SBUF0=send[i];
  18   3                          while(TI0==0);
  19   3                          TI0=0;
  20   3                              TB80=0;   
  21   3                      }
  22   2                      else
  23   2                      {
  24   3                      SBUF0=send[i];
  25   3                          while(TI0==0);
  26   3                          TI0=0;
  27   3                      }
  28   2              }
  29   1              IE |= 0x10;//开启UART0中断
  30   1              DE_RE = 0;//设置RS485处于接收状态
  31   1      }
  32          
  33          void UART0_ISR (void) interrupt 4  //URAT0中断处理
  34          {
  35   1          static unsigned char point=0,time=0; 
  36   1          if(RI0==1) //接受中断处理
  37   1              {
  38   2                  RI0=0;
  39   2                  if(point==0&&SM20==1&&RB80==1) //广播地址识别
  40   2                  {
  41   3                      SM20=0; //以后收到为数据
  42   3                      RX[point++]=SBUF0;
  43   3                  }
  44   2                  else 
  45   2                  {
  46   3                      if(point>=1)
  47   3                      {   
  48   4                          RX[point++]=SBUF0;
  49   4                              if(point==3)
  50   4                              {
  51   5                              time=RX[2];//取报文长度               
  52   5                          }
  53   4                      if(point>=3)
  54   4                      {  
  55   5                          if(time==0)//全部接收完成
C51 COMPILER V7.50   RS485M                                                                03/17/2007 10:53:10 PAGE 2   

  56   5                          {
  57   6                              REN0=0;//禁止接收使能
  58   6                                                      SM20=1; 
  59   6                              ReceiveBit=1;//置接收完成标志
  60   6                                                      point=0;
  61   6                          }
  62   5                                              else
  63   5                                                  time--;
  64   5                      }
  65   4      
  66   4                      }
  67   3                      else 
  68   3                          point=0;//等待下一次开始
  69   3                  }
  70   2              }
  71   1              else //发送中断处理
  72   1                 TI0=0;
  73   1      }  
  74          
  75                 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    185    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -