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

📄 lts.lst

📁 用C语言编的带数码管显示的电子琴
💻 LST
📖 第 1 页 / 共 2 页
字号:
 186          "1-|2_4_3_2_55|5_6_3_4_22|2_4_3_2_1_`1_7_6_|5_4_2_3_11|" 
 187          "2_4_3_2_55|5_6_3_4_22|2_4_3_2_1_5_2_3_|1---|" 
 188          }; 
 189          //小星星 
 190          uchar code xingxing[]={ 
 191          "1155|665-|4433|221-|" 
 192          "5544|332-|5544|332-|" 
 193          "1155|665-|4433|221-|" 
 194          }; 
 195           
 196          //老鼠爱大米 
 197          uchar code dami[]={ 
 198          "321-|3.2_1-|3231|3_6.5-|3_5_665|65-3_2_|122_3_2|12--|" 
 199          }; 
 200           
 201          
 202          /******主函数******/
 203          void main(void) // 主程序 
 204          { 
 205   1              uchar k;        
 206   1              uchar code jie8[8]={12,14,16,17,19,21,23,24};//1234567`1八个音符在频率表中的位置 
 207   1              TMOD = 0x01;  //使用定时器0的16位工作模式 
 208   1              TR0 = 0; 
 209   1              ET0 = 1; 
 210   1              EA = 1; 
 211   1       
 212   1              while(1)
 213   1              {
 214   2                      k=keyscan();
*** WARNING C209 IN LINE 214 OF LTS.C: '_keyscan': too few actual parameters
 215   2                      switch(k)
 216   2                      {
 217   3                              case 1:{scan(1);tl0_f=freq[jie8[0]*2];th0_f=freq[jie8[0]*2+1]; TR0 = 1;delay(400);BEEP=1;}break;
 218   3                              case 2:{scan(2);tl0_f=freq[jie8[1]*2];th0_f=freq[jie8[1]*2+1]; TR0 = 1;delay(400);BEEP=1;}break;
 219   3                              case 3:{scan(3);tl0_f=freq[jie8[2]*2];th0_f=freq[jie8[2]*2+1]; TR0 = 1;delay(400);BEEP=1;}break;
 220   3                              case 4:{scan(4);tl0_f=freq[jie8[3]*2];th0_f=freq[jie8[3]*2+1]; TR0 = 1;delay(400);BEEP=1;}break;
 221   3                              case 5:{scan(5);tl0_f=freq[jie8[4]*2];th0_f=freq[jie8[4]*2+1]; TR0 = 1;delay(500);BEEP=1;}break;
 222   3                              case 6:{scan(6);tl0_f=freq[jie8[5]*2];th0_f=freq[jie8[5]*2+1]; TR0 = 1;delay(500);BEEP=1;}break;
 223   3                              case 7:{scan(7);tl0_f=freq[jie8[6]*2];th0_f=freq[jie8[6]*2+1]; TR0 = 1;delay(500);BEEP=1;}break;
 224   3                              case 8:scan(8);play(xianjian); break;
 225   3                              case 9:scan(9);play(song3); break;
 226   3                              case 10:scan(10);play(boluo); break;
 227   3                              case 11:scan(11);play(xingxing); break;
 228   3                              case 12:scan(12);play(mamahao); break;
 229   3                              case 13:scan(13);play(dami); break;
 230   3                      } 
 231   2                      TR0 = 0;
 232   2              }
 233   1      } 
 234          /******键盘输入函数******/
 235          uchar keyscan(uchar key)
 236          {
 237   1              uchar n;
 238   1              P1=0xfe;
 239   1              n=P1;
 240   1              n&=0xf0;
C51 COMPILER V7.01  LTS                                                                    07/10/2008 21:01:42 PAGE 5   

 241   1              if(n!=0xf0)
 242   1              {
 243   2              delay(20);
 244   2              P1=0xfe;
 245   2                      n=P1;
 246   2                      n&=0xf0;
 247   2                      if(n!=0xf0)
 248   2                      {
 249   3                      switch(n)
 250   3                              {
 251   4                                      case(0xe0):key=12;break;
 252   4                                      case(0xd0):key=9;break;
 253   4                                      case(0xb0):key=5;break;
 254   4                              case(0x70):key=1;break;
 255   4                      }
 256   3                      }
 257   2              }
 258   1      
 259   1              P1=0xfd;
 260   1              n=P1;
 261   1              n&=0xf0;
 262   1              if(n!=0xf0)
 263   1              {
 264   2                      delay(20);
 265   2                      P1=0xfd;
 266   2                      n=P1;
 267   2                      n&=0xf0;
 268   2                      if(n!=0xf0)
 269   2                      {
 270   3                              switch(n)
 271   3                              {
 272   4                              case(0xe0):key=13;break;
 273   4                              case(0xd0):key=0;break;
 274   4                              case(0xb0):key=6;break;
 275   4                              case(0x70):key=2;break;
 276   4                      }       
 277   3                      }
 278   2              }
 279   1      
 280   1              P1=0xfb;
 281   1              n=P1;
 282   1              n&=0xf0;
 283   1              if(n!=0xf0)
 284   1              {
 285   2                      delay(20);
 286   2                      P1=0xfb;
 287   2                      n=P1;
 288   2                      n&=0xf0;
 289   2                      if(n!=0xf0)
 290   2                      {
 291   3                              switch(n)
 292   3                              {
 293   4                              case(0xe0):key=14;break;
 294   4                              case(0xd0):key=10;break;
 295   4                              case(0xb0):key=7;break;
 296   4                              case(0x70):key=3;break;
 297   4                      }
 298   3                      }
 299   2              }
 300   1      
 301   1              P1=0xf7;
 302   1              n=P1;
C51 COMPILER V7.01  LTS                                                                    07/10/2008 21:01:42 PAGE 6   

 303   1              n&=0xf0;
 304   1              if(n!=0xf0)
 305   1              {
 306   2                      delay(20);
 307   2                      P1=0xf7;
 308   2                      n=P1;
 309   2                      n&=0xf0;
 310   2                      if(n!=0xf0)
 311   2                      {
 312   3                              switch(n)
 313   3                              {
 314   4                              case(0xe0):key=15;break;
 315   4                              case(0xd0):key=11;break;
 316   4                              case(0xb0):key=8;break;
 317   4                              case(0x70):key=4;break;
 318   4                      }
 319   3                 }
 320   2              }       
 321   1              return (key);
 322   1      }
 323          
 324          /******延时函数******/
 325          void delay(uint t)
 326          {
 327   1              uint i,j;
 328   1              for(i=0;i<t;i++)
 329   1              {
 330   2                      for(j=0;j<250;j++)
 331   2                      {;}
 332   2              }
 333   1      }
 334          
 335          /******显示函数******/
 336          void scan(uint i)
 337          {
 338   1              
 339   1              P2=0xf0;
 340   1              P0=table[i];
 341   1      }
 342          
 343          /******峰鸣器函数******/
 344          void bi(ulong t) 
 345          { 
 346   1              ulong c; 
 347   1              uint n; 
 348   1              for(c=0;c<t;c++) 
 349   1              { 
 350   2                      for(n=0;n<50;n++); //延时 
 351   2                      BEEP=~BEEP;      //取反输出到喇叭的信号 
 352   2              } 
 353   1      } 
 354          
 355          //定时中断0,用于产生唱歌频率 
 356          timer0() interrupt 1  
 357          { 
 358   1          TL0=tl0_f;TH0=th0_f;  //调入预定时值 
 359   1          BEEP=~BEEP;           //取反音乐输出IO 
 360   1      } 
 361          
 362          


C51 COMPILER V7.01  LTS                                                                    07/10/2008 21:01:42 PAGE 7   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1249    ----
   CONSTANT SIZE    =    800    ----
   XDATA SIZE       =   ----     224
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18      28
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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