📄 borad.lst
字号:
302 2 delay10ms(10);
303 2 if(pt!=(P1&0xfc)) NowInst=1;
C51 COMPILER V8.02 BORAD 05/08/2007 16:23:35 PAGE 6
304 2 }
305 1 else
306 1 {
307 2 P0=0;
308 2 delay10ms(10);
309 2 }
310 1 if(NowInst!=CurInst)
311 1 {
312 2 cn++;
313 2 if(cn>=30)
314 2 {
315 3 CurInst=NowInst;
316 3 cn=0;
317 3 // if(CurInst) return(1);
318 3 }
319 2 }
320 1 else
321 1 {
322 2 cn=0;
323 2 }
324 1 // return(0);
325 1 if(CurInst)
326 1 {
327 2 // CurInst=0;
328 2 return(1);
329 2 }
330 1 else
331 1 {
332 2 return(0);
333 2 }
334 1 }
335 bit keyWait(bit chk)
336 {
337 1 static bit NextUp=0,StartUp=0,CheckUp=0;
338 1 if(chk)
339 1 {
340 2 if(Next)
341 2 {
342 3 if(NextUp)
343 3 {
344 4 NextUp=0;
345 4 return(0); //Next OK
346 4 }
347 3 }
348 2 else
349 2 {
350 3 NextUp=1;
351 3 }
352 2 }
353 1 if(Start)
354 1 {
355 2 if(StartUp)
356 2 {
357 3 StartUp=0;
358 3 longjmp(env,2); //Start OK
359 3 }
360 2 }
361 1 else
362 1 {
363 2 StartUp=1;
364 2 }
365 1 if(StartCheck())
C51 COMPILER V8.02 BORAD 05/08/2007 16:23:35 PAGE 7
366 1 {
367 2 if(CheckUp)
368 2 {
369 3 CheckUp=0;
370 3 longjmp(env,2); //Start OK
371 3 }
372 2 }
373 1 else
374 1 {
375 2 CheckUp=1;
376 2 }
377 1 return(1);
378 1 }
379 void delay10ms(int a)
380 {
381 1 td=a/10;
382 1 while(td);
383 1 }
384
385
386 /*------------------初始化-----------------*/
387 void init_lcd (void)
388 {
389 1 rst=1;
390 1 // psb=0;
391 1 wr_lcd (comm,0x30); /*30---基本指令动作*/
392 1 wr_lcd (comm,0x01); /*清屏,地址指针指向00H*/
393 1 delay (100);
394 1 wr_lcd (comm,0x06); /*光标的移动方向*/
395 1 wr_lcd (comm,0x0c); /*开显示,关游标*/
396 1 }
397 /*---------------显示汉字或字符----------------*/
398 /*void chn_disp (uchar code *chn)
399 {
400 uchar i,j;
401 wr_lcd (comm,0x30);
402 wr_lcd (comm,0x80);
403 for (j=0;j<4;j++)
404 {
405 for (i=0;i<16;i++)
406 wr_lcd (dat,chn[j*16+i]);
407 }
408 }*/
409 /*------------上半屏显示汉字或字符-----------*/
410 /*void chn_disp1 (uchar code *chn)
411 {
412 uchar i,j;
413 wr_lcd (comm,0x30); //基本指令集动作 ,绘图显示OFF
414 wr_lcd (comm,0x80); //设定GDRAM地址到地址记数器AC
415 j=0;
416 for (i=0;i<16;i++)
417 wr_lcd (dat,chn[j*16+i]);
418 wr_lcd (comm,0x90);
419 j=1;
420 for (i=0;i<16;i++)
421 wr_lcd (dat,chn[j*16+i]);
422 }*/
423 /*----------------显示图形-----------------*/
424 /*void img_disp (uchar code *img)
425 {
426 uchar i,j;
427 for(j=0;j<32;j++)
C51 COMPILER V8.02 BORAD 05/08/2007 16:23:35 PAGE 8
428 {
429 for(i=0;i<8;i++)
430 {
431 wr_lcd (comm,0x34); //8位控制器接口,扩充功能设定,扩充指令集动作,绘图显示OFF
432 wr_lcd (comm,y+j);
433 wr_lcd (comm,x1+i);
434 wr_lcd (comm,0x30);
435 wr_lcd (dat,img[j*16+i*2]);
436 wr_lcd (dat,img[j*16+i*2+1]);
437 }
438 }
439 for(j=32;j<64;j++)
440 {
441 for(i=0;i<8;i++)
442 {
443 wr_lcd (comm,0x34);
444 wr_lcd (comm,y+j-32);
445 wr_lcd (comm,x2+i);
446 wr_lcd (comm,0x30);
447 wr_lcd (dat,img[j*16+i*2]);
448 wr_lcd (dat,img[j*16+i*2+1]);
449 }
450 }
451 wr_lcd (comm,0x36);
452 }*/
453 /*-------------下半屏显示图形--------------*/
454 /*void img_disp1 (uchar code *img)
455 {
456 uchar i,j;
457 for(j=0;j<32;j++)
458 {
459 for(i=0;i<8;i++)
460 {
461 wr_lcd (comm,0x34);
462 wr_lcd (comm,y+j);
463 wr_lcd (comm,x2+i);
464 wr_lcd (comm,0x30);
465 wr_lcd (dat,img[j*16+i*2]);
466 wr_lcd (dat,img[j*16+i*2+1]);
467 }
468 }
469 wr_lcd (comm,0x36);
470 }*/
471 /*--------------显示点阵----------------
472 显示点阵
473
474 -------------------------------------------*/
475 /*
476 void lat_disp (uchar data1,uchar data2)
477 {
478 uchar i,j,k,x;
479 x=x1;
480 for(k=0;k<2;k++)
481 {
482 for(j=0;j<16;j++)
483 {
484 for(i=0;i<8;i++)
485 {
486 wr_lcd (comm,0x34); //8位控制器接口,扩充功能设定,扩充指令集动作,绘图显示OFF
487 wr_lcd (comm,y+j*2); //设定绘图地址
488 wr_lcd (comm,x+i);
489 wr_lcd (comm,0x30); //基本指令集动作 ,绘图显示OFF
C51 COMPILER V8.02 BORAD 05/08/2007 16:23:35 PAGE 9
490 wr_lcd (dat,data1); //写入数据
491 wr_lcd (dat,data1);
492 }
493 for(i=0;i<8;i++)
494 {
495 wr_lcd (comm,0x34);
496 wr_lcd (comm,y+j*2+1);
497 wr_lcd (comm,x+i);
498 wr_lcd (comm,0x30);
499 wr_lcd (dat,data2);
500 wr_lcd (dat,data2);
501 }
502 }
503 x=x2;
504 }
505 wr_lcd (comm,0x36); //扩充指令集动作 ,绘图显示ON
506 }*/
507 /*-----------------------------------------------*/
508 //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
509 /*void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
510 {
511 uchar i,j;
512 for(j=0;j<yl;j++)
513 {
514 for(i=0;i<xl;i++)
515 {
516 wr_lcd (comm,0x34); //8位控制器接口,扩充功能设定,扩充指令集动作,绘图显示OFF
517 wr_lcd (comm,y0+j);
518 wr_lcd (comm,x0+i);
519 wr_lcd (comm,0x30); //基本指令集动作 ,绘图显示OFF
520 wr_lcd (dat,data1);
521 wr_lcd (dat,data2);
522 }
523 }
524 wr_lcd (comm,0x36);
525 }*/
526 /*--------------清DDRAM------------------*/
527 /*void clrram (void)
528 {
529 wr_lcd (comm,0x30);
530 wr_lcd (comm,0x01);
531 delay (180);
532 }*/
533 /*---------------------------------------------
534 发送数据或指令的函数
535 当dat_comm=1 发送的是数据, dat_comm=0则是命令.
536 待发送的数据或指令放在content中.
537 ----------------------------------------------*/
538 void wr_lcd (uchar dat_comm,uchar content)
539 {
540 1 uchar a,i,j;
541 1 delay (50);
542 1 a=content;
543 1 cs=1;
544 1 sclk=0;
545 1 std=1;
546 1 for(i=0;i<5;i++) //先输入五个连续的1 -----》是同步位字符串,此时输入记数被重置并且串行传输被同步。
547 1 {
548 2 sclk=1;
549 2 sclk=0;
550 2 }
551 1 std=0; //RW位
C51 COMPILER V8.02 BORAD 05/08/2007 16:23:35 PAGE 10
552 1 sclk=1;
553 1 sclk=0;
554 1 if(dat_comm) //RS位
555 1 std=1; //data
556 1 else
557 1 std=0; //command
558 1 sclk=1;
559 1 sclk=0; //第8位规定为0
560 1 std=0;
561 1 sclk=1;
562 1 sclk=0;
563 1 for(j=0;j<2;j++)
564 1 {
565 2 for(i=0;i<4;i++) //每一个8位指令将被分为两个字节接收到.
566 2 {
567 3 a=a<<1;
568 3 std=CY;
569 3 sclk=1;
570 3 sclk=0;
571 3 }
572 2 std=0;
573 2 for(i=0;i<4;i++)
574 2 {
575 3 sclk=1;
576 3 sclk=0;
577 3 }
578 2 }
579 1 }
580 /*-----------------------------------*/
581 void delay (uint us) //delay time
582 {
583 1 while(us--);
584 1 }
585 /*void delay1 (uint ms)
586 {
587 uint i,j;
588 for(i=0;i<ms;i++)
589 for(j=0;j<15;j++)
590 delay(1);
591 }*/
592
593
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 743 ----
CONSTANT SIZE = 252 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 22
IDATA SIZE = ---- ----
BIT SIZE = 7 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -