基于51单片机的音乐盒设计

上传人:woxinch****an2018 文档编号:38997119 上传时间:2018-05-10 格式:DOC 页数:28 大小:1,018.82KB
返回 下载 相关 举报
基于51单片机的音乐盒设计_第1页
第1页 / 共28页
基于51单片机的音乐盒设计_第2页
第2页 / 共28页
基于51单片机的音乐盒设计_第3页
第3页 / 共28页
基于51单片机的音乐盒设计_第4页
第4页 / 共28页
基于51单片机的音乐盒设计_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《基于51单片机的音乐盒设计》由会员分享,可在线阅读,更多相关《基于51单片机的音乐盒设计(28页珍藏版)》请在金锄头文库上搜索。

1、成绩成绩课程设计:课程设计: 嵌入式系统应用嵌入式系统应用 题目名称:题目名称:基于基于 5151 单片机的音乐盒设计单片机的音乐盒设计 1 设计的任务设计的任务 (包含设计的内容和设计的目标)设计内容:设计内容: 本设计是一个基于 AT89C52 系列单片机的音乐盒,依据单片机技术原理, 通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。 该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器和点阵组成。 使用按键控制音乐盒,三个用来切换歌曲,一个用来暂停音乐和开启 LED 点阵,一个用来从暂停位置开始播放音乐。本音乐盒共有三首歌曲,点阵 式样有四种。播放歌曲时,蜂鸣器发出某个音

2、调。本设计利用 KEIL 编程软 件对音乐盒源程序进行编程并调试。设计目标:设计目标: 初 始: 点阵显示作者信息; 按键 1:播放歌曲 1; 按键 2:播放歌曲 2; 按键 3:播放歌曲 3; 按键 A:暂停播放,点阵显示当前歌曲的名字; 按键 B:从暂停位置继续播放。 2 2 设计的过程设计的过程2.1 基本结构基本结构1、总体设计框图AT89C52 单片机蜂鸣器点阵按键输入晶振复位电路2、AT89C52 介绍AT89S52 是一种低功耗、高性能 CMOS 8 位微控制器,具有 8K 在系统可编 程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51

3、 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程, 亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 在众多嵌入式控制应用系统中得到广泛应用。 AT89S52 具有以下标准功能: 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器 ,2 个数据指针,三个 16 位 定时器/计数器,一个 6 向 量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可 降至 0Hz 静态逻 辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定

4、时器/计数器、串口、中断继续工 作。掉电保护方式 下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中 断或硬件复位为止。 P0 口口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱 动 8 个 TTL 逻 辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部 程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下, P0 不具有内部上拉电阻。在 flash 编程时,P0 口也用来接收指令字节;在程序 校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口口:P1 口是一个具有内部上拉电阻的 8 位双向 I/

5、O 口,p1 输出缓冲 器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电 阻的原因,将输出电流(IIL) 。 此外,P1.0 和 P1.1 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和定时器/计数器 2 的触发输入(P1.1/T2EX) 。 在 flash 编程和校验时,P1 口接收低 8 位地址字节。 引脚号第二功能: P1.0 T2(定时器/计数器 T2 的外部计数输入) ,时钟输出 P1.1 T2EX(定时器/计数器 T2 的捕捉/重载触发信号 和方向控制) P1.

