没有合适的资源?快使用搜索试试~ 我知道了~
最新电子音乐盒(单片机课程设计).doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 158 浏览量
2021-10-02
21:24:48
上传
评论
收藏 112KB DOC 举报
温馨提示
试读
20页
单片机技术
资源推荐
资源详情
资源评论
电子音乐盒
1、设计任务和要求...........................................1
2、总体设计.....................................................1
3、硬件设计.....................................................1
3.1 硬件电路...............................................................................................................................1
3.2 原理说明...............................................................................................................................2
4、软件设计.....................................................2
5、仿真、安装和调试........................................3
6、收获与体会.................................................4
参考文献..........................................................4
附件 1:元件清单..............................................5
附件 2:总电路图................................................7
附件 3:音乐程序..............................................8
音乐盒设计
1、设计任务和要求
(1)利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而
演乐曲(内存两首乐曲)。
(2)采用七段数码管显示当前播放的歌曲序号。
(3)可通过功能键选择乐曲,暂停,播放,上一曲,下一曲。
2、总体设计
(1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以
2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉
冲的 I/O 反相,然后重复计时此半周期时间再对 I/O 口反相,就可在 I/O 脚上得到
此频率的脉冲
(2)利用 8051 的内部定时器使其工作在计数器模式 MODE1 下,改变记数
值 TH0 及 TL0 以 产 生 不 同 频 率 的 方 法 。 例 如 频 率 为 523HZ, 其 周 期
T=1/523=1912 微秒,因此只要令计数器定时 956/1=956 在每记数 9 次时将
I/O 口反相,就可得到中音 D0(523HZ)。
记数脉冲值与频率的关系公式如下:
N=Fi/2/Fr N:记数值
Fi:内部计时一次为 1 微秒.故其频率为 1MHZ
Fr;要产生的频率
(3):起记数值的求法如下:
T=65536-N=65536-Fi/2/Fr
例如:设 K=65536,F=1000000=Fi=1MHZ,求低音 D0(523HZ),
高音的 D0(1046HZ)的记数值。
T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-
500000/Fr
低音 D0 的 T=65536-500000/262=63627
中音 D0 的 T=65536-500000/523=64580
低音 D0 的 T=65536-500000/1047=65059
3、硬件设计
3.1 硬件电路
本设计中用到 89C51 单片机,喇叭,七段显示数码管 LED。(硬件电路
原理图如图 1 所示)
3.2 原理说明
当键盘有键按下时,判断键值,启动计数器 T0,产生一定频率的脉冲,驱
动蜂鸣器,放出乐曲。同时启动定时器 T1,显示歌曲号。
(1)硬件电路中用 、 分别接 S1、S2 作为上、下一曲的功能键
(2)用 P1.0-P1.6 控制七段码 a,b,c,d,e,f。
(3)用 P2.0 口控制喇叭。
(4)电路为 12MHZ 晶振频率工作,起振电路中 C1,C2 均为 30pf。
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
U1
AT89C51
R1
1k
C1
30pF
C2
30pF
X1
CRYSTAL
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RN1
RX8
C3
10uF
R3
10k
R4
1k
VCC
LS1
SOUNDER
Q1
2N2905
R5
15
VCC
R6
5.5k
图 1 音乐盒原理图
4、软件设计
本程序可以实现课程设计的基本要求,并可以通过按键播放两首歌曲,程
序流程图如下:
5、仿真、安装和调试
按照上面设计的电路在 proteus 软件内画图, 打开单片机软件开发系统
Keil,选择 89c51 单片机,在其中编写程序,运行生成一个后缀名为 hex 的文件,
然后将该文件下载到 proteus 中的 AT89c51 单片机中进行仿真,观察实验现象。
仿真能实现播放音乐,按键选择曲目,暂停,播放功能。仿真成功后,安装好
实验板,然后将音乐程序下载到电路板内 ,观察结果。能实现播放音乐,按键换
曲等功能。
程序调试中出现的问题及解决的办法:
(1) 有时会出现程序一点错误也没有,但就是不能正常运行的现象,最
后我们发现是因为程序中有的指令书写得不规范导致的,例如有的 RET 返回指
令一定要按正确格式书写或在两行指令间最好不要留空行。
(2) 程序中的跳转指令的运用很重要,为保险起见,都用 LJMP,我们就
遇到过跳转指令用错程序无法正常运行的现象。当用 JNZ 指令时,跳转范围比
较少,这时要用一个标号中转。
(3) 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
(4) 编程过程中要注意加注释或分割线,否则,在程序过长时容易变得
开始
初始化
设置音节起始位置
设置节拍间距
读取音阶,音符
显示当前播放
歌曲序号
节拍结束
音乐结束
剩余19页未读,继续阅读
资源评论
zhangao_fengg
- 粉丝: 17
- 资源: 5万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功