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

📄 pc_com.lst

📁 此源码为商用的电力抄表系统的从机端源程序。通过电力载波模块
💻 LST
字号:
C51 COMPILER V8.01   PC_COM                                                                12/22/2005 17:11:50 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE PC_COM
OBJECT MODULE PLACED IN pc_com.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE pc_com.c ROM(COMPACT) OPTIMIZE(9,SPEED) BROWSE MODP2 DEBUG OBJECTEXTEND PRE
                    -PRINT

line level    source

   1          #include <REG922.H>
   2          
   3          #include "pc_com.h"
   4          #include "sart.h"
   5          #include "plc.h"
   6          #include "string.h"
   7          #include "amr_cctr.h"
   8          #include "amr_config.h"
   9          #include "wr_flash.h"
  10          
  11          
  12          #define uint unsigned int
  13          #define uchar unsigned char
  14          
  15          //#define reg_setting 0x1d06
  16          
  17          extern idata uchar amr_frame[];  // AMR frame buffer
  18          extern code uchar  METER_ADDR[6];
  19           uchar code  reg_setting[2]; 
  20          /*=============================================================================* /
  21          
  22                      读FLASH 写入8300寄存器
  23          /*=============================================================================*/
  24          
  25          void RW_flash_data()
  26          {
  27   1        uchar d_frame[2];
  28   1          EA = 0; 
  29   1          FLASH_ReadNByte ((int code *)&reg_setting[0], d_frame,2);
  30   1          EA = 1; 
  31   1      
  32   1        write_reg(REG_WR_3E, d_frame[0]);  //写入8300寄存器
  33   1        write_reg(REG_WR_3F, d_frame[1]); 
  34   1      
  35   1        //新方法写入8300
  36   1       // write_reg(REG_WR_3E, reg_setting[0]);  //写入8300寄存器
  37   1       // write_reg(REG_WR_3F, reg_setting[1]); 
  38   1      
  39   1        // uart_sendchar(d_frame[0]);
  40   1        // uart_sendchar(d_frame[1]); 
  41   1      
  42   1      }
  43          /*=============================================================================*/
  44          
  45          //             减0x33
  46          /*=============================================================================*/
  47          
  48          void eviscerate(uchar frame[],uchar k)//减0x33
  49          {
  50   1        uchar i;
  51   1       for(i = 0;i < k;i ++)
  52   1        frame[i] -= 0x33;
  53   1      
  54   1      }
C51 COMPILER V8.01   PC_COM                                                                12/22/2005 17:11:50 PAGE 2   

  55          
  56          /*=============================================================================*/
  57          
  58          //             加0x33
  59          /*=============================================================================*/
  60          
  61          void punctuate(uchar frame[],uchar k)
  62          {
  63   1        uchar i;
  64   1       for(i = 0;i < k;i ++)
  65   1        frame[i] +=  0x33;
  66   1        
  67   1      }
  68          
  69          /*=============================================================================*/
  70          /*=============================================================================*/
  71          
  72          void tx_com_data(uchar frame[],bit me) //串口查看数据处理
  73          {
  74   1       uchar i;
  75   1      
  76   1       for(i = 0; i < 6;i++)amr_frame[i] = METER_ADDR[i]; //地址
  77   1      
  78   1        amr_frame[6] = 0;    //C = 0
  79   1        amr_frame[7] = 20;   //L = ?
  80   1        
  81   1        if(me)amr_frame[8] = 0x55; //ID1 +33 电力网发出数据
  82   1        else  amr_frame[8] = 0x57; //ID1 +33 本地发出的数据
  83   1      
  84   1        amr_frame[9] = 0x13; //ID0 +33 
  85   1      
  86   1        for(i = 0; i < 20;i++)
  87   1        amr_frame[10 + i] = frame[i];
  88   1        punctuate(&amr_frame[10],18); //+33
  89   1      
  90   1        amr_frame[amr_frame[AMR_OS_L] + 8] = amr_check_cs(amr_frame,0);//校验和
  91   1      
  92   1        amr_send_frame(METER_ADDR, amr_frame);
  93   1       // com_reuner(buf);
  94   1      }
  95          
  96          /*=============================================================================*/
  97          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    222    ----
   CONSTANT SIZE    =      2    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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