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

📄 lcddrive12864.lst

📁 Keil单片机软件开发平台下的一个51系列单片机工程
💻 LST
📖 第 1 页 / 共 4 页
字号:
 263   2              outsi(0xc0);                         //设置显示起始行
 264   2              outsi(0xb8|lcdrow);                       //设置页地址
 265   2              outsi(0x40|(lcdline-64));             //设置列地址
 266   2              j=datanumber*16;
 267   2              for(i=0;i<16;i++)
 268   2              {
 269   3                  if(DotNot==1)
 270   3                  {
 271   4                      outsd(~lcd_lattice16_8[i+j]);
 272   4                  }
 273   3                  else
 274   3                  {
 275   4                      outsd(lcd_lattice16_8[i+j]);
 276   4                  }
 277   3                  if(i==7)
 278   3                  {
 279   4                      outsi(0xb8|(lcdrow+1));           //设置页地址
 280   4                      outsi(0x40|(lcdline-64));         //设置列地址
 281   4                  }
 282   3              }
 283   2          }
 284   1      }
 285          /*********************************************************************************************************
 286          ** 函数名称: Display5X8
 287          ** 功能描述: 在指定的行列绘8X8点阵
 288          ** 输 入:   
 289          ** 输 出:   
 290          ** 全局变量:
 291          ** 调用模块:
 292          **
 293          ** 作 者: 刘宝贵
 294          ** 日 期: 2005年1月26日
 295          **-------------------------------------------------------------------------------------------------------
 296          ** 修改人:
 297          ** 日 期:
 298          **-------------------------------------------------------------------------------------------------------
 299          *********************************************************************************************************/
 300          void Display5X8(uint8 lcdrow,uint8 lcdline,uint8 datanumber,uint8 DotNot) //display 8x8 data
 301          {
 302   1          uint8  i;
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 6   

 303   1          uint16 j;
 304   1          outmi(0xc0);
 305   1          outsi(0xc0);                                  //设置显示起始行
 306   1          if(lcdline<64)
 307   1          {
 308   2              outmi(0xb8|lcdrow);                       //设置页地址
 309   2              outmi(0x40|lcdline);                      //设置列地址
 310   2              j=datanumber*8;
 311   2              for(i=0;i<6;i++)
 312   2              {
 313   3                  if(DotNot==1)
 314   3                  {
 315   4                      outmd(~lcd_lattice8_8[i+j]);
 316   4                  }
 317   3                  else
 318   3                  {
 319   4                      outmd(lcd_lattice8_8[i+j]);
 320   4                  }
 321   3              }
 322   2          }
 323   1          else
 324   1          {
 325   2              outsi(0xb8|lcdrow);                       //设置页地址
 326   2              outsi(0x40|(lcdline-64));                 //设置列地址
 327   2              j=datanumber*8;
 328   2              for(i=0;i<6;i++)
 329   2              {
 330   3                  if(DotNot==1)
 331   3                  {
 332   4                      outsd(~lcd_lattice8_8[i+j]);
 333   4                  }
 334   3                  else
 335   3                  {
 336   4                      outsd(lcd_lattice8_8[i+j]);
 337   4                  }
 338   3              }
 339   2          }
 340   1      }
 341          /*********************************************************************************************************
 342          ** 函数名称: Display16X4
 343          ** 功能描述: 在指定的行列绘16X4点阵
 344          ** 输 入:   
 345          ** 输 出:   
 346          ** 全局变量:
 347          ** 调用模块:
 348          **
 349          ** 作 者: 刘宝贵
 350          ** 日 期: 2005年1月26日
 351          **-------------------------------------------------------------------------------------------------------
 352          ** 修改人:
 353          ** 日 期:
 354          **-------------------------------------------------------------------------------------------------------
 355          *********************************************************************************************************/
 356          /*void Display16X4(uint8 lcdrow,uint8 lcdline,uint8 datanumber) // display 16x4 data 
 357          {
 358              uint8  i;
 359              uint16   j;
 360              if(lcdline<64)
 361              {
 362                     //  outmi(0xc0);
 363                  outmi(0xb8|lcdrow);                       //设置页地址
 364                  outmi(0x40|lcdline);                      //设置列地址
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 7   

 365                  j=datanumber*8;
 366                  for(i=0;i<8;i++)
 367                  {
 368                      if(DotNot==1)
 369                      {
 370                          outmd(~lcd_lattice16_4[i+j]);
 371                      }
 372                      else
 373                      {
 374                          outmd(lcd_lattice16_4[i+j]);
 375                      }
 376                      if(i==3)
 377                      {
 378                          outmi(0xb8|(lcdrow+1));           //设置页地址
 379                          outmi(0x40|lcdline);              //设置列地址
 380                      }
 381                   }
 382              }
 383              else if(lcdline<121)
 384              {
 385                   //  outsi(0xc0);                         //设置显示起始行
 386                  outsi(0xb8|lcdrow);                       //设置页地址
 387                  if(lcdline<121)
 388                  {
 389                      outsi(0x40|(lcdline-64));             //设置列地址
 390                  }
 391                  j=datanumber*8;
 392                  for(i=0;i<8;i++)
 393                  {
 394                      if(DotNot==1)
 395                      {
 396                          outsd(~lcd_lattice16_4[i+j]);
 397                      }
 398                      else
 399                      {
 400                          outsd(lcd_lattice16_4[i+j]);
 401                      }
 402                      if(i==3)
 403                      {
 404                          outsi(0xb8|(lcdrow+1));           //设置页地址
 405                          outsi(0x40|(lcdline-64));         //设置列地址
 406                      }
 407                  }
 408              }
 409          }
 410          /*********************************************************************************************************
 411          ** 函数名称: Display6X8
 412          ** 功能描述: 在指定的行列绘16X8点阵
 413          ** 输 入:   
 414          ** 输 出:   
 415          ** 全局变量:
 416          ** 调用模块:
 417          **
 418          ** 作 者: 刘宝贵
 419          ** 日 期: 2005年1月26日
 420          **-------------------------------------------------------------------------------------------------------
 421          ** 修改人:
 422          ** 日 期:
 423          **-------------------------------------------------------------------------------------------------------
 424          *********************************************************************************************************/
 425          /*void Display6X8(uint8 lcdrow,uint8 lcdline,uint8 datanumber) //display 6x8 data
 426          {
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 8   

 427              uint8   i;
 428              uint16   j;
 429              outmi(0xc0);
 430              outsi(0xc0);                                  //设置显示起始行
 431              if(lcdline<64)
 432              {
 433                  outmi(0xb8|lcdrow);                       //设置页地址
 434                  outmi(0x40|lcdline);                      //设置列地址
 435                  j=datanumber*8;
 436                  for(i=0;i<6;i++)
 437                  {
 438                      outmd(lcd_lattice8_8[i+j]);
 439                  }
 440              }
 441              else
 442              {
 443                  outsi(0xb8|lcdrow);                       //设置页地址
 444                  outsi(0x40|(lcdline-64));                 //设置列地址
 445                  j=datanumber*8;
 446                  for(i=0;i<6;i++)
 447                  {
 448                      outsd(lcd_lattice8_8[i+j]);
 449                  }
 450              }
 451          }
 452          /*********************************************************************************************************
 453          ** 函数名称: Display2X8
 454          ** 功能描述: 在指定的行列绘2X8点阵
 455          ** 输 入:   
 456          ** 输 出:   
 457          ** 全局变量:
 458          ** 调用模块:
 459          **
 460          ** 作 者: 刘宝贵
 461          ** 日 期: 2005年1月26日
 462          **-------------------------------------------------------------------------------------------------------
 463          ** 修改人:
 464          ** 日 期:
 465          **-------------------------------------------------------------------------------------------------------
 466          *********************************************************************************************************/
 467          /*void Display2X8(uint8 lcdrow,uint8 lcdline,uint8 datanumber) //display 6x8 data
 468          {
 469              uint8  i;
 470              uint16   j;
 471              outmi(0xc0);
 472              outsi(0xc0);                                  //设置显示起始行
 473              if(lcdline<64)
 474              {
 475                  outmi(0xb8|lcdrow);                       //设置页地址
 476                  outmi(0x40|(lcdline-1));                      //设置列地址
 477                  j=datanumber*8;
 478                  for(i=0;i<2;i++)
 479                  {
 480                      outmd(lcd_lattice8_8[i+j]);
 481                  }
 482                  outmd(0);
 483              }
 484              else
 485              {
 486                  outsi(0xb8|lcdrow);                       //设置页地址
 487                  outsi(0x40|(lcdline-64-1));                 //设置列地址
 488                  j=datanumber*8;
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 9   

 489                  for(i=0;i<2;i++)
 490                  {
 491                      outsd(lcd_lattice8_8[i+j]);
 492                  }
 493                  outsd(0);
 494              }
 495          }
 496          /*********************************************************************************************************
 497          ** 函数名称: DisplayCls
 498          ** 功能描述: 清屏
 499          ** 输 入:   
 500          ** 输 出:   
 501          ** 全局变量:
 502          ** 调用模块:
 503          **
 504          ** 作 者: 刘宝贵
 505          ** 日 期: 2005年1月26日
 506          **-------------------------------------------------------------------------------------------------------
 507          ** 修改人:
 508          ** 日 期:
 509          **-------------------------------------------------------------------------------------------------------
 510          *********************************************************************************************************/
 511          void DisplayCls(void)
 512          {
 513   1          uint8  i;
 514   1          uint8  j;
 515   1          lcdinit();
 516   1          outmi(0xc0);
 517   1          outsi(0xc0);                                  //设置显示起始行
 518   1          for(i=0;i<8;i++)
 519   1          {
 520   2              outmi(0xb8|i);                            //设置页地址
 521   2              outmi(0x40|0);                            //设置列地址
 522   2              for(j=0;j<64;j++)
 523   2              {
 524   3                  outmd(0);
 525   3              }
 526   2          }
 527   1          for(i=0;i<8;i++)
 528   1          {
 529   2              outsi(0xb8|i);                            //设置页地址
 530   2              outsi(0x40|0);                            //设置列地址
 531   2              for(j=0;j<64;j++)
 532   2              {
 533   3                  outsd(0);
 534   3              }

⌨️ 快捷键说明

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