1、数字音乐盒的设计 目录 摘 要. 1 第一章 设计方案的对比. 2 第二章 总体方案设计. 3 2.1 原理简介 3 2.2 方案设计思想 . 3 第三章 方案实现. 4 3.1、音频脉冲的产生 . 4 3.2音乐节拍的生成. 5 3.3.建立音乐的步骤 5 第四章 硬件设计. 6 4.1 硬件电路 . 6 4.1.1、AT89C51 的工作特性 6 4.2 原理说明 . 7 4.3 电路各模块说明 7 4.3.1 键盘系统. 7 4.3.2 放大电路. 8 4.3.3 时钟电路. 9 4.3.4 复位电路. 9 5.3.5 显示电路 10 第五章 软件设计 11 5.1 主模块的设计 . 1
2、1 第六章 仿真、安装和调试 13 总结. 14 致谢. 15 参考文献. 15 附录. 16 附录一:音乐程序 . 16 附录二:基于单片机的数字音乐盒总电路图 . 33 数字音乐盒的设计 1 摘 要 本设计是基于单片机的数字音乐盒设计,由单片机 AT89C51 芯片和 LCD 显示 器为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。要求利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调并采用 LCD 显示信息,从 而演奏乐曲(最少三首乐曲,每首不少于 30 秒) ,开机时有英文欢迎提示字符, 播放时显示歌曲序号(或名称) ,可通过功能键选择乐曲,暂停,播放。 本设计采用
3、 4*4 键盘,用 Protel99 来画系统硬件图,采用汇编语言进行编 程,编程后利用 KEIL C51 来进行编译,再生成的 HEX 文件装入芯片中,采用 proteus 软件来仿真,检验功能得以正常实现。该音乐盒的设计可以通过按键选 择不同的曲目,播放和暂停,并通过 LCD 显示歌曲号及播放时间。 本设计键盘采用动态扫描方式。每次扫描一行键盘,送此行低电平,读输入 口的状态值,判断有没有键按下。若有键按下,根据读入口的值选择显示值并送 至显示值寄存单元,判断键值,启动计数器 T0,根据次值为偏移地址找到要选 择的音乐的代码的首地址, 根据代码产生一定频率的脉冲, 驱动蜂鸣器, 放出音。
4、同时启动定时器 T1,计算音乐的播放的时间。 关键词:数字音乐盒 AT89C51 LCD 显示器 Proteus 软件 4*4 键盘 动态扫描 KEIL C5 数字音乐盒的设计 2 第一章 设计方案的对比 方案一:本设计以 89C51 为核心,配合键盘系统,放大电路,时钟电路和 数码管显示电路实现音乐的演奏。 音乐盒设计采用独立的键盘做为音符的输入以 89C51 为核心。 本设计中用到了 89C51 单片机,4*4 矩阵式键盘,蜂鸣器,14 引脚的 LCD, 可以通过以下原理框图(图 1.1)来实现该音乐盒的设计。 方案二:该方案以 AT89S52 单片机为核心,主要设计模块包括数码管显示部
5、分,功能键盘部分,蜂鸣器发声部分,彩灯部分。数码管采用共阳极数码管,通 过单片机 P1 口控制,实现歌曲序号的显示;功能键盘采用 1*8 键盘按键开关, 通过单片机 P3 口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单 片机的 P2 口控制,实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色 长亮和闪烁效。 综上所述:由于方案一的琴键输入是通过独立式键盘来完成的,这样便于控 制且直观。 且本方案是采用我们所熟知的单片机类型和显示电路, 便于我们理解。 而方案二中其他电路部分与方案一相差不大,但系统实现比较困难。且主控芯片 采用的是我们少用的 AT89S51,所以我们选择方案一。 图
6、 1.1 系统结构框图 琴 键 电 路 放大 电路 P0.0 | P0.7 P3.7 时钟电路 复位电路 单片机 89C51 显示电路 数字音乐盒的设计 3 第二章 总体方案设计 2.1 原理简介 当键盘有键按下时,判断键值,启动计数器 T0,产生一定频率的脉冲,驱 动蜂鸣器,放出乐曲。同时启动定时器 T1,显示乐曲播放的时间,并驱动 LCD, 显示歌曲号。 2.2 方案设计思想 (1)要产生音频脉冲, 只要算出某一音频的周期(1/音频),然后将此周期除以 2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出 脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得 到此频率的脉冲 (2)利用 8951 的内部定时器使其工作在计数器模式 MODE1 下,改变记数值 TH0 及 TL0 以产生不同频率的方法。例如频率为 523HZ,其周期 T=1/523=1912 微 秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中 音 D0(523HZ)。 记数脉冲值与频率的关系公式如下: N=Fi/2/Fr N:记数值