为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

毕业设计(论文) 基于51单片机的电子琴系统设计

2017-10-22 36页 doc 157KB 43阅读

用户头像

is_279425

暂无简介

举报
毕业设计(论文) 基于51单片机的电子琴系统设计毕业设计(论文) 基于51单片机的电子琴系统设计 学士学位毕业设计(论文) 基于51单片机的电子琴系 统设计 学生姓名: 中国?大庆 2013 年 5 月 阶段规划: 2013年 1月 7 日—— 2013年 2月20 日 确定设计题目,查询资料 2013年 3月31日—— 2013年 3月31 日 深入研究题目,设计程序 2013年 4月 1 日—— 2013年 4月30 日 购买元件,焊接实物 2013年 5月 1 日—— 2013年 5月12 日 整理论文准备答辩 开题时间 2013.1.7 完成...
毕业设计(论文) 基于51单片机的电子琴系统设计
毕业(论文) 基于51单片机的电子琴系统设计 学士学位毕业设计(论文) 基于51单片机的电子琴系 统设计 学生姓名: 中国?大庆 2013 年 5 月 阶段规划: 2013年 1月 7 日—— 2013年 2月20 日 确定设计目,查询资料 2013年 3月31日—— 2013年 3月31 日 深入研究题目,设计程序 2013年 4月 1 日—— 2013年 4月30 日 购买元件,焊接实物 2013年 5月 1 日—— 2013年 5月12 日 整理论文准备答辩 开题时间 2013.1.7 完成论文时间 2013.5.12 专家审定意见: 系主任签字: 年 月 日 注:1(任务由指导教师填写后交给学生,要求学生妥善保存。 2(此任务书夹于论文扉页与论文一并装订,作为论文评分依据之。 摘要 摘要 随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。许多人都会抽空欣赏世界名曲,作为对精神的洗礼。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有9个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。 关键字:电子琴 单片机 1602显示器 定时器 I ABSTRACT ABSTRACT With 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. 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 people's lives, become an irreplaceable part. The main content is STC89C51 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 9 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. Keywords :Electronic Organ MCU The 1602 Display Timer II 目录 目录 摘要 ..................................................................................................... I ABSTRACT ........................................................................................ II 前言 ................................................................................................... IV 1.绪论 ............................................................................................. - 1 - 1.1课题设计目的和意义 ......................................................... - 1 - 1.2本系统主要研究内容 ......................................................... - 1 - 1.3比较与设计构思 ......................................................... - 1 - 2.系统硬件设计 .............................................................................. - 2 - 2.1原理框图 ............................................................................ - 2 - 2.2单片机的最小工作系统 ..................................................... - 2 - 2.3显示部分设计 .................................................................... - 3 - 2.4操作键设计 ........................................................................ - 4 - 2.5发音部分设计 .................................................................... - 6 - 2.6本章小结 ............................................................................ - 7 - 3.系统软件设 .................................................................................. - 8 - 3.1系统分析 ............................................................................ - 8 - 3.2参数计算 ............................................................................ - 8 - 3.3程序设计 .......................................................................... - 10 - 3.4本章小结 .......................................................................... - 13 - 4.Proteus软件仿真 ..................................................................... - 14 - 4.1硬件调试 .......................................................................... - 14 - 4.2软件调试 .......................................................................... - 14 - 结论 .............................................................................................. - 16 - 参考文献 ...................................................................................... - 17 - 致谢 .............................................................................................. - 18 - 附录 .............................................................................................. - 19 - III 前言 前言 随着电子科学技术的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们带来更多的生活乐趣。电子琴又称作电子键盘,属于电子乐器(区别于电声乐器),发音音量可以自由调节。音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。它还可模仿多种音色,甚至可以奏出常规乐器所无法发出的声音(如合唱声、风雨声等)。另外,电子琴在独奏时,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。基于当前市场上的玩具需求量增大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件来实现电子琴的功能,从而可以实现电子琴的微型化,可以用作玩具琴、音乐转盘以及 [1]音乐童车等等。 电子琴是一种功能强大,易于制作,成本低廉的现代新型乐器。它可根据使用者的不同要求方便的进行设计,成为现代社会一种颇具市场号召力的乐器。单片机具有强大的控制功能和灵活的编程实现特性,在现代工业生活中随处可见,本次毕业设计主要就是利用STC89C52单片机为核心控制元件,设计 [2]简易的一个电子琴,主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想 [3]演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一 [4]首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 IV 黑龙江八一农垦大学毕业设计(论文) 1.绪论 1.1课题设计目的和意义 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应 [5]用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有九个按 [6]键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及 [7]各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下键盘按键会使1602液晶显示器显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有一个小的飞跃。 1.2本系统主要研究内容 利用所给键盘的九个键,能够发出八个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的 [8]脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 1.3方案比较与设计构思 硬件电路要以单片机作为主控芯片,实现按键输入音符和音调,1602液晶显示器的显示以及低音频功率放大和扬声器发音。为了使电子琴的控制系统更加的方便、灵活以及稳定性,我们对系统硬件进行了简约和优化,使硬件更加的实用,更加的人性化,硬件电路包括中心控制模块、播放模块、按键控制模块、显示模块四大类。针对本设计的功能和用途,采用STC89C52 [9]单片机更好,实现功能完全,性价比较高,更适合本设计。 - 1 - 黑龙江八一农垦大学毕业设计(论文) 2.系统硬件设计 2.1原理框图 本系统有主控芯片STC89C52、发音模块、显示模块、按键模块组成。该设计方案是通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。通过这样可以不断的弹奏想要的音符或者是音调,电路由复位电路,和功能按键电路组成,通过功能键可以选择播放音乐或者弹奏音节,硬件主要有下面几个 [10]部分组成。原理框图如图1所示。 歌曲播放 音频 喇叭发STC89C52单片机 键盘输入 放大 出声音 显示播 放音阶 图1 原理框图 2.2单片机的最小工作系统 单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单 [11]片机之外,还需要包括电源供电电路、时钟电路、复位电路。 2.2.1时钟电路 此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。MCS-51内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片 - 2 - 黑龙江八一农垦大学毕业设计(论文) 外晶体 谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容CX1和CX2构成并联谐振电路,接在放大器的反馈回路中。,此系统电路的晶体振荡器的值为12MHz,电容值约为30μF。时钟电路电路图如图2所示。 图2 时钟电路 2.2.2复位电路 单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其结构如下图。上电自动复位通过电容C1充电来实现。手动按键复位是通过按 [12]键将电阻R1与VCC接通来实现。复位电路电路图如图3所示。 图3 复位电路 2.3显示部分设计 液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目 - 3 - 黑龙江八一农垦大学毕业设计(论文) 的,在重量上比相同显示面积的传统显示器要轻得多。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样 [13]即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。显示模块电路图如图4所示。 图4 1602显示电路 2.4操作键设计 常用的按键有三种:机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘)。 机械触点式按键是利用机械弹性使键复位,手感明显,连线清晰,工艺简单,适合单件制造。但是触点处易侵入灰尘而导致接触不良,体积相对较大。 导电橡胶按键是利用橡胶的弹性来复位,通过压制的把面板上所有的按键制成一块,体积小,装配方便,适合批量生产。但是时间长了,橡胶老化而使弹力下降,同时易侵入灰尘。 柔性按键是近年来迅速发展的一种新型按键,可以分为凸球型和平面型 - 4 - 黑龙江八一农垦大学毕业设计(论文) 两种。柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。而且外型 和面板的布局、色彩、键距可按照整机的要求来设计。由于客观条件与经济能力有限,本系统采用机械触点式按键。 2.4.1键盘设计 键盘在单片机应用系统中是一个关键的部件,它能实现向计算机输入数据,传送命令等功能,是人工干预计算机的主要手段。键盘可以分为2类:独立连接式键盘和矩阵式键盘。 (1)独立连接式键盘 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,然而,在按键较多时,I/O口线浪费较大,是其缺点之一。 (2)矩阵式式键盘 单片机系统中,若按键较多时,通常采用矩阵式(也称行列式)键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上(当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下 [14]的关键。 独立式按键软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。由于本程序较为简单,没有运用到大量的I/O口,所以为了使用方便及节省资源,本程序选择实用独立式键盘。 键盘电路如图5所示。 图5 键盘电路 - 5 - 黑龙江八一农垦大学毕业设计(论文) 2.4.2去抖动 键盘编程中主要考虑去抖动的问题。当测试表明有键被按下之后,紧接着就进行去抖动处理。因为键是机械开关结构,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动。为保证键识别的准确,在电压信号抖动的情况下不能进行行状态输入。为此需进行去抖动处理。去抖动有硬件和软件两种方法。硬件方法就是加去抖动电路,从根本上避免 [15]抖动的产生。软件消抖,在第一次检测到有键按下时,执行一段延时程序之后,再检测此按键,如果第二次检测结果仍为按下状态,CPU便确认此按键己按下,消除了抖动。本系统设计采用软件去抖动效果。 2.4.3防串键 防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。 2.4.4被按键识别 如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输 [16]出端口。 2.5发音部分设计 发音电路是由扬声器、三极管、上拉电阻构成。由三极管来驱动扬声器发音的,同时加上拉电阻增强驱动电流,提高驱动能力。当时钟当前的时间和当前所执行的时间表的时间一致时,相应得标志位为1,P2.1口输出高电平,控制三极管闭合,从而合上开关,启动电铃进行打铃。打铃一定时间,标志位置0,P2.1输出低电平,三极管打开,扬声器停止工作。要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。但是,由于T0的最大定时时间只能为131毫秒,因此不可能直接用改变T0的时间初值来实现不同节拍。我们可以用T0来产生10毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。例如对1/4拍音符,定时时间为0.16秒,相应的时间常数为16(即10H);对3拍音符,定时时间为1.92秒,相应时间长数为192(即C0H)。我们将每一音符的时间常数 - 6 - 黑龙江八一农垦大学毕业设计(论文) 和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。此外,结束符和体止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不同的音符。发生部分电路如图6所示。 图6 发音部分电路 扬声器是一种把电平转变为声信号的换能器件,扬声器和性能对音质的高低音响很大。 扬声器的种类很多,按其换能原理可分为电动式、静电式、电磁式、压电式等几种,后两种多用于农村有线广播网中,按频率范围可分为低音扬声器、中音扬声器,这些常在音箱中作为组合扬声器使用。在本次毕业设计作品中使用电磁式扬声器。 2.6本章小结 本章介绍了系统的各个硬件部分,其中对单片机最小系统中的电路做了介绍,如晶振电路、复位电路、按键电路。同时也对单片机的外围电路做了介绍,如键盘电路,发音部分电路进行了逐一介绍,明白了各电路与单片机是怎样连接的,还有各电路的自身的电路结构和特点。下面对本设计的软件部分进行介绍,实现软硬件的结合。 - 7 - 黑龙江八一农垦大学毕业设计(论文) 3.系统软件设 3.1系统分析 (1)键盘扫描程序:检测是否有按键按下,有按键按下则记录按下键的键值,并跳转至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。 (2)功能转移程序:对检测到的按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音节弹奏功能和自动播放乐曲的功能。 (3)琴键处理程序:根据检测到的按键值,查询音调表,给计时器赋值,使发出相应频率的声音。 (4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放的歌曲,歌曲播放完毕之后自动返回 [17]至键盘扫描程序,继续等待是否有按键按下。 3.2参数计算 3.2.1发音原理 若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用STC89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。 3.2.2 计算举例 例如,频率为523Hz,其周期μs,因此只要令计数器计T,1523,1912 时,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计9561,956 N,fi,2,fr数脉冲值与频率的关系式是:,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 T,65536,N,65536,fi,2,fr其计数初值T的求法如下:。 例如:设K,65536,fi,1MHz,求中音DO(261Hz)。T,65536,N,65536,fi,2,fr,65536,100000,2,fr,65536,500000,fr,中音DO的T,65536,500000,523,64580。 3.2.3 计算结果 (1)单片机12MHZ晶振中音符与计数T0相关的计数值如表1所示: - 8 - 黑龙江八一农垦大学毕业设计(论文) 表1 音符与T0的转换 音符 频率(HZ) 计数值(T值) 音符 频率(HZ) 计数值(T值) 低1D0 262 63628 #4FA# 740 64860 #1D0# 277 63737 中5SO 784 64898 低2RE 294 63835 #5S0# 831 94934 #2RE# 311 63928 中6LA 880 64968 低3MI 330 64021 #6LA# 932 64994 低4FA 349 64103 中7SI 968 65030 #4FA# 370 64185 低1D0 1046 65058 低S0 392 64260 #1D0# 1109 65085 #5S0# 415 64331 高2RE 1175 65110 低6LA 440 64400 #2RE# 1245 65134 #6LA# 466 64463 高3MI 1318 65157 低7SI 494 64524 高4FA 1397 65178 中1D0 523 64580 #4FA# 1490 65198 #1D0# 554 64633 高5S0 1568 65217 中2RE 587 64633 #5S0# 1661 65235 #2RE# 622 64884 高6LA 1760 65252 中3MI 659 64732 #6LA# 1865 65268 中4FA 698 64820 高7SI 1967 65283 (2)采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音0,19之间,中音在20,39之间,高音在40,59之间。用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。音符与频率关系如表2所示: - 9 - 黑龙江八一农垦大学毕业设计(论文) 表2 音符与频率关系 曲调值 DELAY 曲调值 DELAY 调4/4 125ms 调4/4 62ms 调3/4 187ms 调3/4 94ms 调2/4 250ms 调2/4 125ms 上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。定义音调数据表的程序如表3所示: 表3 定义音调数据表 DW 63628 63853 64021 64103 64260 64400 64524 低音区 1 2 3 4 5 6 7 DW 64580 64671 64777 64820 64898 64968 65030 中音区 1 2 3 4 5 6 7 DW 65058 65110 65157 65178 65217 65252 65283 高音区 1 2 3 4 5 6 7 把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。 3.3程序设计 3.3.1发音程序 软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也用了模块设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。本系统软件中还要是编辑电子琴播放状态的内容,在设计中采用C语言编写了电子琴控制系统控制和播放内容的程序。在程序编写中多次采用了判断指令,来扫描按键的按下,然后把相应的音符传送到指定的内存空间,使其相应的按键对应相应的音符。程序流程图如图7所示,源程序参考附录。 - 10 - 黑龙江八一农垦大学毕业设计(论文) 程序开始 进行琴键识别 读P1口状态 延迟10ms Y 判断是否抖 动 N 判断几号琴键 查表得相应琴键的定 时初值 启动定时器 等待中断,判断结束播放 N Y 琴键是否释放 图7 主程序流程图 - 11 - 黑龙江八一农垦大学毕业设计(论文) 3.3.2 播放程序 本设计共两种播放模式,包括自动播放存储音乐和按键发音。上电后,首先开中断并设定定时器0为工作方式1,当自动播放键按下时,进入中断,根据乐谱在定义的音频数组中查找相应音律,然后给定时器赋初值,即开始 MI、FA、SO、LA、SI、DO八种音符键按下时,根播放音乐。当DO、RE、 据音阶值和音符值在定义的音频数组中查找相应音律,然后给定时器赋初值, [19]即按键发音。程序流程图如图8所示。 有键按下 开始 进入中断 自动播放 N Y 琴键识别在数组进入中断 中查找相应音律 根据乐谱在数组中 查找相应音律 给定时器T0赋值 给定时器T0赋值 播放键值对应的音符 播放音乐 图8 播放程序流程图 - 12 - 黑龙江八一农垦大学毕业设计(论文) 3.4本章小结 本章介绍了设计的主要软件流程,首先介绍了系统软件的组成,然后介绍了电子琴发音的原理,以及对于音阶部分的计算,对其中的难点做了介绍。最后介绍了具体的软件流程图,通过软件流程图可以了解本设计的编程思想,并且经过修改调试完成了具体的代码,使软硬件完成了良好的结合,完成了设计目的。 - 13 - 黑龙江八一农垦大学毕业设计(论文) 4.Proteus软件仿真 4.1硬件调试 硬件调试主要是针对单片机部分进行的调试。 在上电之前,先确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况的任务。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。 在确保硬件电路正常且无异常情况(断路或短路)的情况下方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要是检测单片机控制部分、1602液晶屏、和音频转换电路硬件调试。 1、1602液晶显示器电路调试:接通电源,随机按下按钮可以看到显示器显示的数字。 2、键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对应的音正确。 4.2软件调试 调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进 [20]行分别调试。 经硬件检测,程序调试后,将程序下载到单片机,按下所设置的键,与设计要求相比对,扬声器可正常发出八个音阶,运用示波器检查,8音阶频率稍有误差,基本与理论值相同,达到要求,结果在误差范围之内。根据乐谱弹奏,可弹奏出正常乐曲。Proteus软件仿真如图9所示。 - 14 - 黑龙江八一农垦大学毕业设计(论文) 1VSS2VDD3VEE4RS5RWLCD16ELM016L7D08D19D210D311D412D513D614D7C110K1U12193922pFXTAL1P0.0/AD0338X1P0.1/AD143712MhzP0.2/AD2C251836XTAL2P0.3/AD3635P0.4/AD4734P0.5/AD5C383322pFP0.6/AD69932RSTP0.7/AD72110ufRESPACK-8P2.0/A822P2.1/A923P2.2/A102924R1PSENP2.3/A11302510KALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A151110P1.0/T2P3.0/RXD211P1.1/T2EXP3.1/TXD312P1.2P3.2/INT02413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T13716P1.6P3.6/WR817P1.7P3.7/RD4AT89C52 C945NPN5 LS26 7喇叭'1 图9 电路仿真图 - 15 - 结论 结论 通过这次毕业设计,我感觉收获了很多。在整个设计毕业期间我加深了对单片机系列知识及其系统的认识。这个设计题目并不怎么新颖,但从中体现到了个系统开发设计的过程,足以让我受益匪浅。 在这次的毕业设计中,让我更进一步的提高了动手能力,也重新复习了一次单片机的程序编程能力,在这期间,让我更加深刻了体会到了C程序编写的思路,加强了对编程能力的理解和对相应资料的查阅。通过这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现按下键盘中的按键会使1602显示器显示当前按键,扬声器播放对应的音符。而本设计的不足之处首先就是可弹奏的音符数较少,只能在一定范围内满足用户需要。这部分可通过改进键盘识别模块和发生模块来增加其复杂度,而另一个不足之处就是音量不可以调节。 - 16 - 参考文献 参考文献 [1]张洪润.单片机原理及应用[M].清华大学出版社有限公司.2005. [2]胡汉才.单片机原理及其接口技术学习辅导与实践教程[M].清华大学出版 社.2004. [3]周国雄.单片机应用系统设计[J].科技创新导报.2010 (023): 170-170. [4]张迎新.单片机原理及应用[M].电子工业出版社.2004. [5]胡文金.单片机应用技术实训教程[M].重庆大学出版社.2005. [6]余发山.单片机原理及应用技术[M].中国矿业大学出版社.2008. [7]Parker J S, Mullins M, Cheang M C U, et al. Supervised risk predictor of breast cancer based on intrinsic subtypes[J]. Journal of Clinical Oncology, 2009, 27(8): 1160-1167. [8]Cheang M C U, Voduc D, Bajdik C, et al. Basal-like breast cancer defined by five biomarkers has superior prognostic value than triple-negative phenotype[J]. Clinical Cancer Research, 2008, 14(5): 1368-1376. [9]张毅刚.单片机原理与应用设计[M].哈尔滨工业大学出版社,2008. [10]龙志强.单片机原理与应用系统设计[M].中国水利水电出版社,2008. [11]Voduc K D, Cheang M C U, Tyldesley S, et al. Breast cancer subtypes and the risk of local and regional relapse[J]. Journal of Clinical Oncology, 2010, 28(10): 1684-1691. [12]Kennecke H, Yerushalmi R, Woods R, et al. Metastatic behavior of breast cancer subtypes[J]. Journal of clinical oncology, 2010, 28(20): 3271-3277. [13]谢自美.电子线路综合设计[M].华中科技大学出版社,2006. [14]余华芳,刘健.单片机与液晶显示模块的软硬件接口技术[J].2003. [15]张虹.单片机原理及应用[M].中国电力出版社,2009. [16]Ng T L, Gown A M, Barry T S, et al. Nuclear beta-catenin in mesenchymal tumors[J]. Modern Pathology, 2004, 18(1): 68-74. [17]谭浩强. C 程序设计[M]. 清华大学出版社有限公司,2005. [18]赵亮,侯国锐.单片机C语言编程与实例[M].人民邮电出版社,2003. [19]马忠梅.单片机的C语言应用程序设计[J].单片机与嵌入式系统应用, 1996 (10): 46-46. [20]周润景, 张丽娜. 基于PROTEUS的电路及单片机系统设计与仿真[M]. 北京航空航天大学出版社, 2006. - 17 - 致谢 致谢 本文是在韩静老师的悉心指导下完成的。从毕业设计题目的选择、到选到课题的研究和论证,再到本毕业设计的编写、修改,每一步都有老师的细心指导和认真的解析。在老师的指导下,我在各方面都有所提高,老师以严谨求实,一丝不苟的治学态度和勤勉的工作态度深深感染了我,给我巨大的启迪,鼓舞和鞭策,并成为我人生路上值得学习的榜样。使我的知识层次又有所提高。同时感谢所有教育过我的专业老师,你们传授的专业知识是我不断成长的源泉也是完成本论文的基础。也感谢班里的同学是你们在我遇到难题是帮我找到大量资料,解决难题。再次真诚感谢所有帮助过我的老师同学。通过这次毕业设计不仅提高了我独立思考问题解决问题的能力而且培养了认真严谨,一丝不苟的学习态度。由于经验匮乏,能力有限,设计中难免有许多考虑不周全的地方,希望各位老师多加指教。 感谢我的爸爸妈妈,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意~同时也感谢学院为我提供良好的做毕业设计的环境。最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。 - 18 - 附录 附录 1.原理图 VCC312KEYKPOWERp1110UF+C31421 kVCC12C2CRST2223ppFF2412MHZ31135YKEYK19KEYK1RSWITCHS0112135k 13246XTAL2XTAL142246k2 XTAL2XTAL131RSTkkkkkkkk87654321KEYK3 211111111114209876543210987654321kSTC89C52U31GXTAL1XTAL2P3.7(RD)P3.6(WR)P3.5(T1)P3.4(T0)P3.3(INT1)P3.2(INT0)P3.1(TXD)P3.0(RXD)RSTP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0NDk4 31KEYK4 ALE/PROGP2.2(A10)P2.3(A11)P2.4(A12)P2.5(A13)P2.6(A14)P2.7(A15)P2.0(A8)P2.1(A9)EA/VPP42PSENVCCP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0k5222222222333333333341234567890123456789031P2.5P2.6P2.7hgfedcbaKEYK5 VCC421R0P98765432131k6 VCC31KEYK6 42 VCCk7 13121R0TK1KEYK7342 hgfedcbaP2.7P2.6P2.5k81L6C11111119876543210D6543210231KEYK8 42 - 19 - 附录 2.PCB图 3.实物图 - 20 - 附录 4.系统程序 /*----------------------------------------------- 名称:电子琴 内容:8个按键控制8个音符 ------------------------------------------------*/ #include #define uchar unsigned char #define uint unsigned int #define KeyPort P1 #define comm 0 #define dat 1 /*------------------------------------------------ 变量 ------------------------------------------------*/ uchar High,Low; //定时器预装值的高8位和低8位 sbit SPK=P2^1; //定义喇叭接口 sbit tab=P3^4; //功能键 sbit RS=P2^5;//液晶数据命令选择 sbit RW=P2^6;//液晶读写选择 sbit EN=P2^7;//液晶使能端 uchar code freq[][2]={ 0xD8,0xF7,//00440HZ 1 0xBD,0xF8,//00494HZ 2 0x87,0xF9,//00554HZ 3 0xE4,0xF9,//00587HZ 4 0x90,0xFA,//00659HZ 5 0x29,0xFB,//00740HZ 6 0xB1,0xFB,//00831HZ 7 0xEF,0xFB,//00880HZ `1 }; uchar Time; uchar code YINFU[9][1]={{' '},{'1'},{'2'},{'3'},{'4'},{'5'},{'6'},{'7'},{'8'}}; //世上只有妈妈好数据表 uchar code MUSIC[]={ - 21 - 附录 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 }; // 音阶频率表 高八位 uchar code FREQH[]={ 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, } ; // 音阶频率表 低八位 uchar code FREQL[]={ 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, }; uchar code dis1[2][10]={"ELECTRONIC","ORGAN"}; /*------------------------------------------------ 函数声明 ------------------------------------------------*/ void Init_Timer0(void);//定时器初始化 /*------------------------------------------------ 延时函数大约约2*z+5us ------------------------------------------------*/ void delay2xus(uchar z) { while(z--); } /*------------------------------------------------ 延时函数大约约1ms ------------------------------------------------*/ void delayms(uchar x) - 22 - 附录 { while(x--) { delay2xus(245); delay2xus(245); } } /*------------------------------------------------ 1602液晶写命令comm/数据dat ------------------------------------------------*/ void lcd_wr(uchar comm_dat,uchar xdat) { RS=comm_dat; RW=0; delay2xus(10); P0=xdat; EN=1; delayms(1); EN=0; } /*------------------------------------------------ 1602液晶写字符串命令 ------------------------------------------------*/ void lcd_string(uchar add,uchar mun,uchar *pstring) { lcd_wr(comm,0x80+add); while(mun--) lcd_wr(dat,*(pstring++)); } /*------------------------------------------------ *1602初始化* ------------------------------------------------*/ void lcd_init() { P0=0x00; EN=0; lcd_wr(comm,0x38); delayms(2); - 23 - 附录 lcd_wr(comm,0x0c); delayms(1); lcd_wr(comm,0x06); delayms(1); lcd_wr(comm,0x01); } /*------------------------------------------------ 节拍延时函数 各调1/4节拍时间: 调4/4 125ms 调2/4 250ms 调3/4 187ms ------------------------------------------------*/ void delayjie(uchar t) { uchar i; for(i=0;i
/
本文档为【毕业设计(论文) 基于51单片机的电子琴系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索