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

📄 lcdlong.lst

📁 c8051f020的fyd12864 c程序 keilc
💻 LST
📖 第 1 页 / 共 4 页
字号:
 374   1              Delay1us(150);
 375   1              LCD_CLEAR();                                            //清屏
 376   1              Delay1ms(20);
 377   1              LCD_ENTRYMODE_INC();                        //光标移动方式为增加
 378   1              }
 379          
 380          
 381          /**************************************************************************
 382          ------坐标变换子程序-------------------------------------------------------
 383          ***************************************************************************
 384          说明:入口参数:坐标,坐标
 385                    出口参数:成功与否
 386          **************************************************************************/
 387          unsigned char LCD_Goto(unsigned char x,unsigned char y)
 388                  {unsigned char cur;
 389   1              x=x-1;y=y-1;
 390   1              if((y>=0)&&(y<8))
 391   1                      switch(x)
 392   1                              {case 0:         
 393   2                                      {
 394   3                                      cur=y;
 395   3                                      LCD_SETADD();
 396   3                                      break;
 397   3                                      }
 398   2                              case 1:
 399   2                                      {
 400   3                                      cur=16+y;
 401   3                                      LCD_SETADD();
 402   3                                      break;}
 403   2                              case 2:
 404   2                                      {
 405   3                                      cur=8+y;
 406   3                                      LCD_SETADD();
 407   3                                      break;
 408   3                                      }
 409   2                              case 3:
 410   2                                      {
 411   3                                      cur=24+y;
 412   3                                      LCD_SETADD();
 413   3                                      break;
 414   3                                      }
 415   2                              default:
 416   2                                      {break;}
 417   2                              }
 418   1              else    
 419   1                      return  ERR;
 420   1              }
 421          
 422          
 423          /**************************************************************************
 424          ------向指定坐标位置写字符子程序-------------------------------------------------------
 425          ***************************************************************************
 426          说明:入口参数:坐标,坐标,字符
 427                    出口参数:成功与否
C51 COMPILER V8.08   LCDLONG                                                               10/20/2008 18:56:03 PAGE 8   

 428          **************************************************************************/
 429          
 430          void LCD_PutChar(unsigned char x,unsigned char y, unsigned char ch)
 431                  {LCD_Goto(x,y);
 432   1               LCD_WriteData(ch);
 433   1              }
 434                                  
 435          /**************************************************************************
 436          ------向LCD指定位置写汉字子程序--------------------------------------------
 437          ***************************************************************************
 438          说明:每次只能写一个汉字
 439                    入口参数:坐标,坐标,待写字符
 440                    出口参数:成功与否
 441          ***************************************************************************/    
 442          void LCD_PutHZ(unsigned char x,unsigned char y,char *ptr)
 443                  {
 444   1              LCD_Goto(x,y);
 445   1              LCD_WriteData(*ptr);
 446   1              ptr++;
 447   1              LCD_WriteData(*ptr);
 448   1              }
 449          
 450          /**************************************************************************
 451          ------向LCD指定位置写汉字子程序--------------------------------------------
 452          ***************************************************************************
 453          说明:每次只能写一个汉字
 454                    入口参数:坐标,坐标,待写字符
 455                    出口参数:成功与否
 456          ***************************************************************************/    
 457          void LCD_PutAD(unsigned char x,unsigned char y,char ptr)
 458                  {
 459   1              LCD_Goto(x,y);
 460   1              LCD_WriteData(ptr);
 461   1              ptr++;
 462   1              LCD_WriteData(ptr);
 463   1              }
 464          
 465          /**************************************************************************
 466          ------向LCD指定位置写字符串子程序------------------------------------------
 467          ***************************************************************************
 468          说明:入口参数:坐标,坐标,待写字符口串
 469                    出口参数:成功与否
 470          ***************************************************************************/
 471          void LCD_Printf(unsigned char x,unsigned char y,char *ptr)
 472                  {unsigned char i;
 473   1              LCD_Goto(x,y);
 474   1              for(i=0;*(ptr+i)!=0;i++)
 475   1                      LCD_WriteData(*(ptr+i));
 476   1              }
 477          
 478          
 479          
 480          /**************************************************************************
 481          ------图形文本方式变换子程序-----------------------------------------------
 482          ***************************************************************************
 483          说明:入口参数:液晶显示方式0:文本;1:图形
 484                    出口参数:无
 485          ***************************************************************************/
 486          void LCD_ChangMode(unsigned char mode)
 487                  {
 488   1              switch(mode)
 489   1                      {
C51 COMPILER V8.08   LCDLONG                                                               10/20/2008 18:56:03 PAGE 9   

 490   2                      case 0:
 491   2                              {
 492   3                              FUNCTION_BASIC();
 493   3                              LCD_DISP_ON();
 494   3                              break;
 495   3                              }
 496   2                      case 1:
 497   2                              {
 498   3                              LCD_CURSOR_OFF();
 499   3                              FUNCTION_EXTEND();
 500   3                              LCD_GRAPH_CLEAR();
 501   3                              LCD_GRAPH_ON();
 502   3                              
 503   3                              break;
 504   3                              }
 505   2                      default:
 506   2                              break;
 507   2                      }
 508   1         }
 509          
 510          /************************************************************************
 511          -------图形方式下坐标变换子程序------------------------------------------
 512          *************************************************************************
 513          说明:入口参数:坐标,坐标
 514                    出口参数:是否成功
 515          ************************************************************************/  
 516          unsigned char LCD_CoorShift(unsigned char x,unsigned char y)
 517                  {
 518   1              x=x-1;y=y-1;
 519   1              x=x>>4;
 520   1              if(x<0||x>8)    return  ERR;
 521   1              if(y>=0&&y<32)
 522   1                              {
 523   2                              LCD_WriteCommand(0x80+y);
 524   2                              LCD_WriteCommand(0x80+x);
 525   2                              }
 526   1              else
 527   1                              {
 528   2                              LCD_WriteCommand(0x80+y-32);
 529   2                              LCD_WriteCommand(0x80+x+8);
 530   2                              }
 531   1              }
 532          
 533          code unsigned short Position[]={0x8000,0x4000,0x2000,0x1000,
 534                                                                     0x0800,0x0400,0x0200,0x0100,
 535                                                                     0x0080,0x0040,0x0020,0x0010,
 536                                                                     0x0008,0x0004,0x0002,0x0001
 537                                                                     };
 538          /************************************************************************
 539          -------图形方式下画点子程序------------------------------------------
 540          *************************************************************************
 541          说明:入口参数:坐标,坐标
 542                    出口参数:无
 543          ************************************************************************/ 
 544          void LCD_PutPiex(unsigned char x,unsigned char y)
 545                  {unsigned short temp;
 546   1              unsigned char   temp_H,temp_L;
 547   1              LCD_CoorShift(x,y);
 548   1              x=x-1;
 549   1              x=x%16;
 550   1              temp=Position[x];
 551   1              temp_L=temp&0x00ff;
C51 COMPILER V8.08   LCDLONG                                                               10/20/2008 18:56:03 PAGE 10  

 552   1              temp_H=(temp>>8)&0x00ff;
 553   1      //      temp_H|=LCD_ReadData();
 554   1      //      temp_L|=LCD_ReadData();
 555   1              LCD_WriteData(temp_H);
 556   1              LCD_WriteData(temp_L);
 557   1              }
 558          
 559          
 560          
 561          
 562          
 563          
 564          /************************************************************************

⌨️ 快捷键说明

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