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

📄 cm160128.lst

📁 keil c51编写的LCD 12864像素LCD显示屏程序,,通过调用函数,显示grom字库中的7千多个简体中文和字符
💻 LST
📖 第 1 页 / 共 3 页
字号:
 265   1              PR11();
 266   1      }
 267          void PR11() /* 单字节参数指令写入入口 */
 268          {
 269   1              ST01();
 270   1              d_add=dat2; /* 取第二参数单元数据 */
 271   1              PR12();
 272   1      }
 273          void PR12() /* 无参数指令写入入口 */
 274          {
 275   1              ST01();
 276   1              c_add=com; /* 写入指令代码 */
 277   1      }
 278          /************************************************/
 279          /* 判状态位S1,S0 函数(读写指令和读写数据状态) */
 280          /************************************************/
 281          void ST01()
 282          {
 283   1              do
 284   1              {
 285   2                      ACC=c_add;
 286   2              }
 287   1              while(Acc_0==0,Acc_1==0);
 288   1      }
 289          
 290          /************************************/
 291          /* 判状态位S3函数(数据自动写状态) */
 292          /************************************/
 293          void ST3()
 294          {
 295   1              do
 296   1              {
 297   2                      ACC=c_add;
 298   2              }
 299   1              while(Acc_3==0);
 300   1      }
 301          
 302          void DISHAZIT(uchar x,uchar y,uchar d) /*汉字写入(图文方式)*/
 303          {
C51 COMPILER V7.06   CM160128                                                              03/08/2008 16:45:23 PAGE 6   

 304   1              code_1=d;
 305   1              O_X=x;
 306   1              O_Y=y;
 307   1              CCW2_PR();
 308   1      }
 309          void DISHAZIT2(uchar x,uchar y,uchar d) /*汉字写入(图文方式)*/
 310          {
 311   1              code_1=d;
 312   1              O_X=x;
 313   1              O_Y=y;
 314   1              CCW3_PR();
 315   1      }
 316          
 317          void DISDASC(uchar x,uchar y,uchar d) //汉字写入(文本方式)
 318          {
 319   1              code_1=d;
 320   1              O_X=x;
 321   1              O_Y=y;
 322   1              CCWD_PR();
 323   1      }
 324          //显示欢迎界面
 325          void ShowWelcome(void) /*汉字写入(图文方式)*/
 326          {
 327   1              code_1=0;
 328   1              O_X=0;
 329   1              O_Y=0;
 330   1              CCW4_PR();
 331   1      }
 332          //显示"仪器正在预热"
 333          void ShowHeat(void)
 334          {
 335   1              DISHAZIT(2,8*7,0x0e);
 336   1              DISHAZIT(4,8*7,0x0f);
 337   1              DISHAZIT(6,8*7,0x10);
 338   1              DISHAZIT(8,8*7,0x11);
 339   1              DISHAZIT(10,8*7,0x12);
 340   1              DISHAZIT(12,8*7,0x13);
 341   1      }
 342          //显示"采样时间"
 343          void ShowSample(void)
 344          {
 345   1              DISHAZIT(1,8*9,0x00);
 346   1              DISHAZIT(3,8*9,0x01);
 347   1              DISHAZIT(5,8*9,0x02);
 348   1              DISHAZIT(7,8*9,0x03);
 349   1              DISHAZIT(9,8*9,0x04);
 350   1      }
 351          //显示"放大倍数"
 352          void ShowEXG(void)
 353          {
 354   1              DISHAZIT(1,8*11,0x07);
 355   1              DISHAZIT(3,8*11,0x08);
 356   1              DISHAZIT(5,8*11,0x09);
 357   1              DISHAZIT(7,8*11,0x0a);
 358   1              DISHAZIT(9,8*11,0x04);
 359   1      }
 360          //显示"负高压"
 361          void ShowMIN(void)
 362          {
 363   1              DISHAZIT(1,8*13,0x0b);
 364   1              DISHAZIT(4,8*13,0x0c);
 365   1              DISHAZIT(7,8*13,0x0d);
C51 COMPILER V7.06   CM160128                                                              03/08/2008 16:45:23 PAGE 7   

 366   1              DISHAZIT(9,8*13,0x04);
 367   1      }
 368          //显示采样数据
 369          void DispSampleVoltage(int unintData)
 370          {
 371   1              unintData = (0x0800 - unintData)*1.2207;//
 372   1      
 373   1              switch(ucMW2)
 374   1              {
 375   2                    case 1://放大倍数为1
 376   2                    case 0x09:
 377   2      
 378   2                          STR6[0] = 0x0a;
 379   2                          if(unintData > 0)
 380   2                          {
 381   3                               STR6[1] = 0x0a;
 382   3                          }
 383   2                          else if(unintData < 0)
 384   2                          {
 385   3                               STR6[1] = 0x0c;
 386   3                          }
 387   2                          else
 388   2                          {
 389   3                               STR6[1] = 0x0a;
 390   3                          }
 391   2      
 392   2                          unintData = abs(unintData);
 393   2                          STR6[5] = unintData%10;
 394   2                          unintData /= 10;
 395   2                          STR6[4] = unintData%10;
 396   2                          unintData /= 10;
 397   2                          STR6[3] = unintData%10;
 398   2                          unintData /= 10;
 399   2                          STR6[2] = unintData%10;
 400   2                          break;
 401   2                   case 2://放大倍数为4
 402   2                   case 0x0a:
 403   2                          unintData /= 4;
 404   2                          STR6[0] = 0x0a;
 405   2                          STR6[1] = 0x0a;
 406   2                          if(unintData > 0)
 407   2                          {
 408   3                               STR6[2] = 0x0a;
 409   3                          }
 410   2                          else if(unintData < 0)
 411   2                          {
 412   3                               STR6[2] = 0x0c;
 413   3                          }
 414   2                          else
 415   2                          {
 416   3                               STR6[2] = 0x0a;
 417   3                          }
 418   2      
 419   2                          unintData = abs(unintData);
 420   2                          STR6[5] = unintData%10;
 421   2                          unintData /= 10;
 422   2                          STR6[4] = unintData%10;
 423   2                          unintData /= 10;
 424   2                          STR6[3] = unintData%10;
 425   2                          break;
 426   2                    case 3://一位小数点//放大倍数为16
 427   2                    case 0x0b:
C51 COMPILER V7.06   CM160128                                                              03/08/2008 16:45:23 PAGE 8   

 428   2                          unintData *= 10;
 429   2                          unintData /= 16;
 430   2      
 431   2                          if(unintData > 0)
 432   2                          {
 433   3                               STR6[0] = 0x0a;
 434   3                          }
 435   2                          else if(unintData < 0)
 436   2                          {
 437   3                               STR6[0] = 0x0c;
 438   3                          }
 439   2                          else
 440   2                          {
 441   3                               STR6[0] = 0x0a;
 442   3                          }
 443   2                          unintData = abs(unintData);
 444   2                          STR6[5] = unintData%10;
 445   2                          unintData /= 10;
 446   2                          STR6[4] = 0x0b;
 447   2                          STR6[3] = unintData%10;
 448   2                          unintData /= 10;
 449   2                          STR6[2] = unintData%10;
 450   2                          unintData /= 10;
 451   2                          STR6[1] = unintData%10;
 452   2                      break;
 453   2                    case 4://两位小数点//放大倍数为64
 454   2                    case 0x0c:
 455   2                          //unintData /= 16;
 456   2                          unintData *= 1.5625;
 457   2      
 458   2                          if(unintData > 0)
 459   2                          {
 460   3                               STR6[0] = 0x0a;
 461   3                          }
 462   2                          else if(unintData < 0)
 463   2                          {
 464   3                               STR6[0] = 0x0c;
 465   3                          }
 466   2                          else
 467   2                          {
 468   3                               STR6[0] = 0x0a;
 469   3                          }
 470   2                          unintData = abs(unintData);
 471   2                          STR6[5] = unintData%10;
 472   2                          unintData /= 10;
 473   2                          STR6[4] = unintData%10;
 474   2                          unintData /= 10;
 475   2                          STR6[3] = 0x0b;
 476   2                          STR6[2] = unintData%10;
 477   2                          unintData /= 10;
 478   2                          STR6[1] = unintData%10;
 479   2                          break;
 480   2                    default:
 481   2                          break;
 482   2              }
 483   1              DISHAZIT2(0,0x10,STR6[0]);
 484   1              DISHAZIT2(3,0x10,STR6[1]);
 485   1              DISHAZIT2(6,0x10,STR6[2]);
 486   1              DISHAZIT2(9,0x10,STR6[3]);
 487   1              DISHAZIT2(12,0x10,STR6[4]);
 488   1              DISHAZIT2(15,0x10,STR6[5]);
 489   1      }
