基于单片机的演奏乐曲设计.doc_第1页
基于单片机的演奏乐曲设计.doc_第2页
基于单片机的演奏乐曲设计.doc_第3页
基于单片机的演奏乐曲设计.doc_第4页
基于单片机的演奏乐曲设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专科生毕业设计(论文)姓 名: = 学 号:=系 部: 信息工程系 专 业: 电子信息工程技术 班 级: = 设计题目: 单片机演奏乐曲设计 指导教师: = 职 称 = 2011年6月 南京摘 要本文是应用MCS-51单片机原理和控制理论设计乐曲演奏控制器的硬件电路,并利用C语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。此外,其还可以应用多种领域,比如可以应用于门铃、闹铃等各种系统。总之,乐曲演奏器有广泛的用途,而且有很强的生命力。这种控制电路结构简单,可靠性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。在此可以为大家演奏两首乐曲好人一生平安。关键词:AT89C51单片机;乐曲; C语言。目 录1 绪论11.1 引言11.2 选题背景11.3 选题意义12单片机演奏乐曲设计的理论基础22.1单片机演奏乐曲的基本原理32.2 单片机演奏乐曲的控制33 单片机53.1单片机的概念及单片机的种类53.1.1 单片机及单片机系统53.1.2单片机程序设计语言及开发环境简介63.2 常用单片机的应用领域63.3 单片机的发展趋势64 单片机演奏乐曲74.1本设计的目的和意义74.2本设计的电路原理图及元器件74.3本设计的程序设计95 总结12参考文献13致谢14第11页江苏海事职业技术学院2010届专科生毕业设计1 绪论1.1 引言为了降低成本,在最小硬件设计的基础上,系统的功能尽可能用软件来实现,这样的控制电路不但结构简单,可靠性高,应用性强;并且软件程序适应范围广,单片机演奏乐曲就是充分利用了上述的特点进行设计的,对于不同的音乐只需要改变相应的定时常数即可。 1.2 选题背景随着科学技术的发展和进步,各种高科技玩具应运而生,并且各种智能玩具层出不穷,如何给玩具添加更多的功能成为厂家在商业竞争中处于优势地位的主要手段。所以,我觉得,给玩具添加乐曲演奏不失为良策。当然,这种演奏不但是一首乐曲的演奏,还可以是各种大自然的各种的动物的喊叫。试想一下,一只玩具狗不但会发出“汪汪”的声音,而且还会用妈妈的声音唱摇篮曲,孩童的声音交谈,那该是一件让人多么愉悦的事啊!总之,用单片机实现乐曲演奏的功能,既简单轻便,又易于实现,并且成本比古典乐器低廉得多,更重要的是,基于单片机控制的乐曲演奏能够发出一般乐器难以实现的音效。1.3 选题意义 该设计课题使我们能够掌握用定时器TO的方式0控制播放乐曲原理和设计方法,对大学期间所学习的一些理论进行了实践,使我们对所学过的理论知识有了新的认识。并且通过该设计课题掌握了MC-51单片机的的软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工作经验。目前我国的信息行业发展迅速,因此此课题不论是对自己的就业还是对我国单片机应用技术的发展都有非常现实与积极的意义。2单片机演奏乐曲设计的理论基础单片机演奏乐曲的基础理论包括半导体器件、数字电子电路、大规模集成电路、单片机及微机等各个方面,既有硬件又有软件。上述各个领域都有自成体系,本文无法一一尽述,只能以显示屏为主线进行讨论,主要阐述了单片机演奏乐曲的应用基础和工作原理,以及电路的构成和工作原理。2.1单片机演奏乐曲的基本原理单片机演奏乐曲是通过控制定时器时间的不同来产生不同频率的方波,用于驱动喇叭发出不同的音调,再利用延时来控制发音时间的长短,既控制节拍,把乐曲中的音符和相应的节拍换成定时常数和延时常数存放在存储器中。这样就可以听到悦耳的音乐了。2.2 单片机演奏乐曲的控制2.2.1系统硬件组成 1.、89C51单片机一个;开关一个;1uf电容一个,220f电容一个,10f电容三个,30pf电容两个;11.0592MHz晶振一个;绿色发光二极管一个;5.1k、510、100k、100、10k各一个电阻;集成电路IC;还有相关的电线等。 2、44键盘 3、三节电池 4、喇叭一个2.2.2实现方法1、音频控制 要让蜂鸣器发出某音调的声音,只要给蜂鸣器输送该音调频率的电平信号就可以了。由于单片机I/O口的输出只有高电平“1”和低电平“0”两种状态,因此向蜂鸣器输送的电平信号实际上就是该音频的方波。例如中音“1”的频率为532Hz(如图1所示,表示了音调与频率的对应关系),它的周期为1/532s,即1.91ms。因此,只要向蜂鸣器输送周期为1.91ms的脉冲方波电平信号就能发出532Hz的音调,该方波的半周期为1.91/2=0.955ms。为此,需要利用定时器的中断,让输送给蜂鸣器的电平信号每0.955ms取反一次即可。因为所选的单片机的晶振为11.0592MHz,它的一个机器周期为12(1/11.0592)s=1.058s,因此需要的机器周期总数为 955s/1.085s=880即定时器的定时常数就应取为880。根据上述分析,发出频率为f的音频时,定时常数C计算公式为 (106/2f)s/1.085s=460 830/f=CT0工作于方式0,最大计数为8192,完全可以满足各音频定时常数设置的需要。可以证明,在已知定时常数为C的条件下,13位计数器的高8位和低5位的初值可由以下公式设定: TH0=(8192-C)/32; /证明这是13位计数器TH0高8位的赋值方法 TL0=(8192-C)%32; /证明这是13位计数器TL0低5位的赋值方法2、节拍控制 因为本例简朴的节拍为每分钟72拍,则每个节拍需时间: 100060ms/72=833ms 根据乐谱知识,乐谱第一行的第1小节各音调的节拍如下: “2”为1拍,需延时833ms “32 为两个1/4拍,需分别延时833/4=208ms “1”为1拍,需延时833ms “6”为1/4拍,需延时208ms “1”为1/4拍,需延时208ms “6”为两个1/2拍,需延时833/2=416ms根据上述分析,可以取1/4拍(约200ms)为1个延时单位,若某音调为1/2拍,则延时2个单位;若某音调为1拍,则延时4个单位。3、音调与节拍的存储 可以将简谱中所有音调的频率及其节拍分别存储于两个数组,然后依次从数组中读出频率,再根据频率和定时器延时常数的计算公式即可由定时器中断控制发出该音调的音频,其发出声时间可由节拍控制(即14个延时单位)。 4、音调的宏定义 在音调频率存储中,直接将频率存入数组,显然不如以“dao、rei、mi、fa、sao、”的形式存储方便。但是,为了让单片机认识“dao、rei、mi、fa、sao、,需要在程序开头处对各音调的频率进行宏定义,例如低音6(即6)的频率为440Hz;中音6的频率为880Hz;高音6的频率为1760Hz。所以可以对这三个频率进行如下宏定义(其他类似): #define 1_la 440 /将“1_la”宏定义为低音“6”d 频率440Hz #define la 880 /将“la”宏定义为中音“6”d 频率880Hz #define h_la 1760 /将“h_la”宏定义为高音“6”d 频率1760Hz 有了上述宏定义,只要直接将“dao、rei、mi、fa、sao、”及其节拍存入数组,再由单片机读出处理就可以播放音乐了。3 单片机3.1单片机的概念及单片机的种类3.1.1 单片机及单片机系统单片机是微型计算机发展的一个分支,是一种专门面向控制的微处理器件,故又称之为微控制器(Micro Controller Unit,MCU)。单片机通常以单一芯片的形式出现,但是它已具有了微型计算机所包含的基本组成结构和特有的控制应用功能,是一种芯片级的微型计算机。另外,由于单片机的体积、结构和功能特点,在实际应用中可以完全融入应用系统之中,故而也称为嵌入式微控制器(Embedded Micro-Controller)。 最基本的单片机系统由单片机芯片和软件程序共同组建而成,是用户为了实现某种控制用途的需要而设计的实际装置。在单片机系统中,单片机芯片内部的中央处理单元(CPU)处于核心地位,CPU通过执行软件程序调动硬件电路完成控制功能。根据这种工作方式,单片机系统可以划分为硬件和软件两个组成部分。1. 硬件部分单片机系统的硬件部分是包括CPU在内的所有硬件电路,按照硬件电路的功能和配置大致可以分为以下3类1) 基本功能类基本功能类硬件包括:CPU(用于运算、控制)、RAM(用于数据存储)、ROM(用于程序存储)、I/O设备(实现串行、并行输入/输出接口)及时钟电路(建立工作时序)。在微型计算机中,上述部件被分成若干块芯片,安装在一块称之为主板的印刷线路板上,在程序的指挥下完成计算机的基本运算操作功能。但是在单片机中,除了时钟电路之外,其余部分一般均被集成到一块半导体芯片上,所以被称为单片机,即单芯片微型计算机。 2) 控制功能类控制功能类硬件包括:定时器/计数器(用于时间设定/事件记录)和中断装置(实现实时处理)。使用这类硬件是为了实现单片机的控制功能,即定时控制、顺序控制和实时控制等基本控制功能。作为面向嵌入式控制的特色,这类部件通常也集成在单片机芯片内部。3) 辅助功能类辅助功能类硬件包括:A/D(模/数转换)和D/A(数/模转换,通常采用PWM形式)等部件。这类部件根据芯片的配置不同不一定集成在单片机芯片上,需要用户根据使用要求选择。 2. 软件部分与微型计算机的运行原理相似,单片机系统的运行也需要软件系统的支持,但是由于处理任务的不同,其复杂程度相对较低。根据单片机软件所要实现的功能,可以将软件划分为管理程序和应用程序两类。1) 管理程序管理程序是单片机系统的监控程序,主要用于控制过程复杂,控制量较大的装置,例如测控仪器、仪表等。对于仅完成简单控制任务的单片机系统一般可以相应简化。 2) 应用程序应用程序是针对具体的控制动作而编写的程序,是实现控制具体功能的程序基础,通常以子程序模块的形式出现,便于执行控制动作时调用。 3.1.2单片机程序设计语言及开发环境简介单片机程序设计语言主要是指在开发系统中使用的语言。在单片机开发系统中可以使用机器语言、汇编语言和高级语言。机器语言采用机器码,是单片机能够直接识别的程序语言,汇编语言是以助记符表示机器码的程序设计语言。机器语言和汇编语言都是高效的计算机语言,实时性较强,但它们都是面向机器的语言,通用性差,编程效率低。单片机的开发过程涉及3项内容,即编程、纠错和仿真。一般采用PC机内安装的集成开发环境(IDE)软件进行开发调试。在集成开发环境内可以实现文本编程、编译纠错和仿真运行。其中仿真的形式又可以分为两种,即软件仿真和硬件仿真。软件仿真不必连接硬件应用系统,仿真结果在开发环境中模拟的单片机构造中得到体现;硬件仿真需要与用户控制系统配合,以集成开发环境的输出替代用户系统中原有的单片机,仿真过程真实、实时性强。另一种较新的开发形式采用具有ISP(In-System Programming,在系统可编程)功能的单片机,利用下载程序开发单片机系统3.2 常用单片机的应用领域单片机的特点是集成度高、功能强、可靠性高、体积小、功耗低、使用方便及价格低廉。单片机的应用几乎是无处不在,已经渗透到我们生活中的各个领域。目前单片机已经在工业控制、仪器仪表、家用电器、办公自动化、医用设备、信息和通信产品、航空航天、专用设备的智能化管理等领域中得到了广泛的应用,其应用形式体现如下。 1. 在工业控制中的应用2. 在智能仪器中的应用3. 在家用电器中的应用 4. 在信息和通信产品中的应用5. 在办公自动化设备中的应用6. 在商业营销设备中的应用7. 在医用设备领域中的应用8. 在汽车电子产品中的应用3.3 单片机的发展趋势目前,单片机正朝着高性能和多品种方向发展,将会进一步实现低功耗、小体积、大容量、高性能、低价格和外围电路内装化等要求。单片机的发展将主要以满足在嵌入式应用前提下与控制对象的最佳结合,突显其智能化控制能力。并在此基础上寻求应用系统在芯片上的最大化解决方式,即形成了SoC化趋势。在微电子技术、IC设计、EDA工具发展的推动下,基于SoC的单片机应用系统将会得到较快的发展。4 单片机演奏乐曲4.1本设计的目的和意义目的:1、能熟练运用单片机工作原理;2、应用定时器/计数器的工作方式;3、熟练编写单片机的控制程序。意义:及时的考量我们所学的知识,并将我们所学的知识熟练地运用到实际生活当中。要求:用定时器T0的中断控制播放音乐好人一生平安。4.2本设计的电路原理图及元器件一、原理图用单片机控制输出声音的硬件电路如图4-2-1所示。表4-2-2列出了C音调与频率的对应的关系。图4-2-1音调低1(低音“dao”)低2低3低4低5低6低7频率262294330349392440494音调1(中音“dao”)234567频率523587659698784880988音调高1(高音“dao”)高2高3高4高5高6高7频率1046117513181397156817601967 图4-2-2 二、元器件单片机控制播放音乐电路元器件清单如表4-2-1所示。单片机演奏乐曲电路元器件清单元器件名称参数数量元器件名称参数数量单片机89C511电阻5.1k1 电容1f1电阻5101 电容220f1电阻100k1 电容10f3电阻1001 电容30pf2电阻10k1晶体振荡器11.0592MHz17号干电池3绿色发光二极管1喇叭1IC1开关144键盘1相关电线4-2-1电路元器件清单4.3本设计的乐谱图1-1 好人一生平安的乐谱4.4本设计的程序设计该设计课题是用定时器TO的方式0控制播放乐曲的,其程序如下所示: /实例49:用定时器T0的中断实现渴望主题曲的播放#include /包含51单片机寄存器定义的头文件sbit sound=P37; /将sound位定义为P3.7unsigned int C; /储存定时器的定时常数/以下是C调低音的音频宏定义#define l_dao 262 /将“l_dao”宏定义为低音“1”的频率262Hz#define l_re 286 /将“l_re”宏定义为低音“2”的频率286Hz#define l_mi 311 /将“l_mi”宏定义为低音“3”的频率311Hz#define l_fa 349 /将“l_fa”宏定义为低音“4”的频率349Hz#define l_sao 392 /将“l_sao”宏定义为低音“5”的频率392Hz#define l_la 440 /将“l_a”宏定义为低音“6”的频率440Hz#define l_xi 494 /将“l_xi”宏定义为低音“7”的频率494Hz/以下是C调中音的音频宏定义#define dao 523 /将“dao”宏定义为中音“1”的频率523Hz#define re 587 /将“re”宏定义为中音“2”的频率587Hz#define mi 659 /将“mi”宏定义为中音“3”的频率659Hz#define fa 698 /将“fa”宏定义为中音“4”的频率698Hz#define sao 784 /将“sao”宏定义为中音“5”的频率784Hz#define la 880 /将“la”宏定义为中音“6”的频率880Hz#define xi 987 /将“xi”宏定义为中音“7”的频率523H /以下是C调高音的音频宏定义#define h_dao 1046 /将“h_dao”宏定义为高音“1”的频率1046Hz#define h_re 1174 /将“h_re”宏定义为高音“2”的频率1174Hz#define h_mi 1318 /将“h_mi”宏定义为高音“3”的频率1318Hz#define h_fa 1396 /将“h_fa”宏定义为高音“4”的频率1396Hz#define h_sao 1567 /将“h_sao”宏定义为高音“5”的频率1567Hz#define h_la 1760 /将“h_la”宏定义为高音“6”的频率1760Hz#define h_xi 1975 /将“h_xi”宏定义为高音“7”的频率1975Hz/*函数功能:1个延时单位,延时200ms*/void delay() unsigned char i,j; for(i=0;i250;i+) for(j=0;j250;j+) ; /*函数功能:主函数*/void main(void) unsigned char i,j; /以下是渴望片头曲的一段简谱 unsigned int code f=re,mi,re,dao,l_la,dao,l_la, /每行对应一小节音符 l_sao,l_mi,l_sao,l_la,dao, l_la,dao,sao,la,mi,sao, re, mi,re,mi,sao,mi, l_sao,l_mi,l_sao,l_la,dao, l_la,l_la,dao,l_la,l_sao,l_re,l_mi,l_sao,re,re,sao,la,sao,fa,mi,sao,mi,la,sao,mi,re,mi,l_la,dao,re,mi,re,mi,sao,mi,l_sao,l_mi,l_sao,l_la,dao,l_la,dao,re,l_la,dao,re,mi,re,l_la,dao,re,l_la,dao,re,mi,re,0xff; /以0xff作为音符的结束标志/以下是简谱中每个音符的节拍/4对应4个延时单位,2对应2个延时单位,1对应1个延时单位 unsigned char code JP =4,1,1,4,1,1,2, 2,2,2,2,8,4,2,3,1,2,2,10,4,2,2,4,4,2,2,2,2,4, 2,2,2,2,2,2,2,10,4,4,4,2,2,4,2,4,4,4,2,2,2,2,2,2,10,4,2,2,4,4,2,2,2,2,6,4,2,2,4,1,1,4,10,4,2,2,4,1,1,4,10; EA=1; /开总中断 ET0=1; /定时器T0中断允许 TMOD=0x00; / 使用定时器T0的模式1(13位计数器) while(1) /无限循环 i=0; /从第1个音符f0开始播放 while(fi!=0xff) /只要没有读到结束标志就继续播放 C=460830/fi; TH0=(8192-C)/32; /可证明这是13位计数器TH0高8位的赋初值方法 TL0=(8192-C)%32; /可证明这是13位计数器TL0低5位的赋初值方法 TR0=1; /启动定时器T0 for(j=0;jJPi;j+) /控制节拍数 delay(); /延时1个节拍单位 TR0=0; /关闭定时器T0 i+; /播放下一个音符 /*函数功能:定时器T0的中断服务子程序,使P3.7引脚输出音频的方波*/ void Time0(void ) interrupt 1 using 1 sound=!sound; /将P3.7引脚输出电平取反,形成方波 TH0=(8192-C)/32; /可证明这是13位计数器TH0高8位的赋初值方法 TL0=(8192-C)%32; /可证明这是13位计数器TL0低5位的赋初值方法 5 总结在3个月的设计时期对单片机, C语言又有了深刻的了解,尤其是单片机,单片机的种类很多而且在生活中应用范围比较很广,像在工业控制、仪器仪表、家用电器、办公自动化、医用设备、信息和通信产品、航空航天、专用设备的智能化管理等领域都有应用,现在是一个自动化智能化的世界,单片机的发展将主要以满足在嵌入式应用前提下与控制对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论