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

📄 display.lst

📁 通过车载终端采集GPS数据
💻 LST
📖 第 1 页 / 共 2 页
字号:
 211   1          if( display_flag )
 212   1          {/*要求反显*/
 213   2              lcd_write_command(LCD_CMD_REVERSE);
 214   2          }
 215   1          else
 216   1          {/*正常显示*/
 217   2              lcd_write_command(LCD_CMD_NORMAL);
 218   2          }
 219   1      
 220   1      
 221   1          return(0);
 222   1      }
 223          
 224          /***************************************
 225          *
 226          *return 0:OK, other:ERROR
 227          ****************************************/
 228          char display_position_increment(void)
 229          {
 230   1      
 231   1          display_column ++;
 232   1          if( display_column == LCD_WIDTH )
 233   1          {
 234   2              if( display_row == (LCD_LINES-1) )
 235   2                  return -1;
 236   2              else
 237   2              {
 238   3                  display_column = 0;
C51 COMPILER V7.09   DISPLAY                                                               09/25/2008 11:56:15 PAGE 5   

 239   3                  display_row ++;
 240   3              }
 241   2      
 242   2              display_attribute(display_column, display_row, display_flag);
 243   2          }
 244   1      
 245   1          return 0;
 246   1      }
 247          
 248          void lcd_start_ddram(void)
 249          {
 250   1          lcd_serial_send(0xFA);  /*RW=0, RS=1*/
 251   1      }
 252          
 253          /*向LCD的显示缓冲区中写入数据*/
 254          char lcd_write_ddram(unsigned char value)
 255          {
 256   1          unsigned char tmp;
 257   1      
 258   1          if( display_column >= LCD_WIDTH )
 259   1          {
 260   2              if( display_row >= (LCD_LINES-1) )
 261   2                  return -1;
 262   2              else
 263   2              {
 264   3                  display_column = 0;
 265   3                  display_row ++;
 266   3              }
 267   2      
 268   2              lcd_delay();
 269   2              display_attribute(display_column, display_row, display_flag);
 270   2              lcd_delay();
 271   2              lcd_start_ddram();
 272   2          }
 273   1      
 274   1          tmp = value & 0xF0;
 275   1          lcd_serial_send(tmp);
 276   1          tmp = (value & 0x0F) * 16;
 277   1          lcd_serial_send(tmp);
 278   1      
 279   1          display_column ++;
 280   1          *dispBufPtr++ = value;
 281   1      //lcd_delay();
 282   1          return(0);
 283   1      }
 284          
 285          void lcd_clear_srceen(void)
 286          {
 287   1          unsigned char i;
 288   1      
 289   1          lcd_write_command(LCD_CMD_CLS);
 290   1          for(i=0; i<LCD_WIDTH*LCD_LINES; i++)
 291   1              displayBuffer[i] = 0x20;
 292   1          lcd_delay();
 293   1      }
 294          
 295          
 296          /****************************************************
 297          *在当前位置显示一串字符串。
 298          *汉字要求在0,2,4,6,8,10,12,14列。否则无法正常显示汉字和自定义字符。
 299          *****************************************************/
 300          unsigned char display_string(unsigned char *strLcd)
