微机原理实训音乐演示报告.doc

上传人:laozhun 文档编号:2881988 上传时间:2023-03-01 格式:DOC 页数:25 大小:525KB
返回 下载 相关 举报
微机原理实训音乐演示报告.doc_第1页
第1页 / 共25页
微机原理实训音乐演示报告.doc_第2页
第2页 / 共25页
微机原理实训音乐演示报告.doc_第3页
第3页 / 共25页
微机原理实训音乐演示报告.doc_第4页
第4页 / 共25页
微机原理实训音乐演示报告.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《微机原理实训音乐演示报告.doc》由会员分享,可在线阅读,更多相关《微机原理实训音乐演示报告.doc(25页珍藏版)》请在三一办公上搜索。

1、沈 阳 工 程 学 院课 程 设 计课程设计题目:音乐程序设计系 别 信息工程系 班级 系统本101 学生姓名 张伶俐 学号 2010414102 指导教师 衣云龙、王德君 职称 讲师、工程师起止日期:2012年 05月21日起至 2012年05月25日止沈 阳 工 程 学 院课程设计任务书课程设计题目:音乐程序设计系 别 信息工程系 班级 系统本101 学生姓名 张伶俐 学号 2010414102 指导教师 衣云龙、王德君 职称 讲师、 工程师课程设计进行地点: 微机原理实验室(F106) 任 务 下 达 时 间: 2012 年 05 月 18 日起止日期:2012 年 05 月21日起至2

2、012年05月25日止教研室主任 王健 2012年05月18日批准一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。二、设计的原始资料及依据查阅可编程计数器/定时器芯片8254相关资料。用简单的输入输出端口等硬件,输入数据、处理数据和输出数据。三、设计的主要内容及要求内容:利用微机原理试验箱,设计简易音乐程序,要求至少可以播放2首音乐。要求:1)用2个开关选择歌曲。 2)能用扬声器播放歌曲。

