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

📄 disp.lst

📁 KS0108 LCD液晶模块的驱动函数 包括PROTEUS仿真图
💻 LST
📖 第 1 页 / 共 2 页
字号:
 225          /***************************************
 226          
 227                  显示一个整数
 228                  入口参数:整数数值,起始显示位置,长度
 229          
 230          ****************************************/
 231          void DispInt(INT32U val,INT8U len)
 232                  {
 233   1              }
*** WARNING C280 IN LINE 231 OF DISP.C: 'val': unreferenced local variable
*** WARNING C280 IN LINE 231 OF DISP.C: 'len': unreferenced local variable
 234          
 235          
 236          /***************************************
 237          
 238                  显示一个字符
 239                  入口参数:字符,显示位置,是否闪烁
C51 COMPILER V7.50   DISP                                                                  07/01/2008 15:53:05 PAGE 5   

 240          
 241          ****************************************/
 242          void DispChr(INT8U cv)
 243                  {
 244   1              INT8U *pF;
 245   1              INT8U len,n,row,col;
 246   1      
 247   1              row = CurRow;
 248   1              col = CurCol;
 249   1              len = FontAttr[CurFont][0] * FontAttr[CurFont][1];
 250   1              pF = (INT8U *)FontAdr[CurFont];
 251   1              pF += cv*len;
 252   1      
 253   1              n = 0;
 254   1              while (1)
 255   1                      {
 256   2                      LCD_Disp_Pic(pF+n*FontAttr[CurFont][0],FontAttr[CurFont][0]);
 257   2                      n ++;
 258   2                      if (n>= FontAttr[CurFont][1])
 259   2                              break;
 260   2                      CurRow ++;
 261   2                      CurCol = col;
 262   2                      }
 263   1              CurRow = row;
 264   1              }
 265          
 266          
 267          /***************************************
 268          
 269                  显示一个字符
 270                  入口参数:字符,显示位置,是否闪烁
 271          
 272          ****************************************/
 273          void DispHZ(INT8U cv)
 274                  {
 275   1              INT8U *pF;
 276   1              INT8U n,row,col;
 277   1      
 278   1              row = CurRow;
 279   1              col = CurCol;
 280   1      
 281   1              pF = (INT8U *)FontHZ14x14;
 282   1              pF += cv*(14*2);
 283   1      
 284   1              n = 0;
 285   1              while (1)
 286   1                      {
 287   2                      LCD_Disp_Pic(pF+n*14,14);
 288   2                      n++;
 289   2                      if (n>= 2)
 290   2                              break;
 291   2                      CurRow ++;
 292   2                      CurCol = col;
 293   2                      }
 294   1              CurRow = row;
 295   1              }
 296          /***************************************
 297          
 298                  显示一个浮点数
 299                  注:无超显示范围判断
 300                          使用全部的显示区域
 301          
C51 COMPILER V7.50   DISP                                                                  07/01/2008 15:53:05 PAGE 6   

 302          ****************************************/
 303          void DispFloat(float val,INT8U row,INT8U col,INT8U Len)
 304                  {
 305   1              INT8U IntLen,n;
 306   1              INT32U iv,ivf;
 307   1      
 308   1      
 309   1              /* 符号位处理 */
 310   1              if (val < 0)
 311   1                      {
 312   2      //              DispBuffer[row][col] = '-';
 313   2                      val = -val;
 314   2                      col ++;
 315   2                      Len --;
 316   2                      }
 317   1                      
 318   1              /* 整数位数计算 */
 319   1              IntLen = GetIntLen((INT32U)val);        
 320   1      
 321   1              /* 整数部分 */
 322   1              iv = (INT32U)val;
 323   1      
 324   1              /*  */
 325   1              for (n=0;n<(Len-IntLen);n++)
 326   1                      {
 327   2                      val *= 10;
 328   2                      }
 329   1              ivf = (INT32U)val;
 330   1              ivf += 5;
 331   1              ivf /= 10;
 332   1      
 333   1              /* 显示整数部分 */
 334   1              DispInt(iv,IntLen);
 335   1              /* 显示小数点 */
 336   1      //      DispChr('.',row,col+IntLen ,FALSE);
 337   1              /* 显示小数部分 */
 338   1              for (n=0;n<(Len-IntLen-1);n++)
 339   1                      {
 340   2      //              DispInt(ivf%10 , row , col + Len -n -1, 1);
 341   2                      ivf /= 10;
 342   2                      }
 343   1      
 344   1              /* 计算实际有效位数,去掉小数部分尾数的所有0 */
 345   1              n = col + Len - 1;
 346   1              while (n >= IntLen)
 347   1                      {
 348   2      //              if (DispBuffer[row][n] != '0')
 349   2      //                      {
 350   2      //                      break;
 351   2      //                      }
 352   2      //              DispBuffer[row][n] = ' ';
 353   2                      n --;
 354   2                      }
 355   1              }
