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

📄 scan.lst

📁 实验室连线监控原代码,一台主机采用485总线方式与从机通讯,可以检测学生的连线是否正常,那些线没有连好,非常好的教学实验检测.
💻 LST
📖 第 1 页 / 共 4 页
字号:
 674   3             XBYTE[P8255CW+k]=0x80;
 675   3           }
C51 COMPILER V7.06   SCAN                                                                  01/19/2007 08:32:20 PAGE 12  

 676   2           XBYTE[P8255IC+temp0]=_crol_(0x01,temp1)|_crol_(0x01,j);
 677   2           for(k=0;k<18;k++)
 678   2           {
 679   3             c[k]=XBYTE[P8255IC+k];
 680   3           }
 681   2           for(k=0;k<18;k++)
 682   2            {
 683   3              for(l=0;l<8;l++)
 684   3               {
 685   4                 pc[k][l]=_cror_(c[k],l)&0x01;
 686   4               }
 687   3            }
 688   2           if(pc[temp0][temp1]==1)
 689   2             {
 690   3               for(j=temp1+1;j<8;j++)
 691   3                {
 692   4                  if(pc[temp0][j]==1)
 693   4                    {
 694   5                       *s=8*temp0+j+289;
 695   5                        s++;
 696   5                        m++;
 697   5                        d++;
 698   5                    }
 699   4                  else continue;
 700   4                }
 701   3               for(i=temp0+1;i<18;i++)
 702   3                {
 703   4                  for(j=0;j<8;j++)
 704   4                   {
 705   5                     if(pc[i][j]==1)
 706   5                       {
 707   6                         *s=8*i+j+289;
 708   6                          s++;
 709   6                          m++;
 710   6                          d++;
 711   6                       }
 712   5                     else continue;
 713   5                   }
 714   4                }
 715   3                  if(m>=2)
 716   3                    {
 717   4                      *s=8*temp0+temp1+145;
 718   4                       s+=2;
 719   4                       d+=2;
 720   4                    }
 721   3                  break;
 722   3             }
 723   2           else continue;
 724   2         }
 725   1        if(m==0)
 726   1          {
 727   2        for(i=temp0+1;i<18;i++)
 728   2         {
 729   3           for(j=0;j<8;j++)
 730   3            {
 731   4              for(k=0;k<18;k++)
 732   4               {
 733   5                 XBYTE[P8255CW+k]=0x80;
 734   5               }
 735   4              XBYTE[P8255IC+temp0]=_crol_(0x01,temp1);
 736   4              XBYTE[P8255IC+i]=_crol_(0x01,j);
 737   4              for(k=0;k<18;k++)
C51 COMPILER V7.06   SCAN                                                                  01/19/2007 08:32:20 PAGE 13  

 738   4               {
 739   5                 c[k]=XBYTE[P8255IC+k];
 740   5               }
 741   4              for(k=0;k<18;k++)
 742   4               {
 743   5                 for(l=0;l<8;l++)
 744   5                  {
 745   6                    pc[k][l]=_cror_(c[k],l)&0x01;
 746   6                  }
 747   5               }
 748   4              if(pc[temp0][temp1]==1)
 749   4                {
 750   5                  for(i=temp0+1;i<18;i++)
 751   5                   {
 752   6                     for(j=0;j<8;j++)
 753   6                      {
 754   7                        if(pc[i][j]==1)
 755   7                          {
 756   8                            *s=8*i+j+289;
 757   8                             s++;
 758   8                             m++;
 759   8                             d++;
 760   8                          }
 761   7                        else continue;
 762   7                      }
 763   6                   }
 764   5                     if(m>=2)
 765   5                       {
 766   6                         *s=8*temp0+temp1+289;
 767   6                          s+=2;
 768   6                          d+=2;
 769   6                       }
 770   5                     break;
 771   5                }
 772   4              else continue;
 773   4            }
 774   3         }
 775   2          }
 776   1      }
 777          
 778          void main()
 779          {
 780   1        unsigned char i,j,k,f,g;
 781   1        unsigned char h=0,l=0,m=0,n=0,p=0,q=0;
 782   1        unsigned short e,x,y;
 783   1        unsigned short xdata *w=0x0580;
 784   1        unsigned short xdata *z=0x05c0;
 785   1        unsigned short xdata *u=0x0600;
 786   1        unsigned short xdata *v=0x0640;
 787   1        unsigned short xdata *r=0x0680;
 788   1        unsigned short xdata *t=0x0700;
 789   1        unsigned char idata fa[10],fb[10],fc[10];
 790   1        unsigned char idata ga[10],gb[10],gc[10];
 791   1        for(x=0;x<1616;x++)
 792   1         {
 793   2          XBYTE[0x1b0+x]=0x00;
 794   2         }
 795   1        for(i=0;i<18;i++)
 796   1         {
 797   2           for(j=0;j<8;j++)
 798   2           {
 799   3              initialize8255();
C51 COMPILER V7.06   SCAN                                                                  01/19/2007 08:32:20 PAGE 14  

 800   3              XBYTE[P8255IA+i]=_crol_(0x01,j);
 801   3              for(k=0;k<18;k++)
 802   3                {
 803   4                 a[k]=XBYTE[P8255IA+k];
 804   4                 b[k]=XBYTE[P8255IB+k];
 805   4                 c[k]=XBYTE[P8255IC+k];
 806   4                }
 807   3              mapping();
 808   3              switch(pa[i][j])
 809   3              {
 810   4                case 0:
 811   4                  y=8*i+j+1;
 812   4                  *t=8*i+j+1;
 813   4                  t++;
 814   4                  l++;
 815   4                  for(k=0;k<d;k++)
 816   4                    {
 817   5                      if(y==*s++)
 818   5                      goto exit1;
 819   5                    }
 820   4                  temp0=i,temp1=j;
 821   4                  thr_fou_pnts_conn1();
 822   4                  exit1: s=0x01b0;
 823   4                break;
 824   4                case 1:
 825   4                  temp0=i,temp1=j;
 826   4                  two_pnts_conn1();
 827   4                  s=0x01b0;
 828   4                break;
 829   4                default:
 830   4                break;
 831   4              }
 832   3           }
 833   2                a[i]=0x00;
 834   2         }
 835   1        for(i=0;i<18;i++)
 836   1         {
 837   2           for(j=0;j<8;j++)
 838   2           {
 839   3             initialize8255();
 840   3             XBYTE[P8255IB+i]=_crol_(0x01,j);
 841   3             for(k=0;k<18;k++)
 842   3               {
 843   4                b[k]=XBYTE[P8255IB+k];
 844   4                c[k]=XBYTE[P8255IC+k];
 845   4               }
 846   3             mapping();
 847   3             switch(pb[i][j])
 848   3             {
 849   4                case 0:
 850   4                  y=8*i+j+145;
 851   4                  *t=8*i+j+145;
 852   4                  t++;
 853   4                  l++;
 854   4                  for(k=0;k<d;k++)
 855   4                    {
 856   5                      if(y==*s++)
 857   5                      goto exit2;
 858   5                    }
 859   4                  temp0=i,temp1=j;
 860   4                  thr_fou_pnts_conn2();
 861   4                  exit2: s=0x01b0;
C51 COMPILER V7.06   SCAN                                                                  01/19/2007 08:32:20 PAGE 15  

 862   4                break;
 863   4                case 1:
 864   4                  temp0=i,temp1=j;
 865   4                  two_pnts_conn2();
 866   4                  s=0x01b0;
 867   4                break;
 868   4                default:
 869   4                break;
 870   4             }
 871   3           }
 872   2                b[i]=0x00;
 873   2         }
 874   1        for(i=0;i<18;i++)
 875   1         {
 876   2           for(j=0;j<8;j++)
 877   2           {
 878   3             initialize8255();
 879   3             XBYTE[P8255IC+i]=_crol_(0x01,j);
 880   3             for(k=0;k<18;k++)
 881   3               {
 882   4                c[k]=XBYTE[P8255IC+k];
 883   4               }
 884   3             mapping();
 885   3             switch(pc[i][j])
 886   3             {
 887   4                case 0:
 888   4                  y=8*i+j+289;
 889   4                  *t=8*i+j+289;
 890   4                  t++;
 891   4                  l++;
 892   4                  for(k=0;k<d;k++)
 893   4                    {
 894   5                      if(y==*s++)
 895   5                      goto exit3;
 896   5                    }
 897   4                  temp0=i,temp1=j;
 898   4                  thr_fou_pnts_conn3();
 899   4                  exit3: s=0x01b0;
 900   4                break;
 901   4                case 1:
 902   4                  temp0=i,temp1=j;
 903   4                  two_pnts_conn3();
 904   4                  s=0x01b0;
 905   4                break;
 906   4                default:
 907   4                break;
 908   4             }
 909   3           }
 910   2                c[i]=0x00;
 911   2         }
 912   1        t=0x0700;
 913   1        for(i=0;i<l;i++)
 914   1         {
 915   2           for(j=0;j<d;j++)
 916   2           {
 917   3             if(*(t+i)==*(s+j))
 918   3             goto exit4;
 919   3           }
 920   2             *r=*(t+i);
 921   2             r++;
 922   2             m++;
 923   2             exit4: ;
C51 COMPILER V7.06   SCAN                                                                  01/19/2007 08:32:20 PAGE 16  

 924   2         }
 925   1         r=0x0680;
 926   1         if(m<10)
 927   1           {
 928   2             s+=d;
 929   2             for(i=0;i<m;i++)
 930   2              {
 931   3                *s++=*r++;
 932   3              }
 933   2           }
 934   1         else if(m>=10)
 935   1           {
 936   2             for(k=0;k<18;k++)
 937   2              {
 938   3                XBYTE[P8255CW+k]=0x80;
 939   3              }
 940   2             for(k=0;k<10;k++)
 941   2              {
 942   3                fa[k]=0;
 943   3                fb[k]=0;
 944   3                fc[k]=0;
 945   3                ga[k]=0;
 946   3                gb[k]=0;
 947   3                gc[k]=0;
 948   3              }
 949   2             for(i=0;i<m/2;i++)
 950   2              {
 951   3                e=*r++;
 952   3                if(e<=144)
 953   3                  {
 954   4                    f=(e-1)/8;
 955   4                    g=(e-1)%8;
 956   4                    fa[i]=f;
 957   4                    ga[i]=_crol_(0x01,g);
 958   4                  }
 959   3                else if((e>144)&&(e<=288))
 960   3                  {
 961   4                    f=(e-145)/8;
 962   4                    g=(e-145)%8;
 963   4                    fb[i]=f;
 964   4                    gb[i]=_crol_(0x01,g);
 965   4                  }
 966   3                else if(e>288)
 967   3                  {
 968   4                    f=(e-289)/8;
 969   4                    g=(e-289)%8;
 970   4                    fc[i]=f;
 971   4                    gc[i]=_crol_(0x01,g);
 972   4                  }
 973   3              }
 974   2             for(i=0;i<m/2;i++)
 975   2              {
 976   3                f=fa[i];
 977   3                g=ga[i];
 978   3                if(i>=1)
 979   3                  {
 980   4                    for(k=0;k<=i-1;k++)
 981   4                     {
 982   5                       if(f==fa[k])
 983   5                         {
 984   6                           goto exit5;
 985   6                         }
C51 COMPILER V7.06   SCAN                                                                  01/19/2007 08:32:20 PAGE 17  

 986   5                     }
 987   4                  }
 988   3                for(j=i+1;j<=m/2;j++)
 989   3                 {
 990   4                   if(fa[j]==fa[i])
 991   4                     {
 992   5                       g|=ga[j];
 993   5                     }
 994   4                 }
 995   3                XBYTE[P8255IA+fa[i]]=g;
 996   3                exit5: ;
 997   3              }
 998   2             for(i=0;i<m/2;i++)
 999   2              {
1000   3                f=fb[i];
1001   3                g=gb[i];
1002   3                if(i>=1)
1003   3                  {
1004   4                    for(k=0;k<=i-1;k++)
1005   4                     {
1006   5                       if(f==fb[k])
1007   5                         {
1008   6                           goto exit6;
1009   6                         }
1010   5                     }
1011   4                  }
1012   3                for(j=i+1;j<=m/2;j++)

⌨️ 快捷键说明

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