📄 lcd.lst
字号:
302 1 else
303 1 {
C51 COMPILER V7.50 LCD 04/25/2007 10:47:47 PAGE 6
304 2 CS2=0;CS1=1;
305 2 col=col-64;
306 2 }
307 1 for(j=0;j<2;j++)
308 1 {
309 2 write_cmd(PAGE+page+j); write_cmd(COL+col);
310 2 for (i=0;i<16;i++)
311 2 write_data(str[n*32+16*j+i]);
312 2 }
313 1 }
314
315
316 /*
317
318 //*******************************指定位置显示汉字16*16****************************
319
320 void disp_str(uchar page,uchar col,uchar code *str,uchar n)
321 {
322
323 uchar j=0,i=0;
324 for(j=0;j<2;j++)
325 {
326 write_cmd(PAGE+page+j); write_cmd(COL+col);
327 for (i=0;i<16;i++)
328 write_data(str[n*32+16*j+i]);
329 }
330 }
331 //**********************************反显程序**************************************
332
333 void cpl_disp_str(uchar page,uchar col,uchar code *str,uchar n)
334 {
335
336 uchar j=0,i=0;
337 for(j=0;j<2;j++)
338 {
339 write_cmd(PAGE+page+j); write_cmd(COL+col);
340 for (i=0;i<16;i++)
341 write_data(~str[n*32+16*j+i]);
342 }
343 }
344
345
346
347
348 //*******************************显示ASCII码程序**********************************
349 void disp_ascII(uchar page,uchar col,uchar code *english,uchar n)
350 {
351 uchar j,i;
352 for(j=0;j<2;j++)
353 {
354 write_cmd(PAGE+page+j);write_cmd(COL+col);
355 for(i=0;i<8;i++)
356 write_data(english[n*16+8*j+i]);
357 }
358 }
359 */
360
361
362 //**************************************************************************
363 void displaye(uchar page,uchar col,uchar code *english,uchar n)
364 {
365 1 uchar j,i;
C51 COMPILER V7.50 LCD 04/25/2007 10:47:47 PAGE 7
366 1 if(col<64)
367 1 {
368 2 CS2=1;CS1=0;
369 2 }
370 1 else
371 1 {
372 2 CS2=0;CS1=1;
373 2 col=col-64;
374 2 }
375 1 for(j=0;j<2;j++)
376 1 {
377 2 write_cmd(PAGE+page+j);write_cmd(COL+col);
378 2 for(i=0;i<8;i++)
379 2 write_data(english[n*16+8*j+i]);
380 2 }
381 1 }
382 /*
383 void cpl_disp_ascII(uchar page,uchar col,uchar code *english,uchar n)
384 {
385 uchar j,i;
386 for(j=0;j<2;j++)
387 {
388 write_cmd(PAGE+page+j);write_cmd(COL+col);
389 for(i=0;i<8;i++)
390 write_data(~english[n*16+8*j+i]);
391 }
392 }
393
394 */
395 //***************************初始化LCD屏*************************************
396
397 void init()
398 {
399 1 delay(100);
400 1 CS2=1; CS1=0;
401 1 delay(100);
402 1 write_cmd(DISP_OFF);
403 1 write_cmd(PAGE);
404 1 write_cmd(START_LINE);
405 1 write_cmd(COL);
406 1 write_cmd(DISP_ON);
407 1 CS2=0; CS1=1;
408 1 delay(100);
409 1 write_cmd(DISP_OFF);
410 1 write_cmd(PAGE);
411 1 write_cmd(START_LINE);
412 1 write_cmd(COL);
413 1 write_cmd(DISP_ON);
414 1 }
415
416
417 uchar key()
418 {
419 1 uchar temp,key_value;
420 1 P2=0xff;
421 1 temp=0x0f&P2;
422 1 if(temp!=0x0f)
423 1 {
424 2 delay(100);
425 2 temp=0x0f&P2;
426 2 if(temp!=0x0f)
427 2 {
C51 COMPILER V7.50 LCD 04/25/2007 10:47:47 PAGE 8
428 3 if(temp==0x0e)
429 3 key_value=0; //LEFT
430 3 else if(temp==0x0d)
431 3 key_value=1; //DOWN
432 3 else if(temp==0x0b)
433 3 key_value=2; //UP
434 3 else if(temp==0x07)
435 3 key_value=3; //RIGHT
436 3 }
437 2 }
438 1 while((P2&0x0f)!=0x0f);
439 1 return key_value;
440 1
441 1 }
442
443
444
445
446 void screen0() //state=0
447 {
448 1 uchar i,temp;
449 1 //cls();
450 1 for(i=0;i<6;i++)
451 1 display(0,16+16*i,str1,i);
452 1 for(i=0;i<3;i++)
453 1 {
454 2 display(6,16*i,str2,i);
455 2 display(6,80+16*i,str2,i+3);
456 2 }
457 1
458 1 for(i=0;i<3;i++)
459 1 {
460 2 display(2,16*i,time,i);//星期二
461 2 }
462 1
463 1
464 1 display(2,80,time,3);
465 1 display(2,112,time,4);
466 1
467 1 displaye(4,8*5,num,2);
468 1 displaye(4,8*5+8,num,3);
469 1 displaye(4,8*5+8*2,num,10);
470 1 displaye(4,8*5+24,num,4);
471 1 displaye(4,8*5+32,num,6);
472 1
473 1
474 1 temp=key();
475 1 if(temp==0) //left
476 1 {
477 2 state=1;
478 2 cls();
479 2 }
480 1
481 1 }
482
483
484 void screen1() //state=1
485 {
486 1
487 1 uchar i,temp;
488 1 //cls();
489 1 for(i=0;i<4;i++)
C51 COMPILER V7.50 LCD 04/25/2007 10:47:47 PAGE 9
490 1 display(0,16*i,str3,i);
491 1 for(i=0;i<2;i++)
492 1 {
493 2 display(6,16*i,enter,i);
494 2 display(6,96+16*i,enter,i+2);
495 2 }
496 1 displaye(6,80,num,1);
497 1 temp=key();
498 1 if(temp==1) //right
499 1 {
500 2 state=0; //State Change
501 2 cls();
502 2 }
503 1 else if(temp==2)
504 1 {
505 2 state=7;
506 2 cls();
507 2 }
508 1 else if(temp==3)
509 1 {
510 2 state=2;
511 2 cls();
512 2 }
513 1 }
514
515
516 void screen2() //state=2
517 {
518 1 uchar i,temp;
519 1 for(i=0;i<4;i++)
520 1 display(0,16*i,wenben,i);
521 1 for(i=0;i<2;i++)
522 1 {
523 2 display(6,16*i,enter,i);
524 2 display(6,96+16*i,enter,i+2);
525 2 }
526 1 displaye(6,80,num,2);
527 1 temp=key();
528 1 if(temp==1) //right
529 1 {
530 2 state=0; //State Change
531 2 cls();
532 2 }
533 1 else if(temp==2)
534 1 {
535 2 state=1;
536 2 cls();
537 2 }
538 1 else if(temp==3)
539 1 { state=3;
540 2 cls();
541 2
542 2 }
543 1
544 1 }
545
546 void screen3() //state=3;
547 {
548 1 uchar i,temp;
549 1 for(i=0;i<4;i++)
550 1 display(0,16*i,yuyin,i);
551 1 for(i=0;i<2;i++)
C51 COMPILER V7.50 LCD 04/25/2007 10:47:47 PAGE 10
552 1 {
553 2 display(6,16*i,enter,i);
554 2 display(6,96+16*i,enter,i+2);
555 2 }
556 1 displaye(6,80,num,3);
557 1 temp=key();
558 1 if(temp==1) //right
559 1 {
560 2 state=0; //State Change
561 2 cls();
562 2 }
563 1 else if(temp==2) //UP
564 1 {
565 2 state=2;
566 2 cls();
567 2 }
568 1 else if(temp==3) //down
569 1 {
570 2 state=4;
571 2 cls();
572 2 }
573 1
574 1 }
575
576 void screen4() //state=4;
577 {
578 1 uchar i,temp;
579 1 for(i=0;i<4;i++)
580 1 display(0,16*i,lingsheng,i);
581 1 for(i=0;i<2;i++)
582 1 {
583 2 display(6,16*i,enter,i);
584 2 display(6,96+16*i,enter,i+2);
585 2 }
586 1 displaye(6,80,num,4);
587 1 temp=key();
588 1 if(temp==1) //right
589 1 {
590 2 state=0; //State Change
591 2 cls();
592 2 }
593 1 else if(temp==2) //UP
594 1 {
595 2 state--;
596 2 cls();
597 2 }
598 1 else if(temp==3) //down
599 1 {
600 2 state=5;
601 2 cls();
602 2 }
603 1
604 1 }
605
606 void screen5() //state=5
607 {
608 1 uchar i,temp;
609 1 for(i=0;i<2;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -