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

📄 lcd.lst

📁 51单片机显示汉字和数字的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 193          {
 194   1         checkstate();
 195   1         DI=1; RW=0;
 196   1         P1=date;
 197   1         E=1; E=0; 
 198   1      }
 199          void cleanscreen()                                               //清屏
 200          {
 201   1              unsigned char page,i;
 202   1              for(page=0xb8;page<0xc0;page++)
 203   1              {
 204   2                      writecommand(page);
 205   2                      writecommand(0x40);
 206   2                      for(i=0;i<64;i++)
 207   2                              writedate(0x00);
 208   2              }
 209   1      }
 210          void choosescreen(unsigned char NO)             //选择屏幕
 211          {
 212   1              switch (NO)
 213   1              {
 214   2                      case    0:
 215   2                              CS1=0;
 216   2                              CS2=0;
 217   2                              break;
 218   2                      case    1:
 219   2                              CS1=0;
 220   2                              CS2=1;
 221   2                              break;
 222   2                      case    2:
 223   2                              CS1=1;
 224   2                              CS2=0;
 225   2                              break;
 226   2                      default:
 227   2                              break;
 228   2              }       
 229   1      }
 230          void lce_init(void)
 231          {
 232   1              writecommand(0xc0);
 233   1              writecommand(0x3f);
 234   1      }
 235          void display(unsigned char count)
 236          {
 237   1              unsigned int i,m; 
 238   1              choosescreen(1);
 239   1              writecommand(0xb8);     
 240   1              writecommand(0x40);
 241   1              for(i=0;i<count*16;i++)
C51 COMPILER V8.06   LCD                                                                   06/21/2007 11:51:41 PAGE 5   

 242   1              {
 243   2                      if(i!=0&&i%16==0)
 244   2                              m++;
 245   2                      switch (i)
 246   2                      {
 247   3                              case    64:
 248   3                                      choosescreen(2);
 249   3                                      writecommand(0xb8);     
 250   3                                      writecommand(0x40);
 251   3                                      break;
 252   3                              case    128:
 253   3                                      choosescreen(1);
 254   3                                      writecommand(0xba);     
 255   3                                      writecommand(0x40);
 256   3                                      break;
 257   3                              case    192:
 258   3                                      choosescreen(2);
 259   3                                      writecommand(0xba);     
 260   3                                      writecommand(0x40);
 261   3                                      break;
 262   3                              case    256:
 263   3                                      choosescreen(1);
 264   3                                      writecommand(0xbc);     
 265   3                                      writecommand(0x40);
 266   3                                      break;
 267   3                              case    320:
 268   3                                      choosescreen(2);
 269   3                                      writecommand(0xbc);     
 270   3                                      writecommand(0x40);
 271   3                                      break;
 272   3                              case    384:
 273   3                                      choosescreen(1);
 274   3                                      writecommand(0xbe);     
 275   3                                      writecommand(0x40);
 276   3                                      break;
 277   3                              case    448:
 278   3                                      choosescreen(2);
 279   3                                      writecommand(0xbe);     
 280   3                                      writecommand(0x40);
 281   3                                      break;
 282   3                              default:
 283   3                                      break;
 284   3                      }
 285   2                      writedate(*(ziku+i+m*16));
 286   2              }
 287   1              choosescreen(1); 
 288   1              writecommand(0xb9);     
 289   1              writecommand(0x40);
 290   1              m=0;
 291   1              
 292   1              for(i=0;i<count*16;i++)
 293   1              {
 294   2                      if(i!=0&&i%16==0)
 295   2                              m++;
 296   2                      switch (i)
 297   2                      {
 298   3                              case    64:
 299   3                                      choosescreen(2);
 300   3                                      writecommand(0xb9);     
 301   3                                      writecommand(0x40);
 302   3                                      break;
 303   3                              case    128:
C51 COMPILER V8.06   LCD                                                                   06/21/2007 11:51:41 PAGE 6   

 304   3                                      choosescreen(1);
 305   3                                      writecommand(0xbb);     
 306   3                                      writecommand(0x40);
 307   3                                      break;
 308   3      
 309   3                              case    192:
 310   3                                      choosescreen(2);
 311   3                                      writecommand(0xbb);     
 312   3                                      writecommand(0x40);
 313   3                                      break;
 314   3                              case    256:
 315   3                                      choosescreen(1);
 316   3                                      writecommand(0xbd);     
 317   3                                      writecommand(0x40);
 318   3                                      break;
 319   3                              case    320:
 320   3                                      choosescreen(2);
 321   3                                      writecommand(0xbd);     
 322   3                                      writecommand(0x40);
 323   3                                      break;
 324   3                              case    384:
 325   3                                      choosescreen(1);
 326   3                                      writecommand(0xbf);     
 327   3                                      writecommand(0x40);
 328   3                                      break;
 329   3                              case    448:
 330   3                                      choosescreen(2);
 331   3                                      writecommand(0xbf);     
 332   3                                      writecommand(0x40);
 333   3                                      break;
 334   3                              default:
 335   3                                      break;
 336   3                      }
 337   2                      writedate(*(ziku+i+m*16+16));
 338   2              }
 339   1              m=0;    
 340   1      }
 341          void t0(void) interrupt 1 using 0
 342          {
 343   1              mstcnt++;
 344   1              if(mstcnt==2000)
 345   1          {
 346   2                      mstcnt=0;
 347   2                      number++;
 348   2                      
 349   2              }
 350   1      }
 351          main()
 352          {
 353   1              TMOD=0x02;
 354   1              TH0=0x06;
 355   1              TL0=0x06;
 356   1              TR0=1;
 357   1              ET0=1;                            
 358   1              EA=1;
 359   1              
 360   1              E=1;
 361   1              choosescreen(0);
 362   1              cleanscreen();
 363   1              
 364   1              lce_init();
 365   1              
C51 COMPILER V8.06   LCD                                                                   06/21/2007 11:51:41 PAGE 7   

 366   1              while(1)
 367   1              {       
 368   2                      display(number);
 369   2                      if(number==33)
 370   2                      {       
 371   3                              number=0;
 372   3                              choosescreen(0);
 373   3                              cleanscreen();
 374   3                      }       
 375   2              } 
 376   1      
 377   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    609    ----
   CONSTANT SIZE    =   1024    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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