*** WARNING C280 IN LINE 303 OF DISP.C: 'row': unreferenced local variable
 356          
 357          /***************************************
 358          
 359                  显示清屏
 360          
 361          ****************************************/
 362          void DispCls(void)
C51 COMPILER V7.50   DISP                                                                  07/01/2008 15:53:05 PAGE 7   

 363                  {
 364   1              DispXYSet(0,0);
 365   1              LCD_Disp_Pattern(0,128);
 366   1              DispXYSet(1,0);
 367   1              LCD_Disp_Pattern(0,128);
 368   1              DispXYSet(2,0);
 369   1              LCD_Disp_Pattern(0,128);
 370   1              DispXYSet(3,0);
 371   1              LCD_Disp_Pattern(0,128);
 372   1              DispXYSet(4,0);
 373   1              LCD_Disp_Pattern(0,128);
 374   1              DispXYSet(5,0);
 375   1              LCD_Disp_Pattern(0,128);
 376   1              DispXYSet(6,0);
 377   1              LCD_Disp_Pattern(0,128);
 378   1              DispXYSet(7,0);
 379   1              LCD_Disp_Pattern(0,128);
 380   1              }
 381          
 382          
 383          
 384          /***************************************
 385          
 386                  屏初始化
 387          
 388          ****************************************/
 389          void DispInit(void)
 390                  {
 391   1              INT16U i;
 392   1              Pin_CS1 = 0;
 393   1              Pin_CS2 = 0;
 394   1      
 395   1              for (i=0;i<5000;i++)
 396   1                      Pin_RST = 0;
 397   1              for (i=0;i<5000;i++)
 398   1                      Pin_RST=1;                      //使RST无效后延时一段时间(若不,则后续指令无效,原12864无需亦可???延时取255还不够!!!)
 399   1      
 400   1              Pin_E=0;
 401   1              Pin_RS=1;       
 402   1              Pin_RW=1;
 403   1      
 404   1              Pin_CS1 = 1;
 405   1      
 406   1              LCD_Cmd(0x3F);                  //LCD_ON
 407   1              LCD_Cmd(0xC0|0);                        //LCD_STARTLINE
 408   1              LCD_Cmd(0xB8|0);                        //LCD_ROW
 409   1              LCD_Cmd(0x40|0);                        //LCD_COL
 410   1      
 411   1              Pin_CS1 = 0;
 412   1      
 413   1              CurCol = 0;
 414   1              CurRow = 0;
 415   1              }
 416          
 417          /***************************************
 418          
 419                  
 420          
 421          ****************************************/
 422          void DispXYSet(INT8U Row,INT8U Col)
 423                  {
 424   1              CurRow = Row;
C51 COMPILER V7.50   DISP                                                                  07/01/2008 15:53:05 PAGE 8   

 425   1              CurCol = Col;
 426   1              }
 427          
 428          /***************************************
 429          
 430                  
 431          
 432          ****************************************/
 433          void DispFontSet(INT8U Font)
 434                  {
 435   1              CurFont = Font;
 436   1              }
 437          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    973    ----
   CONSTANT SIZE    =   4797    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13      39
   IDATA SIZE       =     32    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  3 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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