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

📄 lcd.lst

📁 基于51单片机的音乐播放机 程序中所引用的歌曲16进制数值,均从WAV歌曲文件中提取
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   LCD                                                                   12/06/2008 18:59:39 PAGE 4   

 180   5                                              break;
 181   5                                              case 0xb0:
 182   5                                      //      key=11;
 183   5                                              break;
 184   5                                              case 0x70:
 185   5                                      //      key=12;
 186   5                                              break;
 187   5                                      }
 188   4                                      while(temp!=0xf0)
 189   4                                      {
 190   5                                      temp=P1;
 191   5                                      temp=temp & 0xf0;
 192   5                                      }
 193   4                                      DisplayFailure ();
 194   4                              }
 195   3                      }
 196   2                      P1=0xf7;                                        //扫描第四行
 197   2                      temp=P1;
 198   2                      temp=temp & 0xf0;
 199   2                      if (temp!=0xf0)
 200   2                      {
 201   3                              delay(5);
 202   3                              temp=P1;
 203   3                              temp=temp & 0xf0;
 204   3                              if (temp!=0xf0)
 205   3                              {
 206   4                                      switch(temp)
 207   4                                      {
 208   5                                              case 0xe0:
 209   5                                      //      key=13;
 210   5                                              break;
 211   5                                              case 0xd0:
 212   5                                      //      key=14;
 213   5                                              break;
 214   5                                              case 0xb0:
 215   5                                      //      key=15;
 216   5                                              break;
 217   5                                              case 0x70:
 218   5                                      //      key=16;
 219   5                                              break;
 220   5                                      }
 221   4                                      while(temp!=0xf0)
 222   4                                      {
 223   5                                      temp=P1;
 224   5                                      temp=temp & 0xf0;
 225   5                                      }
 226   4                                      DisplayFailure ();
 227   4                              }
 228   3                      }
 229   2              }
 230   1      }
 231          
 232          void write_com(uchar com)       //向LCD写命令   
 233          {
 234   1              lcdrs=0;
 235   1              pa=com;
 236   1              delay(5);
 237   1              lcden=1;
 238   1              delay(5);
 239   1              lcden=0;  
 240   1      }
 241          
C51 COMPILER V7.09   LCD                                                                   12/06/2008 18:59:39 PAGE 5   

 242          void write_data(uchar date)    //向LCD写数据
 243          {
 244   1              lcdrs=1;
 245   1              pa=date;
 246   1              delay(5);
 247   1              lcden=1;
 248   1              delay(5);
 249   1              lcden=0;  
 250   1      }  
 251          void DisplayMusicIfo (uchar *table)                     //显示当前播放的音乐信息,名字幅值与时间
 252          {
 253   1              uchar n ;
 254   1              for(n=0;n<11;n++)
 255   1              {
 256   2                      delay(20);
 257   2                      write_data(table[n]);
 258   2              }
 259   1              write_com(0x80+0x40);
 260   1              for(n=11;n<27;n++)
 261   1              {
 262   2                      write_data(table[n]);   
 263   2              }
 264   1      }
 265          void DisplayFailure ()         //未定义键,显示错误提示
 266          {
 267   1              uchar n ;
 268   1              write_com(0x01);
 269   1              for(n=0;n<8;n++)
 270   1              {
 271   2                      delay(20);
 272   2                      write_data(tableFailure[n]);
 273   2              }
 274   1              write_com(0x80+0x40);
 275   1              for(n=8;n<20;n++)
 276   1              {
 277   2                      write_data(tableFailure[n]);    
 278   2              }
 279   1      }
 280          void Timer0(void) interrupt 1   //定时器0中断函数
 281          {
 282   1      
 283   1              daccs=0;
 284   1              dacwr=0;
 285   1              if(music123==1)          //DAC显示波形
 286   1              {       pb= Music1[musicnum]; 
 287   2                  
 288   2              }
 289   1              if(music123==2)
 290   1              {       pb= Music2[musicnum]; 
 291   2                 
 292   2              }
 293   1              if(music123==3)
 294   1              {       pb= Music3[musicnum]; 
 295   2                 
 296   2              }
 297   1              musicnum++;                              
 298   1          if(musicnum==193)    //显示歌曲信息,关定时器停止显示
 299   1              {
 300   2                      musicnum=0;
 301   2                      if(music123==1)         
 302   2                      {
 303   3                              lcden=0;
C51 COMPILER V7.09   LCD                                                                   12/06/2008 18:59:39 PAGE 6   

 304   3                              write_com(0x01);
 305   3                              DisplayMusicIfo(table1); 
 306   3                          
 307   3                      }
 308   2                      if(music123==2)
 309   2                      {       
 310   3                              lcden=0;
 311   3                              write_com(0x01);
 312   3                              DisplayMusicIfo(table2); 
 313   3                         
 314   3                      }
 315   2                      if(music123==3)
 316   2                      {       
 317   3                              lcden=0;
 318   3                              write_com(0x01);
 319   3                              DisplayMusicIfo(table3); 
 320   3                         
 321   3                      }
 322   2                      TR0        = 0;                 
 323   2              }
 324   1              
 325   1      
 326   1      }  
 327          void init()                       //系统初始化,8255,LCD
 328          {       
 329   1              control8255=0x80;
 330   1              lcden=0;
 331   1              write_com(0x38);
 332   1              write_com(0x0f);
 333   1              write_com(0x06);
 334   1              write_com(0x01);
 335   1              write_com(0x80);
 336   1      }
 337          
 338          void main()
 339          {
 340   1              init();
 341   1              TH0=131;
 342   1              TL0=131;
 343   1              //T0=65536-125;
 344   1              TMOD  = 0x02;
 345   1              EA     = 1;
 346   1              ET0    = 1;
 347   1              TR0        = 1; 
 348   1              keyscan();
 349   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    653    ----
   CONSTANT SIZE    =    684    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       7
   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 + -