电子发声实验课程设计.docx

上传人:李司机 文档编号:7091709 上传时间:2024-06-09 格式:DOCX 页数:11 大小:59.51KB
返回 下载 相关 举报
电子发声实验课程设计.docx_第1页
第1页 / 共11页
电子发声实验课程设计.docx_第2页
第2页 / 共11页
电子发声实验课程设计.docx_第3页
第3页 / 共11页
电子发声实验课程设计.docx_第4页
第4页 / 共11页
电子发声实验课程设计.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《电子发声实验课程设计.docx》由会员分享,可在线阅读,更多相关《电子发声实验课程设计.docx(11页珍藏版)》请在三一办公上搜索。

1、微机原理课程设计课题:电子发声设计实验专业:学号:姓名:一、课题名称及设计组成员课题名称电子发声设计实验设计人姓名学号分工程序设计及调试线路连接及查错报告日期二、课题内容及要求课题名:电子发声设计实验1、要求:根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。要求至少要完成以下工程的一项(1) 可播放两首不同的乐曲(2) 根据不同的按键播放不同的音乐(3) 可改变音乐的音调(4) 可显示播放乐曲的名称2、所设计的电路实现的功能:设计中完成了实验要求中提出的要求。设计中实现了,用按键进行随时切换两首音乐(友谊地久天长,两只老虎)和对所播放的当前音乐进

2、行两种不同音调(中音和低音)的随时切换的控制操作,其中用总开关K_7进行播放开关的总控制,开关K_0用于音乐播放的选择,开关K用于对当前播放音乐的音调进行选择。设计中还实现了对16X16的1.ED管的控制运用点阵汉字输出歌名。三、方案、系统组成框图和工作原理说明I、设计方案及原理:本设计中音乐播放控制为利用对8255和8254芯片的控制操作得以实现。音乐名XD0DO鼓PAXD77-0-D7妤PAXAzSSko三键盘扫描5H-ICWIeR#IOYO_V为00?NKO、Kl为01?N-按-三A颦友谊地;播放两只老虎低调的输出为利用总线对16X16点阵地控制来实现。(1)本设计中PC发声系统以825

3、4的计数器0为核心。系统初始化时,计数器0工作在方式3的“方-波发声器”方式,产过将音乐频率转;奂为相应耳计数初值,1天长低调器0的计发初值就可么使扬芸器发出个司的频率的音响。(2)发生系统控制为受8255芯片控制,外猿二2、Kl为10?I(3)演奏但音君而-个哪玄心与一个频率对应的计数初植写入M数器0扬声器整典W端上要型值侪公式为:=22Kl为,播放两只老虎原调其中IMHZ转换TTm轲%4240H0播放友谊地久天长原调(4)控制音符的演奏时间,是j奥每一个音符规定一个“单位时间”:单,调用发音不程屣时间。具中,N为调W参数,一首歌只有一个调试参数。2、系统组成(电路图):四、程序功能描述及程

4、序流程序域土二键盘输入值发生变化?_一如程麻程将扁二接口嗝亍后,开始通过对外界按键扫描,来检查应进行采取的操作,其中KOsKl为4i;日操Rk臾工闺仔N播放音乐程序(2)程序流程I是否播放完毕完成不同的程序跳转,从而实现相应的播放功能。0和1,即低电平和高电平。五、程序源代码及注释1.在1.ED单元中显示歌曲名称ROW1EQU0600H;端口定义ROW2EQU0640HCO1.lEQU0680HCO1.2EQU06C0HSTACKlSEGMENTSTACKDW256DUP(?)STACKlENDS;定义为数据段INC1.UDEHZDOTht.ASM;数据字段为汉字点阵库,在HZDOTht.AS

5、M;文件中CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,ROWlMOVA1.,OOHOUTDX,A1.MOVDX,R0W2OUTDX,A1.MOVA1.,OffHMOVDX,CO1.lOUTDX,A1.MOVDX,CO1.2OUTDX,A1.BGO:MOVAX,160MOVSI,OFFSETHZDOThtBGl:CA1.1.DISPADDS1.2DECAXJZBGOJMPBGl,-显小,乂子J桂序;入口参数:SI=存放汉字起始地址DISP:MOVCX,OOOFHPUSHAXM1.O:PUSHCXMOVB1.,OlHM

