標(biāo)題: 單片機(jī)播生日快樂(lè)歌程序 [打印本頁(yè)]

作者: 紫影    時(shí)間: 2016-3-18 12:48
標(biāo)題: 單片機(jī)播生日快樂(lè)歌程序
電路:?jiǎn)纹瑱C(jī)最小系統(tǒng)+一個(gè)按鍵接p1.0 蜂蜜器接p3.4,最好用無(wú)源蜂鳴器聲音好聽(tīng)一些.下面是單片機(jī)源程序:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit K1=P1^0;
  5. sbit SPK=P3^4;
  6. uint i=0;
  7. uchar code HI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248,};
  8. uchar code L0_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3};
  9. void T0_INT() interrupt 1
  10. {
  11. TL0=L0_LIST[i];
  12. TH0=HI_LIST[i];
  13. SPK=~SPK;
  14. }
  15. void DelayMS(uint ms)
  16. {
  17. uchar t;
  18. while(ms--) for(t=0;t<120;t++);
  19. }
  20. void main()
  21. {
  22. TMOD=0x00;
  23. IE=0x82;
  24. SPK=0;
  25. while(1)
  26. {while(K1==1);
  27. while(K1==0);
  28. i=5;
  29. TR0=1;
  30. DelayMS(250);
  31. TR0=0;
  32. DelayMS(50);
  33. i=5;
  34. TR0=1;
  35. DelayMS(250);
  36. TR0=0;
  37. DelayMS(50);
  38. i=6;
  39. TR0=1;
  40. DelayMS(500);
  41. TR0=0;
  42. DelayMS(50);
  43. i=5;
  44. TR0=1;
  45. DelayMS(500);
  46. TR0=0;
  47. DelayMS(50);
  48. i=8;
  49. TR0=1;
  50. DelayMS(500);
  51. TR0=0;
  52. DelayMS(50);
  53. i=7;
  54. TR0=1;
  55. DelayMS(1000);
  56. TR0=0;
  57. DelayMS(50);
  58. i=5;
  59. TR0=1;
  60. DelayMS(250);
  61. TR0=0;
  62. DelayMS(50);
  63. i=5;
  64. TR0=1;
  65. DelayMS(250);
  66. TR0=0;
  67. DelayMS(50);
  68. i=6;
  69. TR0=1;
  70. DelayMS(500);
  71. TR0=0;
  72. DelayMS(50);
  73. i=5;
  74. TR0=1;
  75. DelayMS(500);
  76. TR0=0;
  77. DelayMS(50);
  78. i=9;
  79. TR0=1;
  80. DelayMS(500);
  81. TR0=0;
  82. DelayMS(50);
  83. i=8;
  84. TR0=1;
  85. DelayMS(1000);
  86. TR0=0;
  87. DelayMS(50);
  88. i=5;
  89. TR0=1;
  90. DelayMS(250);
  91. TR0=0;
  92. DelayMS(50);
  93. i=5;
  94. TR0=1;
  95. DelayMS(250);
  96. TR0=0;
  97. DelayMS(50);
  98. i=12;
  99. TR0=1;
  100. DelayMS(500);
  101. TR0=0;
  102. DelayMS(50);
  103. i=10;
  104. TR0=1;
  105. DelayMS(500);
  106. TR0=0;
  107. DelayMS(50);
  108. i=8;
  109. TR0=1;
  110. DelayMS(500);
  111. TR0=0;
  112. DelayMS(50);
  113. i=7;
  114. TR0=1;
  115. DelayMS(500);
  116. TR0=0;
  117. DelayMS(50);
  118. i=6;
  119. TR0=1;
  120. DelayMS(500);
  121. TR0=0;
  122. DelayMS(50);
  123. i=11;
  124. TR0=1;
  125. DelayMS(250);
  126. TR0=0;
  127. DelayMS(50);
  128. i=11;
  129. TR0=1;
  130. DelayMS(125);
  131. TR0=0;
  132. DelayMS(50);
  133. i=10;
  134. TR0=1;
  135. DelayMS(500);
  136. TR0=0;
  137. DelayMS(50);
  138. i=8;
  139. TR0=1;
  140. DelayMS(500);
  141. TR0=0;
  142. DelayMS(50);
  143. i=9;
  144. TR0=1;
  145. DelayMS(500);
  146. TR0=0;
  147. DelayMS(50);
  148. i=8;
  149. TR0=1;
  150. DelayMS(1000);
  151. TR0=0;
  152. DelayMS(50);
  153. }
  154. }
復(fù)制代碼









歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1