3、四、对设计说明书撰写内容、格式、字数的要求 1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。2.学生应撰写的内容为:目录、正文、参考文献等。课程设计说明书(论文)的结构及各部分内容要求可参照沈阳工程学院毕业设计(论文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。3.说明书(论文)手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按沈阳工程学院毕业设计(论文)撰写规范的要求进行打印。4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。五、 设计完成后应提交成果的种类、数量、质量等

4、方面的要求;提交课程设计说明书一份。在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。六、时间进度安排;顺序阶段日期计 划 完 成 内 容备注11.5天查阅资料及程序设计22.5天上机调试程序30.5天成绩评定40.5天书写报告沈 阳 工 程 学 院微机原理及汇编语言 课程设计成绩评定表系(部): 信息系 班级: 系统本101 学生姓名: 张伶俐 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.2543

5、2工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.3543

6、2评阅教师评审成绩(加权分合计乘以8)分加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩分目录目录1第一章 绪论1第二章 实验原理22.1 设计原理22.2 设计环境及设备22.3 硬件接线图22.4 设计流程图32.5 8254芯片52.5.1 定时/计数器825452.5.2 8254内部结构52.5.3 8254外部引脚52.5.4 计数器内部结构62.5.5 8254功能62.5.6 8254控制字72.5.7 8254工作方式72.6 8255芯片82.6.1 8255外部引脚功能92.6.2 8255内部结构92.6.3 8255控制字10第三章 程序设

7、计123.1 频率产生模块123.2 控制模块123.3 控制音符的演奏时间123.4 音符频率表133.6 程序设计14第四章 结论18主要参考资料(文献)19第一章 绪论微机接口原理是一门非常重要的计算机技术基础课程,全面介绍微机的基本结构、工作原理、硬件配置、接口期间和接口种类等。本次微机接口课程设计的主要目的是要使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。在本次课程设计中大家利用课上所学的各种知识,对

8、自己的课程设计题目进行设计。我们小组所要设计的题目是音乐程序设计。在设计的过程中主要利用计数器/定时器8254芯片和可编程并行接口8255A芯片,完成2个开关选择歌曲,能用扬声器播放歌曲。首先我们利用定时器产生各种频率的声音,如“DO”“RE”“ME”然后将各个单音连接起来就组成了一首简单的曲子或者旋律,旋律及拍数可以按音乐简谱而定。对8255芯片PA0和PA6口的置0和1来选择歌曲。其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把SI是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。第二章 实验原理2.1 设计原理

9、我们在这次课设选择了音乐程序设计,音乐程序设计可以实现至少两首歌的可选择播放。对于歌曲的播放我们采用的是计数器/定时器8254芯片,而对于选择哪首歌播放则是利用可编程并行接口8255A芯片来实现的。基于8254定时计数接口芯片的工作原理,本次课设实现了音乐演奏系统程序设计。当运行程序时,扬声器便发出优美的音乐。首先要解决发声并发出相应音符声音的问题,由8254计数器0在初始化时用来产生一定频率的方波来使扬声器发声,再根据不同音符对应的频率写入计数初值发出相应的音符声。对8255芯片PA0和PA1口的置0和1来控制扬声器的开关。其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短

10、,实现连续发声把SI是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。2.2 设计环境及设备PC机一台、windows 98系统、实验箱,导线若干。8254定时器:用于产生秒脉冲。8255并口:用做接口芯片,与数码管相连2.3 硬件接线图硬件接线图如图2.1所示。D0 PB0D1 PB1 D2 8 D3 2 D4 5 D5 5 D6 芯 D7 片 WR RD PA0CS PA1A0 A1 XD0XD1XD2 系XD3 统XD4 总XD5 线XD6XD7IOW#IOR#IOY3 IOY1XA1XA2Clk+5VD0D1D2 8D3 2D4 5D5 4D6

11、 芯D7 片WRRDCSA0A1CLK0OUT0GATE0 图2.1 硬件接线图2.4 设计流程图软件流程图如图2.2所示。开始获取选项选择第1首歌YN曲1各音符频率设置曲1各音符时间设置读取频率频率=0调用paly子程序读取时间节拍计数次数送8254,产生该频率信号,在送至扬声器延时曲2各音符频率设置曲2各音符时间设置读取频率频率=0调用paly子程序读取时间节拍计数次数送8254,产生该频率信号,在送至扬声器延时结束是否播放NYYNNY图 2.2 软件流程图2.5 8254芯片2.5.1 定时/计数器8254 主要功能: 每片上有3 个独立的16 位的减计数器通道。 对于每个计数器,都可以

12、单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。 每个通道都有6 种工作方式,都可以通过程序设置或改变。 每个计数器的速率可高达2MHz。最高的计数时钟频率为2.6MHz。2.5.2 8254内部结构8254的内部结构如图2.3所示,它主要包括以下几个主要部分:图 2.3 8254的内部结构2.5.3 8254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下: D7D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。

13、 :来自于CPU的读控制信号输入引脚,低电平有效。 :来自于CPU的写控制信号输入引脚,低电平有效。 :芯片选择信号输入引脚,低电平有效。图2.4 8254的引脚 A1、A0:地址信号输入引脚,用以选择8254芯片的通道及控制字寄存器。 VCC及GND:+5V电源及接地引脚 CLKi:i=0,1,2,第i个通道的计数脉冲输入引脚,8254规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。 GATEi:i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。 OUTi:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信

14、号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。2.5.4 计数器内部结构每个计数器由一个16位可预置的减1计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。在计数器工作时,初值不受影响,以便进行重复计数。图中每个计数器有一个时钟输入端CLK作为计数脉冲源, 计数方式可以是二进制,计数范围110000H,也可以是十进制,计数范围165536。门控端GATE用于控制计数开始和停止。输出OUT端当计数器计数值减到零时,该端输出标志信号 。2.5.5 8254功能8254既可作定时器又可作计数器: 计数: 计数器装入初值后,当GATE

15、为高电平时,可用外部事件作为CLK 脉冲对计数值进行减1 计数,每来一个脉冲减1,当计数值减至0时,由OUT 端输出一个标志信号。 定时: 计数器装入初值后,当GATE为高电平时,由CLK 脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。除上述典型应用外,8254还可作频率发生器、分频器、实时钟、单脉冲发生器等。2.5.6 8254控制字图2.5 8254控制字说明 : 8254每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输出一个信号。 8254编程时先写控制字,再写时间常数。2.5.7 8254工作方式 方式0:计数结束产生中断方式当写入控制字后,OU

16、T变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。 方式1:可编程单次脉冲方式当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。 方式2:频率发生器方式当初值装入时,OUT变为高;计数结束,OUT变为低。该方式下如果计数未结束,但GATE为低时,立即停止计数,强制OUT变高,当GATE再变高时,便启动一次新的计数周期。 方式3:方波发生器当装入初值后,在GATE上升沿启动计数,OUT 输出高电平; 当计数完成一半时,OUT输出低电平。图2.6 方波图方式3与方式2的工作方式类似,也是在初始化完成后能重复循环计数,只是输出的波形不同。计数过程当把方式3的控制

17、字写入控制字寄存器后,输出端OUT变成高电平,作为初始电平。再将计数初值写入计数初值寄存器CR中,再经过一个时钟周期,计数初值被移入计数执行单元CE中,从下一个时钟脉冲开始作减1 计数,方式3的计数过程分为两种情况:第一种情况:计数初值为偶数,当作减1计数减到N/2时,输出端OUT端变成低电平,减到0时,输出端OUT变成高电平,并重新从初值开始新的计数过程。若GATE为高电平,则一直重复同样的计数过程。可见,输出端OUT输出连续的方波,故称方波发生器。第二种情况:计数初值为奇数,当作减1计数减到(N+1)/2以后,输出端OUT变成低电平,减到0时,输出端OUT又变成高电平。并重新从初值开始新的

18、计数过程。这时输出端的波形为连续的近似方波。门控信号的影响工作在方式3时,门控信号GATE的功能与工作方式2一样,即GATE 为高电平时,允许计数;GATE为低电平时停止计数。GATE引脚上的信号从低电平跳到高电平时,将会重新把计数初值寄存器CR中的内容移入计数执行单元CE中,并以新装入的值重新开始计数。如果在计数过程中写入新的初值,而GATE信号一直维持高电平,则新的初值不会影响当前的计数过程,只有在计数结束后的下一个计数周期,才按新的初值计数。若写入新的初值后,遇到门控信号的上升沿,则结束现行的计数过程,从下一个时钟脉冲下降沿开始按新的计数初值进行计数。2.6 8255芯片2.6.1 82

19、55外部引脚功能图2.7 8255外部引脚图可编程并行接口8255芯片的外部引脚图如图2.7所示。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括

20、控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。 RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。 D0D7:8255的数据线。8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 2.6.2 8255内部结构图2.8 8255的内部结构图可编程并行接口8255芯片

21、的内部结构图如图2.8所示。 输入/输出端口A、B、C 。这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。A口和B口是一个独立的8位I/O口。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。 A组和B组控制电路。这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。 读/写控制逻辑,它负责管理8255A的数据传输过程。它接收CS*及RD

22、*、WR*、RESET,还有来自系统地址总线的口地址选择信号A0和A1。将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。 数据总缓冲器,它是8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。2.6.3 8255控制字1 工作方式选择控制字它可以使8255的三个端口工作于不同的工作方式,如图2.9所示的8255控制字。图 2.9 8255的控制字图当控制字bit=7时,控制字的bit6bit3这4位用来控制A组,

23、A口的8位和C口的高4位,而控制字的低3位bit2bit0用来控制B组,包括B口的8位和C口的低四位。三种工作方式的描述如下: 方式0基本输入/输出方式; 方式1选通输入/输出方式; 方式2双向传送方式。2 C口按位置位/复位控制字8255的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。其格式注意8255的C口按位置位/复位控制字的最高位D7(特征位)应为低电平。如图2.10所示C口按位置位/复位控制字格式。图 2.10 C口按位置位/复位控制字第三章 程序设计3.1 频率产生模块所有音乐都是由

24、各个不同频率的音阶和其延续时间的长短来实现的。不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8254产生各音符,用8255并行接口来控制,达到播放音乐的功能。所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。CPU通过对定时器的通道0进行编程,使其

25、I/O寄存器接收一个控制声音频率的16位计数值。以产生特殊的音响。当定时器接收的计数值为533H时,能产生896Hz的声音,因此产生其他频率的计数值就可算出来:533Hz896频率=1234DC频率在送出频率计数值之前,还要给方式寄存器送一个方式值,该数决定对哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节,是二进制码还是BCD码。其位组合的格式如下:产生指定频率声音的程序段如下: PLAY:MOV DX,0FH MOV AX,4240H DIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,AL3.2 控制模块

26、对8255芯片PA0和PA6口的置0和1来选择歌曲。其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把SI是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。3.3 控制音符的演奏时间控制音符的演奏时间,是设计音乐程序的关键问题。最直观的方法是按照按照乐谱为每一个音符规定一个演奏时间,但是利用这种方法是调试程序特别困难。特别是在遇到一首不熟悉的歌曲时,初期很难确定每一个音符的演唱时间,而调试程序的时候费时费力,效果很差,下面,我么么向读者推荐一个记号的方法,即没一个音符规定一个“单位时间”。 单位时间*N=音符的演唱时间

27、其中N为调试参数,一首歌只有一个调试参数。设计程序时用EQU伪指令定义调试参数,初值先行估计,调试时再修改它。如何确定每个音符的演奏时间呢?我们知道,音符的节奏分为一拍、半拍、1/4拍、1/8拍等等。如果在一首歌曲中,音符演奏的时间最短为1/8拍,我们就规定一拍音符的单位时间为8,半拍音符的单位时间为4,1/4拍音符的单位时间为2,1/8拍音符的单位时间为1。以“友谊地久天长”这首歌为例,最短音符为1/8拍,我们就定义一个单位时间为8。所示,途中第一行是一段曲谱,第3行是相应音符的单位时间,编程时,首先将一个音符的频率转化成计数初值写入2号计数器,然后将音符的单位时间乘以调试参数N,在调用延时

28、子程序,就可以控制音符的演奏时间了,调试时,只需改变调试参数N即可。3.4 音符频率表音符频率表如下表所示:表 4.1 音符频率表1 音符音调 A B C D E F G221 248 278 294 330 371 416248 278 312 330 371 416 467131 147 165 175 196 221 248147 165 185 196 221 248 278165 185 208 221 248 278 312175 196 221 234 262 294 330196 221 248 262 294 330 371表 4.2 音符频率表2 音符音调 1 2 3 4

29、5 6 7 A B C D E F G 441 495 556 589 661 742 833 495 556 624 661 742 833 935 262 294 330 350 393 441 495 294 330 371 393 441 495 556 330 371 416 441 495 556 624 350 393 441 467 525 589 661 393 441 495 525 589 661 742表 4.3 音符频率表3 音符音调 A B C D E F G 882 990 1112 1178 1322 1484 1665 990 1112 1248 1322 1

30、484 1665 1869 525 589 661 700 786 882 990 589 661 742 833 882 990 1112 661 742 833 882 990 1112 1248 700 786 882 935 1049 1178 1322 789 882 990 1049 1178 1322 1484 编程产生各种音符的频率可参照此表。具体实现时由于各计算器的速度不同,乐曲演奏的速度存在差异,所以可以适当的调整延迟子程序的时间参数。3.6 程序设计IOY3EQU 06C0H ; 端口定义IOY1EQU 0640HMY8254_COUNT0EQU IOY3+00H ;82

31、54计数器0端口地址MY8254_COUNT1EQU IOY3+02H ;8254计数器1端口地址MY8254_COUNT2EQU IOY3+04H ;8254计数器2端口地址MY8254_MODEEQU IOY3+06H ;8254控制寄存器端口地址MY8255_AEQU IOY1+00H ;8255输入输出0端口地址MY8255_BEQU IOY1+02H ;8255输入输出1端口地址MY8255_CEQU IOY1+04H ;8255输入输出2端口地址MY8255_MODEEQU IOY1+06H ;8255控制寄存器端口地址 STACK1SEGMENT STACKDW 256 DUP(

32、?)STACK1ENDSDATASEGMENT FREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;频率表 DW 495,495,624,742,833,833,833,742,624 DW 624,495,556,495,556,624,495,416,416,371 DW 495,833,742,624,624,495,556,495,556,833 DW 742,624,624,742,833,990,742,624,624,495 DW 556,495,556,624,495,416,416,371,495,0TIME_LIST DB 4

33、, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表 DB 6, 2, 4, 4, 12, 1, 3, 6, 2 DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 6, 2, 4, 4, 14FREQ_LIST1 DW 393,330,393,330,393,330,262,294,350,330,294,393 DW 393,330,393,330,393,330,262,294,350,330,294,262

34、DW 294,294,350,350,330,262,393,294,350,330,294,393 DW 393,330,393,330,393,330,262,294,350,330,294,262,0TIME_LIST1 DB 2,2,2,2,2,2,4,2,2,2,2,8 DB 2,2,2,2,2,2,4,2,2,2,2,8 DB 2,2,2,2,2,2,4,2,2,2,2,8 DB 2,2,2,2,2,2,4,2,2,2,2,4DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,MY825

35、4_MODE;ASSUME CS:CODE,DS:DATA ;初始化8254工作方式MOV AL,36H ;定时器0、方式3OUT DX,ALMOV DX, MY8255_MODE ;初始化8255MOV AL, 90H ;A口输入,B口输出OUT DX, ALXIE: MOV DX, MY8255_AIN AL, DXMOV DX, MY8255_BOUT DX, ALCALL DALLY CMP AL,01H JZ BEGIN JMP BEGIN1BEGIN:MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址MOV DI,OFFSET TIME_LIST ;装入时间表起始

36、地址JMP PLAYBEGIN1:MOV SI,OFFSET FREQ_LIST1 ;装入频率表起始地址MOV DI,OFFSET TIME_LIST1PLAY:MOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H MOV AX,4240H DIV WORD PTR SI ;取出频率值计算计数初值,0F4240H / 输出频率 MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,DI ;取出演奏相对时间,调用延时子程序 CALL DALLYADD SI,2INC DICMP WORD PTR SI,0 ;判

37、断是否到曲末?JE XIEJMP PLAYDALLYPROC ;延时子程序D0:MOV CX,0010HD1:MOV BX,0FF0HD2:DEC BXJNZ D2LOOP D1DEC DLJNZ D0RETDALLYENDPCODEENDSEND START第四章 结论一周的微机原理及接口技术课程设计,音乐程序设计系统从无到有,这个过程使我感触很多,当然也获益匪浅。我们计本专业的学生对微机原理硬件知道了解太少,对其中有些具体的知识点了解很肤浅,在整整一星期的实验过程中我们可以学到很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过对音乐程序设计的汇编实

38、现,对硬件特别是8254、8255并行口的原理和实现都有了很深的了解。更加深了对汇编语言的使用.以前接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务。所以在编写程序之前必须有一个完整清晰的思路设计好各个模块所实现的功能。其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。刚看到课设题目的时候不知道该从哪开始编起,后来老师给我们讲了大概的设计思路和各个芯片的功能,才有了点头绪。因为基础知识学得不是很扎实,所以在编写程序的

39、过程中还是遇到了很多问题。最后通过老师耐心的指导和讲解我们的程序终于完成了。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。而且通过实践能更了解理论知识。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。主要参考资料(文献)1 李伯成微型计算机原理及应用西安电子科技大学2 微机原理及应用实验指导书3 周明德微型计算机系统原理及应用(第四版)清华大学出版社4 潘峰微型计算机原理与汇编语言电子工业出版社

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号