微机原理课程设计——电子琴.doc
《微机原理课程设计——电子琴.doc》由会员分享,可在线阅读,更多相关《微机原理课程设计——电子琴.doc(14页珍藏版)》请在三一办公上搜索。
1、目 录概述 1一设计内容与要求 1 二设计思想 1 三设计所用芯片及工作原理 2 四系统连线图 2 五连线图说明 3六程序流程图 3 七程序源代码 5 八设计过程中遇到的问题及解决方法 11九设计心得 11电子琴概述汇编语言与微机原理是计算机各专业一门重要的基础课,是必修的核心课程之一,对于训练学生掌握程序设计技术,熟悉上机操作和程序调试技术都有重要作用。因此该课程在整个教学计划中占有重要地位。本课程的目的和要求是:1、 应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧,能够运用8086/8088宏汇编语言编写应用程序。提高学生分析问题、解决问题的能力以及实际动手能力。2、应使
2、学生基本掌握汇编语言程序设计的基本理论,方法和技巧,正确地使用结构化、模块程序设计技术。注意培养学生良好的程序设计风格。3、应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序。注意提高学生的调试能力。4、注意与前后相关课程的关系。使学生对前导课程有进一步的理解,同时为学习后继课程打好基础。一、 设计内容与要求编写一实现电子琴的程序,并实现若干扩展功能。基本功能:用8257键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;扩展功能:1、录音:记录所弹奏曲目2、放录音:任意时刻重放最新记录曲目3、在程序中可预设一曲目,按一键实现播放该曲目。4、
3、在播放录制曲目或预设曲目时,按8279键盘上任意键可以暂停播放,再按一次从暂停处继续播放。5、程序运行时有友好的用户介面二、 设计思想在本次课程设计中,根据复杂程序设计思想模块化程序设计,分析和确定程序总体设计目标:电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块。程序设计的思路按以下顺序进行:1、分析与确定程序总体设计目标,2、将总体目标划分为若干模块3、定义每个模块的具体任务,明确它与其他模块间的通信方式4、编写源程序,进行调试,包括:A)简单电子琴主程序结合实验指导书的两程序,将其分为5个子程序,实现简单的播放和显示音阶的功能。B)录音子程序实现记录弹奏曲目并播放的功能。首先由9
4、触发,将输入的音阶存入缓存区song中,输入的同时可以发声和显示。当再次按9时录制完成。C)放音子程序,本子程序实现放音功能。首先从8279键盘读出键码,判断,如果键码不是18即回到程序开始,如果是,即求出相应的时间常数的序号,取60次32个正弦波数据,播放32个数据,组成一个正弦波。播放60次后,从PORT1中取出值到AL,和1相与,判断是否有按键,如果有就进入死循环,直到下次按键为止。D)放歌子程序调用放音子程序。E) 暂停子程序在乐曲播放过程中,每调用一次MUSIC,就从PORT1中取出AL,检测AL个数,即每次发音后按键盘的次数。当检测到AL为1时,即按了一次任意就使程序进入一个死循环
5、,不发音,到此实现了暂停,然后再次按动任意键时,AL就为2,不为1,所以程序跳出死循环,继续从断开处调用乐曲,继续播放。G)源程序整体程序开始,显示提示信息,对缓存区、8279初始化。接着调用发音子程序,键盘子程序,在把AL送缓存区,实现发音和显示。接着对9键、0键、f键、r键进行逐个判断,当9按下时,调用录音子程序。当按下0时,播放录制的曲目。当按下f键时,播放程序中预设的曲目。当检测到r时,退出到DOS状态。当每一个都检测不到时,退回到调用发音子程序,继续发音显示。从而实现有扩展功能的电子琴。5、模块连接,形成完整的程序三、 :四、 设计所用芯片工作原理(1)对于一个特定的/转换接口电路,
6、CPU执行一条输出指令将数据送入/, 即可在其输出端得到一定的电压输出。给/转换器输入按正弦规律变化的数据, 在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值: (2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向转换器输出数据的时间间隔,例如:发频率为261。1HZ,周期为1/=,输出数据的时间间隔为32. 定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。本程序中设置默认长度为60个正弦波。五、 系统连线图(1)8253和8255连接如下;五、 连线图说明计时器8253使用8279芯
7、片的键盘控制器,8279键盘在一个扩充板上,用一根20芯扁平电缆与实验台上扩展插头J7相连。并行控制器8255六、 程序流程图、开始显示缓存区,初始化8279初始化调用发音子程序调用键盘子程序键盘码送缓存区是否9键是否0键是否S键是否R键录音子程序放录音子程序放歌子程序返回DOSYN&NNYYYN(1)主程序流程图(2)发音子程序流程图(3)键盘显示子程序流程图 (4)显示子程序流程图入口显示提示信息键盘码存缓存区调用显示子程序调用发音子程序al是否9返回YN入口调用键盘子程序键盘码存缓存区调用发音子程序调用显示子程序把键盘码输入song,inc al是否9键返回:显示提示信息NY(5)录音子
8、程序流程图 (6)放录音子程序流程图七、 程序源代码STACK1 SEGMENT PARA STACK STACK、DB 50 DUP(0)STACK1 ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATAMOV AX,DATAMOV DS,AXMOV DX,OFFSET MSG*MOV AH,9INT 21H ;显示提示信息CLIMOV AX,DATAMOV DS,AXMOV SEC1,0MOV SEC2,0MOV MIN1,0MOV MIN2,0MOV HOUR1,0MOV HOUR2,0 ;显示缓存区初始化MOV AX,DATAMOV D
9、S,AXMOV AX,CSMOV DS,AXMOV DX,PORT1)MOV AL,0D3H ; 清除命令特征位OUT DX,AL ;8279 CLEARMOV AL,2AH ;00101010 42分频,内部使用1MHZ/42的频率OUT DX,AL ;8279 CLOCKMOV AL,40HOUT DX,AL ;READ FIFO RAM COMMANDMOV AL,00H ;8个字符显示,左入口。编码扫描键盘,双键锁定。OUT DX,AL ;KEYBORD DISPLY MODEMOV AL,80H ;写入的存储单元地址为0000OUT DX,AL ;WRITE RAM COMMANDC
10、ALL MUSIC ;发音CALL KEYBORD ;CALL KEYBORD AND DISPLYNEXT2:MOV HOUR2,ALMOV HOUR1,ALMOV MIN2,AL!MOV MIN1,ALMOV SEC2,ALMOV SEC1,AL ;键盘码存入显示缓冲区CMP AL,9HJZ RECMP AL,0HJZ OUTPUTCMP AL,15,JZ FUCMP AL,13H ;R COMMANDJNZ LP1MOV AX,4C00H ;QUIT TO DOSINT 21HLP1: JMP KEY1RE:CALL RE0 ;录音JMP LP1!OUTPUT:CALL OUTPUT0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 电子琴
链接地址:https://www.31ppt.com/p-4263684.html