📄 lcddriver.lst
字号:
275 2 LCD_math(x,y,a,k);
276 2 LCD_math(x+8,y,b,k);
277 2 LCD_CAstr(x+16,y,".",k,0);
278 2 LCD_math(x+24,y,c,k);
279 2 LCD_CAstr(x+32,y,str,0,0);
280 2 }
281 1 }
282
283 /****************************************************************************************/
284 void LCD_ErrorItem(uint8 x,uint8 y,uint8 *error)
285 {
286 1 char a,b;
287 1
288 1 a=error[0]/10;
289 1 b=error[0]%10;
290 1 LCD_math(x,y,a,0);
291 1 LCD_math(x+8,y,b,0);
292 1 LCD_Ascii(x+16,y,"/",0);
293 1
294 1 a=error[1]/10;
295 1 b=error[1]%10;
296 1 LCD_math(x+24,y,a,0);
297 1 LCD_math(x+32,y,b,0);
298 1 LCD_Ascii(x+40,y,"/",0);
299 1
300 1 a=error[2]/10;
301 1 b=error[2]%10;
302 1 LCD_math(x+48,y,a,0);
303 1 LCD_math(x+56,y,b,0);
C51 COMPILER V7.20 LCDDRIVER 01/31/2007 10:20:44 PAGE 6
304 1
305 1 a=error[3]/10;
306 1 b=error[3]%10;
307 1 LCD_math(x+96,y,a,0);
308 1 LCD_math(x+104,y,b,0);
309 1 LCD_Ascii(x+112,y,":",0);
310 1
311 1 a=error[4]/10;
312 1 b=error[4]%10;
313 1 LCD_math(x+120,y,a,0);
314 1 LCD_math(x+128,y,b,0);
315 1 LCD_Ascii(x+136,y,":",0);
316 1
317 1 a=error[5]/10;
318 1 b=error[5]%10;
319 1 LCD_math(x+144,y,a,0);
320 1 LCD_math(x+152,y,b,0);
321 1
322 1 switch(error[6])
323 1 {
324 2 case 0:LCD_CAstr(128,y+2,"无 ",0,0);
325 2 break;
326 2 case 1:LCD_CAstr(128,y+2,"缺相A ",0,0);
327 2 break;
328 2 case 2:LCD_CAstr(128,y+2,"缺相B ",0,0);
329 2 break;
330 2 case 3:LCD_CAstr(128,y+2,"缺相C ",0,0);
331 2 break;
332 2 case 4:LCD_CAstr(128,y+2,"投励失败 ",0,0);
333 2 break;
334 2 case 5:LCD_CAstr(128,y+2,"失控 ",0,0);
335 2 break;
336 2 case 6:LCD_CAstr(128,y+2,"失步 ",0,0);
337 2 break;
338 2 case 7:LCD_CAstr(128,y+2,"失步再整步",0,0);
339 2 break;
340 2 case 8:LCD_CAstr(128,y+2,"再整步失败",0,0);
341 2 break;
342 2 case 9:LCD_CAstr(128,y+2,"遥调失败 ",0,0);
343 2 break;
344 2 case 10:LCD_CAstr(128,y+2,"通信失败 ",0,0);
345 2 break;
346 2 case 11:LCD_CAstr(128,y+2,"PT断线 ",0,0);
347 2 break;
348 2 case 12:LCD_CAstr(128,y+2,"CT断线 ",0,0);
349 2 break;
350 2 case 13:LCD_CAstr(128,y+2,"切换失败 ",0,0);
351 2 break;
352 2 case 14:LCD_CAstr(128,y+2,"机柜很热 ",0,0);
353 2 break;
354 2 case 15:LCD_CAstr(128,y+2,"快熔熔断 ",0,0);
355 2 break;
356 2 case 16:LCD_CAstr(128,y+2,"KQ误开通 ",0,0);
357 2 break;
358 2 default:break;
359 2 }
360 1 }
361
362 void LCD_Day(uint8 x,uint8 y,uint8 z,uint8 i,uint8 j,uint8 k,uint8 m)
363 {
364 1 uint8 a,b;
365 1 bit sk;
C51 COMPILER V7.20 LCDDRIVER 01/31/2007 10:20:44 PAGE 7
366 1 a=x/10;
367 1 b=x%10;
368 1 if(m==1)sk=1;
369 1 else sk=0;
370 1 LCD_math(88,4,a,sk);
371 1 LCD_math(96,4,b,sk);
372 1
373 1 a=y/10;
374 1 b=y%10;
375 1 if(m==2)sk=1;
376 1 else sk=0;
377 1 LCD_math(112,4,a,sk);
378 1 LCD_math(120,4,b,sk);
379 1
380 1 a=z/10;
381 1 b=z%10;
382 1 if(m==3)sk=1;
383 1 else sk=0;
384 1 LCD_math(136,4,a,sk);
385 1 LCD_math(144,4,b,sk);
386 1
387 1 a=i/10;
388 1 b=i%10;
389 1 if(m==4)sk=1;
390 1 else sk=0;
391 1 LCD_math(168,4,a,sk);
392 1 LCD_math(176,4,b,sk);
393 1
394 1 a=j/10;
395 1 b=j%10;
396 1 if(m==5)sk=1;
397 1 else sk=0;
398 1 LCD_math(192,4,a,sk);
399 1 LCD_math(200,4,b,sk);
400 1
401 1 a=k/10;
402 1 b=k%10;
403 1 if(m==6)sk=1;
404 1 else sk=0;
405 1 LCD_math(216,4,a,sk);
406 1 LCD_math(224,4,b,sk);
407 1 }
408
409
410 void LCD_Clock(void)
411 {
412 1 uint8 a,b;
413 1
414 1 RTC8563_Read();
415 1
416 1 a=RTCData[2]/10;
417 1 b=RTCData[2]%10;
418 1 LCD_math(192,13,a,0);
419 1 LCD_math(200,13,b,0);
420 1
421 1 a=RTCData[1]/10;
422 1 b=RTCData[1]%10;
423 1 LCD_math(216,13,a,0);
424 1 LCD_math(224,13,b,0);
425 1
426 1 if(AcctimeTemp != RTCData[2])
427 1 {
C51 COMPILER V7.20 LCDDRIVER 01/31/2007 10:20:44 PAGE 8
428 2 AcctimeTemp = RTCData[2];
429 2 AccHour++;
430 2 if(AccHour>23)
431 2 {
432 3 AccDay++;
433 3 AccHour = 0;
434 3 }
435 2 Dyn_to_Flash();
436 2 Flash_128_Write(0,Flash,128,0);
437 2 }
438 1
439 1 }
440
441 void LCD_Key(uint8 HK0,uint8 HK1,uint8 HK2,uint8 HK3,uint8 HK4,uint8 HK5)
442 {
443 1 LCD_math(176,12,HK0,0);
444 1 LCD_math(184,12,HK1,0);
445 1 LCD_math(192,12,HK2,0);
446 1 LCD_math(200,12,HK3,0);
447 1 LCD_math(208,12,HK4,0);
448 1 LCD_math(216,12,HK5,0);
449 1 switch(hunt)
450 1 {
451 2 case 60:break;
452 2 case 61:LCD_math(176,12,HK0,1);
453 2 break;
454 2 case 62:LCD_math(184,12,HK1,1);
455 2 break;
456 2 case 63:LCD_math(192,12,HK2,1);
457 2 break;
458 2 case 64:LCD_math(200,12,HK3,1);
459 2 break;
460 2 case 65:LCD_math(208,12,HK4,1);
461 2 break;
462 2 case 66:LCD_math(216,12,HK5,1);
463 2 break;
464 2 default:break;
465 2 }
466 1 }
467 void LCD_PassWord(uint8 key)
468 {
469 1 switch(key)
470 1 {
471 2 case 1:if(hunt==60)
472 2 {
473 3 if(seek==11)
474 3 {
475 4 CH2[0]=S1_Key1;
476 4 CH2[1]=S1_Key2;
477 4 CH2[2]=S1_Key3;
478 4 CH2[3]=S1_Key4;
479 4 CH2[4]=S1_Key5;
480 4 CH2[5]=S1_Key6;
481 4 }
482 3 else if(seek==12)
483 3 {
484 4 CH2[0]=S2_Key1;
485 4 CH2[1]=S2_Key2;
486 4 CH2[2]=S2_Key3;
487 4 CH2[3]=S2_Key4;
488 4 CH2[4]=S2_Key5;
489 4 CH2[5]=S2_Key6;
C51 COMPILER V7.20 LCDDRIVER 01/31/2007 10:20:44 PAGE 9
490 4 }
491 3 hunt=61;
492 3 LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
493 3 }
494 2 else
495 2 {
496 3 hunt=60;
497 3 if(seek==11)
498 3 {
499 4 S1_Key1=CH2[0];
500 4 S1_Key2=CH2[1];
501 4 S1_Key3=CH2[2];
502 4 S1_Key4=CH2[3];
503 4 S1_Key5=CH2[4];
504 4 S1_Key6=CH2[5];
505 4 LCD_Key(S1_Key1,S1_Key2,S1_Key3,S1_Key4,S1_Key5,S1_Key6);
506 4 }
507 3 if(seek==12)
508 3 {
509 4 S2_Key1=CH2[0];
510 4 S2_Key2=CH2[1];
511 4 S2_Key3=CH2[2];
512 4 S2_Key4=CH2[3];
513 4 S2_Key5=CH2[4];
514 4 S2_Key6=CH2[5];
515 4 LCD_Key(S2_Key1,S2_Key2,S2_Key3,S2_Key4,S2_Key5,S2_Key6);
516 4 }
517 3 }
518 2 break;
519 2 case 2:hunt=60;
520 2 if(seek==11)
521 2 LCD_Key(S1_Key1,S1_Key2,S1_Key3,S1_Key4,S1_Key5,S1_Key6);
522 2 else if(seek==12)
523 2 LCD_Key(S2_Key1,S2_Key2,S2_Key3,S2_Key4,S2_Key5,S2_Key6);
524 2 break;
525 2 case 3:CH2[hunt-61]=CH2[hunt-61]+1;
526 2 if(CH2[hunt-61]>9)
527 2 CH2[hunt-61]=0;
528 2 LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
529 2 break;
530 2 case 4:CH2[hunt-61]=CH2[hunt-61]-1;
531 2 if(CH2[hunt-61]>9)
532 2 CH2[hunt-61]=9;
533 2 LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
534 2 break;
535 2 case 5:hunt=hunt-1;
536 2 if(hunt<61)
537 2 hunt=66;
538 2 LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
539 2 break;
540 2 case 6:hunt=hunt+1;
541 2 if(hunt>66)
542 2 hunt=61;
543 2 LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
544 2 break;
545 2 default:break;
546 2 }
547 1 }
548 /********************************************************************************/
549 void LCD_Coordinate(void)
550 {
551 1 uint8 i,j;
C51 COMPILER V7.20 LCDDRIVER 01/31/2007 10:20:44 PAGE 10
552 1
553 1 for(i=30;i<234;i++)
554 1 LCD_WByte(i,2,0x03);
555 1 for(i=30;i<234;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -