2017毕业论文-基于AT89S52单片机的简易电子琴设计.doc

上传人:good****022 文档编号:116648335 上传时间:2022-07-06 格式:DOC 页数:35 大小:794.02KB
返回 下载 相关 举报
2017毕业论文-基于AT89S52单片机的简易电子琴设计.doc_第1页
第1页 / 共35页
2017毕业论文-基于AT89S52单片机的简易电子琴设计.doc_第2页
第2页 / 共35页
2017毕业论文-基于AT89S52单片机的简易电子琴设计.doc_第3页
第3页 / 共35页
点击查看更多>>
资源描述
毕 业 设 计(论 文)简易电子琴设计教 学 系: 信息工程系 指导教师: xxx xxx 专业班级: 电信xxxx 学生姓名: xxx xxx 2011年六月毕业设计(论文)开题报告题目简易电子琴设计1目的及意义(含国内外的研究现状分析):随着当代科学技术的发展,电子产品在人们的日常生活中占据着越来越重要的地位。电子琴作为其中的一个典型代表,引领着许多孩子进入音乐的殿堂。因此,我们选择了简易电子琴这个题目来制作,因为它不仅能够提高我的实践动手能力,还与实际生活有着紧密地联系。单片机是一门实践性很强的课程,而此次课程设计依据的理论基础是单片机的相关知识。其主要目的是通过本课程的培养,启发学生的创造性思维,进一步理解数字系统的概念,掌握小型数字系统的设计方法,掌握小型数字系统的组装和调试技术,装握查阅有关资料的技能。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术及高可靠性和高性价比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机领域中的主流。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。随着科技的不断进步,单片机技术也有新的发展方向。如嵌入式单片机和嵌入式Internet 技术。Machz单芯片 pc是嵌入式单片机的进一步发展和延伸,是微电子技术发展的必然产物。它的内核为带浮点单元的 486处理器,集成了 Pentium 的 I/O设备:南桥、北桥、PCI、ISA、USB、EIDS 接口以及1SUPER-I/O 接口。“嵌入式Internet”并非一般意义上的“嵌入式循控制嚣”概念,而是后 pc 时代信息技术发展的必然产物。前几部分介绍的嵌入式MCU,已经在工业的各个领域和家庭都得到了十分广泛的应用。但大多数嵌入式系统尚处于单独应用阶段。如果将这些互相独立的分散的嵌入式系统再连接到 Internet 上,就可方便地、低廉地将信息传送到几乎世界的任何地方一一这就是嵌入式 Internet。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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。总之,单片机技术经历了这些年的发展有了很大的进步和提高.随着科技的进步.我们有理由相信单片机技术一定有更美好的未来。2基本内容和技术方案:用一个单片机最小系统的设计一简易电子琴,按下不同按键,能够发出不同的声音。通过每个按键的控制使单片机系统输出不同频率的脉冲,经过扬声器发出不同频率音调,且能播放多首歌曲。1.系统硬件电路设计 本控制器以单片机系统为核心,设计能满足上述目标的单片机最小应用系统。该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计具有11个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。系统结构图本次课程设计的显示电路采用LED数码管显示,LED(Light-Emitting Diode)是一种外加电压从而流过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。常用的七段显示器的结构如图下图所示。发光二极管的阳极连在一起的称为共阳极显示器(如图b所示),阴极连在一起的称为共阴极显示器(如图c所示)。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来。 (a)外形 (b)共阳极 (C)共阴极单片机主程序模块通过对键盘扫描程序信号的读取,在通过对应的表,取出数码管显示编码和定时器初始值以产生不同的声音信号。在这一过程中,对数码管编码是直接赋值,对声音信号则是通过中断程序进行控制。数码管显示模块核心是共阳级数码管,通过来自单片机I/O口的电平高低来点亮和熄灭数码管上的发光二极管,通过单片机送来的数码管显示编码可以在数码管上显示数字和字符,使应用人员可以很容易的理解按键按下所对应的音符。数码管显示模块电路原理图由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置,因LM386芯片具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装LM386音频信号放大器对信号进行放大。2.系统软件设计编写实现系统功能的源程序,进行仿真调试,并进行编译与固化。了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:音符频率(HZ)计数值(T值)音符频率(HZ)计数值(T值)低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283音符频率与计数值T的对照表T的值决定了TH0和TL0的值,其关系为:TH0=T/256,TL0=T%256该程序设计思路比较清晰既从开始到声明变量与函数再到读取按钮开关,判断是否按下,然后就是一个一个按钮的动作。其主程序如下:主程序框图3进度安排:4指导老师意见:指导教师签名: 年 月 日注:1. 开题报告应根据教师下发的毕业设计(论文)任务书,在教师的指导下由学生独立撰写,在毕业设计开始后三周内完成;2设计的目的及意义至少800字,基本内容和技术方案至少400字;3指导教师意见应从选题的理论或实际价值出发,阐述学生利用的知识、原理、建立的模型正确与否、学生的论证充分否、学生能否完成课题,达到预期的目标。郑 重 声 明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。本人签名: 日期: 目 录【摘要】21 绪论41.1 电子琴设计的背景意义41.2 电子琴设计的目标41.3方案比较以及选择42硬件设计及说明52.1系统组成及总体框图52.2元件简介52.21 AT89S5252.22 LM38672.23 LED数码管92.3 各功能模块原理图102.31 AT89S52模块电路原理图102.32 键盘扫描模块原理图112.33 数码管显示模块电路原理图112.34 音频处理模块电路原理图123软件设计123.1 音乐相关知识123.2如何用单片机实现音乐的节拍133.3如何用单片机产生音频脉冲133.4系统总体功能流程图134系统调试164.1硬件调试164.2 软件调试165课程设计总结以及心得体会17致谢18参考文献18附录20摘 要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。关键词:AT89S52 单片机 电子琴ABSTRACTWith the development and progress of society, music has become an important part of life, it was said that people do not like the music to the evil. We will find time to enjoy the world music, as the baptism of the spirit. This thesis developed a simple microcontroller-based electronic key board.Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It modern music played an important role in single chip is a powerful control functions and flexible programming characteristics, It has converged with modern peoples lives, become an irreplaceable part. The main content is AT89C52 control of the core components, Design of an electronic organ, single chip as a host to the core, with the keyboard, speakers and other core modules main control module, in the main control module has 16 keys and speakers. Stability of the system, its advantages are simple hardware circuits, software functions, control system reliability, high cost performance and have certain practical and reference value.Key words : AT89S52 single chipMCU keyboard1 绪论1.1电子琴设计的背景及意义随着当代科学技术的发展,电子产品在人们的日常生活中占据着越来越重要的地位。电子琴作为其中的一个典型代表,是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。因此,我们选择了简易电子琴这个题目来制作,因为它不仅能够提高我的实践动手能力,还与实际生活有着紧密地联系。单片机是一门实践性很强的课程,而此次课程设计依据的理论基础是单片机的相关知识。其主要目的是通过本课程的培养,启发学生的创造性思维,进一步理解数字系统的概念,掌握小型数字系统的设计方法,掌握小型数字系统的组装和调试技术,装握查阅有关资料的技能。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。1.2 电子琴设计的目标由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行性上进行分析如下:1、经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于课程设计是提高我们的动手能力以及资金有限。因此在经济上必须能够承受,比较理想化的对于我们课程设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。2、技术可行性:技术可行性主要是分析技术条件上是否能够顺利开展并完成课程设计的主要问题,硬件、软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。31.3方案的比较和选择方案一:用可控硅制作电子琴。将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。将单向可控硅SCR和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。方案二:采用AT89S52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。选择方案:鉴于上述对比与分析,本设计采用方案二。2硬件设计及说明2.1系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计具有16个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。210本例使用国家半导体公司的低压音频功率放大器LM386来实现音频功放电路。按键音频功放电路单片机AT89S52扬声器LED显示电路图2-1 系统结构图2.2元件简介2.21 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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 引脚说明:P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。图2-2 AT89S52引脚图 DIP封装2.22 LM386 LM386是美国国家半导体公司生产的音频功率放大 器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386的封装形式有塑封8引线双列直插式和贴片式。图2-3 LM386的封装形式特性静态功耗低,约为4mA,可用于电池供电。 工作电压范围宽,4-12V or 5-18V。 外围元件少。 电压增益可调,20-200。 低失真度。图2-5 LM386内部电路原理图LM386内部电路原理图如图2-5所示。与通用型集成运放相类似,它是一个三级放大电路. 第一级为差分放大电路,V1和V2、V3和V4分别构成复合管,作为差分放大电路的放大管;V5和V6组成镜像电流源作为V2和V3的有源负载;V1和V4信号从管的基极输入,从V3管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益 第二级为共射放大电路,V7为放大管,恒流源作有源负载,以增大放大倍数。 第三级中的V8和V9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。 引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。电阻R3从输出端连接到V3的发射极,形成反馈通路,并与R1和R2构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。其典型应用电路如下: 图2-6 放大器增益=20(最少器件)图2-7音频放大器电路2.23 LED数码管本次课程设计的显示电路采用LED数码管显示,LED(Light-Emitting Diode)是一种外加电压从而流过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。常用的七段显示器的结构如图下图所示。发光二极管的阳极连在一起的称为共阳极显示器(如图b所示),阴极连在一起的称为共阴极显示器(如图c所示)。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来。 (a)外形 (b)共阳极 (C)共阴极图2-8 数码管引脚数码管使用注意事项说明:(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:260度;焊接时间:5S(3)表面有保护膜的产品,可以在使用前撕下来。2.3 各功能模块原理图2.31 AT89S52模块电路原理图单片机主程序模块通过对键盘扫描程序信号的读取,在通过对应的表,取出数码管显示编码和定时器初始值以产生不同的声音信号。在这一过程中,对数码管编码是直接赋值,对声音信号则是通过中断程序进行控制。图2-9 AT89S52模块电路原理图2.32键盘扫描模块电路原理图对键盘扫描电路的扫描方式有行扫描法和线反转法,在此次程序编写中,采用行扫描法,通过在p20p23上循环送出0扫描信号,p24p27输入按键上的高低电平信息给单片机,经处理程序,判断出是哪个开关按下,并送主程序以实现不同功能。图2-10 键盘扫描模块电路原理图2.33数码管显示模块电路原理图数码管显示模块核心是共阳级数码管,通过来自单片机I/O口的电平高低来点亮和熄灭数码管上的发光二极管,通过单片机送来的数码管显示编码可以在数码管上显示数字和字符,使应用人员可以很容易的理解按键按下所对应的音符。图2-11 数码管显示模块电路原理图2.34音频处理模块电路原理图 由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置,因LM386芯片具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装LM386音频信号放大器对信号进行放大。图2-12 音频处理模块电路原理图3 软件设计 本软件设计关键是要实现一种由单片机控制的简单音乐发生器,它由16个音节组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。3.1 音乐相关知识 乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低声音就低,不同音商的乐音是用C、D、E、F、G、A、B表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。3.2如何用单片机实现音乐的节拍 除了音符以外,节拍也是音乐的关键组成部分。 节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍的延时是0.4秒,则1拍的延时是1.6秒,只要知道1/4拍的延时时间,其余的节拍延时时间就是它的陪数。如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置,由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。音乐的音拍,一个节拍为单位(C调)具体如下表:曲调值DELAY 曲调值DELAY调4/4125ms 调4/462ms调3/4187ms 调3/494ms调2/4250ms 调2/4125ms 表3-1 音乐节拍表3.3如何用单片机产生音频脉冲了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:音符频率(HZ)计数值(T值)音符频率(HZ)计数值(T值)低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283 表3-2 音符频率与计数值T的对照表T的值决定了TH0和TL0的值,其关系为:TH0=T/256,TL0=T%256。1143.4系统总体功能流程图该程序设计思路比较清晰既从开始到声明变量与函数再到读取按钮开关,判断是否按下,然后就是一个一个按钮的动作。其主程序如下:图3-1 主程序框图 图3-2工作流程框图4 系统调试 电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为两大部分:硬件调试和软件调试。4.1硬件调试硬件调试主要是针对单片机部分进行调试。在上电前,先确保电路中不在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要键盘单片机控制部分、数码管点亮部分、和音频转换电路硬件调试。1、数码管LED电路调试:接通电源,随机按下按钮可以看到数码管显示数字。2、键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对应的音正确。4.2 软件调试调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。5 课程设计总结以及心得体会通过这次的单片机课程设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。首先在课程设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的发展,和它们之间的竞争。了解了单片机方面的先进技术,这些都为我的未来的学习指明了方向。我的课程设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对52系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LED数码管,键盘等。在软件方面,通过串行口调试工具的开发,使我加深了对累封装的理解,熟悉了52系列单片机内部的寄存器和编程规则,以及如何控制外围电路。 此外在学习单片机知识的时候对于这个领域有了更新更全面的认识。微型计算机的出现和大量使用将人类社会带入一个新的时代,单片微型计算机(简称单片机)在其中扮演着十分重要的角色。虽然它没有常见的PC那样大的体积和重量,不会在办公桌或控制台上占据一个显要的位置,但它就像小小的螺丝钉一样,镶嵌在人们工作、生活中需要计算、控制、测量等智能活动的各个角落。自20世纪70年代问世以来,单片机以其体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点,在智能仪表、机电一体化、实时控制、分布式多机系统、家用电器等各个领域得到了广泛应用,对各个行业的技术改造和产品的更新换代起着重要的推动作用,对人们生活质量的提高产生了深刻的影响。作为21世纪的工科大学生,学好单片机,一方面可以加深对计算机原理和结构的认识,另一方面也为自身在专业上的深入发展构筑了一个很好的平台其重要性怎么强调都不为过最后,感谢吕雪老师的精心指导,使我能够完成这次课程设计。致 谢 这次毕业论文能够得以顺利完成,是所有曾经指导过我的老师,帮助过我的同学,一直支持着我的家人对我的帮助和鼓励的结果。我要在这里对他们表示深深的谢意! 首先,要特别感谢我的指导老师吕雪老师。吕老师在我毕业论文的撰写过程中,给我提供了极大的帮助和指导。从开始选题到中期修正,再到最终定稿,吕老师给我提供了许多宝贵建议。老师丰富的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。 其次,要感谢所有曾经教我们电子信息的任课老师,老师们教会我的不仅仅是专业知识,更多的是对待学习、对待生活的态度。 第三,感谢我的父母亲,谢谢你们对我的支持与鼓励! 再次,感谢我的室友及其他同学,因为有你们的帮助,我的论文得以顺利完成。不会忘记,大学四年里我们一起度过的欢乐时光,那些开心的日子,总是那么令人难以忘怀。 最后对老师,同学和家人再次致以我最衷心的感谢!正因为有了你们,我的大学才算完整,有了你们我的生活更加精彩。参考文献【1】黄鑫,马善农,赵永科.基于CPLD的电子琴研究与设计J.科技广场,2007【2】吴金戌,沈庆阳,郭庭吉,8051单片机实践与应用M清华大学出版社,2001【3】龙威林,杨冠声,胡山.单片机应用入门:AT89S51和AVRM.北京:化学工业出版社,2008.【4】张毅刚,MCS-51单片机应用设计M哈尔滨工业大学出版社,2004【5】李朝青. 单片机原理及接口技术M. 北京:北京航天航空大学出版色,2001【6】胡汉才. 单片机原理及其接口技术M. 北京:清华大学出版社,2004【7】陈明荧8051单片机课程设计实训教材M北京:清华大学出版社,2003年9月【8】徐新艳单片机原理、应用与实践M北京:高等教育出版社,2005年3月【9】杨恢先,黄辉先.单片机原理及应用M.北京:人民邮电出版社,2006【10】张虹.单片机原理及应用M.北京:中国电力出版社,2009【11】赵亮,侯国锐.单片机C语言编程与实例M.北京:人民邮电出版社,2003【12】美Ashish Wilfred Meeta Gupta Kartik Bhatnagar著,刘永明,贺民译. php专业项目实例开发J. 水利水电出版社,2003【13】Datasheet of Single chip 433/868/915 MHz Transceiver nRF903 ,Nordic VLSI,2002【14】Fischer R A,Laakonen A S,Schulz N NA general pooling algorithm using a wireless AMR system for restoration confirmationIEEE Transon Power Systems,2001 附录:电路图 仿真图键盘识别程序框图语言源程序#includeunsigned char code table=0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71;unsigned char temp;unsigned char key;unsigned char i,j;void main(void)while(1)P3=0 xff;P3_4=0;temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)temp=P3;temp=temp & 0 x0f;switch(temp)case 0 x0e:key=7;break;case 0 x0d:key=8;break;case 0 x0b:key=9;break;case 0 x07:key=10;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp & 0 x0f;while(temp!=0 x0f)temp=P3;temp=temp & 0 x0f;P3=0 xff;P3_5=0;temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)temp=P3;temp=temp & 0 x0f;switch(temp)case 0 x0e:key=4;break;case 0 x0d:key=5;break;case 0 x0b:key=6;break;case 0 x07:key=11;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp & 0 x0f;while(temp!=0 x0f)temp=P3;temp=temp & 0 x0f;P3=0 xff;P3_6=0;temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)temp=P3;temp=temp & 0 x0f;switch(temp)case 0 x0e:key=1;break;case 0 x0d:key=2;break;case 0 x0b:key=3;break;case 0 x07:key=12;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp & 0 x0f;while(temp!=0 x0f)temp=P3;temp=temp & 0 x0f;P3=0 xff;P3_7=0;temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0 x0f;if (temp!=0 x0f)temp=P3;temp=temp & 0 x0f;switch(temp)case 0 x0e:key=0;break;case 0 x0d:key=13;break;case 0 x0b:key=14;break;case 0 x07:key=15;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp & 0 x0f;while(temp!=0 x0f)temp=P3;temp=temp & 0 x0f; 11程序清单ORG 0000H ;初始位置00H JMP STARET ;跳到主程序 ORG 000BH ;定时器0中断起始单元 JMP TIME0 ;跳到中断程序 STARET: MOV TMOD,#00000001B;设定工作方式为1 MOV IE, #10000010B ;开中断允许 SETB TR0L1: CALL KEY ;调用键盘扫描程序 CLR EA ;关中断总允许 JB F0,L1 ;查询键盘按下标志 MOV A,22H ;将键盘码送单元A MOV DPTR,#TABLE1 MOVC A,A+DPTR ;将查询的数码管显示码送A MOV P0,A ;将数码管显示码送数码管 MOV A,22H ;将键盘码送单元A RL A ;数据倍乘 MOV DPTR,#TABLE MOVC A,A+DPTR;将声音编码送A MOV TH0,A;将声音编码高位给TH0 MOV 21H,A;送声音编码给21H单元储存 MOV A,22H RL A INC A MOVC A,A+DPTR;取声音编码地位给A MOV TL0,A;将声音编码送TL0 MOV 20H,A;将声音编码低位送20H储存L2: CALL KEY;调用江畔扫描程序 SETB EA;开断总允许 JB F0,L1;查询键盘按下标志 JMP L2 ;没有转L2循环/*键盘扫描程序*/KEY: SETB F0 ;键盘按下标志至1 MOV R3,#0F7H;R3送扫描码 MOV R1,#00H;R1初始为0L3: MOV A,R3;将扫描码送A MOV P2,A将扫描码送P2扫描 MOV A,P2;读取键盘状态 SETB C;进位至1 MOV R5,#04H;将4给R5单元,用于行扫描L4: RLC A JNC KEYIN;有键按下跳到KEYIN INC R1;无键按下R1加1 DJNZ R5,L4;判断一行有没有判断完毕 MOV A,R3;扫描完毕后,再次送扫描码给A SETB C;进位置1
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 装配图区 > UG装配图


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!