找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5620|回复: 7
收起左侧

51单片机做的音乐盒,带八段数码管显示程序+Proteus仿真

  [复制链接]
ID:362094 发表于 2019-7-2 18:20 | 显示全部楼层 |阅读模式
之前的上传错了附件程序在下面,可能因为有调子,有点多,要在附件下载
捕获.PNG
  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 fm=P3^7;//蜂鸣器连续的IO口
  7. uchar code shuzi0=0x3f;
  8. uchar code shuzi1=0x06;//数字1
  9. uchar code shuzi2=0x5b;//数字2
  10. uchar code shuzi3=0x4f;
  11. uchar code shuzi4=0x66;
  12. uchar code shuzi5=0x6d;
  13. uchar code shuzi6=0x7d;
  14. uchar code shuzi7=0x07;
  15. uchar code shuzi8=0x7f;
  16. uchar count1;//播放暂停标志
  17. uchar count2;//歌曲标志
  18. uchar timeh,timel,i;
  19. //---------------------------简谱---------------------------------------
  20. /*unsigned char code Music_Same[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,
  21.                                   0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,
  22.                                   0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,
  23.                                   0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,
  24.                                   0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,
  25.                                   0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,
  26.                                   0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,
  27.                                   0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,
  28.                                   0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,
  29.                                   0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,
  30.                                   0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,
  31.                                   0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,
  32.                                   0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,
  33.                                   0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
  34.                                   0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,
  35.                                   0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,
  36.                                   0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,
  37.                                   0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,
  38.                                   0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,
  39.                                   0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,
  40.                                   0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,
  41.                                   0x00,0x00 };
  42. //两只蝴蝶                                 
  43. unsigned char code Music_Two[] ={ 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  44.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  45.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  46.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03,
  47.                                   0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01,
  48.                                   0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  49.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01,
  50.                                   0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  51.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  52.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  53.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03,
  54.                                   0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01,
  55.                                   0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  56.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00,
  57.                                   0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03,
  58.                                   0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03,
  59.                                   0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03,
  60.                                   0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03,
  61.                                   0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,
  62.                                   0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E,
  63.                                   0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E,
  64.                                   0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03,
  65.                                   0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03,
  66.                                   0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03,
  67.                                   0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03,
  68.                                   0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02,
  69.                                   0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01,
  70.                                   0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03,
  71.                                   0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  72.                                   0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  73.                                   0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  74.                                   0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02,
  75.                                   0x10,0x03, 0x15,0x00, 0x00,0x00 };
  76. //北京欢迎你
  77. unsigned char code Music_Code[]={ 0x17,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x03,
  78.                                   0x16,0x03, 0x17,0x02, 0x17,0x67, 0x16,0x03, 0x10,0x03,
  79.                                   0x15,0x03, 0x17,0x03, 0x16,0x66, 0x16,0x03, 0x15,0x03,
  80.                                   0x10,0x03, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x19,0x03,
  81.                                   0x16,0x03, 0x17,0x03, 0x1A,0x03, 0x19,0x03, 0x0F,0x03,
  82.                                   0x16,0x03, 0x15,0x66, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  83.                                   0x15,0x03, 0x16,0x03, 0x17,0x03, 0x19,0x03, 0x16,0x03,
  84.                                   0x17,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x01,
  85.                                   0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x19,0x67,
  86.                                   0x1A,0x04, 0x17,0x02, 0x10,0x03, 0x17,0x03, 0x16,0x03,
  87.                                   0x16,0x03, 0x15,0x66, 0x17,0x03, 0x19,0x03, 0x1F,0x03,
  88.                                   0x19,0x03, 0x1A,0x66, 0x19,0x03, 0x1A,0x03, 0x19,0x03,
  89.                                   0x17,0x03, 0x17,0x03, 0x19,0x03, 0x19,0x66, 0x17,0x03,
  90.                                   0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x20,0x03, 0x1F,0x03,
  91.                                   0x19,0x03, 0x17,0x03, 0x16,0x03, 0x19,0x02, 0x17,0x03,
  92.                                   0x17,0x01, 0x17,0x03, 0x19,0x03, 0x1F,0x03, 0x19,0x03,
  93.                                   0x1A,0x66, 0x1F,0x03, 0x20,0x67, 0x1F,0x04, 0x19,0x03,
  94.                                   0x17,0x03, 0x19,0x03, 0x1F,0x03, 0x1A,0x66, 0x17,0x03,
  95.                                   0x16,0x03, 0x17,0x03, 0x1A,0x03, 0x21,0x03, 0x20,0x66,
  96.                                   0x20,0x03, 0x1F,0x01, 0x1F,0x66, 0x17,0x03, 0x19,0x03,
  97.                                   0x15,0x03, 0x19,0x03, 0x1A,0x66, 0x1F,0x03, 0x20,0x66,
  98.                                   0x1F,0x04, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x03,
  99.                                   0x1A,0x66, 0x17,0x03, 0x16,0x03, 0x17,0x03, 0x1A,0x03,
  100.                                   0x21,0x03, 0x20,0x0B, 0x20,0x0B, 0x20,0x0B, 0x20,0x0B,
  101.                                   0x20,0x02, 0x1F,0x03, 0x1F,0x0B, 0x1F,0x0B, 0x1F,0x0B,
  102.                                   0x1F,0x0B, 0x1F,0x0B, 0x00,0x00 };
  103. //奥运主题曲:我和你
  104. unsigned char code Music_Code1[]={ 0x17,0x02, 0x19,0x02, 0x15,0x01, 0x16,0x02, 0x17,0x02,
  105.                                   0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x19,0x02,
  106.                                   0x16,0x00, 0x17,0x02, 0x19,0x02, 0x15,0x01, 0x16,0x02,
  107.                                   0x17,0x02, 0x10,0x01, 0x16,0x02, 0x0F,0x02, 0x16,0x02,
  108.                                   0x17,0x02, 0x15,0x00, 0x1A,0x01, 0x19,0x01, 0x1A,0x01,
  109.                                   0x15,0x01, 0x17,0x02, 0x10,0x02, 0x17,0x66, 0x19,0x03,
  110.                                   0x16,0x00, 0x17,0x02, 0x19,0x02, 0x15,0x01, 0x16,0x02,
  111.                                   0x17,0x02, 0x10,0x01, 0x16,0x02, 0x0F,0x02, 0x16,0x02,
  112.                                   0x17,0x02, 0x15,0x00, 0x00,0x00 };*/

  113. uchar code muqin[]={ //母亲
  114. 0x52,0x51,0x61,0x82,0x71,0x62,0x31,0x21,0x14,0x32,0x92,0x91,0x71,0x61,0x31,0x58,
  115. //你入学的新书包有人给你拿
  116. 0x52,0x51,0x61,0x82,0x71,0x62,0x51,0x61,0x34,0x62,0x61,0x51,0x51,0x31,0x28,
  117. //你雨中的花折伞有人给你打
  118. 0x32,0x31,0x21,0x52,0x51,0x31,0x22,0x31,0x21,0x12,0x21,0x32,0x51,0x71,0x61,0x52,0x68,
  119. //你爱吃的(那)三鲜馅有人(他)给你包
  120. 0x82,0x81,0x61,0x82,0x81,0x62,0x51,0x31,0x24,0x62,0x51,0x31,0x31,0x21,0x14,
  121. //你委屈的泪花有人给你擦
  122. 0x81,0x91,0xa1,0xa2,0xa1,0x92,0xa1,0x91,0x84,
  123. //啊,这个人就是娘
  124. 0x61,0x81,0x91,0x92,0xa1,0x91,0x71,0x61,0x71,0x61,0x58,
  125. //啊,这个人就是妈
  126. 0x61,0x82,0x61,0x82,0x81,0x61,0x52,0x61,0x51,0x64,
  127. //这个人给了我生命
  128. 0x62,0x81,0xa1,0x91,0x82,0x94,
  129. //给我一个家
  130. 0x81,0x91,0xa1,0xa2,0xa1,0x92,0xa1,0x91,0x84,
  131. //啊,不管你走多远
  132. 0x61,0x81,0x92,0x71,0x61,0x71,0x61,0x58,
  133. //无论你在干啥
  134. 0x61,0x81,0x81,0x61,0x82,0x81,0x61,0x52,0x61,0x51,0x34,
  135. //到什么时候也离不开
  136. 0x62,0xa2,0x91,0x81,0x62,0x88,
  137. //咱的妈
  138. 0x62,0xa2,0x91,0x81,0x62,0x84,
  139. //咱的妈
  140. 0x81,0x91,0x62,0xf2,0x91,0x81,0x62,0x88,
  141. 0XFF,
  142. } ;
  143. uchar code jmszl[]={ //寂寞沙洲冷
  144. 0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,
  145. //自你走后心憔悴
  146. 0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,
  147. //白色油桐风中纷飞
  148. 0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,
  149. //落花似人有情 这个季节
  150. 0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,
  151. //河畔的风放肆拼命地吹
  152. 0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,
  153. //不断拨弄离人的眼泪
  154. 0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,
  155. //那样浓烈的爱再也无法给
  156. 0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,
  157. //伤感一夜一夜
  158. 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,
  159. //当记忆的线缠绕过往支离破碎
  160. 0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,
  161. //是慌乱占据了心扉                  
  162. 0x31,0x81,0x81,0x81,0x61,0x91,0x82,
  163. //有花儿伴着蝴蝶
  164. 0x51,0x51,0x51,0x51,0x31,0x61,0x53,
  165. //孤雁可以双飞
  166. 0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,
  167. //夜深人静独徘徊
  168. 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,
  169. //当幸福恋人寄来红色分享喜悦
  170. 0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,
  171. //闭上双眼难过头也不敢回
  172. 0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,
  173. //仍然捡尽寒枝不肯安歇微带着后悔
  174. 0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,
  175. //寂寞沙洲我该思念谁
  176. 0xff};
  177. uchar code mamahao[]={ //世上只有妈妈好
  178. //世上只有妈妈好
  179. 0x68,0x52,0x34,0x54,0x84,0x62,0x52,0x68,
  180. //世上只有妈妈好
  181. 0x34,0x52,0x62,0x54,0x34,0x12,0xc2,0x52,0x32,0x28,
  182. //有妈的孩子像个宝
  183. 0x24,0x32,0x54,0x52,0x62,0x34,0x24,0x18,
  184. //投进了妈妈的怀抱
  185. 0x54,0x32,0x22,0x12,0xc2,0x12,0xb8,0x04,0xff,
  186. //幸福享不了
  187. };
  188. uchar code exql[]={ //儿行千里
  189. // 儿行千里
  190. 0x62,0x61,0x61,0x61,0x72,0x51,0x68,
  191. //衣裳在添几件,
  192. 0x62,0x61,0x61,0x61,0x71,0x51,0x38,
  193. //饭菜多吃几口,
  194. 0x32,0x31,0x62,0x31,0x21,0x31,0x14,0x22,0x21,0x21,0x12,0x61,0x38,
  195. //出门在外没有妈熬的小米粥,
  196. 0x62,0x62,0x61,0x72,0x51,0x68,
  197. //一会儿看看脸,
  198. 0x62,0x62,0x61,0x72,0x51,0x38,
  199. //一会儿摸摸手,
  200. 0x34,0x62,0x61,0x31,0x22,0x21,0x31,0x14,
  201. //一会儿又把嘱咐的话,
  202. 0x22,0x21,0x31,0x12,0x61,0x68,
  203. //装进儿的兜;
  204. 0x62,0x84,0x62,0x92,0x84,0x72,0x61,0x71,0x51,0x32,0x31,0x52,0x64,
  205. //如今要到了,离开家的时候,
  206. 0x62,0x84,0x62,0x91,0xa1,0x84,0x72,0x61,0x71,0x62,0x52,0x51,0x61,0x34,
  207. //才理解儿行千里母担忧,
  208. 0x32,0x62,0x62,0x31,0x21,0x32,0x34,0x02,0x32,0x62,0x62,0x31,0x21,0x12,0x14,0x02,
  209. //千里的路啊,我还一步没走,
  210. 0x71,0x72,0x61,0x22,0x31,0x31,0x52,0x31,0x52,0x62,
  211. //就看见泪水在妈妈眼里,
  212. 0x82,0x81,0x71,0x61,0x62,0x28,0x62,0x61,0x71,0x52,0x31,0x68,0x68,0xff,
  213. //妈妈眼里流,妈妈眼里流;
  214. };
  215. uchar code ganen[]={//感恩的心
  216. 0x12,0x14,0x22,0x32,0x54,
  217. //我来自偶然,
  218. 0x32,0x84,0x72,0x62,0x54,
  219. //像一颗尘土,
  220. 0x02,0x62,0x62,0x52,0x54,0x12,0x22,0x32,0x28,
  221. //有谁看出我的脆弱,
  222. 0x12,0x14,0x22,0x32,0x54,
  223. //我来自何方,
  224. 0x32,0x84,0x92,0x82,0x54,
  225. //我情归何处,
  226. 0x32,0x24,0x21,0x61,0x54,0x22,0x32,0x12,0x18,
  227. //谁在下一刻呼唤我,
  228. 0x22,0x24,0x12,0x24,0x11,0x21,0x34,0x32,0x21,0x31,0x34,
  229. //天地虽宽 这条路却难走
  230. 0x12,0x22,0x22,0x22,0x11,0x21,0x22,0x64,0x52,0x52,0x32,0x38,
  231. //我看遍这人间坎坷辛苦
  232. 0x31,0x52,0x51,0x52,0x31,0x51,0x58,
  233. //我还有多少爱
  234. 0x31,0x82,0x81,0x82,0x31,0x61,0x68,
  235. //我还有多少泪
  236. 0x62,0x62,0x62,0x51,0x61,0x64,0x61,0x82,0x61,0x9c,
  237. //要苍天知道 我不认输
  238. 0x52,0xa4,0x92,0xa4,0x32,0x84,0x72,0x64,
  239. //感恩的心 感谢有你
  240. 0x62,0x94,0x82,0x94,
  241. //伴我一生
  242. 0x61,0x81,0x92,0x91,0x91,0x92,0x81,0xa1,0xa2,0x92,0x94,
  243. //让我有勇气做我自己
  244. 0x52,0xa4,0x92,0xa4,0x32,0x84,0x72,0x64,
  245. //感恩的心 感谢命运
  246. 0x52,0x62,0x81,0x81,0x82,0x92,0xa2,0x94,0x82,0x72,0x82,0x88,
  247. //花开花落我一样会珍惜
  248. };
  249. uchar code tiger[]={//两只老虎
  250. 0x14,0x24,0x34,0x14,0x14,0x24,0x34,0x14,
  251. //两只老虎两只老虎
  252. 0x34,0x44,0x58,0x34,0x44,0x58,
  253. //跑得快跑得快
  254. 0x52,0x61,0x52,0x41,0x34,0x14,0x52,0x61,0x52,0x41,0x34,0x14,
  255. //一只没有眼睛一只没有尾巴
  256. 0x14,0xb4,0x18,0x14,0xb4,0x18,0xff,
  257. //真奇怪真奇怪
  258. };
  259. uchar code qizige[]={ //七子之歌
  260. 0x54,0x32,0x52,0x32,0x54,
  261. //你可知MACAU
  262. 0x62,0x52,0x32,0x62,0x54,
  263. //不是我真姓
  264. 0x14,0x12,0x22,0x34,0x52,0x32,
  265. //我离开你太久了
  266. 0x02,0x32,0x58,
  267. //母亲
  268. 0x52,0x52,0x62,0x52,0x32,0x54,0x52,0x62,0x52,0x82,0x62,0x58,
  269. //但是他们掳去的是我的肉体
  270. 0x14,0x52,0x32,0x22,0x12,0x24,0x32,0x54,0x2,0x22,0x34,0x1f,0x18,
  271. //你依然保管我内心的灵魂
  272. 0x04,0x54,0xa4,0x92,0x81,0x62,0x52,0x54,0x62,0x64,0x52,0x62,0x81,0xa2,0x82,0x9c,
  273. //那三百年来梦寐不忘的生母啊
  274. 0x02,0x52,0xa4,0x92,0x81,0x62,0x52,0x54,
  275. //请叫儿的乳名:
  276. 0x62,0x64,0x52,0x64,0xa2,0x92,0x9f,
  277. //叫我一声--澳门
  278. 0xa4,0x92,0x81,0x62,0x52,0x54,
  279. //母亲!母亲!
  280. 0x84,0x62,0x52,0x32,0x22,0x14,
  281. //我要回来
  282. 0x04,0x22,0x32,0x58,0x58,0x04,0x52,0x62,0x8f,0xff,
  283. //母亲!母亲!
  284.   };
  285. uchar code qnzl[]={  //千年之恋
  286. 0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,
  287. //前奏
  288. 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,
  289. //竹林的灯火 到过的沙漠
  290. 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,
  291. //七色的国度 不断飘逸风中
  292. 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,
  293. //有一种神秘 灰色的旋涡
  294. 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,
  295. //将我卷入了迷雾中
  296. 0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,
  297. //看不清的双手
  298. 0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,
  299. //一朵花传来谁经过的温柔
  300. 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,
  301. //穿越千年的伤痛
  302. 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,
  303. //只为求一个结果
  304. 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,
  305. //你留下的轮廓 指引我
  306. 0x42,0x63,0x83,0x83,0x91,0x91,
  307. //黑夜中不寂寞
  308. 0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,
  309. //穿越千年的哀愁
  310. 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,
  311. //是你在尽头等我
  312. 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,
  313. //最美丽的感动 会值得
  314. 0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff//结束标志
  315. //用一生守候
  316. };
  317. //----------------------------简谱音调对应的定时器初值---------------------------
  318. //适合11.0592M的晶振
  319. uchar code cuzhi[]={
  320.   0xff,0xff,//占位
  321.   0xFC,0x8E,//中央C调1-7
  322.   0xFC,0xED,
  323.   0xFD,0x43,
  324.   0xFD,0x6A,
  325.   0xFD,0xB3,
  326.   0xFD,0xF3,
  327.   0xFE,0x2D,
  328.   0xFE,0x47, //高八度1-7   
  329.   0xFE,0x76,
  330.   0xFE,0xA1,
  331.   0xFE,0xC7,
  332.   0xFE,0xD9,
  333.   0xFE,0xF9,
  334.   0xFF,0x16
  335.   };
  336. uchar yinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0};//将节拍转换成灯亮的节奏
  337. void delay1(uint z); //延时1MS
  338. void delay(uint z); //延时165MS,即十六分音符
  339. void song();
  340. void beep();//蜂鸣器叫一声
  341. main()
  342. {
  343.         P1=shuzi0;
  344. EA=1;//开总中断
  345. EX0=1;//开外部中断0
  346. IT0=1;//外部中断0下降沿触发方式
  347. EX1=1;//开外部中断1
  348. IT1=1;//外部中断1下降沿触发方式
  349. TMOD=0x01;//定时器0工作在方式1
  350. TH0=0;
  351. TL0=0;
  352. ET0=1;
  353. while(1)
  354. {
  355.    
  356.   if(count2!=0)   
  357.   {
  358.    switch(count2)
  359.    {
  360.     case 1:
  361.      
  362.      {
  363.      
  364.            song();
  365.         
  366.      
  367.         break;
  368.      }
  369.     break;
  370.    
  371.    }
  372.   }
  373.   else
  374.   {
  375.    
  376.   }
  377. }

  378. }
  379. /*void key1() interrupt3
  380. {
  381.    EA=1;
  382.    EX0=1;
  383.    IT0=0;
  384.    
  385.    }
  386. */
  387. void int1() interrupt 2      //用于按键key2引起的中断
  388. {
  389. EA=0;//关总中断
  390. delay1(1);//去抖
  391. if(key2==0)
  392. {
  393.   TR0=1;
  394.   i=0;//从头开始唱
  395.   count2++;
  396.   if(count2==9)
  397.           count2=1;
  398. }
  399. EA=1;//开总中断
  400. }
  401. void timer0() interrupt 1  //用于产生各种音调
  402. {
  403. TH0=timeh;
  404. TL0=timel;
  405. fm=~fm;
  406. }
  407. void song()
  408. {
  409. uint temp;
  410. uchar jp;//jp是简谱
  411. int i=0;
  412. while(1)
  413. {
  414.   if(count2==1) //选曲
  415.   { P1=shuzi1;
  416.      if(key1==0)
  417.       while(1)
  418.       {
  419.          fm=0;
  420.          if(key1==1)
  421.          break;
  422.         }
  423.         temp=muqin[i];}
  424.   if(count2==2)
  425.   {P1=shuzi2;
  426.       if(key1==0)
  427.       while(1)
  428.       {
  429.          fm=0;
  430.          if(key1==1)
  431.          break;
  432.         }temp=jmszl[i];}
  433.   if(count2==3)
  434.   {P1=shuzi3;
  435.       if(key1==0)
  436.       while(1)
  437.       {
  438.          fm=0;
  439.          if(key1==1)
  440.          break;
  441.         }temp=mamahao[i];}
  442.   if(count2==4)
  443.   {P1=shuzi4;
  444.       if(key1==0)
  445.       while(1)
  446.       {
  447.          fm=0;
  448.          if(key1==1)
  449.          break;
  450.         }temp=exql[i];}
  451.   if(count2==5)
  452.   { P1=shuzi5; if(key1==0)
  453.       while(1)
  454.       {
  455.          fm=0;
  456.          if(key1==1)
  457.          break;
  458.         }temp=ganen[i];}
  459.   if(count2==6)
  460.   { P1=shuzi6;
  461.       if(key1==0)
  462.       while(1)
  463.       {
  464.          fm=0;
  465.          if(key1==1)
  466.          break;
  467.         }temp=tiger[i];}
  468.   if(count2==7)
  469.   {P1=shuzi7;
  470.       if(key1==0)
  471.       while(1)
  472.       {
  473.          fm=0;
  474.          if(key1==1)
  475.          break;
  476.         }temp=qizige[i];}
  477.   if(count2==8)
  478.   {P1=shuzi8;
  479.      if(key1==0)
  480.       while(1)
  481.       {
  482.          fm=0;
  483.          if(key1==1)
  484.          break;
  485.         } temp=qnzl[i];}
  486.   if(temp==0xff)
  487.    break;
  488.   
  489.   jp=temp/16; //取数的高4位
  490.          P0=yinyue[jp];
  491.   if(jp!=0)
  492.   {
  493.   timeh=cuzhi[jp*2];
  494.   timel=cuzhi[jp*2+1];
  495.   }
  496.   else
  497.   {
  498.   TR0=0;
  499.   fm=1;//关蜂鸣器
  500.   }
  501.   delay(temp%16); //取数的低4位
  502.   TR0=0;  //唱完一个音停10MS
  503.   fm=1;
  504.   delay1(10);
  505.   TR0=1;
  506.   i++;
  507. }
  508. TR0=0;
  509. fm=1;

  510. }
  511. void delay(uint z) //延时165MS,即十六分音符
  512. { uint x,y;
  513. for(x=z;x>0;x--)
  514.    for(y=19000;y>0;y--);
  515. }
  516. void delay1(uint z) //延时1MS
  517. { uint x,y;
  518. for(x=z;x>0;x--)
  519.    for(y=112;y>0;y--);
  520. }
  521. void beep() //蜂鸣器叫一声
  522. { uchar i;
  523. for(i=0;i<50;i++)
  524. { fm=~fm;
  525.   delay1(1);
  526. }
  527. fm=1;
  528. }
复制代码
全部资料51hei下载地址:
音乐盒带数码管.rar (32.91 KB, 下载次数: 160)
回复

使用道具 举报

ID:649321 发表于 2019-11-25 20:59 | 显示全部楼层
做的特别好
回复

使用道具 举报

ID:650865 发表于 2019-11-27 23:01 | 显示全部楼层
太牛了
回复

使用道具 举报

ID:737021 发表于 2020-4-24 15:40 | 显示全部楼层
为啥下载的那个打不开啊
回复

使用道具 举报

ID:777696 发表于 2020-6-12 22:27 | 显示全部楼层
想问一下能不能给一个dsn文件呀?
回复

使用道具 举报

ID:271479 发表于 2020-6-22 19:29 | 显示全部楼层
写的很好,想借鉴借鉴
回复

使用道具 举报

ID:114240 发表于 2020-7-8 15:48 | 显示全部楼层
里面只有仿真图,而且功能不对啊。
回复

使用道具 举报

ID:915851 发表于 2021-5-5 18:52 | 显示全部楼层
按键暂停的功能没得实现
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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