⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_code.lst

📁 Pressure Sensor Assemble Code
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -