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

加入VIP,免费下载资源
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机仿真电子琴设计.doc

1、目 录一、课程设计的目的与要求 1 1.1课程设计的目的 1 1.2课程设计的要求 1二、课程设计的内容及结果1 2.1 题目及主要技术指标 1 2.2 原理及流程图 1 2.3设计程序代码 4 2.4设计实验结果及图像 15三、课程设计总结 16四、参考文献 16大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 一、课程设计的目的与要求1.1课程设计的目的:本课程的课程设计是自动化专业学生学习完微机原理及应用课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。本课程设计的其目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用

2、微机原理开发系统的基本方法。1.2 课程设计的要求: 从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:(1)掌握汇编语言程序设计的基本方法。(2)进一步理解各种接口电路的应用。例如8255并行接口,8253定时器等。(3)掌握利用PC机扬声器发出不同频率声音的方法。二、课程设计的内容 2.1题目及主要技术指标(1)课程设计的题目:“计算机仿真电子琴”。 (2)主要技术指标:a)在程序运行时使PC即成为一架可弹奏的电子琴。当按下数字健1-8时,依次发出1,2,3,4,5,6,7,I这8个音调。自行设计按下某一键则退出电子琴状态。b)在程序运行时使PC自动演奏一首乐曲。 2.2原理及流

3、程图 (1)音节频率设定对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。对于音乐,每个音节都有对应的频率。各音节对应频率值(如表11): (2)产生一个正弦波的数据可取32(小于亦可),各不同频率的区别,可通过调节向转换器输出数据的时间间隔,例如:发重低音“哆”的频率为131HZ,周期为(1/131)ms,定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。1大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业

4、班级: 姓名: 学号: 表11音节哆唻咪发嗦啦唏重低音频率(单位:HZ)131147165175196220247低音频率(单位:HZ)262294330349392440494中音频率(单位:HZ)523587659698784880988高音频率(单位:HZ)1046117513181397156817601975电路连接图:2大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 流程图:3大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 2.3设计程序代码:data segment ;数据定义段assume ds:dat

5、a ;建立数据段寄存器寻址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,Super 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

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 db 0dh,0ah,2. Jingle bells$msg_12 db 0dh,0ah,3. Happy birthday to you$msg_13 db 0dh,0ah,4. Happy new

7、 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,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 ;休止符04大 连 海 洋 大 学 课 程 设 计 报 告 纸

8、学院: 专业班级: 姓名: 学号: ;画心 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 db 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,

9、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,0music_d1 db 4, 4, 8, 4, 4, 8, 4, 4, 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

10、, 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, 4 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 45大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: db 4, 4, 4, 16, 4,

11、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,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

12、 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, 4, 8, 4 db 4, 4, 4, 4, 8, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4

13、, 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,326大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;生日快乐music_n3 db g,g,h,g,z,j db g,g,h,g,x,z db g,g,b,c,z,j,h db v,v,c,z,x,

14、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, 32jiepai db ? ;

15、节拍变量定义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 ;宏定义结束7大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;主函数main proc far mov ax,data mov ds,ax ;装载数据段寄存器ds,使之指向当前数据

16、段 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号中断,扫描键盘按键 int 16h ;AL中返回按键的ASCII码 cmp al, 0dh jz exit cmp al, 1bh jz exit cmp al, p jz play

17、8大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: lookup: cmp key_tbx,al ;取出对应频率值 je next inc bx jmp lookupnext: shl bx,1 mov cx,note_tbx;取得对应数组下标值的频率值 call beep jmp key_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: m

18、ov ah, 00h int 16h cmp al, q jz start cmp al, 1 jz next6 cmp al, 2 jz next7 cmp al, 3 jz next8 cmp al, 4 jz next9 jmp input 9大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: next6: call play_m1next7: call play_m2next8: call play_m3next9: call play_m4start: call main;音乐播放程序1play_m1 proc nearnext5: mov bx,0

