找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4232|回复: 0
打印 上一主题 下一主题
收起左侧

单片机播生日快乐歌程序

[复制链接]
跳转到指定楼层
楼主
ID:107114 发表于 2016-3-18 12:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电路:单片机最小系统+一个按键接p1.0 蜂蜜器接p3.4,最好用无源蜂鸣器声音好听一些.下面是单片机源程序:
  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. }
复制代码




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表