微机原理课设.docx
- 文档编号:18358232
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:14
- 大小:148.96KB
微机原理课设.docx
《微机原理课设.docx》由会员分享,可在线阅读,更多相关《微机原理课设.docx(14页珍藏版)》请在冰点文库上搜索。
微机原理课设
自动化专业课程设计报告
《微机原理及应用课程设计》
题目.计算机仿真电子琴
班级自动化10-3
姓名王帅
学号1005130313
时间12.12.24-28
地点电信实验中心第六实验室
指导教师李向军
大连水产学院信息工程学院
自动化教研室
计算机仿真电子琴
一.课程设计的目的与要求
1、教学目的
本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。
本课程设计的其目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。
2、教学要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:
1)掌握汇编语言程序设计的基本方法。
2)进一步理解各种接口电路的应用。
例如8255并行接口,8253定时器等。
3)掌握利用PC机扬声器发出不同频率声音的方法。
4)设计要求
(1)掌握本课程设计所涉及到的基本理论。
(2)理解硬件电路的工作原理。
(3)自行设计软件流程图,编制程序。
(4)调试程序使其能正常运行。
(5)设计完成后,必须写出设计总结。
内容包括:
原理介绍,简单的硬件电路图,较详细的程序流程图及完整的软件源程序清单。
二.课程设计课题分析
1.电子琴的设计实际上就是要设计一个程序,能够通过该程序控制PC机内扬声器的发声规律,按下相应的按键后,扬声器能发出指定频率的声音。
PC机内的扬声器是通过并行接口芯片8255和定时芯片8253来控制发音的
1.19318MHZ
扬声器是由8253通道2产生的方波信号和8255的PB1相与后驱动发声的,且通道2的门信号由8255的PB0提供,要想让扬声器发声,PB0和PB1必须同时为高电平,因此,可以通过对8255的PB0和PB1的设置来控制扬声器的开通和关断,而其发音频率可以通过对8253通道2的计数初值的设置来控制。
所设计程序的任务就是要通过对按键的判断来设置8255的PB0和PB1输出电平的高低,以及8253通道2计数初值的设置。
计数初值N=时钟频率/音阶频率.各音阶的频率如下表所示。
音符
1
2
3
4
5
6
7
频率(低)
131
147
165
175
196
220
247
频率(中)
262
294
330
349
392
440
494
频率(高)
524
588
660
698
784
880
988
8255工作原理
PC机内8255的A口,B口,C口和控制口的端口地址分别为:
60H,61H,62H,63H。
8253工作原理
D7
D6
D5
D4
D3
D2
D1
D0
PC机内8253的通道0,通道1,通道2,控制口的端口地址分别为:
40H,41H,42,43H。
因为扬声器是由通道2来控制的,故应选择通道2,工作方式选为方式3,输出的信号则为方波信号。
2.程序流程图
Y
N
Y
N
Y
音乐播放子程序流程图
Y
N
发音子程序流程图
在弹奏和演奏时都需调用发音子程序,发音子程序的作用是控制扬声器的发音,其流程图如下:
三.课程设计过程及结果
DATASEGMENT
INFO1DB0AH,0DH,'WELCOMEYOUTOCOMEHERE!
$'
DB0AH,0DH,'THISISAMUSICPROGRAM!
$'
DB0AH,0DH,'PLEASESELECLT!
$'
INFO2DB0AH,0DH,'INPUTERROR!
$'
INFO3DB0AH,0DH,'PLEASEINPUTAGAIN!
$'
MUSLISTDB0AH,0DH,'========================='
DB0AH,0DH,'Press1taihuchuan'
DB0AH,0DH,'Press2SCALEPLAY'
DB0AH,0DH,'Press3orctrl+CEXIT'
DB0AH,0DH,'========================='
DB0AH,0DH,'$'
MUS_FRQ1DW330,392,330,294,330,392,330,294,330
DW330,392,330,294,262,294,330,392,294
DW262,262,220,196,196,220,262,294,332,262,-1
MUS_TIM1DW3DUP(50),25,25,50,25,25,100
DW2DUP(50,50,25,25),100
DW3DUP(50,25,25),100
TABLEDW262,294,330,349,392,440,494,525
NUMBDB0AH,0DH,'Keyboardnumber1~8keysplaynotesofthescale'
DB0AH,0DH,'Entertoexit'
DB0AH,0DH,'$'
DATAENDS
STACKSEGMENTPARASTACK'STACK'
STADB200DUP('STACK')
STACKENDS
CODESEGMENT
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
SHOWMACROB
MOVDX,OFFSETB
MOVAH,09H
INT21H
ENDM
SHOWINFO1
LOP:
SHOWMUSLIST
MOVAH,01H
INT21H
CMPAL,33H
JZRETU
CMPAL,31H
JNZB0
CALLMUSIC1
JMPEXIT1
B0:
CMPAL,32H
JNZEXIT
SHOWNUMB
CALLMUSIC2
EXIT1:
SHOWINFO3
JMPLOP
EXIT:
SHOWINFO2
SHOWINFO3
JMPLOP
RETU:
MOVAX,4C00H
INT21H
MUSIC1PROC
LEASI,MUS_FRQ1
LEABP,DS:
MUS_TIM1
FREQ1:
MOVDI,[SI]
CMPDI,-1
JEEND_MUS1
MOVBX,DS:
[BP]
CALLGENSOUND
ADDSI,2
ADDBP,2
JMPFREQ1
END_MUS1:
RET
MUSIC1ENDP
MUSIC2PROCNEAR
PUSHAX
PUSHBX
PUSHCX
LOP1:
MOVAH,01H
INT21H
CMPAL,0DH
JEEXIT2
CMPAL,31H
JBLOP1
CMPAL,38H
JALOP1
ANDAX,0FH
SHLAX,1
SUBAX,2
MOVSI,AX
MOVBX,OFFSETTABLE
MOVDI,[BX][SI]
MOVBX,100
CALLGENSOUND
JMPLOP1
EXIT2:
POPCX
POPBX
POPAX
RET
MUSIC2ENDP
GENSOUNDPROC
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHDI
MOVAL,0B6H
OUT43H,AL
MOVDX,12H
MOVAX,533H*896
DIVDI
OUT42H,AL
MOVAL,AH
OUT42H,AL
INAL,61H
MOVAH,AL
ORAL,3
OUT61H,AL
PUSHAX
WAIT1:
MOVCX,6000
DELA1:
INAL,61H
ANDAL,10H
CMPAL,AH
JEDELA1
MOVAH,AL
LOOPDELA1
DECBX
JNZWAIT1
POPAX
MOVAL,AH
OUT61H,AL
POPDI
POPDX
POPCX
POPBX
POPAX
RET
GENSOUNDENDP
CODEENDS
ENDSTART
程序运行结果
键入数字1,演奏歌曲欢乐颂
键入数字2,执行弹奏功能,数字1-8为简谱里的1.2.3.4.5.6.7.1
四.课程设计的心得与体会
通过整整一个星期的摸索和编程,查资料,终于把程序完成了,虽说程序总体并不是我们设计的,但是和同学们一起发现问题,分析问题,解决问题,也收获了不少,我们的编程技术都有所提高,上课时有些懵懂的知识,在这次课设中,也有了更深的理解。
最开始听到仿真电子琴是茫然的,到最后可以自己编曲,弹奏,感到很有成就感,在课设中也充满了乐趣。
我也体会到要提高自己的编程能力,扩展自己的知识,就必须去实践,用你所学的知识,和你所查得不知道的知识做一些实物,这样才会得到提高。
五.参考文献
1.《汇编语言程序设计教程》(周艳萍邹伟著)清华大学出版社。
2.刘卫国,陈昭平,张颖.MATLAB程序设计与应用.北京:
高等教育出版社,2002年
3.《PC机汇编语言实战精解》(李春生著)南开大学出版社。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理