电子琴目录 1、电子琴设计的基本原理...........................................2 2、元件与仪器...........................................................2 3、设计思路..............................................................3 4、硬件设计...............................................................4 5、软件设计..............................................................4~13 6、调试情况及其运行分析...........................................13~14 7、心得体会...............................................................15 8、参考文献...............................................................15 摘要本课程设计主要采用微机原理及单片机技术设计一个简易的七音符电子琴,它可通过按键输入来试验箱的喇叭发出声音,并通过七段数码管显示输入音阶,通过编写程序实现电子琴的各项功能,使不同的音阶对应不同频率的正弦波,按下不同的键时发出对应频率的声音,同时对其按键功能进行扩展,实现录音、放录音、播放预设单曲等功能。程序通过调试运行,时序仿真,电路功能验证,顺利地实现了设计目标 关键词:中断调用音阶频率 一、电子琴设计的基本原理(1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。各音阶标称频率值: (2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:发"1"频率为261。1HZ,周期为1/=,=.定时时间能够由8253配合8255来实现。按下某键后发音时间的长短能够由发出的正弦波的个数多少来控制。本程序中设置默认长度为60个正弦波。 二、 三、设计思路在本次课程设计中,根据复杂程序设计思想——模块化程序设计,分析和确定程序总体设计目标:电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。程序设计的思路按以下顺序进行:1、分析与确定程序总体设计目标2、将总体目标划分为若干模块3、定义每个模块的具体任务,明确它与其它模块间的通信方式4、编写源程序,进行调试,包括:简单电子琴主程序结合实验指导书的两程序,将其分为5个子程序,实现简单的播放和显示音阶的功能。 录音子程序实现记录弹奏曲目并播放的功能。首先由9触发,将输入的音阶存入缓存区song中,输入的同时能够发声和显示。当再次按9时录制完成。 放音子程序本子程序实现放音功能。首先从8279键盘读出键码,判断,如果键码不是1-8即回到程序开始,如果是,即求出相应的时间常数的序号,取60次32个正弦波数据,播放32个数据,组成一个正弦波。播放60次后,从PORT1中取出值到AL,和1相与,判断是否有按键,如果有就进入死循环,直到下次按键为止。 放歌子程序调用放音子程序。 暂停子程序在乐曲播放过程中,每调用一次MUSIC,就从PORT1中取出AL,检测AL个数,即每次发音后按键盘的次数。当检测到AL为1时,即按了一次任意就使程序进入一个死循环,不发音,到此实现了暂停,然后再次按动任意键时,AL就为2,不为1,所以程序跳出死循环,继续从断开处调用乐曲,继续播放。 源程序整体 程序开始,显示提示信息,对缓存区、8279初始化。接着调用发音子程序,键盘子程序,在把AL送缓存区,实现发音和显示。接着对9键、0键、f键、r键进行逐个判断,当9按下时,调用录音子程序。当按下0时,播放录制的曲目。当按下f键时,播放程序中预设的曲目。当检测到r时,退出到DOS状态。当每一个都检测不到时,退回到调用发音子程序,继续发音显示。从而实现有扩展功能的电子琴。5、 模块连接,形成完整的程序6、 编写程序文档 四、硬件设计电路连接图如下:(1)8253和8255连接如下 (2)8279键盘在一个扩充板上,用一根20芯扁平电缆与实验台上扩展插头J7相连。 五、软件设计(一)主程序与子程序配合流程
电子琴模板 来自淘豆网m.daumloan.com转载请标明出处.