久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 各位大佬求幫忙改改程序 可以幫忙把花樣燈的程序去掉么,只保留播放和切換歌曲的功... [打印本頁]

作者: herolxm    時間: 2016-12-16 10:49
標題: 各位大佬求幫忙改改程序 可以幫忙把花樣燈的程序去掉么,只保留播放和切換歌曲的功...

可以幫忙把花樣燈的程序去掉么,只保留播放和切換歌曲的功能即可

  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit key1=P3^2;//按key1可切換花樣
  5. sbit key2=P3^3;//按key2可切換歌曲
  6. sbit key3=P3^1;//總開關,用于總體控制花樣燈跟歌曲。
  7. sbit fm=P3^7;//蜂鳴器連續到I/O口P3^7上
  8. //---------------------六種花樣燈閃爍代碼----------------------------------
  9. uchar code huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
  10.                                                 0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花樣燈1
  11. uchar code huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,
  12.                                                 0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花樣燈2
  13. uchar code huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,
  14.                                                 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//花樣燈3
  15. uchar code huayang4[]={0x3f,0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,
  16.                         0xf9,0xf3,0xe7,0xcf,0x9f,0x3f};         //花樣燈4
  17. uchar code huayang5[]={0x3f,0xfc,0x9f,0xf9,0xcf,0xf3,0xe7,
  18.                          0xcf,0xf3,0x9f,0xf9,0x3f,0xfc};  //花樣燈5
  19. uchar code huayang6[]={0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};  //花樣燈6
  20. uchar count1;//花樣標志        
  21. uchar count2;//歌曲標志        
  22. uchar timeh,timel,i;
  23. //---------------------------音樂代碼---------------------------------------
  24. //音樂代碼中,字節高位控制頻率,即為音調。字節低位控制該音調持續的時間,
  25. //代表多少個十六分音符。
  26. //1-7代表中央C調,8-E代表高八度,0代表停頓
  27. //最后的0是結束標志即0xff。
  28. uchar code yldbwdx[]={         //月亮代表我的心
  29. 0x02,0x82,
  30. 0x16,0x32,0x54,0x02,0x52,
  31. 0xA6,0x32,0x54,0x02,0x52,
  32. 0x64,0x74,0xB6,0x64,
  33. 0x52,0x5C,0x32,0x22,
  34. 0x16,0x12,0x14,0x32,0x22,
  35. 0x16,0x12,0x14,0x22,0x32,
  36. 0x26,0x12,0x94,0x22,0x32,
  37. 0x2C,
  38. 0x32,0x52,
  39. 0x36,0x22,0x14,0x54,
  40. 0xAC,0x92,0xA2,
  41. 0x96,0xA2,0x96,0x82,
  42. 0x3C,0x54,
  43. 0x36,0x22,0x14,0x54,
  44. 0xAC,0x92,0xA2,
  45. 0x16,0x12,0x14,0x22,0x32,
  46. 0x2C,0x02,0x82,
  47. 0x16,0x32,0x56,0x12,
  48. 0xA6,0x32,0x56,0x52,
  49. 0x66,0x72,0xB6,0x62,
  50. 0x1C,                                                                                                                                                        
  51. 0xff//結束標志
  52. };
  53. uchar code kdqg[]={//康定情歌
  54. 0x64,0x84,0x92,0x91,0x81,0x93,0x61,0x54,0x62,
  55. 0x82,0x92,0x91,0x81,0x92,0x64,0x62,0x82,0x92,0x91,0x81,0x93,0x61,
  56. 0x54,0x82,0x62,0x51,0x61,0x51,0x41,0x52,0x24,0x92,0x54,0x82,0x64,0x52,
  57. 0x42,0x94,0x82,0x62,0x51,0x61,0x51,0x41,0x52,0x24,
  58. 0xff
  59. };
  60. uchar code lzh[]={//國歌
  61. 0x03,
  62. 0x04,0x04,0xc2,0x14,0x12,0x12,0x12,0x11,0x11,0xc2,0xd1,
  63. 0xe1,0x14,0x02,0x32,0x12,0x21,0x31,0x52,0x51,0x51,0x54,
  64. 0x32,0x31,0x31,0x12,0x11,0x31,0x52,0x51,0x31,0x24,0x24,
  65. 0x24,0x64,0x54,0x24,0x34,0x52,0x32,0x21,0x31,0x12,0x11,0x21,0x34,0x04,   
  66. 0x52,0x51,0xd1,0x12,0x12,0x32,0x31,0x31,0x52,0x51,0x51,0x22,0x22,0x22,
  67. 0xd2,0xd1,0x24,0x22,0xc2,0x14,0x12,0x34,0x32,0x32,0x54,0x54,0x54,0x54,
  68. 0x12,0x11,0x31,0x52,0x51,0x51,0x64,0x54,0x32,0x31,0x11,0x52,0x52,0x52,
  69. 0x32,0x02,0x12,0x02,0xc4,0x14,
  70. 0xa2,0xa1,0x11,0x52,0x52,0x52,0x32,0x02,0x12,0x02,
  71. 0xc4,0x14,0xc4,0x14,0xc4,0x14,0x14,0x04,
  72. 0x04,0x04,0x04,0x04,
  73. 0xff
  74. };
  75. uchar code jmszl[]={ //寂寞沙洲冷
  76. 0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,
  77. 0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,
  78. 0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,
  79. 0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,
  80. 0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,
  81. 0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,
  82. 0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,
  83. 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,
  84. 0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,                                                                                                                          
  85. 0x31,0x81,0x81,0x81,0x61,0x91,0x82,
  86. 0x51,0x51,0x51,0x51,0x31,0x61,0x53,
  87. 0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,
  88. 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,
  89. 0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,
  90. 0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,
  91. 0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,
  92. 0xff};
  93. uchar code qnzl[]={         //千年之戀
  94. 0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,
  95. 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,
  96. 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,
  97. 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,
  98. 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,
  99. 0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,
  100. 0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,
  101. 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,
  102. 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,
  103. 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,
  104. 0x42,0x63,0x83,0x83,0x91,0x91,
  105. 0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,
  106. 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,
  107. 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,
  108. 0x42,0x82,0x88,0x02,0x74,0x93,0x89,
  109. 0xff};
  110. //----------------------------不同音調對應的定時器初值---------------------------
  111. //適合11.0592M的晶振
  112. uchar code chuzhi[]={
  113.          0xff,0xff,//占位
  114.          0xFC,0x8E,//中央C調1-7
  115.          0xFC,0xED,        
  116.          0xFD,0x43,        
  117.          0xFD,0x6A,        
  118.          0xFD,0xB3,        
  119.          0xFD,0xF3,        
  120.          0xFE,0x2D,
  121.          0xFE,0x47,        //高八度1-7         
  122.          0xFE,0x76,
  123.          0xFE,0xA1,
  124.          0xFE,0xC7,        
  125.          0xFE,0xD9,
  126.          0xFE,0xF9,
  127.          0xFF,0x16
  128.          };
  129. uchar yinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0};
  130. //將音調轉化為對應的LED樣式
  131. void delay1(uint z);        //延時1MS
  132. void delay(uint z);        //延時165MS,即十六分音符
  133. void song();
  134. void beep();//蜂鳴器叫一聲
  135. //------------------------主函數---------------------------------------
  136. main()
  137. {        uchar x;
  138.     count1=0;//流水燈無花樣
  139.         count2=1;//唱第一首歌
  140.         EA=1;//開總中斷
  141.         EX0=1;//開外部中斷0
  142.         IT0=1;//外部中斷0下降沿觸發方式
  143.         EX1=1;//開外部中斷1
  144.         IT1=1;//外部中斷1下降沿觸發方式
  145.         TMOD=0x01;//定時器0工作在方式1
  146.         TH0=0;
  147.         TL0=0;
  148.         ET0=1;
  149.         
  150.         while(1)   
  151.                 {
  152.                 if(count1!=0)
  153.                 {
  154.                         switch(count1)
  155.                         {
  156.                                 case 1:
  157.                                         for(x=0;x<14;x++)
  158.                                         {  if(key3==1)
  159.                                                 {P1=0xff;
  160.                                                 fm=0;
  161.                                                 break;}
  162.                                                 P1=huayang1[x];
  163.                                                 beep();
  164.                                                 delay1(300);                                                
  165.                                                 if(count1!=1)
  166.                                                         break;        
  167.                                         }
  168.                                 break;
  169.                                 case 2:
  170.                                         for(x=0;x<14;x++)
  171.                                         {        if(key3==1)
  172.                                                 {P1=0xff;
  173.                                                 fm=0;
  174.                                                 break;}
  175.                                                 P1=huayang2[x];
  176.                                                 beep();
  177.                                                 delay1(300);                                                
  178.                                                 if(count1!=2)
  179.                                                         break;        
  180.                                         }
  181.                                 break;
  182.                                 case 3:
  183.                                         for(x=0;x<16;x++)
  184.                                         {        if(key3==1)
  185.                                                 {P1=0xff;
  186.                                                 fm=0;
  187.                                                 break;}
  188.                                                 P1=huayang3[x];
  189.                                                 beep();
  190.                                                 delay1(300);                                                
  191.                                                 if(count1!=3)
  192.                                                         break;        
  193.                                         }
  194.                                 break;
  195.                                 case 4:
  196.                                         for(x=0;x<13;x++)
  197.                                         {        if(key3==1)
  198.                                                 {P1=0xff;
  199.                                                 fm=0;
  200.                                                 break;}
  201.                                                 P1=huayang4[x];
  202.                                                 beep();
  203.                                                 delay1(300);                                                
  204.                                                 if(count1!=4)
  205.                                                         break;        
  206.                                         }
  207.                                 break;
  208.                                 case 5:
  209.                                         for(x=0;x<13;x++)
  210.                                         {  if(key3==1)
  211.                                                 {P1=0xff;
  212.                                                 fm=0;
  213.                                                 break;}
  214.                                                 P1=huayang5[x];
  215.                                                 beep();
  216.                                                 delay1(300);                                                
  217.                                                 if(count1!=5)
  218.                                                         break;        
  219.                                         }
  220.                                 break;
  221.                                 case 6:
  222.                                         for(x=0;x<8;x++)
  223.                                         {         if(key3==1)
  224.                                                 {P1=0xff;
  225.                                                 fm=0;
  226.                                                 break;}
  227.                                                 P1=huayang6[x];
  228.                                                 beep();
  229.                                                 delay1(300);                                       
  230.                                                 if(count1!=6)
  231.                                                         break;
  232.                                         } break;
  233.                                                         
  234.                         }
  235.                 }
  236.                 //else
  237.                 if(count1==0)
  238.                 {
  239.                         song();
  240.                         delay1(1000);                        
  241.                 }                 
  242.          }
  243.     }        
  244. void int0() interrupt 0
  245. {
  246.         EA=0;//關總中斷
  247.         delay1(1);//去抖
  248.         if(key1==0)
  249.         {
  250.                 count2=0;//不讓蜂鳴器唱歌
  251.                 TR0=0;
  252.                 count1++;
  253.                 if(count1==7)
  254.                          count1=1;
  255.         }
  256.         EA=1;//開總中斷
  257. }
  258. void int1() interrupt 2
  259. {
  260.         EA=0;//關總中斷
  261.         delay1(1);//去抖
  262.         if(key2==0)
  263.         {
  264.                 count1=0;//流水燈無花樣
  265.                 TR0=1;
  266.                 i=0;//從頭開始唱
  267.                 count2++;
  268.                 if(count2==6)
  269.                          count2=1;
  270.         }
  271.         EA=1;//開總中斷
  272. }
  273. void timer0() interrupt 1         //用于產生各種音調
  274. {
  275.         TH0=timeh;
  276.         TL0=timel;
  277.         fm=~fm;
  278. }
  279. //-----------------------子函數--------------------------------------
  280. void beep()        //蜂鳴器叫一聲
  281. {        uchar i;
  282.         for(i=0;i<50;i++)
  283.         {        fm=~fm;
  284.                 delay1(1);
  285.         }
  286.         fm=1;
  287. }
  288. void delay(uint z)        //延時165MS,即十六分音符
  289. {        uint x,y;
  290.         for(x=z;x>0;x--)
  291.                  for(y=19000;y>0;y--);
  292. }
  293. void delay1(uint z)        //延時1MS
  294. {        uint x,y;
  295.         for(x=z;x>0;x--)
  296.                  for(y=112;y>0;y--);
  297. }
  298. void song()
  299. {
  300.         uint temp;
  301.         uchar jp;//jp是簡譜
  302.         i=0;
  303.         while(1)
  304.         {        if(count2==0)
  305.                 {        
  306.                         break;
  307.                 }
  308.                 if(key3==1)
  309.                         {P1=0xff;
  310.                          fm=0;
  311.                          break;}
  312.                 if(count2==1)         //conut2==1選擇月亮代表我的心
  313.                          temp=yldbwdx[i];
  314.                 if(count2==2)         //count2==2選擇寂寞沙洲冷
  315.                         temp=jmszl[i];
  316.                 if(count2==3)         //count2==3選擇千年之戀
  317.                         temp=qnzl[i];
  318.             if(count2==4)         //count2==4康定情歌
  319.                         temp=kdqg[i];
  320.                 if(count2==5)         //count2==5國歌
  321.                         temp=lzh[i];
  322.                 if(temp==0xff)          //到0xff一首歌曲結束
  323.                         break;        
  324.                 jp=temp/16; //取數的高4位
  325.                 P1=yinyue[jp];
  326.                 if(jp!=0)
  327.                 {
  328.                 timeh=chuzhi[jp*2];
  329.                 timel=chuzhi[jp*2+1];
  330.                 }
  331.                 else
  332.                 {
  333.                 TR0=0;
  334.                 fm=0;//關蜂鳴器
  335.                 }
  336.                 delay(temp%16); //取數的低4位
  337.                 TR0=0;         
  338.                 fm=1;
  339.                 delay1(10);          //唱完一個音停10MS
  340.                 TR0=1;
  341.                 i++;
  342.             }
  343.         TR0=0;
  344.         fm=1;
  345.         
  346. }
復制代碼






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品一级 | 人人鲁人人莫人人爱精品 | 亚洲国产一 | 成人在线视频一区 | 亚洲欧美精品 | 国产精品视频免费看 | 精品成人免费一区二区在线播放 | 2一3sex性hd| 中文字幕在线观看av | caoporn国产精品免费公开 | 亚洲视频第一页 | 亚洲一区视频在线 | 97成人免费 | 天天曰天天干 | 亚洲一级视频在线 | 国产一区精品 | 欧美一二三四成人免费视频 | 综合久久一区 | 久久久青草 | 欧美一级久久 | 七七婷婷婷婷精品国产 | 久久专区 | 五月激情综合 | 成人欧美一区二区三区黑人孕妇 | 激情国产 | 一区二区日韩 | 8x国产精品视频一区二区 | 成人在线视频观看 | 国产亚洲精品精品国产亚洲综合 | 日韩在线免费电影 | 亚洲视频三 | 国产精品成人品 | 午夜影院在线观看 | 日本a v在线播放 | 欧美韩一区二区三区 | 久久精品久久久 | 在线成人av | 免费啪啪| 亚洲理论在线观看电影 | 欧美精品一区二区三区四区五区 | 国产精品一区二区在线 |