C51 COMPILER V7.06   CM160128                                                              03/08/2008 16:45:23 PAGE 9   

 490          //显示采样时间值
 491          void DispSampleTime(unsigned char ucData)
 492          {
 493   1              unsigned char data ucTime = 0;
 494   1              ucData = ucData & 0x0f;
 495   1      
 496   1              if(ucData == 0x01)
 497   1              {
 498   2                  ucTime = 1;
 499   2              }
 500   1              else if(ucData == 0x02)
 501   1              {
 502   2                  ucTime = 2;
 503   2              }
 504   1              else if(ucData == 0x03)
 505   1              {
 506   2                  ucTime = 25;
 507   2              }
 508   1              else if(ucData == 0x04)
 509   1              {
 510   2                  ucTime = 50;
 511   2              }
 512   1              else if(ucData == 0x05)
 513   1              {
 514   2                  ucTime = 100;
 515   2              }
 516   1              else if(ucData == 0x06)
 517   1              {
 518   2                  ucTime = 200;
 519   2              }
 520   1      
 521   1              DISDASC(0x0e,0x09,0x80+(ucTime%10)*2);
 522   1              ucTime /= 10;
 523   1              DISDASC(0x0c,0x09,0xa2);
 524   1              DISDASC(0x0d,0x09,0x80+(ucTime%10)*2);
 525   1              ucTime /= 10;
 526   1              DISDASC(0x0b,0x09,0x80+(ucTime%10)*2);
 527   1              DISDASC(0x0f,0x09,0xa0);
 528   1      }
 529          //显示示放大倍数值
 530          void DispAmpMultiple(unsigned char ucAmpMW)
 531          {
 532   1                      if(ucAmpMW > 0x07)
 533   1                      {
 534   2                          DISHAZIT(17,8*9,0x06);
 535   2                      }
 536   1                      else
 537   1                      {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -