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

📄 lcd_dis.lst

📁 1602液晶显示程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 345          //      2007/07/19      First version
 346          //========================================================================
 347          void Circle(unsigned char x,unsigned char y,unsigned char r,unsigned char mode)
 348          {
 349   1              SPI_SSSet(0);
 350   1              if(mode)
 351   1                      SPI_Send(6);
 352   1              else
 353   1                      SPI_Send(5);
 354   1              SPI_Send(x);
 355   1              SPI_Send(y);
 356   1              SPI_Send(r);
 357   1              SPI_SSSet(1);
 358   1      }
 359          //========================================================================
 360          // 函数: void Rectangle(unsigned char left, unsigned char top, unsigned char right,
 361          //                               unsigned char bottom, unsigned char mode)
 362          // 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
 363          // 参数: left - 矩形的左上角横坐标,范围0到126
 364          //               top - 矩形的左上角纵坐标,范围0到62
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 7   

 365          //               right - 矩形的右下角横坐标,范围1到127
 366          //               bottom - 矩形的右下角纵坐标,范围1到63
 367          //               Mode - 绘制模式,可以是下列数值之一:
 368          //                              0:      矩形框(空心矩形)
 369          //                              1:      矩形面(实心矩形)
 370          // 返回: 无
 371          // 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
 372          // 版本:
 373          //      2007/07/19      First version
 374          //========================================================================
 375          void Rectangle(unsigned char left, unsigned char top, unsigned char right,
 376                                           unsigned char bottom, unsigned char mode)
 377          {
 378   1              SPI_SSSet(0);
 379   1              if(mode)
 380   1                      SPI_Send(4);
 381   1              else
 382   1                      SPI_Send(3);
 383   1              SPI_Send(left);
 384   1              SPI_Send(top);
 385   1              SPI_Send(right);
 386   1              SPI_Send(bottom);
 387   1              SPI_SSSet(1);
 388   1      }
 389          //========================================================================
 390          // 函数: void ClrScreen(void)
 391          // 描述: 清屏函数,执行全屏幕清除
 392          // 参数: 
 393          // 返回: 无
 394          // 备注: 
 395          // 版本:
 396          //      2007/07/19      First version
 397          //========================================================================
 398          void ClrScreen(void)
 399          {
 400   1              //清屏操作
 401   1              SPI_SSSet(0);                                   //SS置低电平
 402   1              SPI_Send(0x80);                                 //送指令0x80
 403   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 404   1      }
 405          //========================================================================
 406          // 函数: void PutBitmap(unsigned char x,unsigned char y,unsigned char width,
 407          //                                              unsigned char high,unsigned char *p)
 408          // 描述: 在x、y为起始坐标显示一个单色位图
 409          // 参数: x  X轴坐标     y  Y轴坐标
 410          //               width 位图的宽度  
 411          //               high  位图的高度
 412          //               p  要显示的位图的字模首地址  
 413          // 返回: 无
 414          // 备注: 无
 415          // 版本:
 416          //      2008/11/27      First version
 417          //========================================================================
 418          void PutBitmap(unsigned char x,unsigned char y,unsigned char width,unsigned char high,unsigned char *p)
 419          {
 420   1              unsigned short Dat_Num;
 421   1              //unsigned short i;
 422   1              unsigned char ucTemp=0;
 423   1              SPI_SSSet(0);                                   //SS置低电平
 424   1              SPI_Send(0x0e); 
 425   1              SPI_Send(x);
 426   1              SPI_Send(y);
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 8   

 427   1              SPI_Send(width);
 428   1              SPI_Send(high);
 429   1              
 430   1              width = width+0x07;
 431   1              Dat_Num = (width>>3)*high;
 432   1              while(Dat_Num--)
 433   1              {
 434   2                      ucTemp++;
 435   2                      SPI_Send(*p);
 436   2                      if(ucTemp>250)                          //如果改换别的MCU时,这里可能需要适当的调整
 437   2                      {
 438   3                              TimeDelay(28);                  //以及此处,以保证前面传送到LCD模块中的数据已被处理完
 439   3                              ucTemp = 0;
 440   3                      }
 441   2                      p++;
 442   2              }
 443   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 444   1      }
 445          
 446          //========================================================================
 447          // 函数: void ShowChar(unsigned char x,unsigned char y,unsigned char Num,unsigned char type)
 448          // 描述: 在x、y的位置为显示区域的左上角,显示一个unsigned char型数
 449          // 参数: x  X轴坐标     y  Y轴坐标    Num  要显示的8位宽度的数据  type  显示特性(0,1,2)
 450          // 返回: 无
 451          // 备注: 
 452          // 版本:
 453          //      2008/11/27      First version
 454          //========================================================================
 455          void ShowChar(unsigned char x,unsigned char y,unsigned char a,unsigned char type) 
 456          {
 457   1              //显示ASCII字符
 458   1              SPI_SSSet(0);                                   //SS置低电平    
 459   1              SPI_Send(11);                                   //传送指令0x0B
 460   1              SPI_Send(x);                                    //要显示字符的左上角的X轴位置
 461   1              SPI_Send(y);                                    //要显示字符的左上角的Y轴位置
 462   1              SPI_Send(a);                                    //要显示的数据
 463   1              SPI_Send(type);
 464   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 465   1      }
 466          //========================================================================
 467          // 函数: void ShowShort(unsigned char x,unsigned char y,unsigned short Num,unsigned char type)
 468          // 描述: 在x、y的位置为显示区域的左上角,显示一个unsigned short型数(16位宽度)
 469          // 参数: x  X轴坐标     y  Y轴坐标    Num  要显示的16位宽度的数据  type  显示特性(0,1,2)
 470          // 返回: 无
 471          // 备注: 
 472          // 版本:
 473          //      2008/11/27      First version
 474          //========================================================================
 475          void ShowShort(unsigned char x,unsigned char y,unsigned short a,unsigned char type) 
 476          {
 477   1              //显示ASCII字符
 478   1              SPI_SSSet(0);                                   //SS置低电平    
 479   1              SPI_Send(12);                                   //传送指令0x0C
 480   1              SPI_Send(x);                                    //要显示字符的左上角的X轴位置
 481   1              SPI_Send(y);                                    //要显示字符的左上角的Y轴位置
 482   1              SPI_Send((unsigned char)(a>>8));
 483   1              SPI_Send((unsigned char)a);
 484   1              SPI_Send(type);                                 //要显示字符ASCII字符的ASCII码值
 485   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 486   1      }
 487          //========================================================================
 488          // 函数: void SetBackLight(unsigned char Deg)
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 9   

 489          // 描述: 设置背光亮度等级
 490          // 参数: Grade  0~127的等级
 491          // 返回: 无
 492          // 备注: 
 493          // 版本:
 494          //      2008/11/27      First version
 495          //========================================================================
 496          void SetBackLight(unsigned char Deg) 
 497          {
 498   1              //显示ASCII字符
 499   1              SPI_SSSet(0);                                   //SS置低电平    
 500   1              SPI_Send(0x8a);                                 //传送指令0x07
 501   1              SPI_Send(Deg);                                  //要显示字符的左上角的X轴位置
 502   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 503   1      }
 504          
 505          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    814    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5      45
   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 + -