6、5 MOSI(在系统编程用) P1.6 MISO(在系统编程 用) P1.7 SCK(在系统编程用) P2 口口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以 作为输入 口使用。作为输入使用时,被外部拉低的引脚 由于内部电阻的原因,将输出电流(IIL) 。 在访问外部 程序存储器或用 16 位地址读取外部数据存储器(例如 执行 MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用 很强的内部上拉发送 1。在使用 8 位地址(如 MOVX RI)访问外

7、部数据存储 器时,P2 口输出 P2 锁存器的内容。 在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。 P3 口口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p3 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流(IIL) 。 P3 口亦作为 AT89S52 特殊功能(第二功能)使用, 如下表所示。 在 flash 编程和校验时,P3 口也接收一些控制信号。 引脚第二功能: P3.0 RXD(串行输入口) P3.

8、1 TXD(串行输出口) P3.2 INTO(外中断 0) P3.3 INT1(外中断 1) P3.4 TO(定时/计数器 0) P3.5 T1(定时/计数器 1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电 平将是单片机复位。 ALE/PROG:当访问外部程序存储器 或数据存储器时,ALE(地址锁存 允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡 频率的 1/6 输出固定的脉冲信号,

9、因此它可对外输出时钟或用于定时目的。要 注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 FLASH 存储器 编程期间,该引脚还用于输入编程脉冲(PROG) 。如有必要,可通过对特殊功 能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后, 只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高, 单片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器 的读选通信号,当 AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有 效,即输出

10、两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP:外部访问允许,欲使 CPU 仅访问外部程序存储器 (地址为 0000H-FFFFH) ,EA 端必须保持低电平(接地) 。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器的指令。FLASH 存储器编程时,该引脚加上+12V 的编程 允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。2.2 软件设计过程

11、软件设计过程包含软件设计思路,如果使用中断,说明中断类型等 在本程序中设置了两个标志count 和 jy_count,分别初始化为 0 和 0。 按键 1、2、3、A 使得 count 在 0 和、1、2、3 之间切换,jy_count 记录歌曲的 状态,能在暂停时播放歌曲的名字,同时在按键 B 返回时能知道 count 的值。 程序检测 count 的值,count 等于 1 时播放第一首歌曲,等于 2 时播放第二首, 等于 3 时播放第三首。另一方面根据 jy_count 的值来控制点阵显示歌曲名。1 1、音调、节拍以及编码的确定方法、音调、节拍以及编码的确定方法一般说来,单片机演奏音乐基

12、本都是单音频率,它不包含相应幅度的谐波 频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只 需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。1.11.1 音调的确定音调的确定不同音高的乐音是用 C、D、E、F、G、A、B 来表示,这 7 个字母就是音乐 的音名,它们一般依次唱成 DO、RE、MI、FA、SO、LA、SI,即唱成简谱的 1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐 音的发音,所以叫“音调” ,即 Tone。把 C、D、E、F、G、A、B 这一组音的距 离分成 12 个等份,每一个等份叫一个“半音” 。两个音之间

13、的距离有两个“半 音” ,就叫“全音” 。在钢琴等键盘乐器上,CD、DE、FG、GA、AB 两音之间隔着一个黑键,他们之间的距离就是全音;EF、BC 两音之间没有 黑键相隔,它们之间的距离就是半音。通常唱成 1、2、3、4、5、6、7 的音叫 自然音,那些在它们的左上角加上号或者 b 号的叫变化音。叫升记号,表 示把音在原来的基础上升高半音,b 叫降记音,表示在原来的基础上降低半音。 例如高音 DO 的频率(1046Hz)刚好是中音 DO 的频率(523Hz)的一倍,中音 DO 的频率(523Hz)刚好是低音 DO 频率(266 Hz)的一倍;同样的,高音 RE 的频率(1175Hz)刚好是中

14、音 RE 的频率(587Hz)的一倍,中音 RE 的频率 (587Hz)刚好是低音 RE 频率(294 Hz)的一倍。 1)要产生音频脉冲,只要算出某一音频的周期(1/频率) ,然后将此周期 除以 2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后 就将输出脉冲的 I/O 反相,然后重复计时此半周期时间再对 I/O 反相,就可在 I/O 脚上得到此频率的脉冲。 2)利用 AT89C51 的内部定时器使其工作在计数器模式 MODE1 下,改变计 数值 TH0 及 TL0 以产生不同频率的方法。 此外结束符和休止符可以分别用代码 00H 和 FFH 来表示,若查表结果为 00H,则表

15、示曲子终了;若查表结果为 FFH,则产生相应的停顿效果。 3)例如频率为 523Hz,其周期 T=1/523=1912us,因此只要令计数器计时 956us/1us=956,在每次技术 956 次时将 I/O 反相,就可得到中音 DO(523Hz) 。计数脉冲值与频率的关系公式如下: N=Fi2Fr N:计算值;Fi:内部计时一次为 1us,故其频率为 1MHz; 4) 其计数值的求法如下: T=65536-N=65536-Fi2Fr 例如:设 K=65536,F=1000000=Fi=1MHz,球低音 DO(261Hz) 。中音 DO(523Hz) 。高音的 DO(1046Hz)的计算值 T

16、=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr 低音 DO 的 T=65536-500000/262=63627 低音 DO 的 T=65536-500000/523=64580 低音 DO 的 T=65536-500000/1047=65059 5) C 调各音符频率与计数值 T 的对照表如表 4.1 所示。表 4.1 C 调各音符频率与计数值 T 的对照表 低音频率T参数中音频率T参数高音频率T参数 Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号