音乐盒设计(单片机课程设计)[精选.]

合集下载

基于51单片机音乐盒课程设计

基于51单片机音乐盒课程设计
4.3音频、音调程序设计- 15 -
4.4按键与蜂鸣器接口端程序设计- 16 -
4.5外部中断程序设计- 16 -
4.6定时程序设计- 17 -
4.7延时程序编写- 18 -
4.8主程序的编写- 18 -
五、系统仿真与调试- 20 -
5.1仿真平台- 20 -
5.2仿真调试- 20 -
5.3测试总结- 21 -
上拉电阻就是将电源通过电阻接到输出端。如果输出端是OC(集电极开路,TTL)或OD(漏极开路,CMOS)输出,不接上拉电阻则输出端无驱动能力。对于P1、P2、P3口内部就以及有上拉电阻,如果其端口电流较大,电平就会降低(电阻大,相应压降也太大),就可以通过外接上拉电阻(就是并一个电阻在IC内部的上拉电阻上,这时总电阻减小,总电流增大)提供电流分量,将电平“拉高”。
本设计中的晶振振荡电路(如图2)是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于电路的负载电容。同时,晶振可以等效为一个电感,所以只要晶振的两端并联上合适的电容它晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。其中端点1接STC89C52RC芯片的19引脚,端点2接芯片的18引脚。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄所以即使其他元件的参数变化很大这个振荡器的频率也不会有很大的变化。本实验中使用的是22PF的电容,如果再考虑元件引脚的等效输入电容,则两个22PF的电容构成晶振的振荡电路就是比较好的选择,但本设计简易,所以对于等效输入电容带来的误差不予讨论。
1.2
完成该模块的硬件和软件的设计,在Proteus软件上仿真通过后,用Altium_Designer软件进行PCB单面板的绘制,修改合理后制成单面覆铜板。随后将程序下载到单片机进行硬件验证。最后就课程设计本身提交一篇课程设计说明文档。

单片机课程设计-简易音乐盒

单片机课程设计-简易音乐盒
图 5:蜂鸣器驱动电路
-5-
音调 1 2 3 4 5 6 7
音调 1 2 3 4 5 6 7
音调 1 2 3 4 5 6 7
河南理工大学本科课程设计报告
表 1:低音区音调频谱
频率(hz)

延时(us)
220
2270
247
2024
277
1805
294
1701
330
1515
370
1351
415
1205
表 2:中音区音调频谱
sbit K1=P1^0; sbit SPK=P2^7;
uchar Song_Index=0; uchar Tone_Index=0;
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code HI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248}; uchar code LO_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3}; uchar code SONG[][50]={{1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,6,5,3,5,3,2,1,2,1,-1},
delayMS(300*LEN[Song_Index][Tone_Index]); Tone_Index++; } TR0=0; while(K1==0); } }
-8-
河南理工大学本科课程设计报告
4 Proteus 仿真
点击运行模拟器,按键没有按下时 P2^7 显示低电平 点击按下按钮,P2^7 端口高低电平变换

音乐盒设计单片机设计

音乐盒设计单片机设计

《单片机技术》课程设计说明书音乐盒的设计学院:电气与工程学院学生姓名:指导教师:职称/学位副教授专业:电气工程及其自动化班级:13学号: 1完成时间:2016年4月湖南工学院《单片机技术》课程设计课题任务书学院:电气与信息工程学院专业:电气工程及其自动化摘要随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。

这次设计是一个基于AT89S52系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒。

音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。

使用三个按键控制音乐盒,一个按键用来控制歌曲的播放、暂停,另一个用来控制播放上一曲,第三用来控制播放下一曲,音乐盒共有三首歌曲。

播放歌曲时,相应歌曲对应相应数码管上歌曲次序的显示。

本设计利用KEIL编程软件对音乐盒源程序进行编程并调试。

随后依照仿真布局在Altium Designer软件中绘制PCB单面板,检查无误后制成实物单面覆铜板。

关键词:音乐盒;多功能;AT89S52 ;目录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)4.1设计体会 (18)4.2设计难点 (18)结束语 (19)参考文献 (20)致谢 (21)附录 (22)附录A元器件清单 (22)附录B实物图 (23)附录C软件系统程序清单 (24)1 设计课题总体方案介绍1.1 设计任务设计一个具有特定功能的音乐盒。

单片机数字音乐盒课程设计

单片机数字音乐盒课程设计

数字音乐盒的设计摘要随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统音乐盒,多是机械型的,体积笨重,发音单调,不能实现批量生产。

本设计是一个基于AT89C51系列单片机的音乐盒。

该音乐盒主要由按键电路、复位电路、时钟电路、显示电路以及蜂鸣器组成。

使用四个按键控制音乐盒,其中两个按键用来控制歌曲的播放、暂停,另两个用来控制液晶上歌曲次序的变化,本音乐盒共有三首歌曲。

播放歌曲时,相应歌曲对应相应数码管上歌曲次序及歌名的显示。

关键词:AT89C51,蜂鸣器,LCD液晶显示目录1绪论 (1)1.1课题描述 (1)1.2基本工作原理及框图 (1)2 相关芯片及硬件电路设计 (1)2.1AT89C51芯片 (1)2.1.1 AT89C51的功能特性 (2)2.1.2 AT89C51的主要性能参数 (2)2.2晶振电路 (3)2.3复位电路 (3)2.4驱动电路 (4)2.4.1 蜂鸣器 (5)2.4.2 续流二极管 (5)2.4.3 滤波电容 (5)2.4.4 三极管 (5)2.5显示电路 (6)2.5.1 线段的显示 (6)2.5.2 字符的显示 (6)2.6按键电路 (7)3 系统软件设计 (7)3.1软件设计程序流程图 (7)3.2节拍的确定 (8)3.3编码 (9)3.4仿真 (9)总结 (12)致谢 (13)参考文献 (14)附录 (15)1绪论1.1 课题描述随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。

面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。

单片机技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速发展。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

单片机课程设计音乐盒

单片机课程设计音乐盒

单片机课程设计音乐盒一、教学目标本课程旨在通过学习单片机课程设计音乐盒,让学生掌握单片机的基本原理和应用,培养学生动手实践能力和创新思维。

具体的教学目标如下:知识目标:使学生了解单片机的基本结构、工作原理和编程方法;掌握音乐盒的基本电路设计和制作方法。

技能目标:培养学生使用单片机开发工具进行程序设计和调试的能力;训练学生进行音乐盒电路搭建和故障排查的能力。

情感态度价值观目标:激发学生对单片机技术和音乐盒制作的兴趣,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括单片机的基本原理、音乐盒的设计与制作、编程与调试等。

具体安排如下:1.单片机的基本原理:介绍单片机的结构、工作原理和编程语言。

2.音乐盒的设计与制作:讲解音乐盒的基本电路设计、元件选型和制作方法。

3.编程与调试:教授如何使用单片机开发工具进行程序设计和调试。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。

具体方法如下:1.讲授法:讲解单片机的基本原理、音乐盒设计和编程方法。

2.实验法:让学生动手搭建音乐盒电路,进行编程和调试。