6、OVCX,0008HM1.l:MOVDX,ROWl;控制0-7行MOVA1.,OOHOUTDX,A1.MOVA1.,SInotalMOVDX,CO1.l;0-7歹IJOUTDX,A1.INCSIMOVA1.,SInotalMOVDX,CO1.2OUTDX,A1.INCSI:8-15歹IJMOVDX,ROWlMOVA1.,B1.OUTDX,A1.RO1.B1.,1CA1.1.DE1.AY1.OOPM1.lMOVDX,ROWlMOVA1.,OOHOUTDX,A1.MOVCX,0008H;控制0-7行M1.2:MOVDX,ROW2MOVA1.,OOHOUTDX,A1.MOVA1.,SInotal;控

7、制8-15行MOVDX,CO1.lOUTDX,A1.INCSIMOVA1.,SInotal;0-7列MOVDX,CO1.2;8-15歹IJOUTDX,A1.INCSIMOVDX,ROW2MOVA1.,B1.OUTDX,A1.RO1.B1.,1CA1.1.DE1.AY1.OOPM1.2MOVDX,R0W2MOVA1.,OOHOUTDX,A1.SUBSI,32POPCX1.OOPM1.OPOPAXRET;控制8-15行DE1.AY:PUSHCX;延时子程序MOVCX,OlOOHD1.l:PUSHAXPOPAX1.OOPD1.lPOPCXRETCODEENDSENDSTART此程序中8255芯片和点

8、阵1.ED单元的连接,用来实现在点阵1.ED显示单元来显示汉字的功能。通过调用汉字存放单元的地址,在1.ED单元中可以显示出流动的字体。此程序实现的字体是“友谊天长地久二2.此程序用来实现程序流程图中所示的功能,即通过开关来控制播放曲目的的切换和音调的改变。IOY3EQU06C0HMY8254.COUNTOEQUIOY3+OOH;8254计数器0端口地址MY8254.COUNTlEQUIOY3+02H;8254计数器1端口地址MY8254.COUNT2EQUIOY3+04H;8254计数器2端口地址MY8254.MODEEQUIOY3+06H;8254控制存放器端口地址IOYOEQU0600H

9、MY8255.AEQUIOYO+OOHMY8255._BEQUIOY0+02HMY8255._CEQUIOY0+04HMY8255.MODEEQUIOY0+06HSTACKlSEGMENTSTACKDW256DUP(?)STACKlENDSDATASEGMENTFREQ_1.ISTDWDWDWDWDWDW371,495,495,495,624,556,495,556,624495,495,624,742,833,833,833,742,624624,495,556,495,556,624,495,416,416,371495,833,742,624,624,495,556,495,556,83

10、3742,624,624,742,833,990,742,624,624,495556,495,556,624,495,416,416,371,495,0;第一首歌频率表TIME_1.ISTDB4,6,2,4,4,6,2,4,4;第一首歌时间表DB6,2,4,4,12,1,3,6,2DB4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4DB6,2,4,4,12,4,6,2,4,4DB6,2,4,4,6,2,4,4,12FREQ.1.IST1DW330,371,416,330;第二首歌频率表DW330,371,416,330DW416,441,495DW495,5

11、56,495,441,416,330DW495,556,495,441,416,330DW330,248,330DW330,248,330,0TIME_1.IST1DB4,4,4,4;第二首歌时间表DB4,4,4,4DB4,4,8DB4,4,8DB2,2,224,4DB2,2,2,2,4,4DB4,4,8DB4,4,8FREQ_1.IST2;第一首歌频率表变音后TIME_1.IST2;第一首歌时间表变音后DB4,6,2,4,4,6,2,4,4DB6,2,4,4,12,1,3,6,2DB4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4DB6,2,4,4,12,4

12、,6,2,4,4DB6,2,4,4,6,2,4,4,12FREQ_1.IST3;第二首歌频率表变音后TIME_1.IST3;第二首歌时间表变音后DB4,4,4,4DB4,4,4,4DB4,4,8DB4,4,8DB2,2,2,2,4,4DB2,2,2,2,4,4DB4,4,8DB4,4,8DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;初始化8254工作方式MOVAX,90HMOVDX,AX;A口作为输入INPUT:MOVDX,MY8254_MODE;初始化8254工作方式MOVA

