📄 main.lst
字号:
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 + -