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

📄 b3_2006.lst

📁 电流电压监测的例子 电 流电压监测的例子
💻 LST
📖 第 1 页 / 共 3 页
字号:
 250   2                  ku=3;
 251   2                  MCUToPC[5]='3';
 252   2                  break;
 253   2          case 0x18:
 254   2                  ku=5;
 255   2                  MCUToPC[5]='5';
 256   2                  break;
 257   2          case 0x24:
 258   2                  ku=2;
 259   2                  MCUToPC[5]='2';
 260   2                  break;
 261   2          case 0x52:
 262   2                  ku=4;
 263   2                  MCUToPC[5]='4';
 264   2                  break;
 265   2          case 0x55:
 266   2                  ku=7;
 267   2                  MCUToPC[5]='7';
 268   2                  break;
 269   2          case 0x57:
 270   2                  ku=1;
 271   2                  MCUToPC[5]='1';
 272   2                  break;
 273   2          default: break;
 274   2          }
 275   1      switch(a)        //个位
 276   1         {
 277   2          case 0x00:
 278   2                  mu=8;
 279   2                  MCUToPC[6]='8';
 280   2                  break;
 281   2          case 0x04:
 282   2                  mu=6;
 283   2                  MCUToPC[6]='6';
 284   2                  break;
 285   2          case 0x12:
 286   2                  mu=2;
 287   2                  MCUToPC[6]='2';
 288   2                  break;
 289   2          case 0x20:
 290   2                  mu=0;
 291   2                  MCUToPC[6]='0';
 292   2                  break;
 293   2          case 0x40:
 294   2                  mu=9;
 295   2                  MCUToPC[6]='9';
 296   2                  break;
 297   2          case 0x44:
 298   2                  mu=5;
 299   2                  MCUToPC[6]='5';
 300   2                  break;
 301   2          case 0x49:
C51 COMPILER V7.50   B3_2006                                                               04/09/2006 20:35:21 PAGE 6   

 302   2                  mu=4;
 303   2                  MCUToPC[6]='4';
 304   2                  break;
 305   2          case 0x50:
 306   2                  mu=3;
 307   2                  MCUToPC[6]='3';
 308   2                  break;
 309   2          case 0x71:
 310   2                  mu=7;
 311   2                  MCUToPC[6]='7';
 312   2                  break;
 313   2          case 0x79:
 314   2                  mu=1;
 315   2                  MCUToPC[6]='1';
 316   2                  break;
 317   2          default: break;
 318   2          }
 319   1      
 320   1         return (wu+ju*100+ku*10+mu);
 321   1      }
 322          /*! @function
 323          ***************************************************
 324          <PRE>
 325          函数名   : <Read8255>
 326          功能     : <初始化MCU板上的设备>
 327          参数     : <无>
 328          返回值   : <void>
 329          抛出异常 : <无>
 330          ---------------------------------------------------
 331          备注     : <初始化参数要根据具体设备来设定!>
 332          典型用法 : <       InitialDevices();         >
 333          ---------------------------------------------------
 334          作者     :
 335          创立时间 :2005.9.8
 336          第  次修改时间/修改者:
 337          
 338          </PRE>
 339          ***************************************************/
 340          int Read8255(int ID8255PA,int ID8255PB,int ID8255PC)
 341             {
 342   1            int kpa,kpb,kpc,fhw,qwei;
 343   1            kpa=ID8255PA;
 344   1            kpa=kpa & 0x7f;
 345   1            kpb=ID8255PB;
 346   1            fhw= kpb&0x01;
 347   1            kpb=kpb>>1;
 348   1            kpc=ID8255PC;
 349   1            qwei= kpc&0x01;
 350   1            kpc=kpc>>1;
 351   1            return CM(kpa,kpb,kpc,qwei,fhw);
 352   1         }
 353          /*! @function
 354          ***************************************************
 355          <PRE>
 356          函数名   : <serail() interrupt 4>
 357          功能     : <serial port receive function>
 358          参数     : <void>
 359          返回值   : <void>
 360          抛出异常 : <无>
 361          ---------------------------------------------------
 362          备注     : <interrupt function>
 363          典型用法 : <              >
C51 COMPILER V7.50   B3_2006                                                               04/09/2006 20:35:21 PAGE 7   

 364          ---------------------------------------------------
 365          作者     :
 366          创立时间 :2005.9.8
 367          第  次修改时间/修改者:
 368          
 369          </PRE>
 370          ***************************************************/
 371          void serail() interrupt 4 using 2
 372            {
 373   1         unsigned char u,jjj,iii;
 374   1         EA=0;
 375   1         //if(RI) BEGIN
 376   1         if(RI)
 377   1           {
 378   2           ucReCom[uiRe_In]=SBUF;
 379   2      
 380   2           if(ucReCom[uiRe_In]=='@')
 381   2              {
 382   3               uiRe_In=0;
 383   3               ucReCom[uiRe_In]=SBUF;
 384   3              }
 385   2      
 386   2           if(ucReCom[0]=='@')
 387   2              {
 388   3               ucReCom[uiRe_In]=SBUF;
 389   3               uiRe_In++;
 390   3              }
 391   2      
 392   2           //if(ucReCom[uiRe_In-1]=='%') BEGIN
 393   2           if(ucReCom[uiRe_In-1]=='%')
 394   2              {
 395   3               //if(ucReCom[1]!='%') BEGIN
 396   3               if(ucReCom[1]!='%' && ucReCom[2]!='%')
 397   3                 {
 398   4                   //1.ClosePower
 399   4                   if(ucReCom[1]=='P' && ucReCom[2]=='W' && ucReCom[3]=='0')
 400   4                      {
 401   5                        /******************************/
 402   5                       // EVENTHAND=ClosPow;
 403   5                       PB8255C=0x00;
 404   5                        /*******************************/
 405   5                        goto mk;
 406   5                      }
 407   4                   //2.OpenPower
 408   4                   if(ucReCom[1]=='P' && ucReCom[2]=='W' && ucReCom[3]=='1')
 409   4                      {
 410   5                        /******************************/
 411   5                        //EVENTHAND=OpenPow;
 412   5                        PB8255C=0xc0;
 413   5                        /*******************************/
 414   5                        goto mk;
 415   5                      }
 416   4                   //3. SAVE speed & time
 417   4                   if(ucReCom[1]=='S' && ucReCom[2]=='A' )
 418   4                      {
 419   5                        /******************************/
 420   5                         jjj=0;
 421   5                         for(u=18;u>2;u--)
 422   5                           {
 423   6                            if((ucReCom[u] < 0x3a) && (ucReCom[u] > 0x2f))
 424   6                              {
 425   7                                iii= ucReCom[u]-0x30;
C51 COMPILER V7.50   B3_2006                                                               04/09/2006 20:35:21 PAGE 8   

 426   7                                DP[jjj]= table[iii];
 427   7                              }
 428   6                            else if((ucReCom[u] < 0x4b) && (ucReCom[u] > 0x40))
 429   6                              {
 430   7                                iii= ucReCom[u]-0x37;
 431   7                                DP[jjj]= table[iii];
 432   7                              }
 433   6                            jjj++;
 434   6                          }
 435   5                        do
 436   5                         {
 437   6                          ACC=CMD8279;
 438   6                         }while(clflag == 1);
 439   5                        CMD8279 = 0x08;//显示方式
 440   5                        Delay(1);///
 441   5                        CMD8279 = 0x2f;//分频系数
 442   5                        for(jjj=0;jjj<16;jjj++)
 443   5                        {
 444   6                         CMD8279 = jjj+0x80;
 445   6                         DAT8279 = DP[jjj];
 446   6                        }
 447   5      
 448   5                        /*******************************/
 449   5                        //EVENTHAND=Wri8279;
 450   5                        goto mk;
 451   5                      }
 452   4                   //4.KillError
 453   4                   if(ucReCom[1]=='K' && ucReCom[2]=='E' )
 454   4                      {
 455   5                        /******************************/
 456   5                        EVENTHAND=WAIT;
 457   5                        /*******************************/
 458   5                        goto mk;
 459   5                      }
 460   4                   //5.状态灯
 461   4                   if(ucReCom[1]=='Z' && ucReCom[2]=='T' )
 462   4                      {
 463   5                        /******************************/
 464   5                        //EVENTHAND=State;
 465   5                        switch(ucReCom[3])
 466   5                          {
 467   6                           case 'a':   PC8255C=0x40; break;  //启动
 468   6                           case 'b':   PC8255C=0x20; break;  //就绪
 469   6                           case 'c':   PC8255C=0x10; break;  //测量
 470   6                           case 'd':   PC8255C=0x01; break;  //完成
 471   6                           case 'e':   PC8255C=0x02; break;  //出错
 472   6                           case 'f':   PC8255C=0x04; break;  //出错
 473   6                           case 'g':   PC8255C=0x08; break;  //出错
 474   6                           case 'h':   PC8255C=0x00; break;  //状态灯全灭
 475   6      
 476   6                           default :   break;
 477   6                          }
 478   5                        /*******************************/
 479   5                        goto mk;
 480   5                      }
 481   4                   //6.发送标志位设置
 482   4                   if(ucReCom[1]=='F')
 483   4                      {
 484   5                        flag=ucReCom[2];
 485   5                      }
 486   4      
 487   4            mk:   jjj=0;
C51 COMPILER V7.50   B3_2006                                                               04/09/2006 20:35:21 PAGE 9   

 488   4                 }
 489   3               //if(ucReCom[1]!='%') END
 490   3              }
 491   2           //if(ucReCom[uiRe_In-1]=='%') END
 492   2           RI=0;
 493   2           }
 494   1         //if(RI) END
 495   1         EA=1;
 496   1        }
 497          /************************************************************************************************/
 498          
 499          
 500          void Int_one() interrupt 0 using 0
 501           {
 502   1         uchar ppt;
 503   1         uint drH,drL;
 504   1         EA=0;
 505   1            ppt = P1;
 506   1            if((ppt & 0x01) == 0x01)     //满足条件则由A“即将打开标记”引起中断
 507   1                {
 508   2                P1_5 = 0;
 509   2                if(P3_4 == 1) //当大小盘同步时 启动计数器0;1,2

⌨️ 快捷键说明

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