当前位置:   article > 正文

5037-单片机喇叭播放乐曲(仿真+程序)_单片机歌曲程序大全

单片机歌曲程序大全

功能描述

1、51+Proteus8.10;

2、学习声音信号输出原理;

仿真设计

单片机管脚说明:

P0端口(P0.0-P0.7):P0口为一个8位漏极开路双向I/O口,每个引脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口,用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。P3口同时为闪烁编程和编程校验接收一些控制信号。

VCC(40):供电电压,其工作电压为5V。
GND(20):接地。

RST(9):复位输入。在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个引脚保持高电平,51芯片便循环复位。复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位操作不会对内部RAM有所影响。

ALE/PROG (30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,则置位无效。

PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。

XTAL1(19):来自反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2(18):来自反向振荡器的输出。

EA/VPP(31):当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V的编程电源(VPP)。

程序设计

  1. ORG 0000H
  2. LJMP START
  3. ORG 000BH
  4. INC 20H ;中断服务,中断计数器加1
  5. MOV TH0,#0D8H
  6. MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
  7. RETI
  8. START:
  9. MOV SP,#50H
  10. MOV TH0,#0FFH
  11. MOV TL0,#0FFH
  12. MOV TMOD,#01H
  13. MOV IE,#82H
  14. MUSIC0:
  15. NOP
  16. MOV DPTR,#DAT ;表头地址送DPTR
  17. MOV 20H,#00H ;中断计数器清0
  18. MOV B,#00H ;表序号清0
  19. MUSIC1:
  20. NOP
  21. CLR A
  22. MOVC A,@A+DPTR ;查表取代码
  23. JZ END0 ;是00H,则结束
  24. CJNE A,#0FFH,MUSIC5
  25. LJMP MUSIC3
  26. MUSIC5:
  27. NOP
  28. MOV R6,A
  29. INC DPTR
  30. MOV A,B
  31. MOVC A,@A+DPTR ;取节拍代码送R7
  32. MOV R7,A
  33. SETB TR0 ;启动计数
  34. MUSIC2:
  35. NOP
  36. CPL P1.2
  37. MOV A,R6
  38. MOV R3,A
  39. LCALL DEL
  40. MOV A,R7
  41. CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
  42. ;不等,则继续循环
  43. MOV 20H,#00H ;等于,则取下一代码
  44. INC DPTR
  45. ; INC B
  46. LJMP MUSIC1
  47. MUSIC3:
  48. NOP
  49. CLR TR0 ;休止100毫秒
  50. MOV R2,#0DH
  51. MUSIC4:
  52. NOP
  53. MOV R3,#0FFH
  54. LCALL DEL
  55. DJNZ R2,MUSIC4
  56. INC DPTR
  57. LJMP MUSIC1
  58. END0:
  59. NOP
  60. MOV R2,#64H ;歌曲结束,延时1秒后继续
  61. MUSIC6:
  62. MOV R3,#00H
  63. LCALL DEL
  64. DJNZ R2,MUSIC6
  65. LJMP MUSIC0
  66. DEL:
  67. NOP
  68. DEL3:
  69. MOV R4,#02H
  70. DEL4:
  71. NOP
  72. DJNZ R4,DEL4
  73. NOP
  74. DJNZ R3,DEL3
  75. RET
  76. NOP
  77. DAT:
  78. DB 18H, 30H, 1CH, 10H
  79. DB 20H, 40H, 1CH, 10H
  80. DB 18H, 10H, 20H, 10H
  81. DB 1CH, 10H, 18H, 40H
  82. DB 1CH, 20H, 20H, 20H
  83. DB 1CH, 20H, 18H, 20H
  84. DB 20H, 80H, 0FFH, 20H
  85. DB 30H, 1CH, 10H, 18H
  86. DB 20H, 15H, 20H, 1CH
  87. DB 20H, 20H, 20H, 26H
  88. DB 40H, 20H, 20H, 2BH
  89. DB 20H, 26H, 20H, 20H
  90. DB 20H, 30H, 80H, 0FFH
  91. DB 20H, 20H, 1CH, 10H
  92. DB 18H, 10H, 20H, 20H
  93. DB 26H, 20H, 2BH, 20H
  94. DB 30H, 20H, 2BH, 40H
  95. DB 20H, 20H, 1CH, 10H
  96. DB 18H, 10H, 20H, 20H
  97. DB 26H, 20H, 2BH, 20H
  98. DB 30H, 20H, 2BH, 40H
  99. DB 20H, 30H, 1CH, 10H
  100. DB 18H, 20H, 15H, 20H
  101. DB 1CH, 20H, 20H, 20H
  102. DB 26H, 40H, 20H, 20H
  103. DB 2BH, 20H, 26H, 20H
  104. DB 20H, 20H, 30H, 80H
  105. DB 20H, 30H, 1CH, 10H
  106. DB 20H, 10H, 1CH, 10H
  107. DB 20H, 20H, 26H, 20H
  108. DB 2BH, 20H, 30H, 20H
  109. DB 2BH, 40H, 20H, 15H
  110. DB 1FH, 05H, 20H, 10H
  111. DB 1CH, 10H, 20H, 20H
  112. DB 26H, 20H, 2BH, 20H
  113. DB 30H, 20H, 2BH, 40H
  114. DB 20H, 30H, 1CH, 10H
  115. DB 18H, 20H, 15H, 20H
  116. DB 1CH, 20H, 20H, 20H
  117. DB 26H, 40H, 20H, 20H
  118. DB 2BH, 20H, 26H, 20H
  119. DB 20H, 20H, 30H, 30H
  120. DB 20H, 30H, 1CH, 10H
  121. DB 18H, 40H, 1CH, 20H
  122. DB 20H, 20H, 26H, 40H
  123. DB 13H, 60H, 18H, 20H
  124. DB 15H, 40H, 13H, 40H
  125. DB 18H, 80H, 00H
  126. end

关注公众号

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/1007036
推荐阅读
相关标签