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

📄 communication.lst

📁 系统按键显示都具有,不同的I/O口,具有很大的参考价值
💻 LST
字号:
C51 COMPILER V7.50   COMMUNICATION                                                         08/23/2007 13:11:49 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE COMMUNICATION
OBJECT MODULE PLACED IN Communication.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Communication.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <Communication.h>
   2          
   3          float ZeroData; //零点数据
   4          float CheckData[5];
   5          
   6          void Rs232Init()
   7          {
   8   1               TMOD=0x21;               //定时器0工作方式1,定时器1工作方式2(自动重装载)
   9   1               TL1=0xFA;
  10   1               TH1=0xFA;                //设定波特率9600bps,晶振为11059200hz
  11   1              
  12   1               PCON=0X80;
  13   1               SCON=0x50;
  14   1               TR1=1;
  15   1      }
  16          //发送上位机控制字
  17          void SendMessureWord()
  18          {
  19   1      //      unsigned char temp;
  20   1              unsigned char i;
  21   1              unsigned CheckWord;
  22   1              //量程信息: _4000.0kpa 06 08,量程4000kPa,当前模块能转换的单位个数为6,校验点为8个     
  23   1              unsigned char MessureWord[13]={0X20,0X31,0X36,0X30,0X30,0X2E,0X30,0X6B,0X50,0X61,0X06,0X08};
  24   1              //校验和变量赋初值
  25   1              CheckWord = 0;
  26   1              while(!RI){;}RI=0;
  27   1              if(SBUF==0x55)
  28   1          {
  29   2                      for(i=0;i<12;i++)
  30   2                      {
  31   3                              SBUF=MessureWord[i];while(!TI);TI=0;
  32   3                              CheckWord+=MessureWord[i];
  33   3                      }
  34   2                      SBUF=CheckWord;while(!TI);TI=0;
  35   2              }
  36   1      }
  37          //接收上位机校验命令
  38          void ReceiveCheckWord()
  39          {
  40   1              unsigned char temp;
  41   1              unsigned char i;
  42   1              unsigned CheckWord[5];
  43   1              CheckWord[0]=temp;
  44   1              for(i=1;i<=4;i++)
  45   1              {
  46   2                      while(!RI);RI=0;
  47   2                      CheckWord[i] = SBUF;
  48   2              }
  49   1              if(CheckWord[1]!=0xAA)
  50   1                      return;
  51   1              if((CheckWord[3]>=0x05)&&(CheckWord[2]<=0x10))//上位机要求进行当前校验点校验
  52   1              {
  53   2              }
  54   1              if(CheckWord[4]&0xf0==0x00)             //上位机要求压力清零,将当前压力值作为压力零点
  55   1                      ZeroData = 0;
C51 COMPILER V7.50   COMMUNICATION                                                         08/23/2007 13:11:49 PAGE 2   

  56   1              if(CheckWord[4]&0x0f<0x06)              //上位机要求进行压力转换。
  57   1              {
  58   2              }
  59   1      }
  60          //发送上位机测量数据
  61          void SendMessureData()
  62          {
  63   1              unsigned char temp;
  64   1              union 
  65   1              {
  66   1                      long Data_long ;
  67   1                      unsigned char Data_char[4];
  68   1              }MessureDatatemp;
  69   1              while(!RI){;}RI=0;
  70   1              temp = SBUF ;
  71   1      //      MessureDatatemp.Data_long = MessureData;
  72   1              if(temp==0x13)
  73   1              {
  74   2                      
  75   2              }
  76   1      }
*** WARNING C280 IN LINE 68 OF COMMUNICATION.C: 'MessureDatatemp': unreferenced local variable
  77          void Rs232interrupt() interrupt 4 using 2  //串口接收中断
  78          {
  79   1              unsigned char ReceiveData;
  80   1          if(RI==1)
  81   1          {
  82   2                      EA = 0;
  83   2                      ES = 0;
  84   2              RI=0;
  85   2                      ReceiveData = SBUF;
  86   2                      if(ReceiveData==0x11)
  87   2                      {
  88   3                              SendMessureWord();
  89   3                      }
  90   2                      if(ReceiveData==0x22)
  91   2                      {
  92   3                              ReceiveCheckWord();
  93   3                      }
  94   2                      if(ReceiveData==0x12)
  95   2                      {
  96   3                      }
  97   2                      ES = 1;
  98   2                      EA = 1;
  99   2          }
 100   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    184    ----
   CONSTANT SIZE    =     13    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24      30
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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