音乐盒设计

合集下载

基于单片机的音乐盒设计

基于单片机的音乐盒设计

基于单片机的音乐盒设计音乐盒是一种小型的自动播放音乐的装置,它以其独特的装饰性和音乐的美妙而备受欢迎。

随着电子技术的发展,基于单片机的音乐盒也逐渐出现并成为主流。

本文将从硬件设计和软件设计两个方面介绍基于单片机的音乐盒设计。

一、硬件设计1.单片机选择单片机是音乐盒的核心控制器,其选择应根据功能需求和成本考虑。

常用的单片机有PIC、AVR和ARM等。

PIC系列单片机成本较低,易于上手,适合初学者使用。

AVR系列单片机性能较好,适合需要复杂功能的设计。

ARM系列单片机功能强大,适合需求较高的应用。

2.电源电路音乐盒的电源电路需要保证供电稳定,并根据电源需求选择适当的电池或适配器。

一般情况下,音乐盒可以采用锂电池供电,以方便携带和使用。

3.音乐模块音乐模块是音乐盒的关键组成部分,用于播放音乐。

音乐模块通常由音源芯片和音响组成。

音源芯片可以选择解码芯片或音频模块,用于解码和播放音乐文件。

音响部分可以选择扬声器或耳机输出,以提供清晰的音乐效果。

4.控制按钮和指示灯音乐盒需要设计控制按钮和指示灯,以便用户操作和状态显示。

控制按钮用于启动、暂停和切换音乐等操作,指示灯用于显示音乐播放状态和电源状态。

5.外部接口音乐盒可以设计外部接口,以便扩展功能。

常见的外部接口包括USB 接口、SD卡接口和蓝牙接口等。

二、软件设计1.系统框架音乐盒的软件设计可以采用简单的状态机或多任务系统。

简单的状态机可以实现音乐的播放、暂停和停止等基本功能。

多任务系统可以实现多个功能的并发运行,提高系统的灵活性。

2.音乐播放控制音乐盒的主要功能是播放音乐,因此需要设计音乐播放控制模块。

该模块可以提供音乐的选择、播放和暂停等功能。

可以通过中断或轮询方式检测按钮的状态,以实现用户的控制。

3.音量控制音乐盒通常需要设计音量控制功能,以满足用户的需求。

可以通过PWM方式控制音量大小,调节音量输出。

4.音乐存储和读取音乐盒需要设计音乐存储和读取模块,以方便用户选择和加载音乐。

八音盒设计课程设计说明书

八音盒设计课程设计说明书

1概述设计一个八音盒,以扬声器作为发声装置,用16个LED小灯作为显示装置,以4x4键盘作为功能按键,八音盒中预存4首不同节拍的乐曲,用户可以选择播放模式。

播放时在单色LED显示器上显示出所播曲目的编号和曲目名称,16个小灯随着音乐节拍变化而变化。

1.1组员分工张磊:软件编程于海彬:软件编程,显示模块彭彬:曲目乐谱编码,曲目播放模块以及实验报告代涛:硬件焊接,以及实验报告1.2操作说明键1:播放曲目1键2:播放曲目2键3:播放曲目3键4:播放曲目4键0:暂停/恢复播放键5:终止播放键6:随机播放2设计方案2.2系统功能播放分两种模式:随机播放和选择播放。

随机播放从4首预存曲目中随机选出一首曲目播放,选择播放模式由用户指定要播放的曲目。

播放时可以暂停播放或终止播放。

按下暂停/恢复键可暂停或恢复播放,按下终止键可以终止播放。

播放时在单色LED显示器上显示出所播曲目的编号和曲目名称。

播放时16个小灯随着音乐节拍变化而变化,小灯的具体亮灭模式自行设定。

2.2设计思路首先确定4x4键盘的扫描程序,然后编写发声程序,将歌曲录入尝试播放,确定各按键功能,编写数码管程序显示歌曲名称,利用寄存器外拓接口,控制小灯随频率变化亮灭。

2.3键盘的识别键盘的确定功能,就是判断键盘中的那一个键按下,确定所在行列位置。

通常采用逐行(或逐列)扫描查询识别。

具体过程是:依次轮流是列线中的一列输出低电平,其它三位为高电平,再在相应的顺次读行输出口的电平状态,如某行为低电平,则该行与置为低电平的列线相交叉处的按键即为闭合的按键,对应的在单片机内部进行调用播放歌的序号。

按键去抖动,通常采用软件延时的方法:在第一次检测到有键按下时,执行一段延时10ms的子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。

2.4音乐盒显示部分七段LED数码管构成“日”字形,还有一只发光二极管作为小数点。

fpga音乐盒课程设计

fpga音乐盒课程设计

fpga音乐盒课程设计一、课程目标知识目标:1. 学生能够理解FPGA的基本原理和数字电路设计的基础知识。

2. 学生能够掌握音乐盒的基本工作原理和音乐理论知识。

3. 学生能够描述FPGA在音乐盒设计中的应用和优势。

技能目标:1. 学生能够运用Verilog或VHDL等硬件描述语言进行FPGA编程。

2. 学生能够设计并实现一个简单的音乐盒电路,包括音符生成、音调控制和播放功能。

3. 学生能够利用FPGA实现音乐盒的个性化定制,创作自己的音乐作品。

情感态度价值观目标:1. 学生培养对电子工程和音乐创作的兴趣,提高创新意识和动手能力。

2. 学生培养团队合作精神,学会与他人合作解决问题。

3. 学生培养良好的工程伦理观念,认识到科技发展对社会的积极影响。

课程性质:本课程为实践性较强的课程,结合理论知识与实践操作,培养学生的实际动手能力和创新能力。

学生特点:学生具备一定的电子基础和编程能力,对音乐有兴趣,喜欢探索新事物。

教学要求:教师应注重理论与实践相结合,引导学生主动参与,鼓励学生创新思维,关注学生的个体差异,提高学生的综合素质。

通过课程学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。

二、教学内容1. 数字电路基础:复习数字电路的基本概念,包括逻辑门、触发器、计数器等,为FPGA设计打下基础。

- 教材章节:第一章 数字逻辑基础2. FPGA原理与编程:介绍FPGA的基本结构、工作原理,学习Verilog或VHDL硬件描述语言。

- 教材章节:第二章 FPGA原理与应用;第三章 硬件描述语言基础3. 音乐理论知识:学习音乐的基础知识,包括音符、音阶、和弦等,为音乐盒设计提供理论支持。

- 教材章节:第四章 音乐理论基础4. 音乐盒设计:讲解音乐盒的组成,包括音符生成、音调控制、播放电路等,引导学生进行设计实践。

- 教材章节:第五章 音乐盒设计与实现5. FPGA在音乐盒中的应用:探讨FPGA在音乐盒设计中的优势,如灵活性、可编程性等,并分析实际案例。

《数字音乐盒》设计报告

《数字音乐盒》设计报告

《数字音乐盒》设计报告
设计目标:
本数字音乐盒旨在提供一种方便、易用的音乐播放体验,让用户可以随时随地享受自己喜欢的音乐。

具体设计要求如下:
1. 支持多种音频格式,如MP3、FLAC等。

2. 采用简洁、直观的用户界面,方便用户操作。

3. 支持多种播放模式,如顺序播放、随机播放等,并且能够记忆用户播放模式。

4. 提供多种音效调节和均衡器设置,使用户可以自由调整音乐效果。

5. 支持歌词显示功能,使用户可以更好地理解音乐。

6. 支持歌曲收藏功能,使用户可以方便地收藏自己的喜爱歌曲。

设计思路与方案:
本数字音乐盒采用嵌入式系统设计,主要硬件部件包括音频芯片、显示屏幕和按键模块,其中音频芯片为核心部件,支持多种音频格式的解码和播放。

用户界面设计上,采用五向导航及确认键来进行操作,主界面分为“音乐播放”和“歌曲收藏”两大模块。

在“音乐播放”模块中,
用户可以选择不同的播放模式,包括顺序播放、随机播放和循环播放。

在播放过程中,用户可以通过前进、后退、暂停等操作来控制音乐播放进程。

同时,也提供了多种音效调节和均衡器设置,用户可以自行选择调整音乐效果。

在播放过程中,歌词会自动显示在屏幕上,方便用户理解歌曲。

在“歌曲收藏”模块中,用户可以收藏自己喜爱的歌曲,方便日后收听。

总结:
本数字音乐盒设计主要针对音乐爱好者,通过简洁、易用的界面设计和多种音效、播放模式等功能的设计,为用户提供了更为便捷、自由的音乐播放体验。

同时,歌曲收藏功能也使用户可以随时查找和收听自己喜爱的歌曲,满足用户对音乐的品质需求。

数字音乐盒课程设计

数字音乐盒课程设计

数字音乐盒课程设计一、课程目标知识目标:1. 让学生掌握数字音乐的基础知识,包括音符、音阶、节奏等概念;2. 培养学生运用电子设备进行音乐创作的能力,了解数字音乐盒的基本原理;3. 让学生了解不同音乐风格的特点,拓展音乐视野。

技能目标:1. 培养学生运用音乐软件进行创作、编辑和播放数字音乐的能力;2. 提高学生团队协作能力,学会与他人共同完成音乐作品;3. 培养学生创新思维,能够独立设计并制作具有个人特色的数字音乐作品。

情感态度价值观目标:1. 培养学生对音乐的热爱和兴趣,激发他们积极参与音乐活动的热情;2. 培养学生尊重他人作品,树立正确的版权意识;3. 通过音乐创作,培养学生审美观念,提高审美情趣。

分析课程性质、学生特点和教学要求,本课程目标旨在让五年级学生在掌握音乐基础知识的基础上,运用现代科技手段创作音乐作品。

课程将帮助学生将所学知识应用于实际操作中,培养他们的创新精神和团队协作能力,同时提高音乐素养,为今后的音乐学习打下坚实基础。

二、教学内容1. 数字音乐基础知识:音符、音阶、节奏、拍子等基本概念的学习,使学生能够理解音乐的基本元素。

- 教材章节:第一章《音乐的基础知识》- 内容列举:音符的识别、音阶的构成、节奏的练习。

2. 数字音乐创作:运用音乐软件(如GarageBand)进行音乐创作,了解数字音乐盒的工作原理。

- 教材章节:第二章《数字音乐创作》- 内容列举:音乐软件的介绍与操作、音色的选择与搭配、简单旋律的创作。

3. 音乐风格学习:学习不同音乐风格的特点,分析经典作品,培养学生音乐鉴赏能力。

- 教材章节:第三章《音乐风格》- 内容列举:流行音乐、古典音乐、民族音乐等风格的学习与鉴赏。

4. 团队协作与创作实践:分组进行音乐创作,培养学生团队协作能力和创新思维。

- 教材章节:第四章《音乐创作实践》- 内容列举:团队协作流程、音乐创作方法、作品展示与评价。

5. 音乐作品展示与评价:展示学生创作的数字音乐作品,进行自评、互评和教师评价,提高学生的审美观念。

基于AT89C52单片机的音乐盒设计方案

基于AT89C52单片机的音乐盒设计方案

1/4和1/8节拍的时间设定
曲调值
DELAY 曲调值 DELAY
调4/4
125毫秒
调4/4 62毫秒
调3/4 调2/4
187毫秒 250毫秒
调3/4 94毫秒 调2/4 125毫秒
对于单片机来说,产生不同频率的脉冲是非
常方便的,利用单片机的定时/计数器来产生这样
的方波频率信号。因此,需要弄清楚音乐中的音
Page 3
传统音乐盒
Page 4
设计任务及要求
本设计是以AT89C52芯片的电路为基础,外
部加上放音设备,以此来实现音乐盒的硬件电
路,通过软件程序来控制单片机内部的定时器
■设 使其演奏出优美动听的音乐。用户可以按照自
■计 己的喜好选择音乐并将其转化成机器码存入单
■任 片机的存储器中。该系统具有很好的通用性,
21
基于AT89C52单片机的音乐盒设计
论文结构
1 2 3 4 5
■课题意义、任务及要求 ■应用软件简介 ■设计方案 ■设计结构 ■系统电路图
Page 2
设计意义
传统的音乐盒多是机械音乐盒,其工作原理是通过齿 轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁 片制成的琴键,从而发出声音但是,机械式的音乐盒体 积比较大,比较笨重,且发音单调。水、灰尘等外在因 素,容易使内部金属发音条变形,从而造成发音跑调。 另外,机械音乐盒放音时为了让音色稳定,必须放平不 ■设 能动摇,而且价格昂贵,不能实现大批量生产。 ■计 本文设计的音乐盒,是基于单片机设计制作的电子 ■意 式音乐盒。与传统的机械式音乐盒相比更小巧,能演奏 ■义 多个曲目且携带方便。电子式音乐盒动力来源是电池, 制作工艺简单,可进行批量生产,且价格便宜。基于单 片机制作的电子式音乐盒,控制功能强大,可根据需要 选歌,使用方便。根据存储容量的大小,可以尽可能多 的存储歌曲。另外,可以设计彩灯外观效果,使音乐盒 的功能更加丰富。

电子音乐盒的设计毕业设计论文

电子音乐盒的设计毕业设计论文

曲阜师范大学单片机原理与应用课程设计报告题目电子音乐盒的设计姓名院系物理工程学院专业通信工程(物联网)指导教师职称讲师2015年月日注:课程设计等级:优秀(90-100),良好(80-89),中等(70-79),及格(60-69),不及格(60分以下)。

目录摘要 . (1)关键词 (1)Abstract (1)Key words (1)1 设计目的和要求 (2)1.1 设计目的 (2)1.2设计要求 (2)2 硬件电路设计 (2)2.1总体方案设计 (2)2.2器件选择 (3)2.2.1单片机的选择 (3)2.2.2 LCD1602简介 (3)2.3 单元电路设计 (6)2.3.1晶振电路 (6)2.3.2复位电路 (6)2.3.3键盘部分 (6)2.3.4 LCD显示电路 (7)2.3.5蜂鸣器部分 (7)2.4整体电路 (8)3 软件设计 (9)3.1 主程序流程图 (9)3.2音乐播放程序流程图 (10)4 系统调试 (10)4.1 原理图的绘制 (10)4.2仿真结果 (11)5 实物图 (11)总结 (12)参考文献 (12)附录 (13)电子音乐盒的设计通信工程(物联网)专业学生学生姓名武迪许艳军薛玉梅指导教师张明强摘要本设计采用了蜂鸣器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。

现选用AT89S52单片机。

主要设计模块包括数码管显示部分,功能键盘部分,蜂鸣器发声部分,彩灯部分。

数码管采用共阳极数码管,通过单片机P1口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P2口控制,实现歌曲播放;主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐。

此次设计要利用单片机及KeilC51编程软件编程和PROTEUS单片机仿真软件和电子电工等方面知识,用KeilC51编程软件编程,用PROTEUS单片机仿真软件仿真。

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计
6.将数字式音乐盒组装在一个外壳中。
使用数字式音乐盒
在数字式音乐盒被制造完成后,使用也非常容易。只需要按下相应的控制开关,就可以开始播放音频文件。用户可以通过电位器调节音量或者播放音乐列表中的其他曲目。
在使用过程中,要注意数字式音乐盒的电池寿命。如果数字式音乐盒使用的是充电电池,那么必须确保其有足够的充电时间。
设计数字式音乐盒的材料
为了实现数字式音乐盒,需要以下材料:
·单片机芯片(例如STM32F103C8T6)
·数字到模拟转换器(DAC)
·音频输出器件(例如扬声器或耳机)
·控制开关(例如电位器,按钮等)
·电池(为了提供电源)
·音频文件(MP3,WAV等)
将这些材料组合在一起,可以实现数字式音乐盒。其中,单片机芯片是数字式音乐盒的关键部件,可以存储和播放歌曲、音乐片段等。
基于单片机的数字式音乐盒设计
随着新技术的不断涌现,数字式音乐盒成为人们越来越喜欢的玩具。它的外观精美,功能强大,而且价格也比传统音乐盒便宜,极受欢迎。本文将讨论基于单片机的数字式音乐盒设计,以及它的工作原理、材料和使用。
数字式音乐盒的工作原理
数字式音乐盒是使用单片机芯片进行数字信号的处理,通过音频输出器件输出模拟电信号的技术。这些芯片可以储存大量的音频文件,并且可以轻松地播放这些文件,具有极高的音频质量。数字式音乐盒可以播放所有类型的音频文件,比如WAV,MP3,MIDI和WMA等。这些芯片通常由音乐芯片,播放器和控制系统组成。播放器可以读取音频文件,发送给芯片进行处理,控制系统负责控制播放过程,比如触发开关等功能。整个过程非常简单,非常可靠。
最后,数字式音乐盒具有很多优点,比如它可以储存大量的音频文件,具有非常出色的音频质量,价格实惠,易于制造和使用,因此它是一款非常好的数码产品。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于89c52单片机音乐播放的设计安庆师范学院物理与电气工程学院1、设计任务和要求 (1)2、总体设计 (1)3、硬件设计 (2)3.1 硬件电路 (2)3.2 原理说明 (2)4、软件设计 (2)5、仿真、安装和调试 (5)6、收获与体会 (6)附件1:元件清单 (6)附件2: 总仿真电路图 (7)附件3:音乐程序 (8)音乐盒设计1、设计任务和要求(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。

(2直接当前播放的歌曲。

(3)可通过功能键选择播放上一首、下一首和暂停播放歌曲。

2、总体设计(1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲(2)利用8052的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。

例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。

记数脉冲值与频率的关系公式如下:N=Fi/2/Fr N:记数值Fi:内部计时一次为1微秒.故其频率为1MHZFr;要产生的频率(3):起记数值的求法如下:T=65536-N=65536-Fi/2/Fr例如:设K=65536,F==Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。

T=65536-N=65536-Fi/2/Fr=65536-/2/Fr=65536-500000/Fr低音D0的T=65536-500000/262=63627中音D0的T=65536-500000/523=64580高音D0的T=65536-500000/1047=650593、硬件设计 3.1 硬件电路本设计中用到89C52单片机,扬声器、键盘、连接线。

1.最小系统⑴单片机:本次设计使用单片机芯片AT89C52 AT89C52的工作特性:•内含8KB 的FLASH 存储器檫写次数1000次; •256x8bit 内部RAM ; •具有32根可编程I/O 线; •具有3个16位编程定时器•AT89C52 共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断•具有1个全双工的可编程串行通信接口; •具有可编程3级程序锁定位;•AT89C52的工作电源为5(1±0.2)V 且典型值为5V ; •AT89C52最高工作频率为24MHZ ;•AT89C52的编程频率为3~24MHZ ,编程启动电流和启动电压 分别为1mA 、5或12V 。

3.2 原理说明当键盘有键按下时,判断键值,启动计数器T1,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T0,显示歌曲号。

(1) 硬件电路中用0INT 、1INT 分别接k1、k2作为上、下一曲的功能键 (2) 用P0控制七段码a,b,c,d,e,f 。

(3)用P1.2口控制喇叭。

(4) 电路为12MHZ 晶振频率工作,起振电路中C1,C2均为30pf 。

4、软件设计本程序可以实现课程设计的基本要求,并可以通过按键播放三首歌曲,程序流程图如下:总体框图:主程序框图:子程序框图:5、仿真、安装和调试按照上面设计的电路在proteus软件内画图, 打开单片机软件开发系统Keil,选择89C52单片机,在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件下载到proteus中的AT89C52单片机中进行仿真,观察实验现象。

仿真能实现播放音乐,按键选择曲目,暂停,播放功能。

仿真成功后,安装好实验板,然后将音乐程序下载到电路板内 ,观察结果。

能实现播放音乐,按键换曲等功能。

程序调试中出现的问题及解决的办法:(1)有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

(2)程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。

当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。

(3)编程时要注意,在程序开始时,要写入各定时器中断的入口地址。

(4)编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。

(5)编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着MP3的工作方式列写流程图。

(6) LCD计时正常显示的解决办法:a. 两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us,由于定时中断过于频繁,使CPU负载过大,导致音乐不能正常播放,时间不能正常显示。

解决办法:将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。

但还有问题。

b. 当音乐为全4拍起始时,此时音乐节奏与定时器T1中断频率错开,LCD显示和音乐播放都会好一些。

c. 另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,因时间较长,当定时器T1此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果变差。

改进方案:若采用可以定时时间更长的单片机,可以避免所有问题。

6、收获与体会(1) 上学期学习单片机的课时不多,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,明显的改善了,首先对于硬件电路的工作原理有了进一步的学习,同时有了一个提升;软件方面,在程序的设计,程序的调试方面都有了很大的进步。

(2) 在一个好的氛围里才能踏下心来做东西,在这一段时间里,寝室成员都认真对待这次课程设计,除了自己做好自己的课题外,在遇到不懂的地方互相讨论,查阅资料,互助解决问题。

另外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误。

我们也是这么做的,这一点在这次的课程设计中十分重要。

(3) 通过这次课程设计,我体会到了成功的喜悦,听着自己设计的程序下载到单片机中播放出音乐,心理非常自豪。

这次的课程设计在一定程度上改变了我学习单片机这门课程的态度,从最初的认为学它没有什么实际意义,到如今爱上单片机学习,并希望能将理论运用到实践,设计出更好更完整的系统。

我明白了一个人要想做好一件事,就必须具备自信心,耐心,还要有毅力,要胆大心细,要勇于尝试,要手脑并用,最后才能交出一份令人满意的答卷。

附件1:元件清单附件2:总仿真电路图附件3:音乐程序shuzhi EQU 3fh ;选曲目的地址song EQU p1.2 ;扬声器播放play EQU p3.0 ;播放停止键addone EQU p3.1 ;曲目加一键subone EQU p3.2 ;曲目减一键dul EQU P1 ;段选wel EQU P2 ;位选ORG 0000HLJMP STARTORG 000BH ;定时器0溢出中断入口地址AJMP contORG 0013H ;外部中断一入口地址AJMP pause ;指向外部中断程序ORG 0100HSTART:MOV SP,#50HMOV TH0,#0DBH ;定时器赋初值MOV TL0,#0FFHMOV TMOD,#01H ;设定T1工作于方式2MOV IE,#86H ;开中断MOV TCON,#00HMOV R0,#00HMOV shuzhi,#00H(是否顺序播放音乐)MAIN:JNB play,first ;判断P3.0键是否按下SJMP MAINfirst:ACALL del20JNB play,firstMOV shuzhi,#00HMOV dul,#06H ;共阴数码管显示1MOV wel,#80HMOV DPTR,#dat1 ;dat1首地址赋给DPTR ACALL music0ACALL nextRETnext:INC shuzhiMOV A,shuzhiCJNE A,#01,LOOP3 ;A是否=1,不等就跳转到LOOP3 MOV DPTR,#dat2 ;表2首地址送DPTR MOV dul,#5BH ;显示数值2MOV wel,#80HACALL music0INC ALOOP3:CJNE A,#02,LOOP4 ;A是否=2,不等就跳转到LOOP4 MOV DPTR,#dat3 ;表3首地址送DPTRMOV dul,#4FH ;显示数值3MOV wel,#80HACALL music0INC ALOOP4:CJNE A,#03,nextACALL firstRET(按键播放上一首音乐)last:DEC shuzhiMOV a,shuzhiCJNE a,#02,last1MOV dptr,#dat3MOV dul,#4FhMOV wel,#80hACALL music0last1: cjne a,#01,last2MOV dptr,#dat2MOV dul,#5BhMOV wel,#80hACALL music0last2: cjne a,#00,lastMOV dptr,#dat1MOV dul,#06hMOV wel,#80hACALL music0RETmusic0:MOV 20h,#00h ;中断计数单元清0music1: clr aMOVC a,@a+dptr ;查表取音阶常数JZ end0 ;累加器判0看是否是结束符CJNE a,#0ffh,music5 ;是休止符?LJMP music3 ;产生100ms停顿music5:NOPkey:JNB play,k0 ;判断P3.0键是否按下JNB addone,k1 ;判断P3.2键是否按下JNB subone,k2 ;判断P3.1键是否按下MOV r6,a ;音阶常数送R6INC dptr ;DPTR+1MOV a,#0MOVC a,@a+dptr ;取常数送R7MOV r7,aSETB tr0 ;启动定时器T0music2: nopCJNE r0,#0,$CPL song ;输出电平取反MOV a, r6MOV r3,a ;音阶常数送R3LCALL del20MOV a, r7 ;节拍常数送ACJNE a,20h,music2 ;节拍时间到否MOV 20h,#00h ;为取下一音阶作准备INC DPTRLJMP music1music3:NOP ;休止100msCLR tr0 ;关闭定时器MOV r2, #14hmusic4: NOPMOV r3, #250 ;R3=250LCALL del20DJNZ r2, music4INC dptr ;为取下一音阶作准备LJMP music1end0: MOV r2, #200 ;歌曲结束后,延时1s后继续music6: MOV r3, #250LCALL del20DJNZ r2,music6(按键选择)k1: ACALL del20 ;调用延时子程序JNB addone,k1 ;判断P3.2键是否释放ACALL nextk2: ACALL del20JNB subone,k2 ;判断P3.1键是否释放ACALL lastk0: ACALL del20JNB play,k0 ;判断3.0键是否释放LJMP startRETdel20: MOV r4,#05h ;延时子程序del4: NOPDJNZ r4,del4DJNZ r3,del20RETcont: INC 20h ;计数单元+1MOV th0,#0dbh ;重新10ms定时初值MOV tl0,#0ffhRETI ;跳出中断(停止播放)pause: ACALL del20JNB p3.0,pause ;判断P3.0键是否有释放MOV a,r0 ;把R0的值给ACPL a ;A值取反MOV r0,aRETIdat1:db 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb 3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,30h,20h,33h,10h,33h,10h db 3bh,60h,40h,20h,4ch,80h,0ffhdb 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb 3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,2bh,20h,30h,20hdb 33h,20h,3bh,20h,3bh,20h,40h,2bh,3bh,80h,0ffhdb 19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb 20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb 19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb 20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb 2bh,20h,2bh,40h,3bh,20h,2bh,20h,2bh,40h,2bh,20h,0ffhdb 26h,20h,2bh,20h,2bh,20h,30h,20h,2bh,80h,0ffhdb 2bh,20h,2bh,40h,3bh,20h,30h,20h,30h,40h,2bh,20h,0ffhdb 33h,20h,3bh,20h,3bh,20h,40h,20h,3bh,80h,0ffh,0ffhdat2:db 18h,30h,1ch,10h,20h,40h,1ch,10hdb 18h,10h,20h,10h,1ch,10h,18h,40hdb 1ch,20h,20h,20h,1ch,20h,18h,20hdb 20h,80h,0ffh,20h,30h,1ch,10h,18hdb 20h,15h,20h,1ch,20h,20h,20h,26hdb 40h,20h,20h,2bh,20h,26h,20h,20hdb 20h,30h,80h,0ffh,20h,20h,1ch,10hdb 18h,10h,20h,20h,26h,20h,2bh,20hdb 30h,20h,2bh,40h,20h,20h,1ch,10hdb 18h,10h,20h,20h,26h,20h,2bh,20hdb 30h,20h,2bh,40h,20h,30h,1ch,10hdb 18h,20h,15h,20h,1ch,20h,20h,20hdb 26h,40h,20h,20h,2bh,20h,26h,20hdb 20h,20h,30h,80h,20h,30h,1ch,10hdb 20h,10h,1ch,10h,20h,20h,26h,20hdb 2bh,20h,30h,20h,2bh,40h,20h,15hdb 1fh,05h,20h,10h,1ch,10h,20h,20hdb 26h,20h,2bh,20h,30h,20h,2bh,40hdb 20h,30h,1ch,10h,18h,20h,15h,20hdb 1ch,20h,20h,20h,26h,40h,20h,20hdb 2bh,20h,26h,20h,20h,20h,30h,30hdb 20h,30h,1ch,10h,18h,40h,1ch,20hdb 20h,20h,26h,40h,13h,60h,18h,20hdb 15h,40h,13h,40h,18h,80h,00hdat3:db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h db 20h,10h,2bh,10h,26h,30h,30h,80h,00hEND。

相关文档
最新文档