标题: 单片机播放天空之城音乐程序 [打印本页]

作者: 爻殇辞    时间: 2019-6-8 20:17
标题: 单片机播放天空之城音乐程序
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int sbit beep=P1^0; unsigned int C;
  4. #define L1 262
  5. #define L2 284
  6. #define L3 311
  7. #define L4 349
  8. #define L5 392
  9. #define L6 440
  10. #define L7 494
  11. #define Z1 523
  12. #define Z2 587
  13. #define Z3 659
  14. #define Z4 698
  15. #define Z5 784
  16. #define Z6 880
  17. #define Z7 987
  18. #define H1 1046
  19. #define H2 1174
  20. #define H3 1318
  21. #define H4 1396
  22. #define H5 1567
  23. #define H6 1760
  24. #define H7 1975 void delay();
  25. unsigned code GP[]={Z6,Z7,H1,Z7,H1,H3,Z7,Z3,Z6,Z5,Z6,H1,Z5,
  26. Z3,Z3,Z4,Z3,H4,H1,Z3,H1,H1,Z7,Z4,Z4,Z7,
  27. Z7,Z6,Z7,H1,Z7,H1,H3,Z7,Z3,Z6,Z5,Z6,H1,
  28. Z5,Z2,Z3,Z4,H1,Z7,H1,H2,H2,H3,H1,H1,Z7,
  29. Z6,Z6,Z7,Z5,Z6,H1,H2,H3,H2,H3,H5,H2,H1,
  30. H1,Z7,H1,H3,H3,Z6,Z7,H1,Z7,H1,H2,H1,Z5,
  31. Z5,H4,H3,H2,H1,H3,H3,H3,H6,H6,H5,H5,H3,
  32. H2,H1,H1,H2,H1,H2,H5,H3,H3,H6,H6,H5,H5,
  33. H3,H2,H1,H1,H2,H1,H2,Z7,Z6,Z6,0xff};
  34. unsigned code JP[]={4,4,/**/12,4,8,8,/**/20,8,/**/12,4,8,8,
  35. 20,4,4,/**/12,4,8,8,/**/20,4,4,/**/12,4,8,8,
  36. /**/20,4,4,/**/12,4,8,8,/**/20,8,/**/12,4,8,8,
  37. /**/20,4,4,/**/8,4,12,3,1,/**/12,4,12,/**/4,4, 4,4,8,8,/**/20,4,4,/**/12,4,8,8,/**/24,/**/
  38. 8,4,4,8,8,/**/24,/**/4,4,8,4,4,8,/**/12,4,12,


  39. /**/8,8,8,4,4,/**/16,8,/**/12,4,12,4,/**/4,4,12,8,


  40. /**/12,4,8,8,/**/16,8,/**/12,4,12,4,/**/4,4,12,8,
  41. /**/12,4,8,3,1,/**/32};


  42. void main()
  43. { uchar i,j;
  44. TMOD=0x00;
  45. EA=1;        // 开总中断
  46. ET0=1;        // 开 t0 中断
  47. while(1)
  48. { i=0;
  49. while(GP[i]!=0xff)
  50. {C=460830/GP[i]; TH0=(8192-C)/32; TL0=(8192-C)%32;
  51. TR0=1;// 开定时器        0
  52. for(j=0;j<JP[i];j++)
  53. {delay();} TR0=0; i++;

  54. }
  55. beep=0;
  56. }

  57. }
  58. void delay()        // 延时 15.6ms
  59. {
  60. uint i,j; for(i=70;i>0;i--)
  61. {for(j=110;j>0;j--);}
  62. }
  63. void T0_time()interrupt 1
  64. { TR0=0;
  65. beep=!beep;
  66. TH0=(8192-C)/32;
  67. TL0=(8192-C)%32;
  68. TR0=1;
  69. }
复制代码

作者: 深情不是舔    时间: 2019-6-11 11:03
第56行报错,是怎么回事啊,大佬




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1