《电子琴设计(微机原理课程设计)》由会员分享,可在线阅读,更多相关《电子琴设计(微机原理课程设计)(19页珍藏版)》请在金锄头文库上搜索。
1、微机原理课程设计电子琴设计一、 设计内容编写一实现电子琴的程序,并实现假设干扩展功能。根本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;扩展功能:1、在程序中可预设多首曲目,按一键可以进入预设子菜单,对要播放的曲目进行选择,并实现播放该曲目。 2、程序运行时有友好的用户介面。 3. 当弹奏不同音阶时,双色点阵LED显示器显示不同的图案二、元件与仪器1计时器82532并行控制器8255A3实验台三、设计原理、思路及流程图1、 设计原理1对于一个特定的/转换接口电路,CPU执行一条输出指令将数据送入/, 即可在其输出端得到一定的电压输出。给/转换器输入按正
2、弦规律变化的数据, 在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值: 2产生一个正弦波的数据可取32个小于亦可,不同频率的区别,可通过调节向转换器输出数据的时间间隔,例如:发频率为261。1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/320.12ms. 定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。本程序中设置默认长度为60个正弦波。3实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。 (4) 点阵LED显
3、示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。(5)实验仪上设有一个共阳极88点阵的红黄两色LED显示器,其点阵结构如下图。该点阵对外引出24条线,其中8条行线,8条红色列线,8条黄色列线。假设使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。例如欲显示汉字“年,采用逐列循环发光。首先由“年的点阵轮廓,确定点阵代码如下图根据
4、“年的点阵代码,确定逐列循环发光的顺序如下: 行代码输出 44H; 红色列代码输 01H;第一列2个红色LED发光。 行代码输出 54H; 红色列代码输 02H;第二列3个红色LED发光。 行代码输出 54H; 红色列代码输 04H;第三列3个红色LED发光。 行代码输出 7FH; 红色列代码输 08H;第四列7个红色LED发光。 行代码输出 54H; 红色列代码输 10H;第五列3个红色LED发光。 行代码输出 DCH; 红色列代码输 20 H;第六列5个红色LED发光。 行代码输出 44H; 红色列代码输 40 H;第七列2个红色LED发光。 行代码输出 24H; 红色列代码输 80 H;
5、第八列2个红色LED发光。2、 电路连接图如下:(1)8253和8255连接如下2.实验仪上的点阵LED及驱动电路的行代码、红色列代码、黄色列代码各用一片74LS273锁存。行代码输出的数据通过行驱动器7407加至点阵的8条行线上,红和黄列代码的输出数据通过驱动器DS75452反相后分别加至红和黄的列线上。行锁存器片选信号为CS1,红色列锁存器片选信号为CS2,黄色列锁存器片选信号为CS3。分别接上298h,2a0h,2a8h.3设计思路在本次课程设计中,根据复杂程序设计思想模块化程序设计,分析和确定程序总体设计目标:电子琴根本功能及局部扩展功能后,将总体目标划分为假设干模块子程序,具体可见下
6、。程序设计的思路按以下顺序进行:1 分析与确定程序总体设计目标2 将总体目标划分为假设干模块3 定义每个模块的具体任务,明确它与其他模块间的通信方式4 编写源程序,进行调试,包括:简单电子琴主程序结合实验指导书的两程序,将其分为假设干个子程序,实现简单的播放和显示音阶的功能。发音子程序本子程序实现放音功能。首先从键盘读出键码,判断,如果键码不是189除外即仍然处于音阶输入准备状态,如果是,即求出相应的时间常数的序号,取60次32个正弦波数据,播放32个数据,组成一个正弦波。播放60次后,然后判断是否有按键,如果有就进入死循环,直到下次按键为止。放歌子程序 本子程序实现播放预置在程序中的歌曲,并
7、加上一个选择子程序段,可通过选择进入不同曲目,进而实现播放不同的歌曲,播放时直接调用放音子程序Led显示子程序 本程序实现从键盘输入一位十进制数字09,在七段数码管上显示出来。显示广告版子程序 本子程序实现在广告板上在输入不同音阶时有我们自行设计的图案显示。输入不同图案相关的代码,然后调用图案显示判断程序段。对其进行判断,然后进入图案显示代码,最终显示不同的图案。源程序整体程序开始,显示提示信息,接着调用发音子程序,实现发音和显示。接着对9键进行判断、当9按下时,调用放音子程序。然后iujinru选择,选择喜欢的歌曲并进行播放。当检测到esc时,退出。当每一个都检测不到时,退回到调用发音子程序
8、,继续发音显示。从而实现有扩展功能的电子琴。5 模块连接,形成完整的程序6 编写程序文档4流程图以下用主程序与子程序配合流程图其进行说明。1主程序流程图开始调用发音子程序使用键盘输入是否1到8键放音子程序 NY退出是esc键是否9键NY调用广告版子程序Led子程序 Y2发音子程序流程图3led显示子程序4显示广告板子程序5放音子程序开始调用发音子程序用键盘输入喜欢歌曲的序号1-3是否1到3键放音子程序 YNY退出是esc键是否9键Y调用广告版子程序Led子程序 NN四、源程序STACK SEGMENT PARA STACKSTACK DB 100 DUP(0)STACK ENDSDATA SE
9、GMENTIOPORTEQU 0C400H-0280HIO8255AEQU IOPORT+288HIO8255CEQU IOPORT+28AHIO8255BEQU IOPORT+28BHIO8253AEQU IOPORT+280HIO8253BEQU IOPORT+283HIO0832AEQU IOPORT+290HPROTEQU 0C400H-280HPROTHEQU PROT+298HPROTLREQU PROT+2A0HPROTLYEQU PROT+2A8HDATA1 DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH DB 0FFH,0FDH,0F5H,0
10、E9H,0D8H,0C5H,0AEH,96H DB 80H,66H,4EH,38H,25H,15H,09H,04H DB 00H,04H,09H,15H,25H,38H,4EH,66H;正弦波数据LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMESG1 DB 0DH,0AH,INPUT A NUM (1-8=PLAY PIANO,9=PLAY MUSIC,ESC=EXIT):,0DH,0AH,$MESG2 DB 0DH,0AH,PLEASE CHOOSE THE MUSIC YOU LIKE(1-AAA,2-BBB) :,0DH,0AH,$TIME
11、 DB 120,110,100,90,81,72,55,42;发不同音时8253的计数器初值NUM DB ?;NUM为8253计数器初值的序号-MESS DB STRIKE ANY KEY,RETURN TO DOS!,0AH,0DH,$MIN1 DB 00H,01H,02H,03H,04H,05H,06H,07HCOUNT DB 0JNUM DB ? ;JNUM用来存储输入数字MUSIC DB 30H,31H,31H,35H,35H,36H,36H,35H,30H,30H,34H,34H,33H,33H,32H,32H,31H,100 DUP(30H);,35H,35H,34H,34H,33
12、H,33H,32H,35H,35H,34H,34H,33H,33H,32H,31H,31H,35H,35H,36H,36H,35H,34H,34H,33H,33H,3;2H,32H,31H,QMUSIC DB ?DOWN DB 31H,32H,33H,34H,35H,36H,37H,38H,38H,37H,36H,35H,34H,33H,32H,31H,100 DUP(30H)PP DB ?TT DB ?LMUSIC EQU 45BUFF1 DB 00H,00H,18H,3CH,3CH,18H,00H,00HBUFF2 DB 00H,1EH,0AH,46H,62H,50H,78H,00HBUF
13、F3 DB 00H,06H,06H,60H,60H,06H,06H,00HBUFF4 DB 24H,66H,0E7H,00H,00H,0E7H,66H,24HBUFF5 DB 42H,0E7H,42H,18H,18H,42H,0E7H,42HBUFF6 DB 66H,24H,81H,0C3H,0C3H,81H,24H,66HBUFF7 DB 24H,66H,00H,0DBH,0DBH,00H,66H,24HBUFF8 DB 0CBH,99H,10H,0C6H,63H,08H,99H,0D3HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV TT,1 MOV AX,DATAMOV DS,AXMOV DX,IO8255B ;使8255的A口为输出方式MOV AX,92HOUT DX,AL MOV QMUSIC,0 JMP SSSZERO: MOV QMUSIC,0SSS: CMP QMUSIC,LMUSIC JE ZERO CMP QMUSIC,0 JE SSS4 JMP SSS3SSS4: MOV DX,OFFSET MESG1 MOV AH,9IN