C51 COMPILER V7.09   DISPLAY                                                               09/25/2008 11:56:15 PAGE 6   

 301          {
 302   1          unsigned char tmp;
 303   1      
 304   1          if( *strLcd )
 305   1              lcd_start_ddram();
 306   1      
 307   1          if( (*strLcd < 0xA0) && (display_column&1) )
 308   1          {/*第1个字符是ASCII,且显示在半个汉字位置,要补齐高位字节*/
 309   2              tmp = *dispBufPtr;
 310   2              display_column--;
 311   2              lcd_write_ddram(tmp);
 312   2              lcd_delay();
 313   2          }
 314   1      
 315   1          while( *strLcd )
 316   1          {
 317   2              if( *strLcd <0x80 )
 318   2              {/*显示ASCII*/
 319   3                  lcd_write_ddram(*strLcd++);
 320   3              }
 321   2              else if( *strLcd >= 0xA0 )
 322   2              {/*显示汉字*/
 323   3                  if( display_column&1 )
 324   3                  {
 325   4                      lcd_write_ddram(0x20);
 326   4                  }
 327   3      
 328   3                  lcd_write_ddram(*strLcd++);
 329   3                  lcd_write_ddram(*strLcd++);
 330   3              }
 331   2              else
 332   2              {/*显示自定义符号*/
 333   3                  tmp = *strLcd ++;
 334   3      
 335   3                  if( display_column&1 )
 336   3                  {
 337   4                      lcd_write_ddram(0x20);
 338   4                  }
 339   3      
 340   3                  if( tmp == GRAPHICS_GPS )
 341   3                  {
 342   4                      lcd_write_ddram(0x00);
 343   4                      lcd_write_ddram(0x00);
 344   4                  }
 345   3                  else if( tmp == GRAPHICS_GPRS )
 346   3                  {
 347   4                      lcd_write_ddram(0x00);
 348   4                      lcd_write_ddram(0x02);
 349   4                  }
 350   3                  else if(tmp == GRAPHICS_ALARM)
 351   3                  {
 352   4                      lcd_write_ddram(0x00);
 353   4                      lcd_write_ddram(0x04);
 354   4                  }
 355   3                  else
 356   3                  {
 357   4                      lcd_write_ddram(0x00);
 358   4                      lcd_write_ddram(0x06);
 359   4                  }
 360   3              }
 361   2      
 362   2          }
C51 COMPILER V7.09   DISPLAY                                                               09/25/2008 11:56:15 PAGE 7   

 363   1              return 1;
 364   1      }
 365          
 366          void lcd_set_bitmap(void)
 367          {
 368   1              unsigned char gi;
 369   1      
 370   1              for(gi=0;gi<16;gi++)
 371   1              {
 372   2                      lcd_set_cgram_site(GRAPHICS_GPS & 0x03, gi);
 373   2                      lcd_write_data(bitmap_gps_up[gi][0]);
 374   2                      lcd_write_data(bitmap_gps_up[gi][1]);
 375   2              }
 376   1              for(gi=0;gi<16;gi++)
 377   1              {
 378   2                      lcd_set_cgram_site(GRAPHICS_GPRS & 0x03, gi);
 379   2                      lcd_write_data(bitmap_gprs_up[gi][0]);
 380   2                      lcd_write_data(bitmap_gprs_up[gi][1]);
 381   2              }
 382   1              for(gi=0;gi<16;gi++)
 383   1              {
 384   2                      lcd_set_cgram_site(GRAPHICS_ALARM & 0x03, gi);
 385   2              lcd_write_data(bitmap_warning[gi][0]);
 386   2              lcd_write_data(bitmap_warning[gi][1]);
 387   2              }
 388   1              for(gi=0;gi<16;gi++)
 389   1              {
 390   2                      lcd_set_cgram_site(GRAPHICS_MESSAGE & 0x03, gi);
 391   2                      lcd_write_data(bitmap_message[gi][0]);
 392   2                      lcd_write_data(bitmap_message[gi][1]);
 393   2              }
 394   1      }
 395          
 396          void lcd_init(void)
 397          {
 398   1          display_column = 0;
 399   1          display_row = 0;
 400   1          dispBufPtr = displayBuffer;
 401   1      
 402   1          lcd_write_command(LCD_CMD_BASE);
 403   1          lcd_write_command(LCD_CMD_INC);
 404   1          lcd_write_command(LCD_CMD_ZERO);
 405   1      
 406   1          lcd_clear_srceen();
 407   1          
 408   1              lcd_set_bitmap();
 409   1          
 410   1          lcd_write_command(LCD_CMD_NORMAL);
 411   1          //lcd_delay();
 412   1      }
 413          
 414          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    950    ----
   CONSTANT SIZE    =    128    ----
   XDATA SIZE       =     70       6
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.09   DISPLAY                                                               09/25/2008 11:56:15 PAGE 8   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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