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

📄 pmpdatar.lst

📁 用单片机C语言编程实现4台单片机之间的多机通信
💻 LST
字号:
C51 COMPILER V8.05a   PMPDATAR                                                             05/08/2009 01:23:34 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE PMPDATAR
OBJECT MODULE PLACED IN PMPDataR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PMPDataR.c BROWSE DEBUG OBJECTEXTEND

line level    source

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

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