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

📄 lcd.lst

📁 单片机做的图片菜单显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
 192   3                              case    192:
 193   3                                      choosescreen(2);
 194   3                                      writecommand(0xbb);     
 195   3                                      writecommand(0x40);
 196   3                                      break;
 197   3                              case    256:
 198   3                                      choosescreen(1);
 199   3                                      writecommand(0xbd);     
 200   3                                      writecommand(0x40);
 201   3                                      break;
 202   3                              case    320:
 203   3                                      choosescreen(2);
 204   3                                      writecommand(0xbd);     
 205   3                                      writecommand(0x40);
 206   3                                      break;
 207   3                              case    384:
 208   3                                      choosescreen(1);
 209   3                                      writecommand(0xbf);     
 210   3                                      writecommand(0x40);
 211   3                                      break;
 212   3                              case    448:
 213   3                                      choosescreen(2);
 214   3                                      writecommand(0xbf);     
 215   3                                      writecommand(0x40);
 216   3                                      break;
 217   3                              default:
 218   3                                      break;
 219   3                      } //
 220   2                      writedate(*(ziku+i+m*16+16));
 221   2                      //下面的语句等价的
 222   2              //writedate(ziku[i+(m*16)]);
 223   2              }
 224   1              m=0;    
 225   1      }
 226          
 227          
 228          //*****************************************************************/
 229          //功能:在B液晶上显示汉字程序///////////////////////////
 230          //参数说明:adds:字库内序号    nb:要显示的汉字的个数(1~4个)
 231          // x:显示起始列    y:显示起始页(0~6)   style: 显示风格(白或荫?                                         
             -               
 232          /*******************************************************************/
 233          wr_hz_b(uchar adds,uchar nb,uchar x,uchar y,uchar style)                 
 234          {                                                            
 235   1      uchar i,j; 
 236   1           choosescreen(2); //选择B块液晶                                                  
 237   1       for(j=adds;j<adds+nb;j++)                                    
 238   1               { 
 239   2            writecommand(0x40+16*x);                                                      
 240   2               //write_comd_b(0x40+16*x); 
C51 COMPILER V7.09   LCD                                                                   09/23/2007 22:58:14 PAGE 5   

 241   2           // write_comd_b(0xb8+y);
 242   2             writecommand(0xb8+y);                                 
 243   2                for(i=0;i<16;i++)
 244   2               //显示的风格设置(背景设置)
 245   2                   if(style==1)
 246   2                           //write_data_b(~Hzk[j][i]);
 247   2                               writedate(~Hzk[j][i]);
 248   2                    else
 249   2                           //write_data_b(Hzk[j][i]);
 250   2                   writedate(Hzk[j][i]);                                                               
 251   2               //下半个汉字                                                            
 252   2                 //write_comd_b(0x40+16*x); //调整指针位置 列回到起始处                                  
 253   2                 //write_comd_b(0xb8+y+1);  //页向下一页 
 254   2                writecommand(0x40+16*x); 
 255   2                writecommand(0xb8+y+1);             
 256   2                for(i=16;i<32;i++)     //显示一个汉字的剩余16个字节数据                                  
 257   2                    if(style==1)
 258   2                           //write_data_b(~Hzk[j][i]);
 259   2                               writedate(~Hzk[j][i]);
 260   2                     else 
 261   2                           //write_data_b(Hzk[j][i]);  
 262   2                  writedate(Hzk[j][i]);                 
 263   2                   x++; //一个汉字完了后列也要向后16列了                                                       
 264   2                 }                                                           
 265   1      }        
 266          
 267          
 268          
 269          /**********************************************/
 270          /*名称:图片显示
 271          /*功能: 在左半块或者右半块显示64*64的指定图片
 272          /*********************************************/
 273          void disp_pic_a_or_b(uchar fu,uchar pos)
 274          {
 275   1                                                                 
 276   1      uchar i,j;  
 277   1          if(pos==0)//选择左块
 278   1                {
 279   2              for(j=0;j<8;j++)                                             
 280   2                       { 
 281   3                 choosescreen(1);
 282   3                         writecommand(0x40);  //这段程序和上面那段类似就页加一就可以
 283   3                         writecommand(0xb8+j);                                                 
 284   3                       //write_comd_a(0x40);                                         
 285   3                       //write_comd_a(0xb8+j);                                       
 286   3                        for(i=0;i<64;i++)                                          
 287   3                       // write_data_a(picture[8*fu+j][i]);  
 288   3               writedate(picture[8*fu+j][i]);         //写数据                    
 289   3                       }  
 290   2            }   
 291   1          
 292   1          else
 293   1                 
 294   1            {
 295   2                for(j=0;j<8;j++)                                             
 296   2                       {
 297   3                 choosescreen(2);
 298   3                         writecommand(0x40);  //这段程序和上面那段类似就页加一就可以
 299   3                         writecommand(0xb8+j);                                            
 300   3                      //write_comd_b(0x40);                                         
 301   3                       //write_comd_b(0xb8+j);                                       
 302   3                        for(i=0;i<64;i++)  
C51 COMPILER V7.09   LCD                                                                   09/23/2007 22:58:14 PAGE 6   

 303   3                writedate(picture[8*fu+j][i]);//写数据                                
 304   3                        //write_data_b(picture[8*fu+j][i]);                               
 305   3                       }  
 306   2           }
 307   1                                 
 308   1      } 
 309          
 310          
 311          
 312          
 313          
 314          
 315          //******************//
 316          //软件延迟时间
 317          //
 318          //*****************//
 319          void  delay(uint ms)
 320          {
 321   1       uchar i;
 322   1        while(ms--)
 323   1        for(i=0;i<123;i++);
 324   1       
 325   1      }
 326          //*****************************//
 327          //         主函数
 328          //*****************************//
 329          main()
 330          {
 331   1        uchar i;
 332   1              TMOD=0x02; //定时器0方式2 (8位自动加载模式)
 333   1              TH0=0x06; //初始数值
 334   1              TL0=0x06;//初始数值
 335   1              ET0=1;//定时器0中断允许
 336   1              TR0=1;  //开启定时器
 337   1              
 338   1               //这个中断我先屏蔽叼                     
 339   1      //      EA=1;//总中断允许
 340   1              
 341   1              E=1;//使能液晶
 342   1          lce_init(); //初始化液晶
 343   1              choosescreen(0);//选择2块液晶 
 344   1              cleanscreen(); //清除2块液晶
 345   1              
 346   1          
 347   1      
 348   1      while(1)
 349   1              {
 350   2      
 351   2                for(i=0;i<33;i++)
 352   2                {//显示32固定个汉字
 353   3             display(i);
 354   3                 delay(500);
 355   3                }
 356   2           choosescreen(1);//选择1块液晶 
 357   2               cleanscreen(); //清除1块液晶
 358   2               delay(500);
 359   2               choosescreen(2);//选择2块液晶 
 360   2               cleanscreen(); //清除2块液晶
 361   2               delay(1000);
 362   2               disp_pic_a_or_b(0,0); //显示64*64图片
 363   2           wr_hz_b(0,4,0,3,0) ;  //B快任意位置显示汉字
 364   2           delay(2000);
C51 COMPILER V7.09   LCD                                                                   09/23/2007 22:58:14 PAGE 7   

 365   2               choosescreen(0);//选择2块液晶 
 366   2               cleanscreen(); //清除2块液晶
 367   2      
 368   2              }
 369   1      
 370   1      
 371   1      
 372   1      
 373   1      
 374   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1010    ----
   CONSTANT SIZE    =   1664    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       8
   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 + -