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

📄 3192uc.lst

📁 本系统利用AT89S52在线编程技术
💻 LST
📖 第 1 页 / 共 3 页
字号:
 259   1      }
 260          /********************************************************************************/
 261          /************             Read data from 93c46 funcation             ************/
 262          /********************************************************************************/
 263          uchar RDSU3(uchar x)
 264          {
 265   1        uchar y;
 266   1        INSB();
 267   1        WRBYTE(x|0x80);
 268   1        y=RDBYTE();
 269   1        CS=1;
 270   1        return (y);
 271   1      }
 272          /********************************************************************************/
 273          /************              Write data to 93c46 funcation             ************/
 274          /********************************************************************************/
 275          void WRU3(uchar x,uchar y)
 276          {
 277   1        INSB();
 278   1        WRBYTE(0X30);
 279   1        INSB();
 280   1        WRBYTE(0X40|y);
 281   1        WRBYTE(x);
 282   1        SK=0;
 283   1        CS=1;
 284   1        while(!DOI);
 285   1        CS=0;
 286   1        INSB();
 287   1        WRBYTE(0X00);
 288   1        SK=0;
 289   1        CS=1;
 290   1      }
 291          /********************************************************************************/
 292          /************                  start EEPROM funcation                ************/
 293          /********************************************************************************/
 294          void INSB(void)
 295          {
 296   1        SK=0;
 297   1        DOI=0;
 298   1        CS=1;
 299   1        SK=1;
 300   1        SK=0;
 301   1        DOI=1;
 302   1        SK=1;
 303   1        SK=0;
C51 COMPILER V6.23a  3192UC                                                                12/22/2005 11:00:00 PAGE 6   

 304   1        CS=0;
 305   1      }
 306          /********************************************************************************/
 307          /************                    write 8bit funcation                ************/
 308          /********************************************************************************/
 309          void WRBYTE(uchar x)
 310          {
 311   1        uchar i;
 312   1        i=8;
 313   1        while(i--){
 314   2         DI=(bit)(x&0x80);
 315   2         x<<=1;
 316   2         SK=1;
 317   2         SK=0;
 318   2        }
 319   1      }
 320          /********************************************************************************/
 321          /************                  read 8 data funcation                 ************/
 322          /********************************************************************************/
 323          uchar RDBYTE(void)
 324          {
 325   1        uchar x;
 326   1        uchar j=8;
 327   1        x=0;
 328   1        while(j--)
 329   1        {
 330   2          DOI=1;
 331   2          x<<=1;
 332   2          SK=1;
 333   2          SK=0;
 334   2          if (DOI) x|=0x01;
 335   2        }
 336   1        return x;
 337   1      }
 338          
 339          /*void CTR(void)
 340          {
 341             EN1H=ENH;
 342             EN1L=ENL;
 343             EN1F=ENF;
 344             if((SETTH<TMPH)|((SETTL<TMPL)&(SETTH=TMPH)))CTR0();
 345             else{
 346              PIDCASEL=SETTL-TMPL;
 347              PIDCASEH=SETTH-TMPH;
 348              if(SETTH>TMPH)CTRMAX();
 349              else{
 350               ENH=PIDCASEH;
 351               ENL=PIDCASEL;
 352               ENF=0;
 353              }
 354             }
 355             CTR1();
 356          }
 357          void CTR0(void)
 358          {
 359             PIDCASEL=TMPL-SETTL;
 360             PIDCASEH=TMPH-SETTH;
 361             if(TMPH>SETTH)CTRMIN();
 362             else{
 363              ENH=PIDCASEH;
 364              ENL=PIDCASEL;
 365              ENF=1;
C51 COMPILER V6.23a  3192UC                                                                12/22/2005 11:00:00 PAGE 7   

 366             }
 367          }
 368          void CTR1(void)
 369          {
 370             PIDF=ENF;
 371             PID1F=EN1F;
 372             F0=1;
 373             ADDF(&ENL,&EN1L);         //L(R0),1L(R1)
 374             DENH=PIDCASET;
 375             DENL=PIDCASEH;
 376             DENF=F0;
 377          }
 378          void CTRMAX(void)
 379          {
 380             if(MAXMIN>=4){
 381               PNH=0X00;
 382               PNL=0X65;
 383             }
 384             ECTR();
 385          }
 386          void CTRMIN(void)
 387          {
 388             if(MAXMIN>=4){
 389               PNH=0X00;
 390               PNL=0X00;
 391             }
 392             ECTR();
 393          }
 394          void ECTR(void)
 395          {
 396             //OUTL();
 397             EA=0;
 398             PWMBAK=PNL;
 399             if(PNH>0)PWMBAK=0X65;
 400             if(PNL>=0x65)PWMBAK=0X65;
 401             EA=1;
 402          }
 403          void ADDF(uchar *x,uchar *y)
 404          {
 405            while(1)
 406           {
 407             if(F0){
 408               if(PID1F^PIDF){
 409                 PIDCASEH=(*x)+(*y);
 410                 PIDCASET=(*(x+1))+(*(y+1));
 411                 F0=PIDF;
 412                 break;
 413               }
 414               if(*(x+1)<*(y+1)){
 415                 PIDCASEH=(*y)-(*x);
 416                 PIDCASET=(*(y+1))-(*(x+1));
 417                 F0=~PIDF;
 418                 break;
 419               }
 420               PIDCASEH=(*x)-(*y);
 421               PIDCASET=(*(x+1))-(*(y+1));
 422               F0=PIDF;
 423               break;
 424             }
 425             if(PID1F^PIDF)
 426             {
 427               if((*(x+1)<*(y+1))){
C51 COMPILER V6.23a  3192UC                                                                12/22/2005 11:00:00 PAGE 8   

 428                 PIDCASEH=(*y)-(*x);
 429                 PIDCASET=(*(y+1))-(*(x+1));
 430                 F0=PID1F;
 431                 break;
 432               }
 433               PIDCASEH=(*x)-(*y);
 434               PIDCASET=(*(x+1))-(*(y+1));
 435               F0=PID1F;
 436               break;
 437             }
 438             PIDCASEH=(*x)+(*y);
 439             PIDCASET=(*(x+1))-(*(y+1));
 440             F0=PIDF;
 441             break;
 442            }
 443          }
 444          void ready(void)
 445          {
 446             uchar i;
 447             SETDGT=5;
 448             while(1){
 449              if(!NEWKeyF)STADLY2();
 450              KEYDOWN=1;
 451              NEWKeyF=0;
 452              if(BX3>0x00)STADLY2();
 453              if(BY0!=0x40)STADLY1();
 454              if(ADJDLY)STADLY5();
 455              i=18;
 456              while(i--){
 457                array_r0[i]=DEFAULT1[i];
 458              }
 459              WRU3();
 460              break;
 461             }
 462          }
 463          void STADLY2(void)
 464          {
 465             if(!SAMOK)STADLY();
 466             else{
 467              SAMOK=0;
 468              while(SETDGT--){
 469               STADLY();
 470              }
 471              ADJDLY=0;
 472              while(!SAMOK);
 473              SAMOK=0;
 474              TMPL=AD_RESULTL+ABSDL;
 475              TMPH=AD_RESULTH+ABSDH;
 476              if(TMPH>=0x80){
 477               SIGN=0;
 478               BINTBCD(TMPL,(TMPH-0x80));
 479              }
 480              else{
 481               SIGN=1;
 482               if(TMPL>0X00)BINTBCD(((0XFF-TMPL)+1),(0X7F-TMPH));
 483               else BINTBCD(0X00,(0X80-TMPH));
 484              }
 485          
 486             }
 487          }
 488          /*void BINTBCD(uchar x,uchar y)
 489          {
C51 COMPILER V6.23a  3192UC                                                                12/22/2005 11:00:00 PAGE 9   

 490             uint i;
 491             i=0;
 492             i=i+y;
 493             i<<=8;
 494             i=i+x;
 495             if(i>=10000){
 496              array[0]=1;
 497              i=i-10000;
 498             }
 499             else array[0]=0;
 500             //array[0]=i/10000;
 501             //if(array[0]!=0x00)i=i-array[0]*10000;
 502             array[1]=i/1000;
 503             if(array[1]>0x00)i=i-array[1]*1000;
 504             array[2]=i/100;
 505             if(array[2]>0x00)i=i-array[2]*100;
 506             array[3]=i/10;
 507          }
 508          uint BCDTBIN(void)
 509          {
 510             uint i;
 511             uchar j;
 512             i=0;
 513             for(j=0;j<=3;j++){
 514              i=i+array[j];
 515              i=i*10;
 516             }
 517             return (i);
 518          }
 519            /* while(j--){
 520              array[j]=RRL[j];
 521             }
 522             SIGN=0;
 523             if((KEYBUF0&0X80)==0X80)SIGN=1;
 524             KEYBUF0&=0X7F;
 525             bcdth=BCDTBIN();

⌨️ 快捷键说明

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