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

📄 lcd.lst

📁 设备增加温度、时钟显示电路源程序, 已编译的51单片机程序,学习研究都是不错的.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 181   1              Set_xyPos_LCD(61, H << 1 );                             //set col address lsb
 182   1              for( i = 0;i < 2;i++ )
 183   1              {
 184   2                      for( j = 0;j < 61;j++ )
 185   2                              LCD_Write_Data( 0x00,1 );
 186   2                      Set_xyPos_LCD(61, (H << 1) + 1);        //set col address lsb
 187   2              }
 188   1      }
 189          
 190          
 191          /*---------------------------------------------------------------------------------
 192          //延时1MS子程序
 193          ---------------------------------------------------------------------------------*/
 194          void Delay_xMs(unsigned int xMs)
 195          {
 196   1              unsigned int i,j;
 197   1              for(i=0;i<xMs;i++)
 198   1              {
 199   2                      for(j=0;j<500;j++)
 200   2                      ;
 201   2              }
 202   1      }
 203          
 204          /*---------------------------------------------------------------------------------
 205          //在X,Y处显示一个16*8的西文sData (0---d)
 206          ---------------------------------------------------------------------------------*/
 207          void Show_XW_LCD(unsigned char xPos,unsigned char yPos,unsigned char sData)     
 208          {
 209   1              bit F;
 210   1              unsigned int nTmp;
 211   1              unsigned char j,x,y;
 212   1              x = xPos;
 213   1              y = yPos;
 214   1              nTmp = sData * 16;
 215   1              for ( j = 0;j < 16;j+=2 )
 216   1              {
 217   2                      Set_xyPos_LCD(x,y);
 218   2                      F = 0;
 219   2                      if ( x > 60 )
 220   2                              F = 1;
 221   2                      LCD_Write_Data(Large_DianZen[nTmp + j],F);
 222   2                      x++;
 223   2              }
 224   1      
 225   1              y++;
 226   1              x = xPos;
 227   1              for ( j = 1;j < 16;j+=2 )
 228   1              {
 229   2                      Set_xyPos_LCD(x,y);
 230   2                      F = 0;
 231   2                      if ( x > 60 )
 232   2                              F = 1;
 233   2                      LCD_Write_Data(Large_DianZen[nTmp + j],F);
 234   2                      x++;
 235   2              }
 236   1      }
 237          
 238          /*---------------------------------------------------------------------------------
 239          //在X,Y处显示一个16*16的汉字
 240          ---------------------------------------------------------------------------------*/
C51 COMPILER V8.08   LCD                                                                   03/01/2008 06:32:25 PAGE 5   

 241          void Show_HZ_LCD ( unsigned char xPos, unsigned char yPos,unsigned char sData )
 242          {
 243   1              bit F;
 244   1              unsigned int nTmp;
 245   1              unsigned char j,x,y;
 246   1              x = xPos;
 247   1              y = yPos;
 248   1              nTmp = sData * 32;
 249   1              for ( j = 0;j < 32;j+=2 )
 250   1              {
 251   2                      Set_xyPos_LCD(x,y);
 252   2                      F = 0;
 253   2                      if ( x > 60 )
 254   2                              F = 1;
 255   2                      LCD_Write_Data(HanZi[nTmp + j],F);
 256   2                      x++;
 257   2              }
 258   1      
 259   1              y++;
 260   1              x = xPos;
 261   1              for ( j = 1;j < 32;j+=2 )
 262   1              {
 263   2                      Set_xyPos_LCD(x,y);
 264   2                      F = 0;
 265   2                      if ( x > 60 )
 266   2                              F = 1;
 267   2                      LCD_Write_Data(HanZi[nTmp + j],F);
 268   2                      x++;
 269   2              }
 270   1      }
 271          
 272          /*-------------------------------------------------------------------------------------
 273          预先定义内容表为LCD_Show_Tab[]
 274          汉字表为HanZi[]
 275          大西文表为Large_DianZen[]
 276          与90H的分界碰到90H则是汉字,否则是西文
 277          --------------------------------------------------------------------------------------*/
 278          void Print_LCD (  unsigned char xPos, unsigned char yPos,int nSentenceID )
 279          {
 280   1              unsigned char i,j=0;
 281   1              unsigned char Temp;                                                     //存放要显示的数据
 282   1      
 283   1              for(i=0;i<16;i++)
 284   1              {
 285   2                      Temp=LCD_Show_Tab[nSentenceID*16+i];    //128 16个西文
 286   2                      if(Temp==0x90)                                                  //汉字
 287   2                      {
 288   3                              i++;
 289   3                              Temp=LCD_Show_Tab[nSentenceID*16+i];
 290   3                              Show_HZ_LCD(xPos+j,yPos,Temp);          //write 1个汉字子程序
 291   3                              j+=16;
 292   3                      }
 293   2                      else                                                                    //西文
 294   2                      {
 295   3                              Temp= LCD_Show_Tab[nSentenceID*16+i];
 296   3                              Show_XW_LCD(xPos+j,yPos,Temp);          //write 1个西文子程序
 297   3                              j+=8;
 298   3                      }
 299   2              }
 300   1      }
 301          
 302          
