12.51单片机实现电子音乐盒

12.51单⽚机实现电⼦⾳乐盒
利⽤51单⽚机中断、定时器计数器的基础知识,实现简单的电⼦⾳乐盒。
htc a310
⽂章⽬录
题⽬重述
1.⽤定时器T0⽅式0产⽣频率为500Hz的⽅波,由P1.5输出驱动喇叭产⽣蜂鸣器的效果。
2.设实验连线如图所⽰,⽤定时器产⽣两种频率(500Hz及1000Hz)不断交替发声,由P1.5输出驱动喇叭产⽣警报声的效果。
3.设实验连线如图所⽰,⽤定时器T1⽅式1来产⽣歌谱中各⾳符对应频率的⽅波,由P1.5输出驱动喇叭;节拍控制可通过调⽤延时
程序次数来实现。
实验说明:
① 通过控制定时器的定时时间来产⽣不同频率的⽅法,驱动喇叭发出不同⾳阶的声⾳,再利⽤延时来控制发⾳时间的长短,即可控制
⾳调中的节拍。把乐谱中的⾳符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器中。由查表程序得到定时常数和延时常数,分别⽤以控制定时器产⽣⽅波的频率和发该频率⽅波的持续时间。当延时时间到,再查下⼀个⾳符的定时常数和延时常数。依次下去,就可⾃动演奏出悦⽿的乐曲。
② 蜂鸣器通过ULN2003驱动。
③ 乐曲“新年好”数据表格如下,三个字节为⼀组,其中前两个字节表⽰定时常数(16位计数器),⾼位在前,若定时常数为
00H,00H,表⽰休⽌符,若定时常数为0FFH,0FFH,表⽰结束,后⼀个字节表⽰延时常数(每个延时为200ms)。
0FCH,4AH,04H,0FCH,4AH,04H
0FCH,4AH,08H,0FBH,00H,08H
0FDH,08H,04H,0FDH,08H,04H
0FDH,08H,08H,0FCH,4AH,08H
0FCH,4AH,04H,0FDH,08H,04H
0FDH,80H,08H,0FDH,80H,08H
0FDH,30H,04H,0FDH,08H,04H
0FCH,0AEH,08H,00H,00H,08H
0FFH,0FFH
4.设实验连线如图及图所⽰,编程实现有外部中断时演奏乐曲“新年好”,有外部中断时演奏乐曲“⼩星星”。
问题分析以及求解思路
待完善(请耐⼼等待)
程序代码
问题1代码
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP BR1
MAIN:MOV TMOD,#10H      MOV TH1,#0FF H
MOV TL1,#38H
SETB EA
SETB ET1
SETB TR1
SJMP $
BR1: MOV TH1,#0FF H      MOV TL1,#38H
CPL P1.5
RETI
END
问题2代码
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP BR1
MAIN:MOV R1,#10H
MOV R2,#0F8H
MOV R3,#30H
MOV TMOD,R1
MOV TH1,R2
MOV TL1,R3
SETB EA
SETB ET1
SETB TR1
LCALL DELAY
MOV R1,#10H
MOV R2,#0F CH
MOV R3,#18H
LCALL DELAY
LJMP MAIN
BR1: MOV TH1,R2
MOV TL1,R3
CPL P1.5
RETI
DELAY: MOV R5,#2 DELAY1:MOV R6,#0FF H DELAY2:MOV R7,#0FF H        DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
END
问题3代码
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP BR1
MAIN:MOV R1,#10H
MOV R2,#0F8H
MOV R3,#30H
MOV DPTR,#TAB1
MOV R4,#00H精细雾化喷嘴
LLL: MOV A,R4
MOV B,#1
圆钢矫直机MOV TMOD,R1
MOVC A,@A+DPTR
MOV R2,A
MOV TH1,R2
INC R4
MOV A,R4
MOVC A,@A+DPTR
MOV R3,A
MOV TL1,R3
INC R4
MOV A,R4
MOVC A,@A+DPTR
MUL AB
MOV 30H,A
INC R4
SETB EA
SETB ET1
SETB TR1
CJNE R3,#00H,CLOSE
LCALL DELAY
XH:  CJNE R3,#0FF H,LLL
LJMP MAIN
CLOSE:CLR TR1
LCALL DELAY
SETB TR1
LJMP XH
BR1: MOV TH1,R2
MOV TL1,R3
CPL P1.5
RETI
DELAY: MOV R5,30H
DELAY1:MOV R6,#080H
cao20
DELAY2:MOV R7,#0FF H
DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
TAB1:DB    0F CH,4AH,04H,0F CH,4AH,04H  DB  0F CH,4AH,08H,0F BH,00H,08H
DB  0F DH,08H,04H,0F DH,08H,04H
DB  0F DH,08H,08H,0F CH,4AH,08H
DB  0F CH,4AH,04H,0F DH,08H,04H
DB  0F DH,80H,08H,0F DH,80H,08H
DB  0F DH,30H,04H,0F DH,08H,04H
DB  0F CH,0AEH,08H,00H,00H,08H
DB  0FF H,0FF H
END
问题4代码
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP BR1
LJMP BR1
MAIN:MOV R1,#10H
MOV R2,#0F8H
MOV R3,#30H
MOV DPTR,#TAB2
MOV R4,#00H
LLL: MOV A,R4
MOV B,#1
MOV TMOD,R1
MOVC A,@A+DPTR
MOV R2,A
MOV TH1,R2
INC R4
MOV A,R4
MOVC A,@A+DPTR
MOV R3,A
MOV TL1,R3
INC R4
圆钢加工
MOV A,R4
MOVC A,@A+DPTR
MUL AB
MOV 30H,A
INC R4
SETB EA
SETB ET1
SETB TR1
LCALL DELAY
LJMP LLL
BR1: MOV TH1,R2
MOV TL1,R3
CPL P1.5
RETI
DELAY: MOV R5,30H
电子定时器DELAY1:MOV R6,#080H
DELAY2:MOV R7,#0FF H
DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
TAB1:DB    0F CH,4AH,04H,0F CH,4AH,04H  DB  0F CH,4AH,08H,0F BH,00H,08H
DB  0F DH,08H,04H,0F DH,08H,04H
DB  0F DH,08H,08H,0F CH,4AH,08H
DB  0F CH,4AH,04H,0F DH,08H,04H
DB  0F DH,80H,08H,0F DH,80H,08H
DB  0F DH,30H,04H,0F DH,08H,04H
DB  0F CH,0AEH,08H,00H,00H,08H
DB  0FF H,0FF H
TAB2:DB  0F CH,55H,08H,0F CH,55H,08H      DB  0F DH,82H,08H,0F DH,82H,08H
DB  0F DH,0C8H,08H,0F DH,0C8H,08H
DB  0F DH,82H,08H,00H,00H,08H
DB  0F DH,34H,08H,0F DH,34H,08H
DB  0F DH,0AH,08H,0F DH,0AH,08H
DB  0F CH,0ADH,08H,0F CH,0ADH,08H
DB  0F CH,55H,08H,0FF H,0FF H,08H
END

本文发布于:2024-09-23 17:23:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/337208.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:常数   延时   驱动   喇叭   实现   频率   问题   节拍
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议