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

📄 zjq_bc.lst

📁 利用福星晓程芯片3105开发多功能表时B、C相CPU的软件程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 183   3               }
 184   2               else
 185   2               {
 186   3                   if (Carrier_Rxd==1)
 187   3                      r_data=r_data|1;
 188   3      
 189   3                   r_8++;
 190   3      
 191   3                   if (r_8<8)
 192   3                       r_data=r_data<<1;
 193   3                   else
 194   3                   {
 195   4                   	pl_buf[r_len]=r_data;
 196   4                   	r_8=0;
 197   4      
 198   4                      if(r_len<3)
 199   4                      {
 200   5                         if(r_data>0xBB)
 201   5                         {
 202   6                         	r_x=0;
 203   6                         	return;                 // goto zb_end;
 204   6                         }
 205   5                      }
 206   4                      else if(r_len==4)
 207   4                      {
 208   5                          if(r_data==0)
 209   5                          {
 210   6                          	r_x=0;
 211   6                          	return;                 // goto zb_end;
 212   6                          }
 213   5                          if(r_data>50)
 214   5                          {
 215   6                            r_x=0;
 216   6                            return;                   // goto zb_end;
 217   6                          }
 218   5      
 219   5                          r_len1=r_data+7;
 220   5                      }
 221   4      
 222   4                      r_len++;
 223   4                      r_data=0;
 224   4      
 225   4                      if (r_len>=r_len1)
 226   4                      {
 227   5                         r_x=0;
 228   5                         r_d=0;
 229   5                         plmrxd=1;
 230   5      
 231   5                         for(i=0;i<(r_len1+1);i++)
 232   5                         {
 233   6                            COM_Buf[i]=pl_buf[i];
 234   6                         }
 235   5      
 236   5                         //led=0;
 237   5      
 238   5                      }
 239   4      
 240   4                      zb_end:;
 241   4                  }
C51 COMPILER V6.02  ZJQ_BC                                                                 12/09/2004 09:10:51 PAGE 5   

 242   3               }
 243   2          }
 244   1      
 245   1          return;
 246   1      
 247   1          D_FL_DESIGN:
 248   1      
 249   1          if(PLM_RS)
 250   1          {
 251   2             return;                                            // 载波发送
 252   2          }
 253   1          else
 254   1          {                                                     // 载波接收
 255   2               Carrier_Rxd=1;
 256   2      
 257   2               if (r_x==0)
 258   2               {
 259   3                   if (Carrier_Rxd==1)
 260   3                   {
 261   4                   	x_09af=x_09af|1;
 262   4                   }
 263   3      
 264   3                   if (x_09af==0x09af)
 265   3                   {
 266   4                   	r_x=1;
 267   4                   	r_8=0;
 268   4                   	r_d=0;
 269   4                   	x_09af=0;
 270   4                   	r_len=0;
 271   4                   	r_data=0;
 272   4                   	r_len1=20;
 273   4                   }
 274   3                   else
 275   3                   {
 276   4                   	x_09af=x_09af<<1;
 277   4                   }
 278   3               }
 279   2               else
 280   2               {
 281   3                   if (Carrier_Rxd==1)
 282   3                      r_data=r_data|1;
 283   3      
 284   3                   r_8++;
 285   3      
 286   3                   if (r_8<8)
 287   3                       r_data=r_data<<1;
 288   3                   else
 289   3                   {
 290   4                   	pl_buf[r_len]=r_data;
 291   4                   	r_8=0;
 292   4      
 293   4                      if(r_len==0)                            // 接收Func_A
 294   4                      {
 295   5                         i=r_data;
 296   5                         j=i&0x20;
 297   5      
 298   5                         if(j==0)                             // 下行命令
 299   5                         {
 300   6                            k=i&0x18;
 301   6                            h=i&0x07;
 302   6      
 303   6                            if(k==0x00)                       // 设置表底
C51 COMPILER V6.02  ZJQ_BC                                                                 12/09/2004 09:10:51 PAGE 6   

 304   6                               r_len1=14;
 305   6                            else if(k==0x08)                  // 设置表号
 306   6                               r_len1=8;
 307   6                            else if(k==0x10)                  // 实时抄表
 308   6                               r_len1=8+(2*h);
 309   6                            else if(k==0x18)                  // 冻结抄表
 310   6                               r_len1=8+(2*h);
 311   6                            else
 312   6                            {
 313   7                               r_len1=0;
 314   7                               r_x=0;
 315   7                            }
 316   6                         }
 317   5                         else                                 // 上行命令
 318   5                         {
 319   6                            r_len1=14;
 320   6                         }
 321   5      
 322   5                      }
 323   4      
 324   4      
 325   4                      r_len++;
 326   4                      r_data=0;
 327   4      
 328   4                      if (r_len>=r_len1)
 329   4                      {
 330   5                         r_x=0;
 331   5                         r_d=0;
 332   5                         plmrxd=1;
 333   5      
 334   5                         for(i=0;i<(r_len1+1);i++)
 335   5                         {
 336   6                            COM_Buf[i]=pl_buf[i];
 337   6                         }
 338   5      
 339   5                      }
 340   4      
 341   4                  }
 342   3               }
 343   2          }
 344   1      
 345   1      
 346   1      }
*** WARNING C280 IN LINE 240 OF C:\ZJQ_BC\ZJQ_BC.C: 'zb_end': unreferenced label
 347          
 348          /**************************************************************************************
 349           *
 350           * FUNCTION:    initsys
 351           *
 352           * DESCRIPTION: 初始化设置函数,
 353           *              进行系统初始化设置
 354           *
 355           * PARAMETERS:  none
 356           *
 357           * RETURNED:    none
 358           *
 359           *************************************************************************************/
 360          void initsys(void)
 361          {
 362   1        CKCON=0X1F;                       // 控制看门狗喂狗时间长度为832ms (0x8EH)
 363   1        ALU_MOD=0;                        // 8位/16位运算模式选择位 ; 设置成8位运算模式 (D0H^1)
 364   1      
C51 COMPILER V6.02  ZJQ_BC                                                                 12/09/2004 09:10:51 PAGE 7   

 365   1        //载波通讯配置
 366   1        PLM_SSC=1;                        // (D8H)使能载波通讯PLM_SSC(EXT_CFG.0)=1
 367   1        EIE=0X01;                         // 外部中断2 中断允许位:EX2=0,禁止中断;EX2=1,允许中断。  (A9H)
 368   1        IT2=1;                            // 外部中断2触发方式控制位,IT2=0低电平触发,IT2=1下降沿触发 (C8H^0)
 369   1        PLM_RS=0;                         // PLM_RS(EXT_CTRL.0)=1  为0时,载波处于接收状态
 370   1      
 371   1        //串口通讯配置
 372   1        TMOD = 0x21 ;                     // 设 T/C1 为模式2,8 位自装载计数器 ;T/C0 为模式1, 定时方式,16 位

⌨️ 快捷键说明

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