13、1.,36H;定时器0、方式3OUTDX,A1.MOVDX,MY8255_A;检查输入,是否要设中断问题INA1.,DXCMPA1.,80HJZNEARPTRBEGINCMPA1.,81HJZNEARPTRBEGINlCMPA1.,82HJZNEARPTRBEGIN2CMPA1.,83HJZNEARPTRBEGIN3JNZINPUTBEGIN:MOVSI,OFFSETFREQ_1.IST;装入频率表起始地址MOVDI,OFFSETTIME.1.IST;装入时间表起始地址P1.AY:MOVDX,MY8255_AINA1.,DXCMPA1.,80HJNZNEARPTRINPUTMOVDX,OFH;

14、输入时钟为IMHz,1M=OF424OHMOVAX,4240HDIVWORDPTRSIMOVDX,MY8254_COUNTOOUTDX,A1.MOVA1.,AHOUTDX,A1.MOVD1.,DICA1.1.DA1.1.YADDSI,2INCDICMPWORDPTRSI,OJENEARPTRINPUTJMPP1.AYBEGINl:MOVSI,OFFSETFREQ_1.IST1MOVDI,OFFSETTIME_1.IST1P1.AYl:MOVDX,MY8255_AINA1.,DXCMPA1.,81HJNZNEARPTRINPUTMOVDX,OFHMOVAX,4240HDIVWORDPTRSIMO

15、VDX,MY8254.COUNTOOUTDX,A1.MOVA1.,AHOUTDX,A1.MOVD1.,DICA1.1.DA1.1.YADDSI,2INCDICMPWORDPTRSI,OJENEARPTRINPUTJMPNEARPTRP1.AYlBEGIN2:MOVSI,OFFSETFREQ_1.IST2MOVDI,OFFSETTIME_1.IST2P1.AY2:MOVDX,MY8255_AINA1.,DX;取出频率值计算计数初值,0F4240H/输出频率;装入计数初值;取出演奏相对时间,调用延时子程序;判断是否到曲末?;装入频率表起始地址;装入时间表起始地址;输入时钟为1MHz,IM=0F42

16、40H;取出频率值计算计数初值,0F4240H/输出频率;装入计数初值;取出演奏相对时间,调用延时子程序;判断是否到曲末?;装入频率表起始地址;装入时间表起始地址CMPA1.,82HJNZNEARPTRINPUTMOVDX,OFH;输入时钟为1MHz,IM=0F4240HMOVAX,4240HDIVWORDPTRSI;取出频率值计算计数初值,0F4240H/输出频率MOVDX,MY8254_COUNTOOUTDX,A1.;装入计数初值MOVA1.,AHOUTDX,A1.MOVD1.,DI;取出演奏相对时间,调用延时子程序CA1.1.DA1.1.YADDSI,2INCDICMPWORDPTRSI

17、,O;判断是否到曲末?JENEARPTRINPUTJMPP1.AY2BEGIN3:MOVSI,OFFSETFREQ_1.IST3;装入频率表起始地址MOVDI,OFFSETTIME_1.IST3;装入时间表起始地址P1.AY3:MOVDX,MY8255_AINA1.,DXCMPA1.,83HJNZNEARPTRINPUTMOVDX,OFH;输入时钟为1MHz,IM=0F4240HMOVAX,4240HDIVWORDPTRSI;取出频率值计算计数初值,0F4240H/输出频率MOVDX,MY8254.COUNTOOUTDX,A1.;装入计数初值MOVA1.,AHOUTDX,A1.MOVD1.,D

18、I;取出演奏相对时间,调用延时子程序CA1.1.DA1.1.YADDSI,2INCDICMPWORDPTRSI,O;判断是否到曲末?JENEARPTRINPUTJMPP1.AY3DA1.1.YDO:Dl:D2:PROC;延时子程序MOVCX,0010HMOVAX,OFOOHDECAXJNZD21.OOPDlDECD1.JNZDORETDA1.1.YENDPDONE:MOVAX,4COOHINT21HCODEENDSENDSTART本程序中,分别设定了TIME_1.IST1TIME_1.IST2TIME_1.IST3和FREQ.1.IST1FREQ_1.IST2FREQ_1.IST3,其中TlM

