ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:153.33KB ,
资源ID:10219574      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10219574.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计 电子琴课程设计报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计 电子琴课程设计报告.docx

1、微机原理课程设计 电子琴课程设计报告计算机与信息工程系系统接口设计报告 电子琴课程设计 院 系: 计算机信息工程系 专 业: 计算机应用 班 级: Z090551班 学 号: Z09055115 姓 名: 刘 莎 指导老师: 赵国增 完成时间: 2011年6月10日 评语:成绩:批阅教师签名: 批阅时间:摘 要随着科技的高速发展,计算机已经经过了好几代的更新,然而计算机的运行的基本原理依然没有改变的。而今,我们通过两年的学习,已经初步了解了计算机的基本结构和原理,并且已经学会了用汇编语言进行基本的程序编写。而本次课程设计的主要目的就是巩固所学过的知识,用汇编语言熟练地运用三大结构,进一步掌握一

2、些指令的功能、掌握子程序的定义及调用和中断的使用,同时熟练运用通用寄存器和堆栈来进行编写一个完整的具有某种特定功能的程序。这个简易的电子琴设计采用了软硬件结合的方法完成了设计的要求不。应用了8255和8253的芯片,CPU和8086达到软硬件的结合。从而实现了PC机电子琴的弹奏和播放音乐的两种功能:1 、弹奏用户每按奏一个键盘琴键就会发出相应的音符;2、按下键盘上某些特定的键后,会自动弹奏预存琴谱的功能。 键的控制:ESC或者ENTER:退出; Q,W,E,R,T,Y,U 音符高音键; A,S,D,F,G,H,J 音符中音键; Z,X,C,V,B,N,M 音符低音键; 1,2,3,4,5,6,

3、7 音符重音键; 按P键进入音乐播放菜单,显示菜单后,按Q键返回上一级菜单,1,2,3,4键播放预存曲谱的歌曲。在本次课程设计中,考察了我们编程的技巧、运用Debug动态调试工具进行程序的调试的能力。同时,本道设计题目还检查了学生对汇编语言这门课程的基本知识的掌握程度。只有掌握汇编语言基本编程方法,掌握程序各部分功能及其相互联系、相互作用,并要熟悉基本的音乐知识,才能独立的把程序写出来,才能把程序写好。关键字:课程设计、汇编语言、指令、中断、寄存器第1章 电子琴课程设计1.1 电子琴课程设计的目的与意义1.1.1 电子琴课程设计的目的本课程设计主要是通过汇编语言用软件编程的方法实现简单的PC仿

4、真电子琴。通过在微机原理与接口技术课程上所学的汇编知识和相关芯片知识,来完成本课程设计。学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。1.1.2 电子琴课程设计的意义通过此课程设计可提高我们独立思考问题解决问题的能力,学会怎样去查资料,有效的利用网络所提供的有效资源。提高我们主动学习的能力。1.2 电子琴课程设计的内容与要求1.2.1 电子琴课程设计的内容 通过汇

5、编语言用软件编程的方法实现简单的PC仿真电子琴。1.2.2 电子琴课程设计的要求1、按键发音 (1)当从键盘上敲击qu时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的重低音节。 (2)当从键盘上敲击aj时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的低音节。 (3)当从键盘上敲击zm时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的中音节。 (4)当从键盘上敲击17时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的高音节。 (5)按Esc或者Enter键时退出程序。2、屏幕显示所有操作的提示信息。1.3 电子琴课程设计应解决的主要问题该课程设计应该解决的主要问题有:(1)查找出哆、唻、咪、发、嗦、啦、唏、唗七个音

6、节所对应的重低音、低音、中音、高音的频率值。(2)所有提示信息的显示。(3)音乐的自动播放问题,其中包括音乐的节拍值、每个音节的频率值、如何设定频率和停顿时间。(4)蜂鸣器的开启与关闭。第2章 电子琴课程设计的原理、思路和流程图2.1 电子琴课程设计的原理2.1.1 各个音节频率的设定(1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。对于音乐,每个音节都有对应的频率。各音节对应频率值(如表11):表11音节哆唻咪发嗦啦唏重低音频率(单位:HZ)13114716517

7、5196220247低音频率(单位:HZ)262294330349392440494中音频率(单位:HZ)523587659698784880988高音频率(单位:HZ)1046117513181397156817601975(2)产生一个正弦波的数据可取32(小于亦可),各不同频率的区别,可通过调节向转换器输出数据的时间间隔,例如:发重低音“哆”的频率为131HZ,周期为(1/131)ms,定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。2.1.2 电路连接图8253和8255的电路连接图(如图21)图212.2 电子琴课程设计思路在本次

8、课程设计中,根据复杂程序设计思想模块化程序设计,分析和确定程序总体设计目标:电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。程序设计的思路按以下顺序进行:1 分析与确定程序总体设计目标2 将总体目标划分为若干模块3 定义每个模块的具体任务,明确它与其他模块间的通信方式4 编写源程序,进行调试,包括:音乐弹奏 用户可以根据自己的兴趣爱好,自己按键弹奏音乐或者选择退出程序。 音乐播放 音乐菜单中列出了4首音乐,用户可以根据喜好选择收听其中的任何一首音乐或者选择退出程序。5 模块连接,形成完整的程序6 编写程序文档2.3 电子琴课程设计的流程图(1)主菜单的流程图(如

9、图22) 图22(2)播放音乐子程序的流程图(如图23)图23(3)弹奏音乐子程序的流程图(如图24) 图24 第3章 电子琴课程设计的源代码data segment ;数据定义段assume ds:data ;建立数据段寄存器寻址msg_1 db $,0dh,0ah ;定义字节msg_2 db 0dh,0ah,In this OS. you can press below keys to enjoy:$msg_8 db 0dh,0ah,You can press p to play music! Or play a music by yourself $msg_3 db 0dh,0ah,Su

10、per Low: q-w-e-r-t-y-u$msg_4 db 0dh,0ah, Low: a-s-d-f-g-h-j$msg_5 db 0dh,0ah, Mid: z-x-c-v-b-n-m$msg_6 db 0dh,0ah, Hig: 1-2-3-4-5-6-7$msg_7 db 0dh,0ah,Anytime you can press Esc or Enter to exit.$msg_9 db 0dh,0ah,Please select the music(press q to exit the main menu):$msg_10 db 0dh,0ah,1. Huaxin$msg_

11、11 db 0dh,0ah,2. Jingle bells$msg_12 db 0dh,0ah,3. Happy birthday to you$msg_13 db 0dh,0ah,4. Happy new year$msg_21 db 0dh,0ah, $note_t dw 131,147,165,175,196,220,247 ;重低音 dw 262,294,330,349,392,440,494 ;低音 dw 523,587,659,698,784,880,988 ;中音 dw 1046,1175,1318,1397,1568,1760,1975 ;高音 dw 0 ;休止符0; 1,2,

12、3,4,5,6,7 ;从低到高key_t db q,w,e,r,t,y,u ;重低音 db a,s,d,f,g,h,j ;低音 db z,x,c,v,b,n,m ;中音 db 1,2,3,4,5,6,7 ;高音 db 0 ;休止符0;画心 music_n1 db b,c,c,x,z,x,x,b,c db 0,b,c,c,x,z,x,b,n db c,0,b,c,c,x,z,x,z,j db z,x,j,g,h,d,g db h,h,c,x,z,j,j,g,h db g,g,h,h,z,j,h,g db s,d,d,d,g,h,h,j,z,g db z,x,x,c,c,b,c,c,x,z,x d

13、b z,j,z,x,j,g,h,d,g db h,h,c,x,z,j,g,h,h,0 db d,d,g,h,h,z,j,h,g,h db h,d,d,d,g,h,h,j,z,g,z db x,x,c,c,b,c,c,x,z db x,z,j,z,x,j,g,h,d,g,h db h,c,x,z,j,g,h,h,b,c db c,x,z,x,x,b,c,c,c,b,c db c,x,z,x,b,n,x,c,c db b,c,c,x,z,x,z,j db z,x,j,g,h,d,g,h,h,c db x,z,j,g,h,h,0 music_d1 db 4, 4, 8, 4, 4, 8, 4, 4,

14、 16 db 8, 4, 4, 8, 4, 4, 8, 4, 4 db 16, 8, 4, 4, 8, 4, 4, 8, 4, 4 db 4, 4, 4, 4, 8, 4, 4 db 8, 4, 4, 4, 4, 8, 8, 4 db 4, 4, 8, 4, 4, 4, 4, 8 db 4, 2, 16, 4, 4, 8, 4, 4, 4, 4 db 4, 4, 4, 4, 8, 4, 4, 8, 4, 4, 8 db 4, 4, 4, 4, 4, 4, 8, 4, 4 db 8, 4, 4, 4, 4, 8, 4, 2, 8, 8 db 4, 4, 4, 8, 4, 4, 4, 4, 4,

15、4 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 4 db 4, 4, 4, 16, 4, 4, 8, 4, 4 db 8, 4, 4, 4, 4, 4, 4, 8, 4, 4, 8 db 4, 4, 4, 4, 8, 4, 4, 16, 4, 4 db 8, 4, 4, 8, 4, 4, 4, 4, 8, 4, 4 db 8, 4, 4, 8, 4, 4, 4, 4, 8 db 4, 4, 8, 4, 4, 8, 4, 4 db 4, 4, 4, 4, 8, 4, 4, 8, 4, 4 db 4, 4, 8, 4, 4, 32;铃儿响叮当music_n2 db g,c,x

16、,z,g,0,g,h,g,c,x,z db h,0,h,a,h,v,c,x,j,g,b,b,v,x,c,z db g,c,x,z,g,0,g,h,g,c,x,z,h,v,c,x db b,b,b,b,n,b,v,x,z db c,c,c,c,c,c,c,b,z,x,c db v,v,v,v,c,c,c,x,x,z,x,b db c,c,c,c,c,c,c,b,z,x,c db v,v,v,v,c,c,b,b,v,x,z,0music_d2 db 4, 4, 4, 4, 8, 4, 2, 2, 4, 4, 4, 4 db 8, 4, 2, 2, 4, 4, 4, 4, 8, 8, 4, 4, 4

17、, 4, 8, 4 db 4, 4, 4, 4, 8, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4 db 4, 4, 4, 4, 4, 4, 4, 4, 16 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 2, 16 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 8, 8 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 2, 16 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 16,32;生日快乐music_n3 db g,g,h,g,z,j db g,g,h,g,x,z db g,g,b,c,z,j,h d

18、b v,v,c,z,x,z,0 music_d3 db 4, 4, 8, 8, 8, 16 db 4, 4, 8, 8, 8, 16 db 4, 4, 8, 8, 8, 8, 8 db 4, 4, 8, 8, 8, 16, 32music_n4 db z,z,z,g,c,c,c,z,z,c,b,b,v,c,x,x,c db v,v,c,x,c,z,z,c,x,g,j,x,z,0;新年好 music_d4 db 4, 4, 8, 8, 4, 4, 8, 8, 4, 4, 8, 8, 4, 4, 16, 4, 4 db 8, 8, 4, 4, 8, 8, 4, 4, 8, 8, 4, 4, 32j

19、iepai db ? ;节拍变量定义speed db 2 ;播放速度控制jiange db 1 ;音符间隔停顿时间data ends ;数据定义段结束;/*-*/;/*-*/;代码段定义code segment ;代码定义段 assume cs:code ;建立代码段寄存器寻址;/*-*/;/*-*/;字符显示show macro str ;宏定义,输入参数:字符串str lea dx,str ;装入str的有效地址 mov ah,09h ;调用中断21,09h显示字符串 int 21h endm ;宏定义结束;/*-*/;/*-*/;主函数main proc far ;主函数过程定义 mov

20、 ax,data ;取数据段地址 mov ds,ax ;装载数据段寄存器ds,使之指向当前数据段 show msg_21 show msg_1 ;调用宏,显示字符串 show msg_2 show msg_8 show msg_3 show msg_4 show msg_5 show msg_6 show msg_7 show msg_21 mov bx,0 ;设定查表数组下标初值;/*-*/;/*-*/;按键扫描key_scan: mov al,6 mov jiepai,al ;初始化节拍 mov bx,0000h ;初始化指针 mov ah, 00h ;利用bios的16号中断,扫描键盘按

21、键 int 16h ;AL中返回按键的ASCII码 cmp al, 0dh ;判断是否为Enter键 jz exit ;是回车键就退出 cmp al, 1bh ;判断是否为Esc键 jz exit ;是退出键就退出 cmp al, p ;判断是否为p键 jz play ;是p键就play musiclookup: cmp key_tbx,al ;取出对应频率值 je next inc bx ;指针+1 jmp lookupnext: shl bx,1 ;指针2,计算频率表指针 mov cx,note_tbx;取得对应数组下标值的频率值 call beep ;调用固定频率子程序 jmp key_

22、scan ;否则继续扫描;/*-*/ ;/*-*/exit: ;退出 mov ah,4ch ;调用中断21,4ch退出系统 int 21h;/*-*/;/*-*/;音乐播放菜单play: show msg_9 show msg_10 show msg_11 show msg_12 show msg_13 show msg_21input: mov ah, 00h ;利用bios的16号中断,扫描键盘按键 int 16h ;AL中返回按键的ASCII码 cmp al, q ;判断是否为Enter键 jz start ;是q键就退到主菜单 cmp al, 1 ;判断是否为数字1 jz next6

23、;是1键就播放相对应的歌曲 cmp al, 2 ;判断是否为数字2 jz next7 ;是2键就播放相对应的歌曲cmp al, 3 ;判断是否为数字3 jz next8 ;是3键就播放相对应的歌曲cmp al, 4 ;判断是否为数字4 jz next9 ;是4键就播放相对应的歌曲 jmp input ;否则继续扫描按键 next6: call play_m1next7: call play_m2next8: call play_m3next9: call play_m4start: call main;/*-*/;/*-*/;音乐播放程序1play_m1 proc nearnext5: mov bx,0next3: mov al,music_n1bx ;取出music频率值 push ax mov al,music_d1bx ;取出music节拍 mov jiepai,al pop ax cmp al, 0 ;是否为音乐结束标志符 je input ;是则退出play push bx ;保存bx,bx为music频率指针 mov bx,0look1: cmp key_tbx,al ;查表取出对应频

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1