19、next3: mov al,music_n1bx ;取出music频率值 push ax mov al,music_d1bx ;取出music节拍 mov jiepai,al pop ax cmp al, 0 ;是否为音乐结束标志符 je input push bx mov bx,0look1: cmp key_tbx,al ;查表取出对应频率值的指针bx je next1 inc bx and bx,0ffh jmp look1 next1: shl bx,1 mov cx,note_tbx cmp cx,0 je next4 call beep call pause pop bx inc

20、bx jmp next3 next4: call nobeepcall pause 10大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: pop bx inc bx jmp next3play_m1 endp;音乐播放程序2play_m2 proc nearnex5: mov bx,0nex3: mov al,music_n2bx push ax mov al,music_d2bx mov jiepai,al pop ax cmp al, 0 ;je input push bx mov bx,0loo1: cmp key_tbx,al ;查表取出对应频率值的

21、指针bx je nex1 inc bx and bx,0ffh jmp loo1 nex1: shl bx,1 mov cx,note_tbx cmp cx,0 je nex4 call beep call pause ; pop bx inc bx jmp nex3 nex4: call nobeepcall pause 11大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: pop bx inc bx jmp next10 play_m3 endp;音乐播放程序4play_m4 proc nearnxt5: mov bx,0next13: mov al,m

22、usic_n1bx push ax mov al,music_d1bx mov jiepai,al pop ax cmp al, 0 ;je input push bx mov bx,0lok1: cmp key_tbx,al je next15 inc bx and bx,0ffh jmp lok1 next15: shl bx,1 mov cx,note_tbx cmp cx,0 je next14 call beep call pause pop bx inc bx jmp next13 next14: call nobeep call pause 12大 连 海 洋 大 学 课 程 设

23、 计 报 告 纸学院: 专业班级: 姓名: 学号: next14: call nobeep call pause pop bx inc bx jmp next13 play_m4 endp main endp ;固定频率响beep proc near mov dx,0012h mov ax,34dch div cx ;ax为所得分频值 out 42h,al ;输出频率值,低8位 mov al,ah out 42h,al ;输出频率值,高8位 call spk_on ;开启蜂鸣器 mov ah,00h ;取时钟计数值 int 1ah mov al,jiepai ;18.2次为1000ms, 2次

24、约为100ms add al,speed cbw add ax,dx mov bx,ax delay1: mov ah,00h int 1ah cmp bx,dx jnz delay1 call spk_off ret beep endp13大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;休止符延迟时间nobeep proc near call spk_off mov ah,00h int 1ah mov al,jiepai add al,speed cbw add ax,dx mov bx,ax delay2: mov ah,00h int 1ah c

25、mp bx,dx jnz delay2 retnobeep endp;音符间隔停顿时间pause proc near call spk_off mov ah,00h int 1ah mov al,jiange cbw add ax,dx mov bx,ax delay3: mov ah,00h int 1ah cmp bx,dx jnz delay3 retpause endp14大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;开启蜂鸣器spk_on proc near push ax in al,61h or al,03h ;把61h端口低二位置1,即

26、打开蜂鸣器 out 61h,al pop ax retspk_on endp;关闭蜂鸣器spk_off proc near push ax in al,61h and al,0fch ;把61h端口低二位置0,即关闭蜂鸣器 out 61h,al pop ax retspk_off endpcode ends end main 2.4实验结果及图像结果:经过查阅资料编写程序、调试程序,能够较好的满足设计要求。以下为运行图像:15大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 三、课程设计总结 对于本次的课程设计,刚刚给定题目时感觉无从下手,等查阅了资料后对于总体思路有了一些想法,包括原理、程序各模块的分块设计等。 因为对于一门课的课程设计,是要求我们对于正本书要有总体的把握,所以课设增进了我们对于书本知识的掌握,加深了理解。 我觉得理论是建立在实践的基础上的,而如果理论不能应用于实践,那它的存在是没有太大意义的,我们缺乏的是实践能力,所以以后要珍惜、把握好每一次这样的机会。四、参考文献1 王忠民 .微型计算机原理. 西安电子科技大学出版社 2007年2 赵燕,何南. 微机原理与应用试验指导书 大连海洋大学自编 2008年3 沈美明. 汇编语言程序设计实验教程. 北京:清华大学出版社,200216

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922