19、E_1.IST是歌曲时间表,FREQ_1.IST是歌曲频率表。当程序下载链接无误后,执行程序;如程序流程图所示;KO,Kl为控制开关,当外设输入为00时,电子发声单元播放“友谊天长地久”的低音调;当为01时,播放“两只老虎”的低音调;当10时播放“友谊天长地久”的原调,当11时播放“两只老虎”的原调。在播放每首歌曲时,程序通过一直扫描键盘的输入来判断键盘输入值是否发声变化,如果发声变化,那么执行相应的程序,如果没有发生变化那么一直播放当前播放的歌曲。六、电路的连接及调试1 .电路连接电路的连接与调试过程中,由于在试验箱中操作,82548255芯片已内置,所以对照着电路图,电路的连接比拟容易完成

20、。在完成8255单元的连接时候,由于此处没有给出电路图,同过与小组成员的讨论,给出了电路连接方案,如图2所示。在电路的连接过程中,要注意系统的地址总线与芯片的地址总线相连,单元的A0、Al分别于系统的XAOXAl相连,IOW与WR、IOR与RD、IOY与CS相连。实现第二个程序的时候,由于要用到开关单元按键,因此8255的程序总线PAO-PA7要分别与开关按键单元中的K_0-K_7连接。2 .程序调试在试验的调试过程中,会遇到不能加载的情况,检查后发现是因为试验箱与电脑的连接出现了问题:由于接口的松动,使得在端口测试的过程中总会出现接口通信失败的情况,此时不光要检查连接的接口是否松动,还要在端

21、口中选择适宜的端口,来完成试验箱与电脑的连接。还有,调试时会遇到没有按照程序设计的功能来完成的情况,在这种情况下,应该首先检查程序是否有错,如果没有,再检查试验箱中电路连接是否有错误。一般来说,错误都出现在连线上面:或者程序总线插在了地址总线处,或者连线的插口接反了。这种情况都比拟容易来处理。七、调试中出现的问题、原因及排除方法调试过程中出现的问题。1、在程序编译、加载、链接无误的情况下,下载程序后,单击运行,那么程序会出现从START直接跳到END的情况。遇到这种情况,最大的可能是程序中有问题,但不是明显的问题,并不是错误,但是运行会直接结束。首先就要从程序检查开始,一般这种错误的出现有可能

22、就是长转指令的运用错误,或者在设定时间、判断程序是否执行方面出了问题。通过仔细检查程序和修改后,这类问题就能得到解决。2、调试过程中出现jumpoutoftherange的错误这种情况,是由于程序太长,超出了JMP跳转的能力范围。解决这种问题的方法是增加中间过渡指令,从而缩短每条指令的长度。3、1.ED显示单元中显示的字体与实际字体相反。这种情况是由于把字的点阵的上下位与试验箱的显示方式弄反了,通过调整字的点阵的上下位的位置,就可以使此问题得到解决。4、在调试过程中还会出现一些原因不明的错误,如乱码,符号等错误。这类错误的出现是由于在复制程序代码时,同时将程序的注释一起复制到了程序中,而有些汉

23、字的编码不能被识别,从而出现了这些错误。解决的方法是将出现错误行的汉字注释删掉。八、收获和体会这次的课程设计,其实也就是考验我们是否能将所学知识与动手结合起来的一次很好的时机。微机原理这门课程我们在上学期学过,学习这门课程的目的就是要将所学的汇编知识运用到实际当中来;在这次的课程设计中,有几个题目我们可以选择,为了更好的重温学习过的知识,我选择了电子发声试验这个课题。整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书木上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不

24、断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于电子发声试验,其程序是比拟简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大局部时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的缺乏之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解

25、决。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有时机能有实践的时机,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这

26、有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否那么一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常珍贵的。总之,通过这次的课程设计,我收获了许多:一方面,由于课程设计的过程中涉及了许多专业课的知识,因此在课下我找出了微机原理的课本,将以前学过的东西重新温习了一遍,感觉收获良多;以前有些地方不懂,但是现在看起来有一种恍然大悟的感觉;其实知识也正是在反复学习的过程中得以消化和吸收的;另一方面,由于动手能力一直是我们比拟薄弱的一点,这次的锻炼时机,让我们从动脑到动手,得到了全面的锻炼。很快乐自己能有这次时机,而我对它也很珍惜。在以后的学习和生活中,我一定会注意将学习和实践结合起来,多多动手,在实践中检验自己所学的知识,从而让自己的能力不断增强。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号