?? mima.lst
字號:
222 2 _nop_();
223 2 byte<<=1;
224 2 }
225 1 _nop_();
226 1 _nop_();
227 1 SDA=1;
228 1 _nop_();
229 1 _nop_();
230 1 _nop_();
231 1 SCL=1;
232 1 _nop_();
233 1 _nop_();
234 1 _nop_();
235 1 if(SDA==0) ack=1;
236 1 else ack=0;
237 1 SCL=0;
238 1 _nop_();
239 1 _nop_();
240 1 }
241
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 5
242 uchar I2C_receiveB(void)
243 {
244 1 uchar temp;
245 1 uchar counter;
246 1 temp=0;
247 1 SDA=1;
248 1 _nop_();
249 1 _nop_();
250 1 for(counter=0;counter<8;counter++)
251 1 {
252 2 _nop_();
253 2 _nop_();
254 2 _nop_();
255 2 _nop_();
256 2 _nop_();
257 2 SCL=1;
258 2 _nop_();
259 2 _nop_();
260 2 if(SDA==1) temp=(temp<<1)|0x01;
261 2 else temp=temp<<1;
262 2 _nop_();
263 2 _nop_();
264 2 SCL=0;
265 2 _nop_();
266 2 _nop_();
267 2 _nop_();
268 2 }
269 1 _nop_();
270 1 _nop_();
271 1 return(temp);
272 1 }
273
274 /*bit I2C_write_byte(uchar byte,uchar address)
275 {
276 I2C_sendB(address);
277 if(ack=0)
278 {
279 I2C_stop();
280 return(0);
281 }
282 else I2C_sendB(byte); */
283
284
285 bit I2C_send_string(uchar *string,uchar no,uchar address)
286 {
287 1 uchar counter;
288 1 for(counter=0;counter<no;counter++)
289 1 {
290 2 I2C_start();
291 2 I2C_sendB(C02_write);
292 2 if(ack==0) return(0);
293 2 I2C_sendB(address+counter);
294 2 if(ack==0) return(0);
295 2 I2C_sendB(string[counter]);
296 2 I2C_stop();
297 2 delayms(20);
298 2 }
299 1 return(1);
300 1 }
301
302 bit I2C_receive_string(uchar *string,uchar no,uchar address)
303 {
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 6
304 1 uchar counter;
305 1 for(counter=0;counter<no;counter++)
306 1 {
307 2 I2C_start();
308 2 I2C_sendB(C02_write);
309 2 if(ack==0) return(0);
310 2 I2C_sendB(address+counter);
311 2 if(ack==0) return(0);
312 2 I2C_start();
313 2 I2C_sendB(C02_read);
314 2 if(ack==0) return(0);
315 2 *(string+counter)=I2C_receiveB();
316 2 I2C_no_ackownledge();
317 2 I2C_stop();
318 2 }
319 1 }
320
321 uchar get_key()
322 {
323 1 uchar row_code;
324 1 uchar col_code;
325 1 P1=0xf0;
326 1 if(P1!=0xf0)
327 1 {
328 2 delayms(10);
329 2 if(P1!=0xf0)
330 2 {
331 3 row_code=0xfe;
332 3 while(row_code!=0x7f)
333 3 {
334 4 P1=row_code;
335 4 if(P1!=row_code)
336 4 {
337 5 col_code=(P1&0xf0)|0x0f;
338 5 return( (~col_code)|(~row_code));
339 5 }
340 4 row_code=((row_code<<1)|0x01);
341 4 }
342 3 }
343 2 }
344 1 return(0x00);
345 1 }
346
347 void convert_code(uchar *string)
348 {
349 1 uchar counter=0;
350 1 for(counter=0;counter<6;counter++)
351 1 {
352 2 switch(*string)
353 2 {
354 3 case no0:
355 3 *string=0x00;
356 3 break;
357 3 case no1:
358 3 *string=0x01;
359 3 break;
360 3 case no2:
361 3 *string=0x02;
362 3 break;
363 3 case no3:
364 3 *string=0x03;
365 3 break;
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 7
366 3 case no4:
367 3 *string=0x04;
368 3 break;
369 3 case no5:
370 3 *string=0x05;
371 3 break;
372 3 case no6:
373 3 *string=0x06;
374 3 break;
375 3 case no7:
376 3 *string=0x07;
377 3 break;
378 3 case no8:
379 3 *string=0x08;
380 3 break;
381 3 case no9:
382 3 *string=0x09;
383 3 break;
384 3 default:
385 3 break;
386 3 }
387 2 string++;
388 2 }
389 1 }
390
391 bit compare_string(uchar *string1,uchar *string2)
392 {
393 1 uchar counter;
394 1 for(counter=0;counter<6;counter++)
395 1 {
396 2 if(string1[counter]!=string2[counter]) return(0);
397 2 }
398 1 return(1);
399 1 }
400
401 uchar step_choose(void)
402 {
403 1 unsigned int i;
404 1 uchar key;
405 1 do{
406 2 lcm_write_cmd(0x01);
407 2 lcm_write_cmd(0x06);
408 2 lcm_setxy(0,1);
409 2 lcm_write_string("input password");
410 2 lcm_setxy(0,2);
411 2 lcm_write_string("please press 1");
412 2 for(i=0;i<30000;i++)
413 2 {
414 3 key=get_key();
415 3 if((key==no1)||(key==no2)) break;
416 3 }
417 2 if((key!=no1)&&(key!=no2))
418 2 {
419 3 lcm_write_cmd(0x01);
420 3 lcm_write_cmd(0x06);
421 3 lcm_setxy(0,1);
422 3 lcm_write_string("change password");
423 3 lcm_setxy(0,2);
424 3 lcm_write_string("please press 2");
425 3 for(i=0;i<30000;i++)
426 3 {
427 4 key=get_key();
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 8
428 4 if((key==no1)||(key==no2)) break;
429 4 }
430 3 }
431 2 }
432 1 while((key!=no1)&&(key!=no2));
433 1 return(key);
434 1 }
435
436 bit input_password(uchar *password)
437 {
438 1 uchar counter;
439 1 uchar key;
440 1 lcm_setxy(0,2);
441 1 for(counter=0;counter<7;counter++)
442 1 {
443 2 longdelay(3);
444 2 if(counter<6)
445 2 {
446 3 do{
447 4 key=get_key();
448 4 }
449 3 while(key==0x00);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -