modify2.lst

来自「液晶屏的单片机demo程序」· LST 代码 · 共 577 行 · 第 1/3 页

LST
577
字号

 179          0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
 180          0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
 181          
 182          
 183          void delay(unsigned int num)         //延时,执行一次延时用时约10us
 184          {
 185   1              while(num--);
 186   1      }
 187          
 188          void lcd_write(unsigned char dd,unsigned char aa)
 189          {
 190   1           unsigned char a,b;
 191   1              for(a=0;a<8;a++)
 192   1              {
 193   2                      lcda=0xb8+a;delay(1);
 194   2                      lcda=0x40;delay(1);
 195   2                      for (b=0;b<64;b++)
 196   2                      {
 197   3                           lcdc=dd;
 198   3                         if(aa==1)
 199   3                           delay(100);
 200   3                      }
 201   2                      lcdb=0xb8+a; delay(1);
 202   2                      lcdb=0x40;  delay(1);
 203   2                      for (b=0;b<64;b++)
 204   2                      {
 205   3                           lcdd=dd;
 206   3                         if(aa==1)
 207   3                           delay(100);
 208   3                      }
 209   2              }
 210   1      }
 211          
 212          
 213          
 214           /*
 215           void lcd_write_array(unsigned char array[8][128])      //在(x,y)处显示数据dd
 216          {
 217             unsigned char x,y;
 218              for(x=0;x<8;x++)             //x轴页的选择
 219              {
 220                     lcda=0xB8+x;
 221                     lcdb=0xB8+x;
 222                     lcda=0x40;
 223                     lcdb=0x40;
 224                     for(y=0;y<64;y++)
 225                     {
 226                           lcdc=array[x][y];
 227                           lcdd=array[x][y+64];
 228                     }
 229              }
 230          }   */
 231          
 232          void lcd_init(void)             //LCD初始化程
 233          {
 234   1              lcda=DISPLAY_ON;         //display on
 235   1              lcdb=DISPLAY_ON;
 236   1              lcda=STARTLINE;
 237   1              lcdb=STARTLINE;
 238   1              lcd_write(0x00,0);
 239   1              lcd_write(0xaa,1);
 240   1              delay(30000);
C51 COMPILER V7.06   MODIFY2                                                               08/02/2005 11:06:44 PAGE 5   

 241   1              lcd_write(0x00,1);
 242   1              lcd_write(0xff,1);
 243   1              delay(30000);
 244   1              lcd_write(0x00,1);
 245   1              delay(30000);
 246   1             /* lcd_write_array(kaiping);
 247   1              delay(30000); */
 248   1      }
 249          
 250          /*
 251          void lcd_write_1(unsigned char k)   //i为x轴上页的选择,取值[0,7];k为向左移位的次数,取值[0,127]
 252          {
 253             unsigned char i,j,n;
 254          
 255             for(i=0;i<8;i++)
 256             {
 257                  lcda=0xb8+i;
 258                  lcda=0x40;
 259                  for(j=0,n=k;j<64;j++,n++)
 260                  {
 261                          if(n<29)
 262                               lcdc=tubiao[i][n];
 263                          else
 264                               lcdc=tubiao[i][n-128];
 265                  }
 266             }
 267          }
 268          void lcd_write_2(unsigned char k)
 269          {
 270              unsigned char i,j;
 271              for(i=0;i<8;i++)
 272              {
 273                  lcdb=0xb8+i;
 274                  lcdb=0x40;
 275                  if(k<64)           //移位数小于64时,第一片显示64个数,第二片从64+k开始显示
 276                  {
 277                         for(j=64+k;j<128;j++)
 278                         {
 279                              lcdd=kaiping[i][j];
 280                         }
 281                         for(j=0;j<k;j++)
 282                         {
 283                              lcdd=kaiping[i][j];
 284                         }
 285                  }
 286                  else                         //移位数大于64时,从第k-64位起显示
 287                  {
 288                         for(j=k-64;j<k;j++)
 289                         {
 290                              lcdd=kaiping[i][j];
 291                         }
 292                  }
 293              }
 294          }
 295          void display()
 296          {
 297              unsigned char i,j,k,l,m,n,o;
 298              lcd_clear();
 299              while(1)
 300              {
 301              for(i=0;i<5;i++)
 302              {
C51 COMPILER V7.06   MODIFY2                                                               08/02/2005 11:06:44 PAGE 6   

 303                  lcda=0xb8+i;
 304                  for(j=0;j<31;j++)
 305                  {
 306                          lcda=0x40+j;
 307                          lcdc=tubiao[i][j];
 308                  }
 309               }
 310               for(i=0;i<2;i++)
 311               {
 312                  lcda=0xb8+i;
 313                  for(j=0;j<24;j++)
 314                  {
 315                      lcda=0x40+40+j;
 316                      lcdc=chang[i][j];
 317                  }
 318                  lcda=0xba+i;
 319                  for(k=0;k<32;k++)
 320                  {
 321                      lcda=0x40+32+k;
 322                      lcdc=dian[i][k];
 323                  }
 324                  lcda=0xbc+i;
 325                  for(l=0;l<24;l++)
 326                  {
 327                      lcda=0x40+40+l;
 328                      lcdc=bei[i][l];
 329                  }
 330                  lcdb=0xb8+i;
 331                  for(m=0;m<56;m++)
 332                  {
 333                      lcdb=0x40+m;
 334                      lcdd=chang[i][24+m];
 335                  }
 336                  lcdb=0xba+i;
 337                  for(n=0;n<64;n++)
 338                  {
 339                      lcdb=0x40+n;
 340                      lcdd=dian[i][32+n];
 341                  }
 342                  lcdb=0xbc+i;
 343                  for(o=0;o<56;o++)
 344                  {
 345                      lcdb=0x40+o;
 346                      lcdd=bei[i][24+o];
 347                  }
 348               }
 349               delay(300000000);
 350              lcd_clear();
 351              for(i=0;i<3;i++)
 352              {
 353                  lcda=0xb8+i;
 354                  for(j=0;j<48;j++)
 355                  {
 356                      lcda=0x40+j;
 357                      lcdc=hu[i][j];
 358                  }
 359                  if(i>0)
 360                  {
 361                      for(j=0;j<16;j++)
 362                      {
 363                          lcda=0x40+j+48;
 364                          lcdc=ji[i-1][j];
C51 COMPILER V7.06   MODIFY2                                                               08/02/2005 11:06:44 PAGE 7   

⌨️ 快捷键说明

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