电子琴课程设计报告电子版(微机) DOC
《电子琴课程设计报告电子版(微机) DOC》由会员分享,可在线阅读,更多相关《电子琴课程设计报告电子版(微机) DOC(13页珍藏版)》请在装配图网上搜索。
1、 大 连 海 洋 大 学 课 程 设 计 报 告 纸 学院:信息工程学院 专业班级:自动化 姓名: 学号: 自动化专业课程设计报告 《微机原理及应用课程设计》 题目:计算机仿真电子琴 班 级 姓 名 学 号 时 间 2011/12/19~2011/12/23 地 点 电信实验中心第六实验
2、室 指 导 教 师 大 连 水 产 学 院 信 息 工 程 学 院 自 动 化 教 研 室 题目:计算机仿真电子琴. 一、课程设计的目的与要求 1、教学目的 本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。本课程设计的其目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。 2、 教学要求 从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:
3、1) 掌握汇编语言程序设计的基本方法。 2) 进一步理解各种接口电路的应用。例如8255并行接口,8253定时器等。 3) 掌握利用PC机扬声器发出不同频率声音的方法。 二、课程设计课题的分析 1、主要技术指标 编写程序 (1)在程序运行时使PC即成为一架可弹奏的电子琴。当按下数字健1---8时,依次发出1,2,3,4,5,6,7,I这8个音调。自行设计按下某一键则退出电子琴状态。 (2)在程序运行时使PC自动演奏一首乐曲。 2、设计思路 通过编程,建立一个DOS界面,建立简单的菜单选项,可是实现电子琴的基本弹奏功能。可以通过按键“1、3、4、5、6、7”实现音调的低音输入
4、,按键“Q、W、E、R、T、Y、U”实现对音调的中音输入,按键“A、S、D、F、G、H、J”实现音调的高音输入,可以按“ESC”或“ENTER”键退出、“P”进入播放音乐模式,有两个音乐可以选择,1是水手,2是新年好。 3、硬件参数及硬件接线电路图 (1)地址和初值 8255口地址: PA口=60H PB口=61H PC口=62H 控制口=63H 8253口地址:计数器0=40H 计数器1=41H 计数器2=42H 控制寄存器=43H 8253初值:600Hz声音,1.19MHz/600=1983 (2)接线电路图 PC机扬声器电路以及相关接口电路:(如图1) 图
5、1 接线电路图 4、作原理 PC中的定时电路有三个通道,通道3用于发声,通道1用于控制系统内部的时钟。 通道1的工作方式和通道3一样,但是系统启动时设定其发出一个频率固定为18.2Hz的信号,这个信号直接送到系统中的"中断控制器"。每一个"Hz"都产生一个硬件中断,一般称这个硬中断为"IRQ0",对应的中断号是08H。在定时器的控制下每隔55毫秒就要执行一个08H号中断,这个中断的主要工作就是连续地计数。 由于PC计算机的时钟晶振为1.1931816MHz,根据频率的公式: f=1/T 则频率周期为 T=1/f 定时器的计数器为16位计数器,则最大的计数值为655
6、36,那么其定时时间为: t=65536*T=65536/f=0.0549254(秒) 即:PC定时器每秒可中断18.2065次。 5、程序流程图(见图2) 开 始 显示缓存区,变量初始化 扫描键盘 调用发音子程序 是否Esc或Enter 是否是P键 是否是Q键 返回DOS N 播放音乐菜单 播放音乐程序 键盘扫描 是否Enter键停止 是否Esc或Enter 返回DOS Y Y N Y N Y N Y N 图2 程序流程图 三、课程设计的结果 程序开始,显示提示信息,对缓存区初始化。按键扫描,接着调用发音子程序在把AL
7、送缓存区,发出与按键相对应频率的声音,从而实现计算机仿真电子琴的功能。并不停地对Esc键、Enter键、P键扫描,当Esc键或Enter键按下时,就退出程序。当按下P时,显示播放音乐目录。当按下数字选择键时,播放程序中预设的曲目,中途可以通过Enter键,终止音乐播放。当检测到Q时,退出到计算机仿真电子琴演奏状态。 1、程序代码: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT ASSUME DS:DATA STR_1 DB 0DH,0AH,'<<-----WELCOME YOU TO USING----->
8、> $' STR_2 DB 0DH,0AH,' Author:SunFh Date:2011/12/20 $' STR_3 DB 0DH,0AH,'This is an electric piano!$' STR_4 DB 0DH,0AH,'LOW: 1-2-3-4-5-6-7$' STR_5 DB 0DH,0AH,'MID: Q-W-E-R-T-Y-U$' STR_6 DB 0DH,0AH,'HIG: A-S-D-F-G-H-J$' STR_7 DB 0DH,0AH,'You can press play it that likes a piano.'
9、 DB 0DH,0AH,'And you can press ''ESC'' or ''ENTER'' to EXIT.$' STR_8 DB 0DH,0AH,'What''s more,' DB 0DH,0AH,' you can press ''P'' to play some musics!$' STR_9 DB 0DH,0AH,'Please selectT the music (Press ''Q'' to exit this MENU):$' STR_10 DB 0DH,0AH,'1. Shui Shou$' STR_11 DB 0DH,0AH,'2. X
10、in Nian Hao' DB 0DH,0AH,'You can press "ENTER" to stop play.$' STR_12 DB 0DH,0AH,'INPUT ERROR!$' STR_13 DB 0DH,0AH,'Please input again!$' STR_21 DB 0DH,0AH,' $' NOTE_T 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 KEY_
11、T DB '1','2','3','4','5','6','7' DB 'q','w','e','r','t','y','u' DB 'a','s','d','f','g','h','j' DB '0' MUSIC_N1 DB '6','e','w','e','w','e','r','t','r','w','e','0','r' DB 'r','r','r','w','q','w','e','w','w','e','q','7','6','q','7' DB '6','e','w','e','w','e','r','r','r','e','
12、w','e' DB 'r','e','w','q','w','q','w','e','7','7','6','5','6','6' DB 'w','w','w','w','r','r','e','w','w','w','e','w','q','w','q','6',0 MUSIC_D1 DB 8,4,4,8,4,4,6,2,4,4,4,6,2 DB 4,2,2,4,4,4,2,2,4,4,4,4,4,4,16 DB 8,4,4,8,4,4,4,2,2,4,4,16 DB 6,2,4,4,6,2,4,4,4,4,4,2,2,16 DB 6,2,4,4,4,2,2,4,2
13、,2,4,4,4,2,2,16 MUSIC_N2 DB '1','1','1','t','3','3','3','1','1','3','5','5','4','3','2','2','3' DB '4','4','3','2','3','1','1','3','2','t','u','2','1',0 MUSIC_D2 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,32 JIEPAI DB ? SPEED DB 2 JIANGE DB 1 DATA ENDS CODE SEGMEN
14、T ASSUME CS:CODE SHOW MACRO STR LEA DX,STR MOV AH,09H INT 21H ENDM MAIN PROC FAR MOV AX,DATA MOV DS,AX SHOW STR_21 SHOW STR_1 SHOW STR_2 SHOW STR_3 SHOW STR_4 SHOW STR_5 SHOW STR_6 SHOW STR_7 SHOW STR_8 SHOW STR_21 MOV BX,0 KEY_SCAN:
15、MOV AL,6 MOV JIEPAI,AL MOV BX,0000H MOV AH, 00H INT 16H CMP AL, 0DH JZ EXIT CMP AL, 1BH JZ EXIT CMP AL, 'p' JZ PLAY LOOKUP:CMP KEY_T[BX],AL JE NEXT INC BX JMP LOOKUP NEXT:SHL BX,1 MOV CX,NOTE_T[BX] CALL BEEP JMP KEY_SCAN EXIT:MOV AH,
16、4CH INT 21H ERROR: SHOW STR_12 SHOW STR_13 JMP PLAY PLAY:SHOW STR_21 SHOW STR_9 SHOW STR_10 SHOW STR_11 INPUT:MOV AH, 00H INT 16H CMP AL, 'q' JZ START CMP AL, 0DH JZ EXIT CMP AL, 1BH JZ EXIT CMP AL, '1' JZ NEXT6 CMP AL, '2' JZ NE
17、XT7 CALL ERROR JMP INPUT NEXT6:CALL PLAY_M1 NEXT7:CALL PLAY_M2 START:CALL MAIN STOP:PUSH AX MOV AH,00H INT 16H CMP AL,0DH JZ PLAY RET PLAY_M1 PROC NEAR NEXT5:MOV BX,0 NEXT3:MOV AL,MUSIC_N1[BX] PUSH AX MOV AL,MUSIC_D1[BX] MOV JIEPAI,AL POP AX PUSH
18、 AX MOV AH,11 INT 21H CMP AL,0FFH JZ STOP POP AX CMP AL, 0 JE INPUT PUSH BX MOV BX,0 LOOK1:CMP KEY_T[BX],AL JE NEXT1 INC BX AND BX,0FFH JMP LOOK1 NEXT1:SHL BX,1 MOV CX,NOTE_T[BX] CMP CX,0 JE NEXT4 CALL BEEP CALL PAUSE POP BX
19、 INC BX JMP NEXT3 NEXT4:CALL NOBEEP CALL PAUSE POP BX INC BX JMP NEXT3 PLAY_M1 ENDP IN:JMP INPUT PLAY_M2 PROC NEAR NEX5:MOV BX,0 NEX3:MOV AL,MUSIC_N2[BX] PUSH AX MOV AL,MUSIC_D2[BX] MOV JIEPAI,AL POP AX PUSH AX MOV AH,11 INT 21H
20、CMP AL,0FFH JZ STOP POP AX CMP AL, 0 JE IN PUSH BX MOV BX,0 LOO1:CMP KEY_T[BX],AL JE NEX1 INC BX AND BX,0FFH JMP LOO1 NEX1:SHL BX,1 MOV CX,NOTE_T[BX] CMP CX,0 JE NEX4 CALL BEEP CALL PAUSE POP BX INC BX JMP NEX3 NEX4:CALL NO
21、BEEP CALL PAUSE POP BX INC BX JMP NEX3 PLAY_M2 ENDP MAIN ENDP BEEP PROC NEAR MOV DX,0012H MOV AX,34DCH DIV CX OUT 42H,AL MOV AL,AH OUT 42H,AL CALL SPK_ON MOV AH,00H INT 1AH MOV AL,JIEPAI ADD AL,SPEED CBW ADD AX,DX MOV BX,AX DEL
22、AY1: MOV AH,00H INT 1AH CMP BX,DX JNZ DELAY1 CALL SPK_OFF RET BEEP ENDP 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 CMP BX,DX JNZ DELAY2 RET NOBEEP ENDP
23、 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 RET PAUSE ENDP SPK_ON PROC NEAR PUSH AX IN AL,61H OR AL,03H OUT 61H,AL POP AX RET SPK_ON EN
24、DP SPK_OFF PROC NEAR PUSH AX IN AL,61H AND AL,0FCH OUT 61H,AL POP AX RET SPK_OFF ENDP CODE ENDS END MAIN 2、实验现象 (1)程序正常运行,如图3 图3 程序正常运行 (2)音乐播放菜单(按P键),如图4 图4 音乐播放菜单 (3)输入错误按键,显示错误,键盘重新输入,如图5 图5 输入错误按键 (4)音乐播放终止,可以重新选择播放音乐或者返回,如图6 图6 音乐终止画面
25、(5)返回主菜单界面(按Q键),如图7 图7 返回主菜单界面 四、课程设计的心得与体会 一个星期的课程设计,让我尝试了失败的打击,和成功的喜悦。虽然自己查阅了很多资料,但是发信自己对知识的掌握还是不够扎实,不过自己在课程设计过程中,也学到了不少扩展的知识。在程序汇编时候,会遇到很多问题,自己的英文不是很好,有些错误都看不明白,但是跟同学讨论学习之后,修改程序,改正错误。让我意识到,合作是很有必要的,每个人理解的擅长的地方都不同,通过交流也会取长补短。 五、参考文献 [1] 王忠民,微型计算机原理,西安:西安电子科技大学出版社,2007年 [2] 赵燕,何南,微机原理与应用实验指导书,大连海洋大学,2008年 [3] 仇玉章,冯一兵,微计算机技术——实验与辅导,北京:清华大学出版社,2006年 [4] 朱定华,微机原理、汇编与接口技术实验教程,北京:清华大学出版社,2007年
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。