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

📄 zjq_bc.lst

📁 利用福星晓程芯片3105开发多功能表时B、C相CPU的软件程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  ZJQ_BC                                                                 12/09/2004 09:10:51 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE ZJQ_BC
OBJECT MODULE PLACED IN C:\ZJQ_BC\ZJQ_BC.OBJ
COMPILER INVOKED BY: C:\COMP51V6\C51.EXE C:\ZJQ_BC\ZJQ_BC.C DB SB OE

stmt level    source

   1          /********************************************************************************************/
   2          /*
   3          /*  Copyright (c) 2004,北京福星晓程电子科技股份有限公司
   4          /*
   5          /*  All Rights Reserved
   6          /*
   7          /*
   8          /*
   9          /*  文件名称:ZJQ_BC.c
  10          /*
  11          /*  文件标识:存档
  12          /*
  13          /*  摘    要:1、单、复费率通用三相中继器B、C两相程序
  14          /*            2、该文件包括主函数;载波中断接收函数;看门狗处理函数;定时器中断处理函数
  15          /*            3、CPU :PL3105
  16          /*            4、中继器串口集联收发程序(中继器载波接收、串口发送部分)
  17          /*            5、适用费率规约:  ①、P1.6接VCC为:复费率
  18          /*                               ②、P1.6接GND为:单费率
  19          /*
  20          /*  功    能:1. 接收载波数据并通过串口集联上传返回集中器
  21          /*            2. 接收下位集联上传串口数据, 并通过串口集联上传
  22          /*
  23          /*
  24          /*  指示灯  : 1. 接收到载波数据并转发时, 指示灯点亮
  25          /*            2. 本级接收到载波返回的合法抄表应答命令时, 指示灯点亮
  26          /*
  27          /*  串口速率:2400BPS  无校验
  28          /*
  29          /*  当前版本:1.0(发布)
  30          /*  作    者:魏茂
  31          /*  完成日期:2004年11月17日
  32          /*
  33          /*
  34          /********************************************************************************************/
  35          
  36          #include "PL3105.h"
  37          
  38          #define uchar unsigned char
  39          #define uint  unsigned int
  40          
  41          //I/O 口设置
  42          sbit Carrier_Rxd= P3^7;                                   // 载波数据输入、输出口
  43          sbit led        = P0^5;                                   // 指示灯
  44          sbit up_ok_txd  = P3^5;                                   // 向上OK发
  45          sbit txd_up     = P3^4;                                   // 下级数据接收口
  46          sbit up_ok_rxd  = P3^2;                                   // 向上OK收
  47          sbit up_txd_10  = P3^1;                                   // 向上发
  48          sbit rxd_10     = P3^0;                                   // 串口收
  49          
  50          sbit D_F_Sign   = P1^6;                                   // 单、复费率区分标志,
  51                                                                    // 接VCC为:复费率 ;
  52                                                                    // 接GND为:单费率
  53          
  54          uchar data   YS_SET_DF;
  55          // 全局变量设置
C51 COMPILER V6.02  ZJQ_BC                                                                 12/09/2004 09:10:51 PAGE 2   

  56          uchar bdata  pl_data;                                     // 发送字节缓冲
  57          uchar data   pl_len;                                      // 发送字节计数
  58          uchar data   r_len1;                                      // 发送字节计数
  59          uchar data   r_len;
  60          uchar data   r_data;
  61          uchar data   r_8;
  62          uchar data   pl_8;                                        // 发送位计数
  63          uchar data   x;
  64          uchar data   n;
  65          uchar data   ti_len;
  66          uchar data   ystxd;
  67          uchar data   ysrxd;
  68          uint  data   x_09af;
  69          uchar xdata  pl_buf[60];
  70          uchar xdata  COM_Buf[60];
  71          
  72          // 位变量
  73          bit   bdata  r_x,r_d;
  74          bit   bdata  plmrxd;
  75          uchar data   wdi;
  76          
  77          
  78          
  79          void  D_LED_DISPLAY();
  80          void  F_LED_DISPLAY();
  81          
  82          /**************************************************************************************
  83           *
  84           * FUNCTION:    timeint0
  85           *
  86           * DESCRIPTION: 定时器0中断程序,50 ms 发生一次中断,
  87           *              对延时变量进行减1处理
  88           *
  89           * PARAMETERS:  none
  90           *
  91           * RETURNED:    none
  92           *
  93           *************************************************************************************/
  94          void  timeint0(void) interrupt 1       // 定时中断程序 50 ms 发生一次中断
  95          {
  96   1      
  97   1         if(ystxd>0)
  98   1            ystxd--;
  99   1         else
 100   1            ystxd=0;
 101   1      
 102   1         if(YS_SET_DF>0)
 103   1            YS_SET_DF--;
 104   1         else
 105   1         {
 106   2            YS_SET_DF=20;
 107   2            D_F_Sign=1;
 108   2         }
 109   1      
 110   1         //TH0=0x63;                           // 置定时器计数  50ms 中断一次( 4.8MHz )
 111   1         //TL0=0xcc;
 112   1      
 113   1         TH0=0xB1;                           // 置定时器计数  50ms 中断一次( 4.8MHz )
 114   1         TL0=0xE0;
 115   1      
 116   1         if(wdi==0x9a)
 117   1         {
C51 COMPILER V6.02  ZJQ_BC                                                                 12/09/2004 09:10:51 PAGE 3   

 118   2            WDT_RST=0xa1;                    // 清看门狗
 119   2            wdi=0;
 120   2         }
 121   1      }
 122          
 123          /**************************************************************************************
 124           *
 125           * FUNCTION:    pl_pro
 126           *
 127           * DESCRIPTION: 载波中断接收程序
 128           *
 129           * PARAMETERS:
 130           *              in :PLM_RS (PLM_RS=0  载波接收;  PLM_RS=1 载波发送)
 131           *              out:plmrxd=1  载波接收成功 ;pl_buf[]  载波接收成功的数据
 132           *
 133           *
 134           *
 135           * RETURNED:    none
 136           *
 137           *************************************************************************************/
 138          void  pl_pro(void) interrupt 7
 139          {
 140   1          uchar data i;
 141   1          uchar data j;
 142   1          uchar data k;
 143   1          uchar data h;
 144   1      
 145   1          if(D_F_Sign==0)
 146   1             goto D_FL_DESIGN;
 147   1          else
 148   1             goto F_FL_DESIGN;
 149   1      
 150   1          return;
 151   1      
 152   1          F_FL_DESIGN:
 153   1      
 154   1          if(PLM_RS)
 155   1          {
 156   2             return;                                            // 载波发送
 157   2          }
 158   1          else
 159   1          {                                                     // 载波接收
 160   2               Carrier_Rxd=1;
 161   2      
 162   2               if (r_x==0)
 163   2               {
 164   3                   if (Carrier_Rxd==1)
 165   3                   {
 166   4                   	x_09af=x_09af|1;
 167   4                   }
 168   3      
 169   3                   if (x_09af==0x09af)
 170   3                   {
 171   4                   	r_x=1;
 172   4                   	r_8=0;
 173   4                   	r_d=0;
 174   4                   	x_09af=0;
 175   4                   	r_len=0;
 176   4                   	r_data=0;
 177   4                   	r_len1=20;
 178   4                   }
 179   3                   else
C51 COMPILER V6.02  ZJQ_BC                                                                 12/09/2004 09:10:51 PAGE 4   

 180   3                   {
 181   4                   	x_09af=x_09af<<1;
 182   4                   }

⌨️ 快捷键说明

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