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

📄 receive_data.lst

📁 单片机多机通信,通过串口互传信息,可作为远程控制通信
💻 LST
字号:
C51 COMPILER V8.08   RECEIVE_DATA                                                          12/26/2007 18:57:02 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE RECEIVE_DATA
OBJECT MODULE PLACED IN receive_data.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE receive_data.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************/
   2          /* 湖南师范大学  工学院    
   3          /* All rights reserved. 
   4          /* 程序名:receive_data.c
   5          /* 时  间:2007-12-26 
   6          /* 作  者:wangguangxi11@163.com
   7          /* 程序功能:多机通信,接收功能(先接收地址)                                        
   8          /*****************************************/     
   9          #include "receive_data.h"
  10          /*************** 延时t毫秒 ***************/
  11          void delay(uint t)
  12          {
  13   1              uint i;
  14   1              while(t--)
  15   1              {
  16   2                      /* 对于11.0592M时钟,约延时1ms */
  17   2                      for (i=0;i<125;i++)
  18   2                      {}
  19   2              }
  20   1      } 
  21          
  22          /************* 接收数据函数 ****************/
  23          uchar recvdata()
  24          {
  25   1              while(!RI);
  26   1              if (RB8==1)
  27   1              return 0xee;                            // 若接收的为地址帧,则返回0xee
  28   1              buf = SBUF;     
  29   1              RI = 0; 
  30   1              return 0;                                       // 返回0
  31   1      }
  32          
  33          /*************串口初始化函数 ****************/
  34          void init()
  35          {
  36   1              TMOD = 0x20;                            // 定时器T1使用工作方式2
  37   1              TH1 = 250;
  38   1              TL1 = 250;
  39   1              TR1 = 1;                                        // 开始计时
  40   1              PCON = 0x80;                            // SMOD = 1
  41   1              SCON = 0xd0;                            // 工作方式,9位数据位,波特率9600kbit/s,允许接收 
  42   1      }
  43          
  44          /**************** 主程序***************/
  45          void main()
  46          { 
  47   1              uchar i = 0;
  48   1              uchar tmp = 0xff;
  49   1              P1= 0xff;
  50   1              addr = P1&0x0f;                         // 获取本机地址
  51   1              P23 = 1;                                        // 发光管不亮
  52   1              
  53   1              init();                                 // 串口初始化 
  54   1              EA = 1;                                         // 关闭所有中断
  55   1              while(1)                                        // 进入设备应答 
C51 COMPILER V8.08   RECEIVE_DATA                                                          12/26/2007 18:57:02 PAGE 2   

  56   1              {
  57   2                      SM2 = 1;                                // 只接收地址帧
  58   2                      
  59   2                      while (tmp!=addr)               // 如果接收到的地址帧不是本机地址,则继续等待
  60   2                      {
  61   3                              RI = 0;
  62   3                              while(!RI)
  63   3                              tmp = SBUF;
  64   3                              RI = 0;
  65   3                      }       
  66   2                      SM2 = 0;                                //允许接收数据
  67   2                      tmp= recvdata();                //数据接收
  68   2                 
  69   2                  
  70   2                      if (tmp==0x00)  
  71   2                      {                
  72   3                           P0=buf;
  73   3                               P23 = 0;                       //绿灯亮,持续500ms,表示接收数据成功
  74   3                              delay(30);
  75   3                              P23 = 1;
  76   3                              
  77   3                      }           
  78   2                      // 如果接收数据时发现地址帧,则重新开始整个接收过程
  79   2              }
  80   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    131    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       1
   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 + -