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

📄 main.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 5 页
字号:
 984   2              i &= 0x7F;
 985   2              Wr1307(0,i);
 986   2            }
 987   1       Init_1307(0x90);       //***  Init Real Time Clock  *** */
 988   1       //Wr1307(20,0);
 989   1        //Wr1307(21,0);
 990   1         if(Rd1307(19)!=0X55)///读设备地址
 991   1           {
 992   2                 ADDR=0XD2;
 993   2                 Wr1307(19,0x55);
 994   2             Wr1307(20,0xd2);
 995   2               }
 996   1               else
 997   1               {
 998   2                 ADDR=Rd1307(20);  
 999   2                  
1000   2               }
1001   1          lage_car=ADDR; 
1002   1               beep(1);
1003   1          sprintf(ms,"       %3u",lage_car);
1004   1           SendStr_MAX7219(ms);
1005   1               Delay100ms(10); //beep
1006   1         
1007   1         if(Rd1307(21)==0xff)
1008   1           lage_car=0;
1009   1        else
1010   1          lage_car=Rd1307(20);
1011   1      
1012   1          if(Rd1307(22)==0xff)
1013   1           small_car=0;
1014   1        else
1015   1          small_car=Rd1307(21);
1016   1      
1017   1       
1018   1        // Flash_Sector_Erase (0);
1019   1      
1020   1          Rc500Ready();
1021   1              EX1 = 1 ;//时钟中断
1022   1               IT1=1;
1023   1                EA=1;
1024   1      while(1)
1025   1        { 
1026   2       //for(i=0;i<100;i++)
1027   2       //{
1028   2       if(num_suss)//设置号码成功
1029   2       {
1030   3         num_suss=0;
1031   3          beep(3); 
1032   3       }
1033   2      if(time_set)//设置时间成功
1034   2       {
1035   3         time_set=0;
1036   3          beep(3); 
1037   3       }
1038   2      
1039   2       if(tflag)
1040   2       {
1041   3         tflag=0;
1042   3        GetTime(time.a);
1043   3      
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 18  

1044   3        //sprintf(ms,"%02bx>%02bx1777",time.a[5],time.a[6]); 
1045   3         //ms[8]=0x30+ Get_key();    
1046   3        //SendStr_MAX7219(ms);
1047   3       }
1048   2       
1049   2       switch(mainstate)
1050   2       {
1051   3         case 0:             //待机状态
1052   3      
1053   3            if (Cmdok)                  //通讯
1054   3              {
1055   4              Cmdok = FALSE;
1056   4                      RecvReady = FALSE;
1057   4                      SendReady = FALSE;
1058   4      
1059   4                      cmd_execution();
1060   4                      SendReady = TRUE ;   //发起始字
1061   4                      TI = 1;
1062   4           
1063   4           
1064   4          }
1065   3            //sprintf(ms,"  %3u  %3u",lage_car,small_car);
1066   3               // ES=0;
1067   3           if(Read_card())
1068   3               { 
1069   4                    in_outFlg =0;//进场标志
1070   4                    beep(1);
1071   4                    Keyinput_ok=1;
1072   4               }
1073   3               //ES=1;
1074   3                if(link)
1075   3                {
1076   4             for(i=0;i<10;i++)
1077   4             ms[i]=ledtem[i]; 
1078   4                }
1079   3                else
1080   3                {
1081   4                  sprintf(ms,"  %3u  %3u",lage_car,small_car);
1082   4                }
1083   3            SendStr_MAX7219(ms);
1084   3                x=Get_key();
1085   3                if(x!=0xff)
1086   3                {   beep(1);
1087   4                  keynum=0;
1088   4                  for(i=0;i<5;i++)
1089   4                        { 
1090   5                           keytemp[i]=0x20;
1091   5                        }
1092   4                 if(x<10)
1093   4                 {
1094   5                   sprintf(ms,"%02bx>%02bx     0",time.a[4],time.a[5]); 
1095   5               SendStr_MAX7219(ms);
1096   5               mainstate=1;
1097   5                      
1098   5                 }
1099   4                 else
1100   4                 {
1101   5                   if(x==CAR)
1102   5                       { 
1103   6                         car_type=1;
1104   6                         sprintf(ms,"%02bx>%02bxd    ",time.a[4],time.a[5]); 
1105   6                 SendStr_MAX7219(ms);
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 19  

1106   6                 mainstate=1;
1107   6                       }
1108   5              if(x==0x0b)//交班建//菜单
1109   5              {
1110   6                     mainstate=2;
1111   6                          keyin=0;
1112   6                        //ban=1;
1113   6                         sprintf(ms,"%02bx>%02bx     0",time.a[4],time.a[5]); 
1114   6                          SendStr_MAX7219(ms);
1115   6                      }  
1116   5                      if(x==0x0d)//车位信息建//外进
1117   5              {
1118   6              
1119   6                         sta=1;
1120   6                      }  
1121   5                 
1122   5                 }
1123   4                }
1124   3            break;
1125   3         case 1:            //输入
1126   3            // GetTime(time.a);
1127   3            sprintf(ms,"%02bx>%02bx0",time.a[4],time.a[5]); 
1128   3            x=Get_key();
1129   3                if((x>=0)&&(x<10))
1130   3                {
1131   4                   
1132   4                       if(car_type)ms[5]=0x64;
1133   4                       else ms[5]=0x20;
1134   4                keytemp[keynum]=x+0x30;
1135   4                        keynum++;
1136   4                        if( keynum==4) keynum=4;
1137   4                        for(i=0;i<5;i++)
1138   4                        { 
1139   5                           ms[i+6]=keytemp[i];
1140   5                        }
1141   4                   // SendStr_MAX7219(ms);
1142   4                        beep(1);
1143   4                }
1144   3                if(x==ESC)                   //清零
1145   3                {
1146   4                  for(i=5;i<10;i++)    
1147   4                      ms[i]=0x20;
1148   4                      for(i=0;i<5;i++)
1149   4                        { 
1150   5                           keytemp[i]=0x20;
1151   5                        }
1152   4                         beep(2);
1153   4              //SendStr_MAX7219(ms);
1154   4                      car_type=0;
1155   4                       keynum=0;
1156   4                }
1157   3                if(x==ENTER)                  //确认
1158   3                {
1159   4              // Keyinput_ok=1;
1160   4                      
1161   4              
1162   4                     for(i=0;i<5;i++)
1163   4                        { 
1164   5                           ms[i+5]=0x20;
1165   5                        }
1166   4                       beep(1);
1167   4                         for(i=1;i<5;i++)
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 20  

1168   4                        { 
1169   5                           input_pc[i]=keytemp[i-1];
1170   5                               if(car_type)input_pc[0]='d';
1171   5                           else input_pc[0]='x';
1172   5                               if(input_pc[i]==0x20)input_pc[i]=0;
1173   5                        }
1174   4                        
1175   4               //mainstate=0;
1176   4                              delay_time=5;
1177   4                      while(1)
1178   4                      {
1179   5                    memcpy(ms, input_pc,5);
1180   5                memcpy(&ms[5],&time.a[0],6); 
1181   5                       // ES=0;
1182   5               if( write_card(ms))//写卡成功
1183   5                       {  
1184   6                        in_outFlg =1;//进场标志
1185   6                    beep(1);
1186   6                    Keyinput_ok=1;
1187   6                       }
1188   5                       //ES=1;
1189   5                       sprintf(ms,"%02bx>%02bx0",time.a[4],time.a[5]); 
1190   5              if(tflag)
1191   5               {
1192   6                         delay_time--;
1193   6                         if(delay_time==0){  mainstate=0; beep(1);break;}
1194   6                 tflag=0;
1195   6               }
1196   5                        for(i=0;i<5;i++)
1197   5                        { 
1198   6                           ms[i+5]=0x20;
1199   6                        }
1200   5                        ms[9]=delay_time;
1201   5                       SendStr_MAX7219(ms);
1202   5                      if (Cmdok)                //通讯
1203   5                   {
1204   6                Cmdok = FALSE;
1205   6                        RecvReady = FALSE;
1206   6                        SendReady = FALSE;
1207   6                        cmd_execution();
1208   6                        SendReady = TRUE ;   //发起始字
1209   6                        TI = 1;
1210   6               }
1211   5                 }
1212   4                       
1213   4                }
1214   3                
1215   3                if(x==CAR)                   //大车
1216   3                { 
1217   4                        car_type=1;
1218   4                        ms[5]=0x64;     
1219   4                        for(i=0;i<5;i++)
1220   4                        { 
1221   5                           ms[i+6]=keytemp[i];
1222   5                        }
1223   4                         beep(1);
1224   4                          SendStr_MAX7219(ms);
1225   4                }
1226   3            break;
1227   3         case 2:
1228   3             sprintf(ms,"%02bx>%02bx0",time.a[4],time.a[5]); 
1229   3             x=Get_key();
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 21  

1230   3   

⌨️ 快捷键说明

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