已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机技术单片机技术课程设计说明书课程设计说明书 音乐盒的设计 学 院: 电气与工程学院 学生姓名: 指导教师: 职称/学位 副教授 专 业: 电气工程及其自动化 班 级: 13 学 号: 1 完成时间: 2016 年 4 月 湖南工学院湖南工学院单片机技术单片机技术课程设计课题任务书课程设计课题任务书 学院:电气与信息工程学院 专业:电气工程及其自动化 指导教师学生姓名 课题名称音乐盒 内 容 及 任 务 一、设计任务 设计一个具有特定功能的音乐盒。 二、设计内容 1、音乐盒的硬件系统 (1)、单片机最小系统模块 (2) 、供电模块 (3) 、显示模块 (4) 、键盘模块 (5) 、蜂鸣电路 (6) 、下载电路 (7) 、复位电路 (8) 、晶振电路 2、音乐盒的软件系统 (1) 、系统监控程序模块 (2) 、显示程序模块 (3) 、键盘程序模块 (4) 、音乐选择和产生模块 三、设计要求 音乐盒可以通过键盘选择曲目、切换曲目,能够准确的播放音乐,具有显示器 显示曲目编号功能。 主 要 参 考 资 料 1 马忠梅.单片机 C 程序设计M,北京:北京航空航天大学出版社,2007,参考本书的 P127-P130。 2 李广弟.单片机基础M,北京:北京航空航天大学出版社,2007,参考本书的 P99- P117。 3 曹巧媛.单片机原理及应用M,北京:电子工业出版社,1997.7.参考本书的 P126- P150。 4 张洪润.兰清华,单片机应用技术教程M,北京:清华大学出版社,1997.11.参考 本书的 P50-P99 教 研 室 意 见 教研室主任:(签字) 年 月 日 摘 要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要 求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传 统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。这次设计 是一个基于 AT89S52 系列单片机的音乐盒,依据单片机技术原理,通过硬件电 路制作以及软件编译,设计制作出一个多功能音乐盒。音乐盒主要由按键电路、 复位电路、时钟电路以及蜂鸣器组成。使用三个按键控制音乐盒,一个按键用 来控制歌曲的播放、暂停,另一个用来控制播放上一曲,第三用来控制播放下 一曲,音乐盒共有三首歌曲。播放歌曲时,相应歌曲对应相应数码管上歌曲次 序的显示。本设计利用 KEIL 编程软件对音乐盒源程序进行编程并调试。随后依 照仿真布局在 Altium Designer 软件中绘制 PCB 单面板,检查无误后制成实物单 面覆铜板。 关键词:音乐盒;多功能;AT89S52 ; I 目 录 1 设计课题总体方案介绍.1 1.1 设计任务 .1 1.2 功能要求原理图 .1 1.3 音乐盒总体方案介绍及工作原理说明 .1 1.3.1 音乐盒总体方案设计1 1.3.2 音乐盒工作原理说明1 2 音乐盒硬件系统设计.2 2.1 核心器件 AT89S52 介绍 .2 2.1.1 主要特性3 2.1.2 管脚说明3 2.2 硬件电路介绍 .5 2.2.1 键盘电路5 2.2.2 复位电路5 2.2.3 蜂鸣电路6 2.2.4 数码管显示电路6 2.2.5 下载电路7 2.2.6 晶振电路7 3 音乐盒软件系统的设计.8 3.1 使用单片机资源情况 .8 3.2 总体流程图 .8 3.3 单片机音阶代码实现 .8 3.4 音乐代码实现 11 3.4.1 音乐代码库建立的方法.11 3.4.2 选曲.11 3.4.3 歌曲的设计.11 3.5 键控子程序 15 3.5.1 播放/暂停子程序15 3.5.2 曲目选择子程序.16 4 设计体会及难点18 II 4.1 设计体会 18 4.2 设计难点 18 结 束 语.19 参考文献.20 致谢.21 附录.22 附录 A 元器件清单22 附录 B 实物图23 附录 C 软件系统程序清单24 0 1 设计课题总体方案介绍 1.1 设计任务 设计一个具有特定功能的音乐盒。 1.2 功能要求原理图 设有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控 制单片机,播放所要求的音乐,同时通过 LED 数码管,用来显示所选曲目(只 显示数字) 。 1.3 音乐盒总体方案介绍及工作原理说明 1.3.1 音乐盒总体方案设计 设计是以 AT89S52 芯片的电路为基础,外部加上放音设备,以此来实现音 乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏 出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存 入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。 该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和 音乐爱好者提供了很好的借鉴。其总设计框图如图 1 所示 图1 系统总体设计框图 1.3.2 音乐盒工作原理说明 当该音乐盒上电后,单片机向数码管输出显示“P.” ,当 S1 键按下去之后 单片机开始播放曲目,曲目可以通过按键进行切换选择,切换曲目是,数码管 会根据曲目的编号不同显示不同的数字。具体在后面会有详细的说明。 1 2 音乐盒硬件系统设计 2.1 核心器件 AT89S52 介绍 AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可 编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程, 亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方 案。 AT89S52 具有以下标准功能: 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻 辑操作,支持 2 种软件可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工 作。掉电保 护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一 个中断或硬件复位为止。其引脚排列如图 2 所示 图2 引脚排列图 2 2.1.1 主要特性 (1)、与 MCS-51 单片机产品兼容; (2)、8K 字节在系统可编程 Flash 存储器; (3)、1000 次擦写周期; (4)、全静态操作:0Hz-33MHz; (5)、三级加密程序存储器; (6)、32 个可编程 I/O 口线; (7)、三个 16 位定时器/计数器; (8)、8 个中断源; (9)、全双工 UART 串行通道; (10)、低功耗空闲和掉电模式; (11)、掉电后中断可唤醒; (12)、看门狗定时器; (13)、双数据指针; (14)、掉电标识符。 2.1.2 管脚说明 VCC:供电电压。 GND:接地。 P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻 辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。 当访问外部程 序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下, P0 不具有内部上拉电阻。 在 flash 编程时,P0 口也用来接收指令字节;在程序 校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个 TTL 逻辑电平。此外,P1.0 和 P1.1 分别作定时器/计数器 2 的外部计数 输入(P1.0/T2)和定时器/计数器 2 的触发输入(P1.1/T2EX) 。 在 flash 编 程和校验时,P1 口接收低 8 位地址字节。 引脚号第二功能: P1.0 T2(定时器/计数器 T2 的外部计数输入) ,时钟输出 P1.1 T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时 3 可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原 因,将输出电流(IIL) 。 在访问外部程序存储器或用 16 位地址读取外部数据 存储器(例如执行 MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中, P2 口使用很强的内部上拉发送 1。在使用 8 位地址(如 MOVX RI)访问外部 数据存储器时,P2 口输出 P2 锁存器的内容。 在 flash 编程和校验时,P2 口也 接收高 8 位地址字节和一些控制信号。 P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p3 输出缓冲器能驱动 4 个 TTL 逻辑电平。 P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如下 表所示。 在 flash 编程和校验时,P3 口也接收一些控制信号。 端口引脚第二功能: P3.0 RXD(串行输入口) P3.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 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的 是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 FLASH 存储器编程期 间,该引脚还用于输入编程脉冲(PROG) 。如有必要,可通过对特殊功能寄存器 (SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一 条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机执 行外部程序时,应设置 ALE 禁止位无效。 PSEN 程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效, 即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP 外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为 0000H- FFFFH) ,EA 端必须保持低电平(接地) 。需注意的是:如果加密位 LB1 被编程, 复位时内部会锁存 EA 端状态。如 EA 端为高电平(接 Vcc 端) ,CPU 则执行内部 4 程序存储器的指令。FLASH 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 2.2 硬件电路的设计 2.2.1 键盘电路 键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是 人工干预单片机的主要手段。键盘实质上是一级按键开关的集合。通常,键盘 开关利用了机械触点的合、断作用。键的闭合与否,反映在行线输出电压上就 呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对 行线电平高低状态的检测,便可确认按键按下与否。为了确保 CPU 对一次按键 动作只确认一次按键有效,必须消除抖动的影响。按键输入电路由 3 个独立键 盘组成,一个按键用来控制歌曲的播放、暂停,另一个用来控制播放上一曲, 第三用来控制播放下一曲。键盘电路如图 3 所示。 图3键盘电路 2.2.2 复位电路 在本次设计中采用按键复位电路,此电路既可实现按键复位,还可以实现 上电复位。其中上电复位是通过电容充电来实现的。另外在单片机运行期间, 还可以利用按键完成复位操作。按键复位则是通过使复位端经电阻与 Vcc 电源 接通来实现的。单片机的复位操作使单片机进入初始化状态。 本次课程设计采用了上电按钮电平复位电路,如图 4 所示。 5 图 4 复位电路 2.2.3 蜂鸣电路 整个输出部分由一个 1k 电阻、一个 PNP 三极管和一个蜂鸣器组成,原理图 如图 5 所示。 图 5 蜂鸣电路 2.2.4 数码管显示电路 通过数码管显示可以直观的看到相应歌曲的编号。如图 6 所示。 图 6 数码管电路 6 2.2.5 下载电路 通过下载电路连接电脑,给 AT89S52 下载程序。如图 8 所示。 图 8 下载电路 2.2.6 晶振电路 如图 9 所示,晶振电路由两个 33pF 的电容和一个 12M 的晶体振荡器组成。 图中第一条输入线与 AT89S52 单片机的 XT1 相连接,图中第二条输入线与单片 机的 XT2 相连接。晶振电路为单片机提供时间信号,为音乐的播放节拍控制提 供基本时间单位。 图 9 晶振电路 7 3 音乐盒软件系统的设计 3.1 使用单片机资源情况 P3.1 口作为音频输出端口,又 P0 口数码管显示,因为歌曲只有三首,只需 要一个数码管显示即可,即为定义 P2 口#01H 即可一位数码管显示。P3.2 和 P3.3 口用来切换歌曲曲目,P3.5 口作为开始和暂停。 3.2 总体流程图 主程序实现对单片机进行初始化后,进入曲目识别子程序,进行歌曲曲目 判断。确定歌曲曲目后,数码管再进行显示。然后,子程序对是否播放进行循 环判断,得到播放中断的指令后再进行播放。 执行播放后,关闭数码管显示并调用查表子程序进行播放音乐。在播放音 乐的过程中,查表子程序循环判断音乐是否结束。当音乐结束时,程序跳转回 曲目识别子程序。总流程图如图 10 所示。 3.3 单片机音阶代码实现 音调的高低用音阶表示,不同的音阶对应不同的频率。因此,不同频率的 方波就可以产生音阶,由于频率的倒数是周期,因此可由单片机中的定时控制 方波周期,当定时器计数溢出时产生中断。音阶与频率的关系及如下表 1 所示, C 调各音符频率与计数值 T 的对照如表 2 所示,节拍码对照如表 3 所示,各调 节拍的时间设定如表 4 所示 8 图10 系统总体流程图 表 1 音阶与频率的关系 音 阶 频率 (Hz) 定时器初 值 音 阶 频率 (Hz) 定时器初 值 音 阶 频率 (Hz) 定时器初 值 1 2 3 4 5 6 7 0 131 147 165 175 196 220 247 0 0F85EH 0F933H 0F9F0H 0FA49H 0FAE6H 0FB74H, 0FBF4H 0100H 1 2 3 4 5 6 7 0 262 294 330 349 392 440 494 0 0FC2FH 0FC99H 0FCF8H 0FD22H 0FD73H 0FDBAH 0FDFAH 0100H 1 2 3 4 5 6 7 0 523 587 659 698 784 880 988 0 0FE17H 0FE4CH 0FE7CH 0FE91H 0FEB9H 0FEDDH 0FEFDH 0100H 低八度音中音高八度音 9 表 2 C 调各音符频率与计数值 T 的对照表 音 符频率(Hz)简谱码(T 值) 音 符频率(Hz)简谱码(T 值) 低 1DO 26263628#4FA#74064860 #1DO#27763731 中 5SO 78464898 低 2RE 29463835#5SO#83164923 #2RE#31163928 中 6LA 88064968 低 3M 33064103#693264994 低 4FA 34964204 中 7SI 98865030 #4FA#37064260 高 1DO 104665058 低 5SO 39264261#1DO#110965085 #5SO#41564400 高 2RE 117565110 低 6LA 44064443#2RE#124565124 #646664524 高 3M 131865157 低 7SI 49464524 高 4FA 139765178 中 1DO 52364331#4FA#148065189 表 3 节拍码对照表 1/4 节拍1/8 节拍 节拍码节拍数节拍码 节拍数 1 1/4 拍 1 1/8 拍 2 2/4 拍 2 1/4 拍 3 3/4 拍 3 3/8 拍 4 1 拍 4 1/2 拍 5 1 又 1/4 拍 5 5/8 拍 6 1 又 1/2 拍 6 3/4 拍 7 1 又 3/4 拍 7 7/8 拍 8 2 拍 8 1 拍 9 2 又 1/4 拍 9 1 又 1/8 拍 A 2 又 1/2 拍 A 1 又 1/4 拍 B 2 又 3/4 拍 B 1 又 3/8 拍 C 3 拍 C 1 又 1/2 拍 D 3 又 1/4 拍 D 1 又 5/8 拍 E 3 又 1/2 拍 E 1 又 3/4 拍 F 3 又 3/4 拍 F 1 又 7/8 拍 表 4 各调节拍的时间设定表 1/4 节拍1/8 节拍 曲调值 DELAY 曲调值 DELAY 调 4/4125 毫秒调 4/462 毫秒 调 3/4187 毫秒调 3/494 毫秒 调 2/4250 毫秒调 2/4125 毫秒 10 3.4 音乐代码实现 3.4.1 音乐代码库建立的方法 先找出乐曲的最低音和最高音范围,然后确定音符表 T 的顺序,然后把 T 值表建立在 TABLE1,构成发音符的计数值放在“TABLE”,再把简谱码(音符) 为高位,节拍为(节拍数)为低 4 位,音符节拍码放在程序的“TABLE”处,最 后音符节拍码 00H 为音乐结束标记 3.4.2 选曲 在一个程序中,需要演奏两首或两首以上的歌曲时,音乐代码库的建立有 两种方法:(1)将每首歌曲建立相互独立的音符表 T 和发音符计数值 TABLE。(2)在建立公用音符表 T 后,再写每首歌的发音计数值 TABLE 中的代 码,不管采用那种方法,每首歌曲结束时,在 TABLE 中均需加上音乐结束符 00H。 3.4.3 歌曲的设计 下面以歌曲军港之夜的设计为例,讲述歌曲在单片机中的实现。曲谱 如下图所示。 简谱对应的简谱码、T 值、节拍数如表 5 所示。 表 5 乐谱对应的简谱码、T 值、节拍数 简谱发音简谱码T 值 节拍码节拍数 低 7低音 Si 164524 11/4 1 中音 Do 264580 22/4 2 中音 Re 364684 33/4 3 中音 Mi 464777 41 4 中音 Fa 564820 51+1/4 5 中音 So 664898 61+1/2 11 续表 5 第一首歌曲军港之夜代码实现如下所示。 SONG1: DB 04H ;1=C 2/4 军港之夜 DB 32H,54H,52H,32H,54H,52H,32H,12H,12H,32H,32H,54H,52H,32H,52H,52H,32H,3 2H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H DB 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32 H,52H,54H,32H,34H,31H,21H,12H,24H,24H DB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,0D1H,0E1H,0D4H,0D2 H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4H DB 22H,0D1H,11H,0E2H,0D2H,0C4H,0C4H,32H,52H,52H,32H,62H,5H,61H,54H,31H,5 2H,31H,12H,31H,31H,32H,54H,52H,32H,52H,52H,32H DB 32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52,32H,62H,5 1H,61H,54H,31H,52H,31H,12H,32H,12H,32H,32H,54H,52H DB 32H,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H DB 32H,52H,52H,32H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H DB 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32 H,52H,54H,32H,34H,31H,21H,12H,24H,24H DB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,0D1H,0E1H,0D4H,0D2 H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4H DB 22H,0D1H,11H,0E2H,0D2H,0C4H,0C4H,32H,52H,52H,32H,62H,5H,61H,54H,31H,5 6 中音 La 764968 82 简谱发音简谱码T 值 节拍码节拍数 7 中音 Ti 865030 A2+1/2 高 1高音 Do 965058 C3 低 6低音 La A64400 F3+3/4 低 5低音 So B64260 12 2H,31H,12H,31H,31H,32H,54H,52H,32H,52H,52H,32H DB 32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52,32H,62H,5 1H,61H,54H,31H,52H,31H,12H,32H,12H,32H,32H,54H,52H DB 32H,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H DB 32H,52H,52H,32H,32H,21H,31H,24H,74H,0D2H,0C2H,14H,14H,14H,14H DB 00H TABLE2:DW 63835,64021,64103,64260,64400,64524,64580,64684,64777 DW 64820,64898,64968,65030,65058,65110,65157,65178 第二首歌曲死了都要爱代码实现如下。 SONG2: DB 02H;1=C 4/4 死了都要爱 DB 04H,94H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H, 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H DB 04H,0C2H,0C2H,0D4H,0C2H,0D2H,0D8H,0D4H,0D2H,92H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H, 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,0E8H,0D8H DB 0C8H,0C8H,08H,08H,78H,28H,38H,34H,24H DB 24H,64H,64H,24H,64H,72H,72H,78H,58H,54H,44H,38H,34H,14H,34H,84H,74H,7 4H,62H,62H,0D8H,78H,28H,38H,34H,24H DB 24H,64H,64H,24H,64H,72H,72H,72H,94H,92H,94H,0A4H,58H,58H,54H,44H ;#音不准 DB 58H,58H,58H,58H,0A8H,0A8H,0A4H,0B4H,0A4H,84H,0A4H,94H,98H,98H,08H DB 84H,82H,82H,82H,82H,94H,0A2H,94H,92H,82H,74H,72H,74H,72H,72H,72H,72H, 92H,91H,91H,94H,54H,74H,94H ;* DB 0A8H,0A4H,0A2H,0B2H,0C4H,0B4H,0A4H,0A4H,0A4H,92H,92H,98H,82H,72H,78H, 13 04H,0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H DB 04H,0C4H,0D4H,0C4H,0C8H,04H,94H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H, 02 DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0 D4H,0D2H,92H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H, 02 DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0 D4H,0D2H,92H ;* DB 0A4H,0A2H,0B2H,0B3H,0C4H,0E8H,0D8H DB 0C8H,0C8H,0C8H,08H DB 00H 第三首歌曲中华人民共和国国歌代码实现如下。 ONG3: DB 03H ;G=2/4 中华人民共和国国歌 DB 04H,04H,0C2H,14H,12H,12H,12H,11H,11H,0C2H,0D1H,0E1H,14H,14H,02H,32H,1 2H,21H,31H,52H,51H,51H,54H DB 32H,31H,31H,12H,11H,31H,52H,51H,31H,24H,24H,24H,64H,54H,24H,34H,52H,3 4H,52H,32H,21H,31H,12H,11H,21H,34H,04H DB 52H,51H,0D1H,12H,12H,32H,31H,31H,52H,51H,51H,22H,22H,22H,0D2H,0D1H,0D 1H,24H,22H,0C2H,14H,12H,12H,34H,32H,32H,54H,54H,54H,54H DB 12H,11H,31H,52H,51H,51H,64H,54H,32H,31H,11H,52H,52H,52H,32H,02H,12H,0 2H,0C4H,14H DB 0A2H,0A1H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H,0C4H,14H,0C4H,14H, 14H,04H 14 DB 04H,04H,04H,04H DB 00H END; 3.5 键控子程序 键控子程序主要由播放/暂停子程序、上一曲子程序、下一曲子程序组成, 分别由一个计数器中断和两个外部中断实现。 3.5.1 播放/暂停子程序 播放/暂停在 P3.5 口实现,程序利用内部中断 T0 口。将 T0 口设为计数中 断并工作在方式 2 下。标识符初值赋值为 R1=00H,计数初值设为 TH0=0FFH,TL0=0FFH。当按键第一次产生中断信号时,播放/暂停子程序改变标 志符 R1,将其赋值为 01H。此时播放器由暂停状态进入播放状态。当按键第二 次产生中断信号时,播放/暂停子程序判断 R1 是否为 02H 后,将 R1 再次赋值为 00H。此时,播放器由播放状态进入暂停状态。具体流程如图 11 所示。 图 11 播放/暂停子程序流程图 具体实现代码如下所示, POP DPL ;恢复现场 POP DPH 15 POP ACC SETB EA RETI ;中断返回 START_PAUSE:CPL F0 ;开始/暂停中断处理程序,将标置位取 反 JB F0, RETURN ;为 1 返回 SETB TR0 ;为 0 则播放 RETURN: RETI ;中断返回 DELAY: MOV 27H, 26H ;音符演奏时间控制 D2: MOV 28H, #125 D3: MOV 29H, #248 DJNZ 29H, $ DJNZ 28H, D3 DJNZ 27H, D2 DJNZ R2, DELAY RET 3.5.2 曲目选择子程序 曲目选择子程序分为上一曲子程序和下一曲子程序。上一曲和下一曲功能 实现方式类似,分别由外部中断和外部中断。下面以实现上一曲功能 0INT1INT 为例:首先设置标识符 R7 初始值为 00H。当按键产生中断信号,上一曲中断子 程序改变标识符 R7 的值为 01H 并改变曲目 R0 的值。播放子程序判断出标识符 R7 改变后,先将 R7 赋值为 00H,然后跳转到曲目识别子程序,具体流程图如图 5 所示。 具体代码实现如下所示, POP DPL;恢复现场 POP DPH POP ACC SETB EA RETI ;中断返回 LAST_SONG:PUSH ACC ;上一曲中断程序处理开始,保护现 场 PUSH DPH PUSH DPL CLR EA ;关中断 MOV A, 22H ;曲目数送 A 16 CJNE A, #1, QQ ;是否是第一首 MOV 22H, #N ;是第一首歌曲 MOV B, #4 ;将 R7 指向最后一首歌曲 MOV A, #N-1 MUL AB MOV R7, A AJMP BACK2 ;处理结束 QQ: DEC 22H MOV A, R7;R7 减 4 SUBB A, #4 MOV R7, A BACK2:MOV R4, #00H MOV A, 22H MOV DPTR, #OUT_TAB MOVC A, A+DPTR MOV OUT_NUM,A ;数码管显视相应歌曲的编号 图 5 切歌流程图 17 4 设计体会、设计的难点 4.1 设计体会 在这次设计中学会了如何进行音符转换,虽然在学习过程中困难重重。但 是在这段时间的研究和学习中,也在在编程过程中也提升了自己的编程能力和 差错能力。 4.2 设计难点 在本次设计过程中,主要克服的难点在于如何对于音符进行转换为汇编语 言,还有相应编号的曲目要在数码管进行显示。 18 结 束 语 通过本次课程设计音乐盒的设计,对一个系统进行了模块化的设计。 学会了芯片的运行过程,以及硬件软件的设计。然后首次接触到音符的转换, 通过查阅数据手册以及向同学询问使自己在短时间内了解了其编程方法。通过 整个系统的设计,学到了很多相关方面的知识。同时在编程过程中也发现了自 己的不足之处,对单片机不再有片面的认识,从中也了解到了编程的乐趣所在, 经过一次次的困难,然后经过自己的努力和同学老师的帮助下一次次克服困难, 其中有汗水,也有有难过,自己也坚持了下来,这也就是学习的乐趣,希望以 后能在单片机方面更加努力,在这方面能有所作为。 19 参考文献 1 马忠梅.单片机 C 程序设计M,北京:北京航空航天大学出版社,2007,参考 本书的 P127-P130。 2 李广弟.单片机基础M,北京:北京航空航天大学出版社,2007,参考本书 的 P99-P117。 3 曹巧媛.单片机原理及应用M,北京:电子工业出版社,1997.7.参考本书 的 P126-P150。 4 张洪润.兰清华,单片机应用技术教程M,北京:清华大学出版社, 1997.11.参考本书的 P50-P99。 5 彭楚武,张志文.微型计算机原理及其应用M.湖南大学出版社 2009.294- 302。 6 李光飞.单片机课程设计实例指导M.北京:北京航空航天大学出版社, 2004.20-52。 7 康华光.电子技术基础M. 北京:高等教育出版社 2006.485-504。 8 李勋等.单片机实用教程 M.北京:北京航空航天大学出版社 2000.26- 43。 9 何立民.单片机应用技术选编M.北京. 北京航空航天大学出版社 1997.32-59。 10郭天祥.51 单片机 C 语言教程M.北京:电子工业出版社,2009.56-86。 20 致 谢 感谢我的同学和家人,谢谢你们一直以来对我的帮助和支持,让我感受到 了同学的友谊,也让我感受到了家的温暖。没有你们的帮助和支持,我无法如 此顺利的完成设计。 “千里之行始于足下” ,通过这次课程设计,我深深体会到这句话的真正含 义。今天我能够脚踏实地,一步一个脚印的认真完成课程设计,就是为了明天 能够在人才济济的社会中跻身于前。由于本人的设计能力有限,在设计过程中 难免出现设计不当的地方,考虑其在生活生产中的实用性,恳请老师和同学们 提出批评与指正,本人将深表感谢。 在此真心祝福老师身体健康!工作顺利! 21 附附 录录 附录 A 元器件清单 表 6 元器件清单 元器件及材料名称规格数目(个)备注 AT89S52 加底座 40P1 四位一体共阳数码管加底 座 40P2 74HC573 锁存器 1 晶振 12MHz1 发光二极管 11 单排插 40 脚 1 三极管 90121 蜂鸣器 1 小按键 10 下载口座子十芯 1 六脚按键开关 1 Usb 电源线加接口 1 电阻 2001 电阻 1K4 电阻 47010 电解电容 22uf2 瓷片电容 33pf2 排阻 10k4 短路冒 3 杜邦线 8P 1 PCB 板子 2 电解电容 2200uf2 电解电容 470uf2 电解电容 0.1uf2 变压器 12V1 整流桥 2W101 稳压芯片 5V2 稳压芯片 12V2 22 附录 B 实物图 23 附录 C 软件系统程序清单 /* 课题名称:音乐盒的设计(基于单片机 AT89S52) 作者: 指导老师: 完成时间:2015 年 7 月 功能 (1) 、该音乐盒可以通过键盘选择曲目、切换曲目; (2)、能够准确的播放音乐; (3)、具有显示器显示曲目编号功能; 硬件说明:AT89S52 单片机,蜂鸣器,供电模块,显示模块,键盘模块, 1200HZ 晶振,下载模块,复位模块。 /*/ OUT BIT P3.1 ;定义音频输出端口,p2.0 N EQU 3 ;歌曲总数 OUT NUM EQU P0 ;数码管显视当前所放歌曲曲数 ORG 0000H AJMP MAIN ORG 0003H AJMP LAST_SONG ;外部中断 0 用于接上一曲歌按键 ORG 000BH AJMP F_T0 ;定时器 0 用于定时,作音符发生器用 ORG 0013H q4:AJMP NEXT_SONG ;外部中断 1 接下一曲歌按键 ORG 001BH AJMP START_PAUSE ;定时器 1 用计数,这里用作中断,接 开始/暂停键,初值为 0ffH,方式 2 ORG 0030H MAIN:MOV SP , #60H MOV DPTR , #TABLE ;DPRT 指向每首歌曲的入口地址的地 址 MOV R0 , #30H ;R0 中存入数据 30H,这里在以 30H 开始的单元存放每首歌曲的入口地 址,其中 30H,31H 存放 MOV P2 , #01H ;歌曲的节拍入口地址,32H,33H 存 放 24 歌曲音符入口地址,每首歌占用四个 存储存单元。 MOV R5 , #00H ;R5 中存放表 TABLE 中正在执行操作的 序号 MOV R6 , #1 ;R6 存放正在设置入口信息的歌曲数 SET_TAB:MOV A, R5 ;设置每首歌曲的入口信息,存放在以 30H 开始的存储单元中。 MOVC A , A+DPTR MOV R0, A INC R5 INC R0 MOV A , R5 MOVC A , A+DPTR MOV R0, A INC R5 INC R0 MOV A, R5 MOVC A, A+DPTR MOV R0, A INC R0 INC R5 MOV A, R5 MOVC A , A+DPTR MOV R0 ,A INC R0 INC R5 INC R6 ;设置完一首歌曲后,歌曲数加一 CJNE R6, #N+1, SET_TAB 是否设置完,没有便继续,否则进行 下面的操作 ;* 对中断,计数器的相关参数进行设置 MOV TMOD, #61H ;计数器 0 工作方式 1,计数器 1 工 作方式 2 MOV TH1, #0FFH ;给计数器 1 置初值 0FFH,又由于是 工作方式 2,所以 25 MOV TL1, #0FFH;计数器计数为 1,相当于一外部中 断。 SETB ET1 ;允许计数器 1 中断 SETB ET0 ;允许计数器具 0 中断 CLR PT0 ;计数器 0 为低优先级 SETB PT1 ;计数器 1 为高优先级 SETB IT0 ;外部中断 0 为跳沿触发 SETB PX0 ;高优先级 SETB IT1 ;外部中断 1 为跳沿触发 SETB PX1 ;高优先级 SETB EX1 ;允许外部中断 1 中断 SETB EX0 ;允许外部中断定 0 中断 SETB EA ;开中断总开关 SETB TR1 ;定时器 1 开始工作,作中断用 SETB OUT ;音频输出端口初始化 ;* ;设置结束 CLR F0 ;设置 F0=0,用来作暂停/播放的标置 位用 MOV 22H, #01H ;22H 单元中存放正在播放的歌曲编号 MOV DPTR, #OUT_TAB ;将正在播放的歌曲编号送数码管显视 MOV A, 22H MOVC A, A+DPTR MOV OUT_NUM, A MOV R7, #00H ;R7 中存放歌曲总信息的入口地址 START0:MOV R4, #00H ;R4 存放当前正在播放歌曲的第几个节 拍数 MOV R0, #30H ;30H 开始的单元中存放歌曲的入口信 息 MOV A, R7 ;将歌曲的节拍表的入口地址送到 DPTR ADD A, R0 MOV R0, A MOV DPH, R0 INC R0 MOV DPL, R0 26 INC R0 MOV A, R4 INC R4 MOVC A, A+DPTR ;取出第一节拍数,其实第一个节拍不 是歌曲的第一个节拍,而是表示几分 音符 ;* MOV 26H, A ;将取出的音符数+节拍数保存在职 26H 单元中 NEXT: MOV R0, #30H ;开始取出歌曲的第一个数据 MOV A, R7 ADD A, R0 MOV R0, A MOV DPH, R0 INC R0 MOV DPL, R0 INC R0 MOV A, R4 INC R4 MOVC A, A+DPTR ;放在 A 中 ;* JZ END0 ;若为 0,则表示为休止符,不唱, 本次音符不唱, MOV R1, A ;不为 0,取出节拍数 ANL A, #0FH MOV R2, A MOV A, R1 SWAP A ANL A, #0FH JNZ SING ;音符不为 0,唱 CLR TR0 ;为 0,不唱,关频率发生器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园小班音乐《大雨小雨》课件
- 西京学院《艺术鉴赏》2022-2023学年第一学期期末试卷
- 西京学院《市场营销》2021-2022学年第一学期期末试卷
- 西京学院《跨境电子商务》2021-2022学年第一学期期末试卷
- 西京学院《机器人控制系统设计与仿真》2022-2023学年期末试卷
- 西京学院《版面设计》2021-2022学年第一学期期末试卷
- 西京学院《模拟电子技术实验》2021-2022学年期末试卷
- 西华师范大学《小学音乐课程与教学》2022-2023学年第一学期期末试卷
- 西华师范大学《射频电路理论与设计》2022-2023学年期末试卷
- 课文钱学森课件
- xx镇发展鲜食玉米“一镇一业”产业项目建设方案
- IEEE1588学习笔记
- 物业合资公司组建方案
- 风光摄影教程
- 《正确的写字姿势》PPT课件.ppt
- 钢管落地卸料平台
- 耐热钢的选用
- 民间借贷(欠款)纠纷人民调解协议书范本
- 检维修风险分析记录10001
- 日语授受关系PPT演示课件
- 五笔打字的编码规则
评论
0/150
提交评论