8088电子琴设计.doc
《8088电子琴设计.doc》由会员分享,可在线阅读,更多相关《8088电子琴设计.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计(论文)题 目 名 称 简易电子琴设计 课 程 名 称 微型计算机原理与接口技术 学 生 姓 名 学 号 系 、专 业 信息工程系、计算机科学与技术 指 导 教 师 161任务及要求1.1任务: 按照音符来设定频率和8253定时/计数器的延时时间。8253的CLK0接1MHz时钟,GATE0接5V,OUT0接8255的PA0,J1接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。1.2要求:1.2.1层以8255接八个开关K1K8,做电子琴按键输入。1.2.2 以8253控制扬声器,拨动不同的开关,发出相应的音阶。1.2.3扩展功能:1、录音:
2、记录所弹奏曲目 2、放录音:任意时刻重放最新记录曲目2设计思想在本次课程设计中,根据复杂程序设计思想模块化程序设计,分析和确定程序总体设计目标:电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。21、程序设计的思路按以下顺序进行:211、 分析与确定程序总体设计目标。212、 将总体目标划分为若干模块。213、定义每个模块的具体任务,明确它与其他模块间的通信方式编写源程序,进行调试,包括:2131、简单电子琴主程序结合实验指导书的两程序,将其分为5个子程序,实现简单的播放和显示音阶的功能。2132、录音子程序实现记录弹奏曲目并播放的功能。首先由9触发,将输入的音阶
3、存入缓存区song中,输入的同时可以发声和显示。当再次按9时录制完成。2133、放音子程序本子程序实现放音功能。首先从8279键盘读出键码,判断,如果键码不是18即回到程序开始,如果是,即求出相应的时间常数的序号,取60次32个正弦波数据,播放32个数据,组成一个正弦波。播放60次后,从PORT1中取出值到AL,和1相与,判断是否有按键,如果有就进入死循环,直到下次按键为止。2134、源程序整体程序开始,显示提示信息,对缓存区、8279初始化。接着调用发音子程序,键盘子程序,在把AL送缓存区,实现发音和显示。接着对9键、0键、f键、r键进行逐个判断,当9按下时,调用录音子程序。当按下0时,播放
4、录制的曲目。当按下f键时,播放程序中预设的曲目。当检测到r时,退出到DOS状态。当每一个都检测不到时,退回到调用发音子程序,继续发音显示。从而实现有扩展功能的电子琴。214、模块连接,形成完整的程序3电路原理与电路图3.1、电路原理3.11、对于一个特定的/转换接口电路,CPU执行一条输出指令将数据送入/, 即可在其输出端得到一定的电压输出。给/转换器输入按正弦规律变化的数据, 在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值: 3.12、产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向转换器输出数据的时间间隔,例如:发频率为261。1HZ
5、,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/320.12ms. 定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。本程序中设置默认长度为60个正弦波。32、电路图 PC机扬声器电路4、算法描述与流程图41算法描述软件部分对整个系统来说起着重要的作用,在本电子琴系统中,软件可以分为六部分,主程序部分、发音子程序部分、放录音子程序部分、显示子程序部分、 键盘显示子程序、放录音子程序部分。42流程图421、主程序流程图开始显示缓存区,初始化8279初始化调用发音子程序调用键盘子程序键盘码送缓存区是否9键是否0键是否S键是
6、否R键录音子程序放录音子程序放歌子程序返回DOSYNNNYYYN422、发音子程序流程图 423、 放录音子程序流程图 42. 4、 显示子程序流程图入口调用键盘子程序键盘码存缓存区调用发音子程序调用显示子程序把键盘码输入song,inc al是否9键返回显示提示信息NY425、键盘显示子程序流程图 42. 6、放录音子程序流程图入口显示提示信息键盘码存缓存区调用显示子程序调用发音子程序al是否9返回YN5、程序清单DATA SEGMENTIOPORT EQU 0C400H-0280HPORT0 EQU IOPORT+2B0H ;8279 DATA PORTPORT1 EQU IOPORT+2
7、B1H ;8279 CTRL PORTSEC1 DB 0 ;HOUR HIGHTSEC2 DB 0 ;HOUP LOWMIN1 DB 0 ;MIN HIGHTMIN2 DB 0 ;MIN LOWHOUR1 DB 0 ;SEC HIGHTHOUR2 DB 0 ;SEC LOWLED DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;7段管对应的显示码DB 67H,37H,73H,31H,3EH,36H,66HIO8253A EQU IOPORT+280HIO8253B EQU IOPORT+283HIO8255A
8、EQU IOPORT+288HIO8255B EQU IOPORT+28BHIO0832A EQU IOPORT+290HDATA1 DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDHDB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96HDB 80H,66H,4EH,38H,25H,15H,09H,04HDB 00H,04H,09H,15H,25H,38H,4EH,66H ;正弦波数据TIME DB 120,106,94,89,79,70,63,59 ;发不同音时8253的计数器初值DB 1.PRESS 18 TO PLAY,0DH,0
9、AH,0DH,0AHDB2.PRESS 9 TO RECORD,0DH,0AH,0DH,0AHDB3.PRESS 0 TO PLAY THE RECORD,0DH,0AH,0DH,0AHDB4.PRESS F TO PLAY THE SONG,0DH,0AH,0DH,0AHDB5.PRESS ANYKEY TO PAUSE/START WHEN PLAY THE RECORD,0DH,0AH,0DH,0AHNUM DB ? ;NUM为8253计数器初值的序号SONG DB 50 DUP(?)SONG1 DB 1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1MSGPLAY D
10、B 0DH,0AH,0DH,0AH,RECORDING.PLESS 9 TO END,0DH,0AH,0DH,0AH,$MSGEND DB RECORD FINISHED.,0DH,0AH,0DH,0AH,0DH,0AH,0DH,0AH,$MSGPLAY1 DB 0DH,0AH,0DH,0AH,PLAYING.PRESS ANYKEY TO PAUSE.,0DH,0AH,0DH,0AH,$MSGEND1 DB PLAYING FINISHED.,0DH,0AH,0DH,0AH,$DATA ENDSSTACK1 SEGMENT PARA STACK STACKDB 50 DUP(0)STACK1
11、 ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MSGMOV AH,9INT 21H ;显示提示信息CLIMOV AX,DATAMOV DS,AXMOV SEC1,0MOV SEC2,0MOV MIN1,0MOV MIN2,0MOV HOUR1,0MOV HOUR2,0 ;显示缓存区初始化MOV AX,DATAMOV DS,AXMOV AX,CSMOV DS,AXMOV DX,PORT1MOV AL,0D3H ;11010011 清除命令特征位OUT DX,A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8088 电子琴 设计
限制150内