3.讨论法:学生进行小组讨论,分享学习心得和经验。

4.案例分析法:分析实际案例,让学生了解单片机在实际应用中的优势和局限。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的单片机和音乐盒制作教材。

2.参考书:提供相关的技术资料和案例分析,丰富学生的知识体系。

3.多媒体资料:制作精美的PPT和教学视频,提高学生的学习兴趣。

4.实验设备:准备单片机开发板、音乐盒电路元件等实验设备,确保学生能动手实践。

五、教学评估本课程的教学评估将采用多元化、全过程的评价方式,以全面、客观、公正地评估学生的学习成果。

具体评估方式如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估其学习态度和理解能力。

2.作业:布置相关的编程练习和音乐盒制作任务,评估学生的实践能力和创新能力。

单片机电子琴音乐盒课程设计

单片机电子琴音乐盒课程设计
耗较高等问题。
软件优化不够
虽然我们实现了基本的功能,但 在软件算法的优化方面还存在不 足,如音符播放的流畅度、音乐
格式的兼容性等还有待提高。
测试与验证不充分
在课程设计中,我们对音乐盒的 测试与验证工作不够充分,未能 全面覆盖各种使用场景和异常情 况,导致在实际应用中出现了一
些问题。
未来发展趋势预测
,在各个领域得到了广泛应用。
02
音乐教育的普及
音乐教育逐渐受到人们的重视,越来越多的人希望通过各种方式学习和
欣赏音乐。
03
创意礼品的市场需求
在礼品市场中,具有创意和个性化的产品越来越受到消费者的青睐,电
子琴音乐盒作为一种将音乐与工艺品相结合的创意礼品,具有很大的市
场潜力。
目的和意义
01
提高学生实践能力
改进建议
针对发现的问题和性能瓶颈,提出具体的改进措施,如优化算法、更换更高性能的元器件 等。同时,也可以提出新的功能或设计思路,以完善和提升系统的整体性能。
PART 06
课程设计总结与展望
REPORTING
课程设计成果总结
1 2 3
实现基本功能
成功设计并制作了一个基于单片机的电子琴音乐 盒,实现了基本的音符播放、音乐播放和控制功 能。
智能化发展
随着人工智能技术的不断发展,未来的电子琴音乐盒有望 实现更加智能化的功能,如语音识别、自动演奏等。
多功能集成
为了满足用户多样化的需求,未来的电子琴音乐盒可能会 集成更多功能,如录音、编曲、教学等。
绿色环保
随着环保意识的日益增强,未来的电子琴音乐盒在设计和 生产过程中将更加注重环保和节能,采用更环保的材料和 更高效的能源利用方案。
播放功能测试

单片机课程设计音乐盒设计

单片机课程设计音乐盒设计

单片机课程设计音乐盒设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其在音乐盒设计中的应用。

2. 使学生了解并掌握音乐盒的基本组成部分,如音符、节拍等。

3. 帮助学生理解并运用编程语言,实现对音乐盒乐曲的编程与控制。

技能目标:1. 培养学生动手实践能力,能够独立完成音乐盒硬件电路的搭建。

2. 培养学生运用编程软件进行单片机程序设计的能力,实现音乐盒乐曲的播放与控制。

3. 提高学生的问题解决能力,能够针对音乐盒设计过程中遇到的问题进行调试与优化。

情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养其创新意识和动手能力。

2. 培养学生团队协作精神,学会与他人共同分析问题、解决问题。

3. 引导学生关注科技发展,认识到所学知识在实际应用中的价值。

分析课程性质、学生特点和教学要求:本课程为单片机课程设计,结合音乐盒设计,旨在让学生在实际操作中掌握单片机原理和应用。

学生为高年级学生,已具备一定的电子基础和编程能力。

教学要求注重实践与理论相结合,培养学生的动手能力和实际应用能力。

二、教学内容1. 理论知识:- 单片机原理及功能特点,对应教材第3章。

- 音乐盒基本构成及工作原理,对应教材第6章。

2. 实践操作:- 硬件电路搭建,包括单片机、扬声器、按键等元件的连接,对应教材第4章。

- 程序设计,使用C语言或汇编语言编写音乐盒乐曲播放程序,对应教材第5章。

3. 教学大纲:- 第一周:学习单片机原理及功能特点,了解音乐盒基本构成及工作原理。

- 第二周:进行硬件电路搭建,学习并掌握相关元件的使用方法。

- 第三周:编写音乐盒乐曲播放程序,学会编程控制单片机播放音乐。

- 第四周:调试与优化,针对音乐盒设计过程中遇到的问题进行解决。

4. 教学内容安排与进度:- 理论与实践相结合,每周安排2课时理论知识学习,2课时实践操作。

- 按照教学大纲,逐步完成音乐盒设计的相关内容。

5. 教材章节及内容列举:- 第3章:单片机原理及功能特点,重点学习单片机的内部结构、工作原理及编程方法。

单片机音乐盒课程设计

单片机音乐盒课程设计

51单片机的电子音乐盒的设计班级:自动化112202H姓名:***学号:************9前言随着科技越来越发达,单片机技术也越来越纯熟,单片机的应用也越来越广泛,可以说几乎很难找到哪个领域没有单片机的踪迹。

如今,单片机在各个领域都起着至关重要的作用[1]。

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

随着人类社会的发展,人们对于视听方面的享受提出了更高的要求。

而传统的音乐盒大部分是机械型的,体积庞大,而且沉重,发音单调,且不悦耳,不能实现大批量的生产,所以很难满足当代人们的需求。

但是本文设计的数字音乐盒是以单片机为核心元件的数字音乐盒。

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点。

因此该数字音乐盒也就具有体积小,重量轻,能演奏各种各样的音乐,功能多,外观绚丽多彩,使用非常方便等诸多优点。

而且具有一定的开发价值。

101 设计目的和要求1.1 设计目的(1) 通过设计,查阅相关资料,掌握如何利用单片机设计产品,同时了解与单片机有关的软件模拟器的使用及取字模块软件的使用方法。

(2) 通过本课程设计巩固并扩展单片机课程的基本概念、基本理论、分析方法和实现方法。

结合Proteus和Keil软件等,学习单片机产品的设计方法,有效地将理论和实际紧密结合,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。

(3) 学习Proteus软件,掌握Proteus中各种芯片的功能以及模拟。

由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养实践精神、创造精神的平台。

单片机音乐盒课程设计

单片机音乐盒课程设计

《单片机数字音乐盒》课程设计报告专业:通信工程班级:0802姓名:彭孟秋指导教师:何小年、刘甫2011 年 6 月18 日目录1、课程设计目的 (2)2、数字音乐盒的设计要求 (2)3、电路工作原理、操作方法 (2)4、电路图 (2)5、程序框图 (3)6、关键程序 (3)7、总结 (12)8、参考书目 (12)数字音乐盒设计课程设计目的单片机原理与应用课程设计是在理论教学与有关的实验完成之后进行的,其目的是培养学生程序设计和实际应用单片机技术的能力。

通过此实践环节,使学生能够校熟练设计常用的各类汇编语言程序,掌握设计调试单片机应用系统基本方法和步骤,能够利用所学的知识设计一个中等难度的单片机应用系统,为后续实践课程奠定基础。

数字音乐盒的设计要求1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)。

2.采用数码管显示歌曲序号。

3.可通过功能键选择乐曲,暂停,播放。

电路工作原理、操作方法(1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。

(2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a、b、d、e、f、g,用P2.0~P2.7为数码管位选信号。

(3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。

用P0.0~P0.7作为LCD的D0~D7的控制信号。

(4)用P3.7口控制蜂鸣器。

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

电路图程序框图关键程序Soundplay:#include <reg52.h>#include "Music.h"#include "SoundPlay.h"#include "lcd.h"#define SYSTEM_OSC 12000000 //定义晶振频率12000000HZ#define SOUND_SPACE 4/5 //定义普通音符演奏的长度分率,//每4分音符间隔sbit BeepIO = P2^0; //定义输出管脚unsigned char codeduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//duan code 0~9unsigned int code FreTab[12] ={ 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始频率表unsigned char code SignTab[7] = { 0,2,4,5,7,9,11 };//1~7在频率表中的位置unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };unsigned char Sound_Temp_TH0,Sound_Temp_TL0; //音符定时器初值暂存unsigned char Sound_Temp_TH1,Sound_Temp_TL1; //音长定时器初值暂存//******************************************************************* #define MaxNo 3 //定义歌曲数目unsigned char code *Sound;unsigned char code * codeMusic[MaxNo]={Music_4,Music_8,Music_7,Music_6,Music_5,Music_9,Music_3 ,Music_2,Music_1};signed char FlagNo=0;static unsigned char KeyScan(void);static void Beep(void);bit RunStop = 1;//1表示运行sbit KeyB =P3^2; // 上一首sbit KeyF =P3^3; //下一首sbit KeyT =P3^5; //暂停extern void Delay1ms(unsigned int);void InitialSound(void){BeepIO = 0;Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256; // 计算TL1应装入的初值(10ms的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; // 计算TH1应装入的初值TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11; //两个定时器都工作在方式1ET0 = 1;ET1 = 0;TR0 = 0;TR1 = 0;EA = 1;FlagNo = 0;Sound = Music[FlagNo];P1 = duan[FlagNo+1];}void BeepTimer0(void) interrupt 1 //音符发生中断{BeepIO = !BeepIO;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0;}//*******************************************************************void Play(unsigned char Signature,unsigned Octachord,unsigned int Speed) {unsigned int NewFreTab[12]; //新的频率表unsigned char i,j;unsigned intPoint,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;#ifdef USE_LCDlcd_init();lcd_write_string(0,"MusicPlayer");#endifAgain :Delay1ms(600);for(i=0;i<12;i++) // 根据调号及升降八度来生成新的频率表{j = i + Signature;if(j > 11){j = j-12;NewFreTab[i] = FreTab[j]*2;}elseNewFreTab[i] = FreTab[j];if(Octachord == 1)NewFreTab[i]>>=2;else if(Octachord == 3)NewFreTab[i]<<=2;}SoundLength = 0;while(Sound[SoundLength] != 0x00) //计算歌曲长度{SoundLength+=2;}Point = 0;Tone = Sound[Point];Length = Sound[Point+1]; // 读出第一个音符和它时时值LDiv0 = 12000/Speed; // 算出1分音符的长度(几个10ms) LDiv4 = LDiv0/4; // 算出4分音符的长度LDiv4 = LDiv4-LDiv4*SOUND_SPACE; // 普通音最长间隔标准TR0 = 0;TR1 = 1;while(Point < SoundLength){if(KeyScan())goto Again; /*more keyscan for speed*/SL=Tone%10; //计算出音符SM=Tone/10%10; //计算出高低音SH=Tone/100; //计算出是否升半CurrentFre = NewFreTab[SignTab[SL-1]+SH]; //查出对应音符的频率if(KeyScan())goto Again; /*more keyscan for speed*/ if(SL!=0){if (SM==1) CurrentFre >>= 2; //低音if (SM==3) CurrentFre <<= 2; //高音Temp_T =65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//计算计数器初值Sound_Temp_TH0 = Temp_T/256;Sound_Temp_TL0 = Temp_T%256;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0 + 12; //加12是对中断延时的补偿}if(KeyScan())goto Again; /*more keyscan for speed*/ SLen=LengthTab[Length%10]; //算出是几分音符XG=Length/10%10; //算出音符类型(0普通1连音2顿音)FD=Length/100;LDiv=LDiv0/SLen; //算出连音音符演奏的长度(多少个10ms)if (FD==1)LDiv=LDiv+LDiv/2;if(XG!=1)if(XG==0) //算出普通音符的演奏长度if (SLen<=4)LDiv1=LDiv-LDiv4;elseLDiv1=LDiv*SOUND_SPACE;elseLDiv1=LDiv/2; //算出顿音的演奏长度elseLDiv1=LDiv;if(SL==0) LDiv1=0;LDiv2=LDiv-LDiv1; //算出不发音的长度if(KeyScan())goto Again; /*more keyscan for speed*/ if (SL!=0){TR0=1;for(i=LDiv1;i>0;i--) //发规定长度的音{while(TF1==0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;if(KeyScan())goto Again; /*more keyscan for speed*/}}if(KeyScan())goto Again; /*more keyscan for speed*/if(LDiv2!=0){TR0=0; BeepIO=0;for(i=LDiv2;i>0;i--) //音符间的间隔{while(TF1==0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;if(KeyScan())goto Again; /*more keyscan for speed*/}}Point+=2;Tone=Sound[Point];Length=Sound[Point+1];if(KeyScan())goto Again; /*more keyscan for speed*/#ifdef USE_LCDlcd_write_char(12,FlagNo+49);#endif}BeepIO = 0;FlagNo ++;if (FlagNo == MaxNo)FlagNo =0;Sound = Music[FlagNo];P1 = duan[FlagNo+1];}/**************************************************************功能:键盘扫描函数入参: viod KeyF 下一首KeyB 上一首KeyT 暂停返回: unsigned char1 需跳转 0 不跳转***************************************************************/ static unsigned char KeyScan(void){unsigned char Cont;if (KeyF == 0){ //前进Delay1ms(5);if (KeyF == 0){while(KeyF == 0){EA = 0;FlagNo ++;if (FlagNo == MaxNo)FlagNo =0;P1 = duan[FlagNo+1];Beep();Delay1ms(600); //是长按EA = 1;}if (FlagNo == MaxNo)FlagNo =0;Sound = Music[FlagNo];P1= duan[FlagNo+1]; //刷显示while(KeyF == 0);return 1;}}if (KeyB == 0){ //后退Delay1ms(5);if (KeyB == 0){while(KeyB == 0){EA = 0;FlagNo --;if (FlagNo == -1)FlagNo =MaxNo-1;P1 = duan[FlagNo+1];//刷显示Beep();Delay1ms(600); //是长按EA = 1;}if (FlagNo == -1)FlagNo =MaxNo-1;Sound = Music[FlagNo];P1 = duan[FlagNo+1];while(KeyB == 0);return 1;}}if (KeyT == 0){ //暂停Delay1ms(20);Cont = 0;EA = 0;TR0 = 0;TR1 = 0;if (KeyT == 0){RunStop = ~RunStop;while(KeyT == 0); //等待第一次释放Beep();if (!RunStop){ //是暂停则关中断和定时器EA = 0;TR0 = 0;TR1 = 0;while(KeyT == 0); //检测第二次按键并等待它释放(若有的话) while (KeyT){ //第二次释放了等待第三次按下P1 = duan[Cont++%10]; //第三次未按下则暂停数秒0~9Delay1ms(100);} //此处暂停直到再次有按键低电平EA = 1; //重开定时器和中断TR0 = 1;TR1 = 1;Sound = Music[FlagNo];P1 = duan[FlagNo+1]; //恢复原来的显示}}EA = 1;TR0 = 1;TR1 = 1;return 0;}return 0;}void Beep(void){unsigned char i;for(i = 0;i < 200 ;i ++){BeepIO = ~BeepIO;Delay1ms(1);}}Playmusic:#include <REG52.H>#include "Music.h"#include "SoundPlay.h"void Delay1ms(unsigned int count){unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}main(){InitialSound();while(1){Play(0,3,380);Delay1ms(500);}}Music:#include "Music.h"//*****************************Music******************************** //挥着翅膀的女孩unsigned char code Music_1[]={0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E,0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00};//同一首歌unsigned char code Music_2[]={0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x020x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 };//两只蝴蝶unsigned char code Music_3[] ={0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02, 0x10,0x03, 0x15,0x00, 0x00,0x00 };总结1.本学期学习单片机的时间只有十几周时间,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写单片机的大程序,很有成就感。

单片机课程设计音乐盒

单片机课程设计音乐盒

单片机课程设计音乐盒一、课程目标知识目标:1. 理解单片机的基本原理,掌握其编程方法;2. 学习音乐盒的基础知识,了解音符、节奏与旋律的关系;3. 掌握单片机控制音乐盒的硬件连接和程序设计。

技能目标:1. 能够运用所学知识,设计并实现一个功能齐全的音乐盒;2. 培养学生动手实践能力,提高问题解决和团队协作能力;3. 培养学生创新思维,能够对音乐盒进行优化和拓展。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学习热情;2. 培养学生严谨的科学态度,注重实践与理论相结合;3. 培养学生良好的团队合作精神,学会尊重他人,分享成果。

分析课程性质、学生特点和教学要求:本课程为单片机课程设计,结合音乐盒的制作,旨在让学生在实际操作中掌握单片机知识。

学生处于中学阶段,具有一定的电子基础和编程能力,对新鲜事物充满好奇。

教学要求注重实践性、实用性和创新性,培养学生综合运用所学知识解决实际问题的能力。

课程目标分解为具体学习成果:1. 学生能够独立完成单片机音乐盒的硬件连接和程序设计;2. 学生能够编写出不少于两种旋律的音乐盒程序;3. 学生能够在课程结束后,进行作品展示,分享创作过程和心得体会。

二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 单片机基础原理:回顾并巩固单片机的工作原理、内部结构、编程语言等基础知识,涉及教材第1章内容。

2. 音乐盒知识:学习音乐盒的基本原理,包括音符、节奏、旋律的构成,涉及教材第3章内容。

a. 音符与频率的关系b. 节奏与时间的控制c. 旋律的组合与编排3. 硬件连接与编程设计:a. 学习并掌握单片机与音乐盒硬件的连接方法,涉及教材第2章内容;b. 学习并编写音乐盒程序,实现不同旋律的播放,涉及教材第4章内容。

4. 实践操作与作品制作:a. 指导学生进行单片机音乐盒的硬件连接和调试;b. 协助学生编写音乐盒程序,实现功能要求;c. 组织学生进行作品展示和评价,分享创作经验。

单片机音乐盒设计

单片机音乐盒设计

摘要本设计以80C51为核心,配合键盘系统,放大电路,时钟电路和数码管显示电路实现音乐的演奏。

音乐盒设计采用独立的键盘做为音符的输入以80C51为核心,根据设计指标设计电路的框图,画出电路逻辑图和装配图,确定所元器件型号和参数,自拟调整测试方法,并调试电路使其达到设计指标要求。

根据任务要求,可以通过以下原理图来实现该音乐盒的设计,便于直观控制画出电路流程图。

音符的发音主要靠不同的音频脉冲,利用单片机的内部定时器/计数器0实行定时中断,然后控制引脚的输出音乐(本实验采用P1.0做为输出引脚)。

然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

在按下相应的键时speaker能发出正确的音调,且数码管也能显示相应的数字。

关键词:80C51 时钟电路数码显示管放大电路复位电路Abstractthis design 80C51 as the core, cooperate with keyboard system, amplifying circuit, clocking circuit and digital pipe display circuit implementation of music playing.Music box design USES independent keyboard input to the 80C51 as notes for the core, according to the design of the circuit diagram index design, draw circuit assembly logic diagram and determines components, type and parameters to adjust since testing method, and debugging circuit to achieve design indexes requirements.According to the mission requirement, can through the following diagram to achieve this music box design, facilitate intuitive control draw circuit flow chart.The mainly by different pronunciation notes the audio pulse, the internal microcontroller timer/counter 0 implement timing interrupt, then control the output of the pins P1.0 music (this experiment used as output pin). Then repeat timing this half cycle time again to the I/O reversed-phase, can in the I/O feet get this frequency pulse. By clicking the corresponding key emits the right tone becomes, and digital tube can also display the corresponding number.Keywords: 80C51 clock circuit digital XianShiGuan amplifying circuit reset circuit目录一、技术要求 (4)二、设计方案及实现 (4)方案设计 (4)方案实现 (6)详细参数 (8)程序的编写 (10)三、调试及结论 (19)四、实验总结 (19)致谢 (20)参考文献 (21)一、技术要求能够产生低中高三个音调的7个标准音阶DO,RE,M,FA,SO,LA,SI ;并在按下相应的数字键的时候数码管显示相应数字;自选一首歌曲,查找到相关的乐谱,确定音阶和节拍,并编写相关的源程序是蜂鸣器能够播放出该歌曲。

单片机原理课程设计报告——音乐盒

单片机原理课程设计报告——音乐盒

单片机原理课程设计报告题目:音乐盒的设计班级:自动093学号:××××××姓名:×××成绩:指导教师:×××北京工商大学计算机与信息工程学院2012.6课程设计任务书摘要第一章绪论1.1课程设计目的1.2课程设计任务1.3课程设计要求1.4课程设计意义第二章设计原理2.1基本原理简述2.2设计方案第三章音乐播放器的硬件电路3.1 AT89C51单片机3.2 单片机CPU结构3.3引脚介绍3.4 电路连线第四章软件编程设计4.1编程方案第五章心得体会第一章绪论1.1课程设计目的应用单片机,利用它的原理组成一个音乐播放器。

本课程设计是主干实践课。

课程的任务在于提高学生综合运用所学知识理论、分析解决问题的能力。

1.2课程设计任务1)以单片机为核心部件组成一个音乐播放器;2)利用单片机的定时器产生乐谱的各种频率方波,由蜂鸣器发出声音;3)定义按键,能相应的播放出歌曲;1.3课程设计要求能用键盘选择不同的歌曲,至少两首以上,并写出课程设计报告。

1.4课程设计的意义通过自己动手设计单片及组成的器件,在软件及硬件上进一步了解单片机的原理,深入了解了单片机C51语言的实际应用,能更深地理解课堂上所学的内容,巩固C语言程序编写,体会作为一名设计人员所需要具备的各种能力,学会理论知识联系实际,提高我们发现问题,分析问题,解决问题和实践动手的能力。

第二章设计原理及总体方案选择2.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个等份,每一个等份叫一个“半音”。

单片机音乐盒的课程设计

单片机音乐盒的课程设计

单片机音乐盒的课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解音乐盒制作的硬件组成和工作原理。

2. 使学生了解并掌握音乐盒编程的基础知识,包括音符、节拍和旋律的表示方法。

3. 让学生掌握音乐盒电路的搭建方法,了解相关电子元器件的功能和连接方式。

技能目标:1. 培养学生动手操作能力,能独立完成音乐盒硬件电路的搭建。

2. 培养学生编程能力,使其能编写简单的音乐程序,实现对音乐盒的控制。

3. 培养学生解决问题的能力,能针对音乐盒制作过程中遇到的问题进行分析和调试。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学生探究科学的热情。

2. 培养学生团队合作精神,使学生学会与他人合作共同完成任务。

3. 培养学生创新思维,鼓励学生发挥想象,设计独特的音乐作品。

分析课程性质、学生特点和教学要求,本课程目标旨在让学生在掌握单片机基础知识的基础上,通过动手实践,培养其编程和电子制作能力。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果,并为后续的教学设计和评估提供依据。

二、教学内容1. 理论知识:- 单片机原理:介绍单片机的基本概念、结构及其工作原理。

- 音乐知识:讲解音符、节拍、旋律等基本音乐概念及其在编程中的表示方法。

- 电子元器件:介绍常用的电子元器件(如电阻、电容、二极管等)及其在音乐盒电路中的应用。

2. 实践操作:- 音乐盒硬件搭建:指导学生按照电路图搭建音乐盒硬件,包括单片机、扬声器、电子元器件的连接。

- 编程控制:教授学生使用编程软件,编写音乐程序,实现对音乐盒的控制。

- 调试与优化:教授学生如何对音乐盒进行调试,包括查找故障、优化程序等。

3. 教学大纲:- 第一阶段:单片机原理及音乐知识学习,占总课时1/4。

- 第二阶段:电子元器件认知及音乐盒硬件搭建,占总课时1/4。

- 第三阶段:编程控制与调试优化,占总课时1/2。

4. 教材章节:- 单片机原理与编程:《单片机原理与应用》第1章、第2章。

单片机课程设计音乐盒

单片机课程设计音乐盒

微机原理课程设计题目:数字音乐盒姓名:学号:指导老师 :目录一、任务与要求 (3)二、硬件设计 (3)三、软件设计 (3)四、调试 (24)五、收获和体会 (25)六、参考文献 (25)单片机课程设计实验报告一、任务及要求课程设计题目:数字音乐盒课程设计要求:1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)2.采用LCD显示信息3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称) 4.可通过功能键选择乐曲,暂停,播放。

5.选作容:显示乐曲播放时间或剩余时间二、硬件设计硬件电路:本设计中用到了98C51单片机,4*4键盘,蜂鸣器,16*2 LCD,七段显示数码管LED。

(硬件电路原理图附于后页)原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。

也可在LED显示歌曲号。

(1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。

(2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a,b,c,d,e,f,g,用P2.0~P2.7为数码管位选信号。

(3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。

用P0.0~P0.7作为LCD的D0~D7的控制信号。

(4)用P3.7口控制蜂鸣器(J2,J4断开,J3短接)。

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

三、软件设计本程序可以实现课程设计的基本要求和附加功能,并可以通过按键播放七歌曲。

实验程序如下:RS BIT P2.0 ;定义液晶显示端口标号RW BIT P2.1E BIT P2.2;********************************************L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;*******************************************ORG 0000hLJMP mainORG 000BHLJMP TT0ORG 001BHLJMP T1INTorg 1000hmain:;-----------------------;液晶初始化MOV SP,#70HMOV P0,#01H ;清屏CALL ENABLEMOV P0,#38H ;8位,2行显示LCALL ENABLEMOV P0,#0FH ;屏显on,光标on,闪烁onLCALL ENABLEMOV P0,#06H ;计数地址加1,显示幕onLCALL ENABLE;-------------------------------存初始化LCALL INITIL;-------------------------------key1: LCALL keyLCALL moddLJMP key1;---------------------键盘扫描key: nopnoplcall ksjnz k1 ;有按键转到K1lcall kaijilcall SOPxn: ljmp keyk1: lcall moddlcall moddlcall ksjnz k2ljmp keyk2: mov R2,#0feh ;读键盘mov R4,#00hk3: mov A,R2mov P1,Amov A,P1ACC.4,L1 ;为1跳转,第一行无按键mov a,#00hljmp lkL1: jb acc.5,L2mov a,#04hljmp lkL2: jb acc.6,L3mov a,#08hljmp lkL3: jb acc.7,next1mov a,#0ch;------------------------------------------------------- lk: add a,R4push acck4: lcall delay1 ;若同时有其他按键,则等待lcall ksjnz k4;-------------------------------------------------------- mov r3,#07hclr amov r0,#30hmov r1,#31hmm1: mov a,r1mov r0,ainc r0inc r1djnz r3,mm1pop accmov r0,aRET;------------------------------------------------------ next1: inc R4 ;------列扫描mov a,R2JNB acc.3,n2ljmp n1n2: ljmp keyn1: rl amov R2,aljmp k3;----------------------------------------------ks: mov a,#0f0h ;判断P1口mov P1,anopnopmov a,P1cpl aanl a,#0f0hRET;-------------------------------------------------- DELAY1:SETB RS0dl: mov R5,#0ahdl2: mov R6,#63dl3: nopnopdjnz R6,dl3djnz R5,dl2CLR RS0RET;--------------------------------------------------- ;30H-37H初值为零;---------------------------------------------------- initil:mov r3,#08hmov r0,#30hm1: mov r0,#00hinc r0djnz r3,m1RET;---------------------------------------------------- ;显示;--------------------------------------------------- modd:MOV P0,#8EHCALL ENABLEmov A,37Hmov DPTR,#TABLE3MOVC A,A+DPTRCALL WRITE2RET;-------------------------------------------------- ;开机提示字;------------------------------------------------- kaiji: mov a,37hcjne a,#0fh,DFFMOV P0,#80H ;设光标地址CALL ENABLEMOV DPTR,#TABLE1;写数据CALL WRITE1DFF: RET;----------------------------------------------;按键值播放歌曲;---------------------------------------------- SOP: mov a,37hcjne a,#01h,A11LCALL MODDMOV 52H,#HIGH TABLE10MOV 53H,#LOW TABLE10LCALL INITILE2lcall MAIN0A11: CJNE A,#02H,A22LCALL MODDMOV 52H,#HIGH TABLE20MOV 53H,#LOW TABLE20LCALL INITILE2lcall MAIN0A22: CJNE A,#03H,A33LCALL MODDMOV 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30LCALL INITILE2lcall MAIN0A33: CJNE A,#04H,A44LCALL MODDMOV 52H,#HIGH TABLE40MOV 53H,#LOW TABLE40LCALL INITILE2lcall MAIN0A44: CJNE A,#05H,A55LCALL MODDMOV 52H,#HIGH TABLE50MOV 53H,#LOW TABLE50LCALL INITILE2lcall MAIN0A55: CJNE A,#06H,A66LCALL MODDMOV 52H,#HIGH TABLE60MOV 53H,#LOW TABLE60LCALL INITILE2lcall MAIN0A66: CJNE A,#07H,A77LCALL MODDMOV 52H,#HIGH TABLE70MOV 53H,#LOW TABLE70LCALL INITILE2lcall MAIN0A77: CJNE A,#08H,A88LCALL MODDMOV 52H,#HIGH TABLE80MOV 53H,#LOW TABLE80LCALL INITILE2lcall MAIN0A88: CJNE A,#09H,A99LCALL MODDMOV 52H,#HIGH TABLE90MOV 53H,#LOW TABLE90LCALL INITILE2lcall MAIN0A99: CJNE A,#0AH,AAALCALL MODDMOV 52H,#HIGH TABLE100MOV 53H,#LOW TABLE100LCALL INITILE2lcall MAIN0AAA: RET;******************************************INITILE2:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HMOV A,HOUMOV B,#10DIV ABADD A,#30H ;将BCD吗转化为ASIIC码MOV P0,#0C8H ;显示小时十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;显示小时个位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0DH ;显示冒号CALL ENABLECALL WRITE2MOV A,MINMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;显示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;显示分个位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0CDH ;显示冒号CALL ENABLECALL WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30HMOV P0,#0CEH ;显示秒十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;显示秒个位CALL ENABLECALL WRITE2MOV P0,#0C0H ;设光标地址CALL ENABLEMOV DPTR,#TABLE2;写数据CALL WRITE1RET;*********************************************写指令ENABLE: CLR RSCLR RWCLR ELCALL DELAYSETB ERET;**********************************************写数据WRITE1: MOV R1,#00HA1: MOV A,R1MOVC A,A+DPTRCALL WRITE2INC R1CJNE A,#0FEH,A1 ;未到字符串末尾继续RETWRITE2: MOV P0,ASETB RSCLR RWCLR ECALL DELAYSETB ERET;********************************************** DELAY: MOV R4,#05D1: MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1RET;----------------------------------------------TAB: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehTAB1: db 89h,86h,0c7h,0c7h,0c0hTAB2: db 0c6h,88h,0c0hTABLE1: DB 'WELCOM HERE',0FEHTABLE2: DB 'DFF WB ',0FEHTABLE4: DB 'CAU',0FEHTABLE3: DB 30H,31H,32H,33hDB 34H,35H,36H,37HDB 38h,39H,41H,42HDB 43H,44H,45H,46H;-------------------------------------------------------------------- ;播放歌曲程序;--------------------------------------------------------------------MAIN0: MOV TMOD,#11HMOV IE,#8aH;MOV TH1, #3cH;MOV TL1, #0b0Hlcall ksjnz TTM12MOV 40H,#00H;---------------------------------------------------------NEXT20: MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,A+DPTRMOV R2,AJZ STOPANL A,#0FHMOV R1,AMOV A,R2SWAP AANL A,#0FHJNZ SINGCLR TR0JMP W1;----------------------------------------------------------SING: DEC AMOV 22H,ARL AMOV DPTR,#TABLE00MOVC A,A+DPTRMOV TH0,AMOV 21H,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0SETB TR1W1: LCALL DELAY30INC 40HLCALL KS ;------有键跳出JNZ STOPLJMP NEXT20;----------------------------------------------------------- STOP: CLR TR0CLR TR1LJMP MAIN0;---------------------------------------------------------- TTM12: LCALL K2MOV A,37HCJNE A,#0EH,TTM13CLR TR1LCALL DELAY1TTM120: LCALL KSLCALL DELAY1JZ TTM120LCALL K2MOV A,37HCJNE A,#0EH,TTM120SETB TR1LJMP NEXT20TTM13: CJNE A,#0CH,TTM14MOV A,52HINC AMOV 52H,AMOV A,53HINC AMOV 53H,AMOV A,36HINC AMOV 37H,ALJMP TTM2TTM14: CJNE A,#0DH,TTM2MOV A,52HDEC AMOV 52H,AMOV A,53HDEC AMOV 53H,AMOV A,36HDEC AMOV 37H,A;------------------------------------------------------ TTM2: RET;***************************************************;定时器中断子程序0;***************************************************TT0: PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HCPL P3.7POP PSWPOP ACCRETI;***************************************************;定时器中断子程序1;***************************************************T1INT:MOV TH1, #3cHMOV TL1, #0b0HDJNZ L50MS,X4MOV L50MS,#20;****************---每秒种时钟刷新秒显示一次SECSET:MOV A,SECMOV B,#10DIV ABADD A,#30HMOV P0,#0CEH ;显示秒十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;显示秒个位CALL ENABLECALL WRITE2MOV A,SECINC AMOV SEC,AXRL A,#60X4: JNZ OUTMINSET: MOV SEC,#00H;*************************************每分钟刷新分显示一次MOV A,MININC AMOV MIN,AMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;显示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;显示分个位CALL ENABLECALL WRITE2MOV A,MINMOV B,#3MUL ABMOV B,#100DIV ABMOV R2,AMOV A,#10XCH A,BDIV ABMOV A,MINXRL A,#60JNZ OUTHOUSET:MOV MIN,#00H;**************************************每小时刷新小时显示一次MOV A,HOUMOV B,#10DIV ABADD A,#30H ;将BCD吗转化为ASIIC码MOV P0,#0C8H ;显示小时十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;显示小时个位CALL ENABLECALL WRITE2MOV A,HOUINC AMOV HOU,AXRL A,#10JNZ OUTSJMP OVERFLOWOUT: RETI;*************************************溢出处理OVERFLOW:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HRETI;-------------------------------------------------------------------- DELAY30:MOV R7,#2W2: MOV R4,#125W3: MOV R3,#248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RET;-------------------------------------------------------------------- TABLE00:DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021;--------------------------------------------------------------------;第一首《精忠报国》;-------------------------------------------------------------------- TABLE10:DB66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22HDB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98HDB24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22HDB12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38HDB66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32HDB 22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52HDB62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38HDB64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52HDB 52H,62H,7FH,74H,04H,58H,6FHDB 00;-------------------------------------------------------------------- ;第二首《月亮代表我的心》;-------------------------------------------------------------------- TABLE20:DB 02H,82HDB 16H,32H,54H,02H,52HDB 0A6H,32H,54H,02H,52HDB 64H,74H,0B6H,64HDB 52H,5CH,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,12H,94H,22H,32HDB 2CHDB 32H,52HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 96H,0A2H,96H,82HDB 3CH,54HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 16H,12H,14H,22H,32HDB 2CH,02H,82HDB 16H,32H,56H,12HDB 0A6H,32H,56H,52HDB 66H,72H,0B6H,62HDB 62H,52H,58H,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,92H,0A4H,12H,22HDB 1CHDB 00;------------------------------------------------------------------- ;第三首《看我七十二变》;------------------------------------------------------------------- TABLE30:DB 0d4H,84H,94H,82H,92HDB 12H,22H,82H,92H,02H,92H,82H,0d2HDB 82H,92H,14H,84H,02H,0d1H,0d1HDB 0c2H,0d2H,84H,0d2H,0d2H,82H,82HDB 84H,82H,82H,94H,82H,0d2HDB 82H,82H,82H,92H,02H,82H,82H,0d2HDB 0c4H,84H,0d4H,92H,0d2HDB 82H,0d2H,82H,92H,98HDB 04H,94H,88HDB 04H,94H,88HDB 04H,94H,88HDB 04H,94H,88H,04HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,22HDB 54H,44H,34H,12H,22HDB 34H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,22HDB 54H,44H,32H,22H,12H,92HDB 00;--------------------------------------------------------------------;第四首《同一首歌》;-------------------------------------------------------------------- TABLE40:DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94HDB 1fH,88H,14H,24H,34H,32H,42H,54H,14HDB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74HDB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3fHDB 46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2HDB 92H,84H,94H,1fH,0b8H,68H,46H,52H,68HDB 74H,72H,72H,74H,62H,52H,3fH,0b8H,68HDB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2fHDB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12HDB94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5fHDB 00;-------------------------------------------------------------------- ;第五首《大海》;-------------------------------------------------------------------- TABLE50:DB82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24HDB22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32HDB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94H,1cHDB82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24HDB22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32HDB22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1cH,32H,52HDB 62H,64H,62H,64H,0b2H,62H,52H,54H,62H,54H,32H,22HDB12H,14H,12H,14H,24H,3cH,32H,22H,12H,14H,12H,14H,0b2H,62H,52H,54H,62H,54H,32H,52HDB66H,0b2H,0b4H,62H,52H,5cH,32H,52H,62H,64H,62H,64H,0b2H,62H,52H,54HDB62H,54H,32H,22H,12H,14H,12H,14H,54H,3cH,32H,22H,12H,14H,12H,14H,22H,32HDB 52H,54H,32H,54H,32H,52H,6fH,04H,02H,92H,32H,24H,12H,1fHDB 00;-------------------------------------------------------------------- ;第六首《两只蝴蝶》;--------------------------------------------------------------------TABLE60:DB32H,22H,38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,92H,88H,04H,32H,22HDB38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,21H,92H,12H,28H,04H,32H,22HDB38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,91H,11H,88HDB04H,32H,52H,58H,02H,52H,62H,52H,38H,04H,22H,22H,24H,22H,32H,22H,12H,92H,92HDB12H,12H,1cH,08H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22HDB38H,02H,32H,32H,52H,64H,64H,02H,92H,32H,22H,28H,04H,32H,52H,52H,32H,54H,02H,0b4H,72HDB62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,22H,02H,32H,22H,32HDB 58H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22HDB38H,02H,32H,32H,52H,64H,64H,02H,92H,32H,22H,28H,04H,32H,52H,52H,32H,54H,02H,0b4H,72HDB62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,22H,02H,84H,92H,1cHDB 00;--------------------------------------------------------------------;第七首<<世上只有妈妈好>>;-------------------------------------------------------------------- TABLE70:DB66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB 00;-------------------------------------------------------------------- ;第八首歌《彩云追月》;-------------------------------------------------------------------- TABLE80:DB86H,92H,12H,22H,32H,52H,68H,63H,52H,34H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54HDB62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H,34H,52H,62H,74H,32H,52H,52H,32H,21H,31H,21H,11H,24HDB32H,52H,52H,32H,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H,31H,21H,21H,31H,21H,11H,1CHDB21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H,71H,61H,51H,61H,71H,61H,6FHDB86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54HDB62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H,61H,51H,51H,61H,51H,31H,32H,21H,11H,32H,51H,61H,54HDB02H,32H,24H,32H,52H,52H,32H,22H,31H,21H,11H,24H,32H,52H,62H,0B2H,72H,61H,51H,61H,51H,31H,32H,52H,52H,32H,62HDB51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH,12H,24H,32H,62H,51H,31H,34H,0B4H,72H,61H,51H,63H,71H,64HDB0B2H,54H,72H,62H,71H,61H,54H,61H,51H,31H,21H,34H,73H,61H,54H,22H,32H,52H,22H,36H,52H,62H,61H,31H,32H,21H,11H,21H,11H,91H,81HDB94H,52H,62H,52H,42H,32H,22H,32H,52H,0B4H,74H,64H,52H,61H,51H,41H,5CH,02H,52H,0B4H,74H,63H,51H,61H,51H,31H,21HDB 00;-------------------------------------------------------------------- ;第九首<<十年>>;--------------------------------------------------------------------TABLE90:DB02H,11H,21H,32H,32H,22H,32H,21H,11H,0A1H,91H,92H,0D1H,91H,83H,91H,0A2H,91H,81H,94H,11H,0A1H,91H,0A1H,98H,03H,81H,0A1H,0A1H,91H,0A1HDB98H,04H,02H,11H,21H,32H,32H,22H,32H,21H,31H,51H,11H,13H,31H,22H,22H,21H,11H,0A1H,11H,13H,11H,11H,0A1H,91H,0A1HDB11H,93H,94H,03H,81H,11H,0A1H,91H,81H,92H,0A1H,91H,94H,08H,03H,81H,32H,21H,11H,22H,31H,21H,21H,83HDB01H,11H,91H,0A1H,11H,61H,51H,11H,34H,01H,31H,21H,31H,48H,23H,31H,32H,42H,38H,03H,11H,21H,52H,31HDB33H,31H,31H,41H,51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92H,91H,11H,0A1H,91HDB0A1H,31H,31H,22H,0A1H,11H,14H,01H,11H,21H,31H,63H,31H,42H,51H,31H,31H,22H,11H,21H,52H,31H,33H,31H,31H,41HDB51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92H,91H,11H,0A1H,91HDB0A2H,41H,31H,22H,31H,21H,12H,12H,11H,11H,21H,31H,63H,51H,32H,11H,21H,26H,11H,0A1H,18HDB 00;-------------------------------------------------------------------- ;第十首<<你的爱给了谁>>;-------------------------------------------------------------------- TABLE100:DB02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,24H,21H,0A1H,11H,0A1HDB9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,11H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92HDB02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H,0B1HDB 72H,62H,68H,02H,61H,51H,66H,62H,58H,0CH,02H,51H,41H,5FHDB02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,24H,21H,0A1H,11H,0A1HDB9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,11H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92HDB02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H,0B1HDB 66H,62H,54H,0B2H,71H,61H,6CHDB 00END实验控制流程图如下:使用说明:键盘如下:按键功能说明:1~A:十首歌曲C:上一首歌曲D:下一首歌曲E:歌曲暂停F:开机画面四、调试程序调试中出现的问题及解决的办法:1.有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

单片机课程设计数字音乐盒的设计

单片机课程设计数字音乐盒的设计

数字音乐盒的设计摘要本设计采用了扬声器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。

现选用AT89C51 单片机。

用PROTEUS 单片机仿真软件仿真。

利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

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

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统的音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。

本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。

关键词:AT89C51 单片机,方波,音调目录1 绪论 (1)1.1设计简述 (1)1.2设计目的 (1)1.3主要问题 (1)1.4 技术指标 (1)2 设计方案简述 (2)2.1 设计功能要求 (2)2.2 总体设计原理 (2)2.3 总体设计框图 (2)3 硬件电路设计 (3)3.1 硬件电路 (3)3.2 时钟复位电路 (3)3.3 按键输入电路 (4)3.4 输出显示电路 (4)3.5 整体硬件电路 (5)3.6 原理说明 (6)3.7 键盘按键 (6)4 软件设计 (7)4.1 设计源程序代码(见附录) (7)4.2程序设计流程图 (7)5 仿真 (8)6 设计结果及分析 (10)总结 (11)致谢 (12)参考文献 (13)附录 (14)1 绪论1.1设计简述本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。

与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。

电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。

音乐盒设计(单片机课程设计)

音乐盒设计(单片机课程设计)

目录摘要 (I)Abstract (II)第一章设计方案的对比 (1)第二章总体方案设计 (2)2.1 原理简介 (2)2.2 方案设计思想 (2)第三章方案实现 (3)3.1、音频脉冲的产生 (3)3.2.音乐节拍的生成 (4)3.3.建立音乐的步骤 (4)第四章硬件设计 (5)4.1 硬件电路 (5)4.1.1、AT89C51的工作特性 (5)4.2 原理说明 (6)4.3 电路各模块说明 (6)4.3.1 键盘系统 (6)4.3.2 放大电路 (7)4.3.3 时钟电路 (8)4.3.4 复位电路 (8)5.3.5 显示电路 (9)第五章软件设计 (10)5.1 主模块的设计 (10)第六章仿真、安装和调试 (12)总结 (13)致谢 (14)参考文献 (14)附录 (15)附录一:音乐程序 (15)附录二:基于单片机的数字音乐盒总电路图 (32)摘要本设计是基于单片机的数字音乐盒设计,由单片机AT89C51芯片和LCD显示器为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。

要求利用I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调并采用LCD显示信息,从而演奏乐曲(最少三首乐曲,每首不少于30秒),开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称),可通过功能键选择乐曲,暂停,播放。

本设计采用4*4键盘,用Protel99来画系统硬件图,采用汇编语言进行编程,编程后利用KEIL C51来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。

该音乐盒的设计可以通过按键选择不同的曲目,播放和暂停,并通过LCD显示歌曲号及播放时间。

本设计键盘采用动态扫描方式。

每次扫描一行键盘,送此行低电平,读输入口的状态值,判断有没有键按下。

若有键按下,根据读入口的值选择显示值并送至显示值寄存单元,判断键值,启动计数器T0,根据次值为偏移地址找到要选择的音乐的代码的首地址,根据代码产生一定频率的脉冲,驱动蜂鸣器,放出音。

单片机八音盒课程设计

单片机八音盒课程设计

单片机八音盒课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握八音盒电路的组成及工作原理。

2. 学生能运用编程软件,编写简单的程序,实现对八音盒音调、音量的控制。

3. 学生了解音乐的基础知识,如音符、节拍等,并能运用到单片机八音盒的制作中。

技能目标:1. 学生掌握单片机的连接、调试和编程技巧,具备实际操作能力。

2. 学生能够运用所学知识,独立完成一个具有基本功能的单片机八音盒制作。

3. 学生通过实践,提高动手能力,培养解决问题的策略和方法。

情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新意识和探索精神。

2. 学生在团队协作中,学会沟通、分享,培养集体荣誉感。

3. 学生通过课程学习,认识到科技对生活的影响,增强社会责任感和使命感。

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

学生特点:六年级学生具有一定的逻辑思维能力和动手能力,对新鲜事物充满好奇,喜欢挑战。

教学要求:注重理论与实践相结合,以学生为主体,教师引导,鼓励学生主动探究、合作交流,关注学习过程,注重学习成果的展示和评价。

通过课程目标的分解,使学生在知识、技能和情感态度价值观方面得到全面发展。

二、教学内容依据课程目标,本章节教学内容主要包括以下几部分:1. 单片机基础知识:介绍单片机的原理、结构及功能,使学生了解单片机的基本组成和作用。

(对应教材第3章)2. 八音盒电路原理:分析八音盒电路的组成、工作原理,引导学生理解音调、音量的控制方法。

(对应教材第4章)3. 编程软件使用:教授编程软件的基本操作,使学生掌握如何编写程序来控制单片机实现八音盒功能。

(对应教材第5章)4. 音乐知识应用:介绍音符、节拍等基本音乐知识,并指导学生将其应用于单片机八音盒的制作。

(对应教材第6章)5. 实践操作:安排学生进行单片机八音盒的制作,包括连接电路、编写程序、调试及优化等环节,培养动手能力和创新能力。

单片机课程设计(音乐盒)

单片机课程设计(音乐盒)

单片机论文题目:基于单片机的简易音乐播放器设计学院:物理与电气工程学院专业:电子信息科学与技术年级:08电信(一)班姓名: 王凯陈少杰王龙龚祥龙****: ***完成日期: 2011-9-10摘要...................................................................................................................................... 第1章绪论............................................................................................................................ 第2章音乐基础知识............................................................................................................2.1 音乐基础....................................................................................................................2.2 音频脉冲和音乐节拍的实现....................................................................................2.2.1 音频脉冲的产生.....................................................................................................2.2.2 音乐节拍的产生............................................................................................................ 第3章系统方案设计............................................................................................................3.1设计任务.....................................................................................................................3.2 设计目的....................................................................................................................3.3 设计过程....................................................................................................................3.4 设计思想.................................................................................................................... 第4章硬件电路....................................................................................................................4.1 电路组成及工作原理................................................................................................4.2 工作原理....................................................................................................................4.3 发声驱动电路...........................................................................................................4.4 显示电路....................................................................................................................4.5 控制电路.................................................................................................................... 第5章软件设计....................................................................................................................5.1程序设计.....................................................................................................................5.2 程序流程图................................................................................................................ 第6章系统调试..................................................................................................................6.1 常用调试工具...........................................................................................................6.1.1 Proteu仿真软件介绍...........................................................................................6.1.2 Keil编译环境介绍................................................................................................ 结论及设计缺陷...................................................................................................................... 附录......................................................................................................................................附录1 程序清单..............................................................................................................附录2 单片机音乐发生器电路原理图..........................................................................在电子技术日月更新、不断换代,计算机程序设计语言应用广泛,特别是单片机技术日趋发达的情况下,为了培养并增强设计自主性和动手能力强的人才,了解单片机强大的设计功能,我们进行了此次设计。

  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=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=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最新文件仅供参考已改成word文本。

相关文档
最新文档