📄 mima.lst
字号:
168 disp_busf[1]=i&0xf0;
169 disp_busf[1]>>=4;
170 }*/
171 ////////////////////////////////////////////////////
172 //密码设置
173 uchar mima[4];
174 int config; //验证修改密码是否有足够的权限
175 void mima_setup(void)
176 {
177 1 uchar i,twice=0;
178 1 uchar mima1[4];
179 1 weishu=0;
C51 COMPILER V8.02 MIMA 08/31/2007 15:30:05 PAGE 4
180 1 if(config==0)
181 1 {
182 2 P0&=0x0f;
183 2 return;
184 2 }
185 1 loop:
186 1 i=key();
187 1 if(i==0xff)
188 1 goto loop;
189 1 else if(i<10&&weishu<4)
190 1 {
191 2 disp_busf[3]=disp_busf[2];
192 2 disp_busf[2]=disp_busf[1];
193 2 disp_busf[1]=disp_busf[0];
194 2 disp_busf[0]=i;
195 2 weishu++;
196 2 }
197 1 else if(i==0x0d)
198 1 {
199 2 if(weishu!=0)
200 2 {
201 3 disp_busf[0]=disp_busf[1];
202 3 disp_busf[1]=disp_busf[2];
203 3 disp_busf[2]=disp_busf[3];
204 3 weishu--;
205 3 }
206 2 }
207 1 else if(i==0x0f&&weishu==4)
208 1 {
209 2 if(twice==0)
210 2 {
211 3 for(i=0;i<4;i++)
212 3 {mima1[i]=disp_busf[i];}
213 3 twice=1;
214 3 }
215 2 P0|=0xf0;
216 2 if(twice==1)
217 2 {
218 3 for(i=0;i<4;i++)
219 3 {
220 4 if(mima1[i]!=disp_busf[i])
221 4 break;
222 4 }
223 3 if(i==4)
224 3 {
225 4 for(i=0;i<4;i++)
226 4 {
227 5 mima[i]=disp_busf[i];
228 5 P0|=0xf0;
229 5 }
230 4 config=0;
231 4 return;
232 4 }
233 3 }
234 2 }
235 1 else
236 1 goto loop;
237 1 }
238 //////////////////////////////////////////////////////
239 //输入数据子程序
240 void shuru(void)
241 {
C51 COMPILER V8.02 MIMA 08/31/2007 15:30:05 PAGE 5
242 1 uchar i,wrong=0;
243 1 loop:
244 1 i=key();
245 1 if(i==0xff)
246 1 goto loop;
247 1 else if(i<10)
248 1 {
249 2 if(weishu!=4)
250 2 {
251 3 disp_busf[3]=disp_busf[2];
252 3 disp_busf[2]=disp_busf[1];
253 3 disp_busf[1]=disp_busf[0];
254 3 disp_busf[0]=i;
255 3 weishu++;
256 3 }
257 2 }
258 1 else if(i==0x0d)
259 1 {
260 2 if(weishu!=0)
261 2 {
262 3 disp_busf[0]=disp_busf[1];
263 3 disp_busf[1]=disp_busf[2];
264 3 disp_busf[2]=disp_busf[3];
265 3 weishu--;
266 3 }
267 2 }
268 1 else if(i==0x0f&&weishu==4)
269 1 {
270 2 for(i=0;i<4;i++)
271 2 {if(disp_busf[i]!=mima[i]) break;}
272 2 if(i!=4)
273 2 {
274 3 P0&=0x0f;
275 3 wrong++;
276 3 if(wrong==3)
277 3 {
278 4 P3|=0x40;
279 4 // TH1=10000/256;
280 4 // TL1=10000%256;
281 4 for(i=0;i<10000;i++)
282 4 {
283 5 i=key();
284 5 if(i==0x0c)
285 5 break;
286 5 }
287 4 P3&=0xbf;
288 4 wrong=0;
289 4 }
290 3 }
291 2 else
292 2 {
293 3 P0|=0xf0;
294 3 config=1;
295 3 wrong=0;
296 3 }
297 2 return;
298 2 }
299 1 else if(i==0x0e)
300 1 {
301 2 mima_setup();
302 2 return;
303 2 }
C51 COMPILER V8.02 MIMA 08/31/2007 15:30:05 PAGE 6
304 1 else
305 1 goto loop;
306 1 }
307 //////////////////////////////////////////////////////////////
308 //主程序
309 void main(void)
310 {
311 1 TMOD=0x11;
312 1 TH0=50000/256;
313 1 TL0=50000%256;
314 1 ET0=1;
315 1 TR0=1;
316 1 EA=1;
317 1 mima[0]=1;//密码初始化
318 1 mima[1]=0;
319 1 mima[2]=2;
320 1 mima[3]=5;
321 1 config=0;
322 1 weishu=0;//LED初始状态不显示
323 1 loop:
324 1 shuru();
325 1 goto loop;
326 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 636 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 45 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -