📄 c_code.lst
字号:
378 1 unsigned char us,usn;
379 1 while(MS!=0) { //12M Crystal
380 2 usn = 2;
381 2 while(usn!=0) {
382 3 us=0xf2;
383 3 while (us!=0){us--;};
384 3 usn--;
385 3 }
386 2 MS--;
387 2 }
388 1 }
389 //通过按键设定延时函数
390 void DelayKey(unsigned char HalfSecond){ //Delay_key加入时间参数0.5秒一级
391 1 unsigned int i;
392 1 for(i=0;i<50*HalfSecond;i++){ //12M Crystal
393 2 if(Key==0) {
394 3 Delay(20);
395 3 while(Key==0) {Delay(20);}
396 3 break;
397 3 }
398 2 Delay(10);
399 2 }
400 1 }
401 //清显示存储器函数
402 void LcmClear( unsigned char FillByte ){
403 1 unsigned int i = 8192; //此处仅清8K RAM,如果您32K RAM都使用,请修改i=32768(后面也要改)
404 1 if(FillByte) //注意如果填充ff时,如果RAM仅使用了8K,那么8192次会写入到文本区
405 1 { //会形成乱码.(24064出厂时候默认将R7断开,即默认使用8KRAM)
406 2 i -= 2*1024;//所以如果填入ff时候要扣除2K的文本区
407 2 LcmWriteCommandWith2Par(0x00,0x08,0x24); //填充0xff时候要在图形区
408 2 }
409 1 else
410 1 LcmWriteCommandWith2Par(0x00,0x00,0x24);
411 1 LcmWriteCommand(0xB0); //进入自动写
412 1 while(i--) {
413 2 CheckAutoWrite();
414 2 LcmWriteData( FillByte );
415 2 }
416 1 LcmWriteCommand(0xB2); //退出自动写
417 1
418 1 }
419 //动态显示数据
420 void LcmDynWriteData(unsigned char x, unsigned char y, unsigned char CH_No,unsigned int ihex){
421 1 LocateXY(x,y,TXT);
422 1 LcmWriteCommand(0xB0); //进入自动写
423 1
424 1 CheckAutoWrite();
425 1 LcmWriteData(0x23);// C
426 1 CheckAutoWrite();
427 1 LcmWriteData(0x28);// H
C51 COMPILER V8.02 C_CODE 10/25/2006 07:30:58 PAGE 8
428 1 CheckAutoWrite();
429 1 LcmWriteData(CH_No);// 通道号
430 1 CheckAutoWrite();
431 1 LcmWriteData(0x1A);// :
432 1
433 1 i = 5;// x x x x x 测量值
434 1 while(i--) {
435 2 CheckAutoWrite();
436 2 LcmWriteData( ihex );
437 2 }
438 1
439 1 CheckAutoWrite();
440 1 LcmWriteData(0x30);// 显示P
441 1 CheckAutoWrite();
442 1 LcmWriteData(0x54);// 显示t
443 1
444 1 LcmWriteCommand(0xB2); //退出自动写
445 1 }
446 //设定显示地址函数
447 void LocateXY(unsigned char x,unsigned char y,unsigned char mode){
448 1 unsigned int temp;
449 1 temp= LcmLengthDots/8*y + x;
450 1 if(mode) { //mode=1为Graphic
451 2 temp+=0x0800; //如果图形模式要加上图形区首地址0x0800
452 2 }
453 1 LcmWriteCommandWith2Par(temp&0xff,temp/256,0x24);
454 1 }
455 //显示一个ASCII码函数
456 void PutChar(unsigned char x,unsigned char y,unsigned char CharByte){
457 1 LocateXY(x,y,TXT);
458 1 LcmWriteCommandWith1Par(CharByte,0xC4);
459 1 }
460 //显示一个字符串函数
461 void PutString(unsigned char x,unsigned char y,unsigned char *str){
462 1 while(*str != 0) {
463 2 if(x> 29) { //自动换行
464 3 x=0;
465 3 y++;
466 3 }
467 2 PutChar(x,y,*str);
468 2 ++x;
469 2 ++str;
470 2 }
471 1 }
472 //显示一副图片函数
473 //void DisplayOneBmp(unsigned char *puts){
474 // unsigned char i,j;
475 // unsigned int X=0;
476 // LocateXY(0,0,Graphic);
477 // LcmWriteCommand(0xB0); //进入自动写
478 // for(i=0;i<LcmWidthDots;i++) {
479 // for(j=0;j<LcmLengthDots/8;j++) {
480 // CheckAutoWrite();
481 // LcmWriteData(puts[X]);
482 // X++;
483 // }
484 // }
485 // LcmWriteCommand(0xB2); //退出自动写
486 //}
487 //反显一副图片函数
488 //void ReverseOneBmp( void ){ //利用数据一次读写操作
489 // unsigned char i,j,X; //只能对一段RAM取反
C51 COMPILER V8.02 C_CODE 10/25/2006 07:30:58 PAGE 9
490 // LocateXY(0,0,Graphic);
491 // for(i=0;i<LcmWidthDots;i++) {
492 // for(j=0;j<LcmLengthDots/8;j++) {
493 // LcmWriteCommand(0xC5); //读数据,地址不变
494 // CheckRWCD();
495 // X = LcmReadData();
496 // X = ~X;
497 // LcmWriteCommandWith1Par(X,0xC0);
498 // }
499 // }
500 //}
501 //屏读功能演示
502 //void ScreenReadDemo( void ){ //利用屏读
503 // //能对当前屏幕反显,包括合成内容(本函数仅读文本到图形)
504 // //但是写入后的内容都在图形区
505 // //可以将文本区内容读出以图形方式写到图形区
506 // unsigned char i,j,X;
507 // //使用屏读屏考时候必须设置宽度为40(硬件已决定)
508 // //所以如确定要用到屏读屏考的话最后初始化时就设40
509 // LcmWriteCommandWith2Par(0x28,0x00,0x41); //设置文本显示区宽度=40
510 // LcmWriteCommandWith2Par(0x28,0x00,0x43); //设置图形显示区宽度=40
511 // PutString(0,0,str1); //0,0不会受到宽度改变的影响
512 // for(i=0;i<8;i++) { //屏幕较慢,就以一行文本做演示
513 // LcmWriteCommandWith2Par((0x28*i+0x800)&0xff,(0x28*i+0x800)/256,0x24);
514 // for(j=0;j<LcmLengthDots/8;j++) {
515 // LcmWriteCommand(0xE0);
516 // CheckScreen();
517 // CheckRWCD();
518 // X = LcmReadData();
519 // X = ~X;
520 // LcmWriteCommandWith1Par(X,0xC0);
521 // }
522 // }
523 // //屏读需要一点时间,运行速度比较慢,运行过程中由于文本图形互补的关系,屏幕全黑
524 // LcmWriteCommand(0x98); //关闭文本区看显示效果
525 // DelayKey(3);
526 // LcmWriteCommand(0x9C); //恢复文本区显示
527 // LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x41); //宽度改回原值
528 // LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x43);
529 // LcmClear(0); //清屏
530 //}
531 //显示点阵子函数
532 //void DisplayDots(unsigned char DotByte,unsigned char n){
533 // unsigned char i,j;
534 // LocateXY(0,0,Graphic);
535 // LcmWriteCommand(0xB0); //进入自动写
536 // for(i=0;i<LcmWidthDots/n;i++) {
537 // for(j=0;j<LcmLengthDots/8*n;j++) {
538 // CheckAutoWrite();
539 // LcmWriteData(DotByte);
540 // }
541 // DotByte=~DotByte;
542 // }
543 // LcmWriteCommand(0xB2); //退出自动写
544 //}
545
546 //代码区
547 unsigned char code str_Welcome[] = {0x37, 0x45, 0x4C, 0x43, 0x4F, 0x4D, 0x45,0x01};
548 unsigned char code str_Hibernate[] = {0x28, 0x49, 0x42, 0x45, 0x52, 0x4E, 0x41, 0x54, 0x45};
549 unsigned char code str_Charge[] = {0x23, 0x28, 0x21, 0x32, 0x27, 0x25};
550 unsigned char code str_USB[] = {0x35, 0x33, 0x22};
551 unsigned char code str2[] = {0x37, 0x41, 0x52, 0x4D, 0x49, 0x4E, 0x47, 0x00, 0x35, 0x50};
C51 COMPILER V8.02 C_CODE 10/25/2006 07:30:58 PAGE 10
552 unsigned char code str3[] = {0x37, 0x41, 0x52, 0x4D, 0x49, 0x4E, 0x47, 0x00, 0x35, 0x50, 0x0E};
553 unsigned char code str4[] = {0x37, 0x41, 0x52, 0x4D, 0x49, 0x4E, 0x47, 0x00, 0x35, 0x50, 0x0E, 0x0E};
554 unsigned char code str5[] = {0x37, 0x41, 0x52, 0x4D, 0x49, 0x4E, 0x47, 0x00, 0x35, 0x50, 0x0E, 0x0E, 0x0E}
-;
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1491 ----
CONSTANT SIZE = 72 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 41 24
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 + -