C51 COMPILER V8.08   LCD                                                                   03/01/2008 06:32:25 PAGE 6   

 303          /*-----------------------------------------------
 304          LCD初始化子程序:注意12232有两片0713点阵驱动器
 305          ------------------------------------------------*/
 306          void LCD_Init( void )
 307          {
 308   1              LCD_ENA1 = 0;
 309   1              LCD_ENA2 = 0;
 310   1      //      LCD_Write_Set( 0x00,0 );
 311   1              LCD_Write_Set( 0xE2,0 );// 0713复位
 312   1      //      LCD_Write_Set( 0xAE,0 );
 313   1              LCD_Write_Set( 0xC0,0 );// 设置第0行为开始行
 314   1              LCD_Write_Set( 0xB8,0 );//设置第0页为开始页
 315   1              LCD_Write_Set( 0xA0,0 );
 316   1              LCD_Write_Set( 0xA4,0 );//关静态驱动模式设置
 317   1              LCD_Write_Set( 0xA9,0 );//选择1/32DUTY
 318   1              LCD_Write_Set( 0xEE,0 );//设置END指令
 319   1              
 320   1              LCD_Write_Set( 0xE2,1);
 321   1      //      LCD_Write_Set( 0xAE,1 );
 322   1              LCD_Write_Set( 0xC0,1 );
 323   1              LCD_Write_Set( 0xB8,1 );
 324   1              LCD_Write_Set( 0xA0,1 );
 325   1              LCD_Write_Set( 0xA4,1 );
 326   1              LCD_Write_Set( 0xA9,1 );
 327   1              LCD_Write_Set( 0xEE,1 );
 328   1              LCD_Write_Set( 0xAF,0 );
 329   1              LCD_Write_Set( 0xAF,1 );
 330   1              Delay_xMs( 10 );
 331   1      }
 332          
 333          
 334          /*----------------------------------------------
 335          主程序
 336          功能:循环显示"电子工作室 现在是: "
 337          ------------------------------------------------*/
 338          /*
 339          void main()
 340          {
 341                  unsigned char i;
 342              LCD_Init();
 343                  Clear_H_LCD( 0 );
 344                  Clear_H_LCD( 1 );
 345                  while(1)
 346                  {
 347                          for( i = 0;i < 5 ;i+=2 )
 348                          {
 349                                  Print_LCD ( 0,0,i );
 350                                  Print_LCD ( 0,2,i+1 );
 351                          Delay_xMs(500);
 352                          }
 353                  }
 354          }
 355          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    724    ----
   CONSTANT SIZE    =    752    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.08   LCD                                                                   03/01/2008 06:32:25 PAGE 7   

   BIT SIZE         =   ----       4
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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