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

📄 lcd.lst

📁 这是一种火灾报警控制器的源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 221                                          write_data_left(*p);
 222                                          p++;
 223                                  }
 224                                  break;
 225                          case 1:                         //中间屏显示
 226                                  set_page(y/8);  //显示位图的上半部
 227                                  set_col(x%64);
 228                                  for(i=0;i<width;i++)
 229                                  {
 230                                          wait_ready_middle();
 231                                          write_data_middle(*p);
 232                                          p++;
 233                                  }
 234                                  set_page(y/8+1);//显示位图的下半部
 235                                  set_col(x%64);
 236                                  for(i=0;i<width;i++)
 237                                  {
 238                                          wait_ready_middle();
 239                                          write_data_middle(*p);
 240                                          p++;
 241                                  }
C51 COMPILER V7.20   LCD                                                                   01/08/2007 00:55:49 PAGE 5   

 242                                  break;
 243                          default:                                //右侧屏显示
 244                                  set_page(y/8);  //显示位图的上半部
 245                                  set_col(x%64);
 246                                  for(i=0;i<width;i++)
 247                                  {
 248                                          wait_ready_right();
 249                                          write_data_right(*p);
 250                                          p++;
 251                                  }
 252                                  set_page(y/8+1);//显示位图的下半部
 253                                  set_col(x%64);
 254                                  for(i=0;i<width;i++)
 255                                  {
 256                                          wait_ready_right();
 257                                          write_data_right(*p);
 258                                          p++;
 259                                  }                       
 260                  }
 261                  return;
 262          }*/
 263          void disp_bmp(unsigned char x,unsigned char y,unsigned char width,unsigned char *bmp)
 264          {
 265   1              unsigned char i,k,*p;
 266   1              k=x;
 267   1              p=bmp;
 268   1              set_line(0);
 269   1              for(i=0;i<width;i++)            //显示位图的上半部
 270   1              {
 271   2                      switch(k/64)
 272   2                      {
 273   3                              case 0:                         //左侧屏显示                    
 274   3                                      set_page(y/8);
 275   3                                      set_col(k%64);
 276   3                                      wait_ready_left();
 277   3                                      write_data_left(*p);
 278   3                                      k++;
 279   3                                      p++;
 280   3                                      break;
 281   3                              case 1:                         //中间屏显示
 282   3                                      set_page(y/8);
 283   3                                      set_col(k%64);
 284   3                                      wait_ready_middle();
 285   3                                      write_data_middle(*p);
 286   3                                      k++;
 287   3                                      p++;
 288   3                                      break;
 289   3                              default:                        //右侧屏显示
 290   3                                      set_page(y/8);
 291   3                                      set_col(k%64);
 292   3                                      wait_ready_right();
 293   3                                      write_data_right(*p);
 294   3                                      k++;
 295   3                                      p++;                            
 296   3                      }
 297   2              }
 298   1              k=x;
 299   1              for(i=0;i<width;i++)            //显示位图的下半部
 300   1              {
 301   2                      switch(k/64)
 302   2                      {
 303   3                              case 0:                         //左侧屏显示                    
C51 COMPILER V7.20   LCD                                                                   01/08/2007 00:55:49 PAGE 6   

 304   3                                      set_page(y/8+1);
 305   3                                      set_col(k%64);
 306   3                                      wait_ready_left();
 307   3                                      write_data_left(*p);
 308   3                                      k++;
 309   3                                      p++;
 310   3                                      break;
 311   3                              case 1:                         //中间屏显示
 312   3                                      set_page(y/8+1);
 313   3                                      set_col(k%64);
 314   3                                      wait_ready_middle();
 315   3                                      write_data_middle(*p);
 316   3                                      k++;
 317   3                                      p++;
 318   3                                      break;
 319   3                              default:                        //右侧屏显示
 320   3                                      set_page(y/8+1);
 321   3                                      set_col(k%64);
 322   3                                      wait_ready_right();
 323   3                                      write_data_right(*p);
 324   3                                      k++;
 325   3                                      p++;                            
 326   3                      }
 327   2              }
 328   1      }
 329          
 330          /*****************************************************************
 331          *函数:disp_one_chinese()
 332          *功能:在指定位置显示一个汉字字符
 333          *形式参数:x-字符横坐标;y-字符纵坐标;chinese-汉字代码指针;
 334          *返回值:无
 335          ******************************************************************/
 336          void disp_one_chinese(unsigned char x,unsigned char y,unsigned char *chinese)
 337          {
 338   1              disp_bmp(x,y,16,chinese);
 339   1              return;
 340   1      }
 341          
 342          /*****************************************************************
 343          *函数:disp_one_number()
 344          *功能:在指定位置显示一个数字字符
 345          *形式参数:x-字符横坐标;y-字符纵坐标;number-数字代码指针;
 346          *返回值:无
 347          ******************************************************************/
 348          void disp_one_number(unsigned char x,unsigned char y,unsigned char *number)
 349          {
 350   1              disp_bmp(x,y,8,number);
 351   1              return;
 352   1      }
 353          
 354          /*****************************************************************
 355          *函数:disp_multi_chinese()
 356          *功能:显示多个汉字
 357          *形式参数:x-字符串启始横坐标;y-字符串启始纵坐标;str-汉字信息指针;
 358          *返回值:无
 359          ******************************************************************/
 360          void disp_multi_chinese(unsigned char x,unsigned char y,unsigned char *str)
 361          {
 362   1              unsigned char i,*p;
 363   1              i=x;
 364   1              p=str;
 365   1              while(1)
C51 COMPILER V7.20   LCD                                                                   01/08/2007 00:55:49 PAGE 7   

 366   1              {
 367   2                      if(*p==-1)break;
 368   2                      disp_one_chinese(i,y,chinese_table+(*p)*32);
 369   2                      p++;
 370   2                      i+=16;
 371   2              }
 372   1              return; 
 373   1      }
 374          
 375          /*****************************************************************
 376          *函数:disp_multi_number()
 377          *功能:显示多位数字信息
 378          *形式参数:x-数字串启始横坐标;y-数字串启始纵坐标;n-数字串位数;number-数字值;
 379          *返回值:无
 380          ******************************************************************/
 381          void disp_multi_number(unsigned char x,unsigned char y,unsigned char n,unsigned int number)
 382          {
 383   1              unsigned char a[3],i,k;
 384   1              unsigned int j;
 385   1              i=x;
 386   1              j=number;
 387   1              a[2]=j/100;j=j%100;
 388   1              a[1]=j/10;
 389   1              a[0]=j%10;
 390   1              for(k=n;k>0;k--)
 391   1              {
 392   2                      disp_one_number(i,y,number_table+a[k-1]*16);
 393   2                      i+=8;
 394   2              }
 395   1              return;
 396   1      }
 397          
 398          /*****************************************************************
 399          *函数:disp_one_scr_chinese()
 400          *功能:显示一屏汉字信息
 401          *形式参数:scr-界面代码;
 402          *返回值:无
 403          ******************************************************************/
 404          void disp_one_scr_chinese(unsigned char scr)
 405          {
 406   1              ;
 407   1      }
*** WARNING C280 IN LINE 404 OF LCD\LCD.C: 'scr': unreferenced local variable
 408          
 409          
 410          //////////////////////////////////////
 411          extern void aaa(void)
 412          {
 413   1              disp_multi_number(63,16,3,73);
 414   1              disp_multi_number(123,16,3,124);
 415   1              disp_multi_number(1,0,3,568);
 416   1              disp_multi_number(123,0,2,9);
 417   1              
 418   1      
 419   1              //disp_one_chinese(33,16,chinese_table+32*1);
 420   1              //disp_one_chinese(17,32,chinese_table+32*2);
 421   1              //disp_one_chinese(3,48,chinese_table+32*3);
 422   1      
 423   1              //disp_one_chinese(121,0,chinese_table);
 424   1              //disp_one_chinese(133,16,chinese_table+32*1);
 425   1              //disp_one_chinese(171,32,chinese_table+32*2);
 426   1              //disp_one_chinese(123,48,chinese_table+32*3);
C51 COMPILER V7.20   LCD                                                                   01/08/2007 00:55:49 PAGE 8   

 427   1              
 428   1      }
 429          
 430          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    933    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   3844      28
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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