(完整word版)电子发声实验课程设计_第1页
(完整word版)电子发声实验课程设计_第2页
(完整word版)电子发声实验课程设计_第3页
(完整word版)电子发声实验课程设计_第4页
(完整word版)电子发声实验课程设计_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、两种不同音调(中音和低音)的 随时切换的控制操作,其中用总开关K_7进行播放开关的总控制,开关 K_0用于音乐播放的选择,开关K_1用于对当前播放音乐的音调进行选择。设计中还实现了对16X 16的LED管的控制运用点阵汉字输出歌名。三、方案、系统组成框图和工作原理说明1、设计方案及原理:本设计中音乐播放控制为利用对8255和8254芯片的控制操作得以实现。音乐名的输出为利用总线对16X 16点阵地控制来实现。(1)本设计中PC发声系统以8254的计数器0为核心。系统初始化时,计数器 0工作 在方式3的“方波发声器”方式,同过将音乐频率转换为相应的计数初值,改变 计数器0的计数初值就可以使扬声器

3、发出不同的频率的音响。(2)发生系统控制为受 8255芯片控制,外界通过改变对8255芯片的PA 口的不同输入来实现播放功能上的选择。(3)演奏但音符,为利用一个音符对应一个频率,将与一个频率对应的计数初值写入计数器0,扬声器就发出相应的音调。计数器初值的计算公式为:计数初值=1MHZ +输出频率,其中1MHZ转换为16进制为0F4240H。(4)控制音符的演奏时间,是通过每一个音符规定一个“单位时间”:单位时间X N=音符的演奏时间。其中,N为调试参数,一首歌只有一个调试参数。2、系统组成(电路图):图1.对8254与系统的连接DCXPA0PAD0PA2PA3PA4D7.PA5PA6PA7A

4、0A18255单WR元RDCSQO-MO-M)-?一元*一展-4旌-7开关按键单图3.点阵汉字的接线0 0 QL1点阵L8LED显R1工单R8元四、程序功能描述及程序流程(1)程序功能描述:如程序流程图所示。 程序下载链接、并运行后,开始通过对外界按键扫描,来检查应进行采取的操作,根据外界不同的输入,完成不同的程序跳转,从而实现相应的播放功能。其中 K0、K1为外界电子控制单元。分为 0和1,即低电平和高电平。(2)程序流程图:五、程序源代码及注释1在 LED 单元中显示歌曲名称ROW1 EQU 0600H;端口定义ROW2 EQU 0640HCOL1 EQU 0680HCOL2 EQU 06

5、C0HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDS; 定义为数据段INCLUDE HZDOTht.ASM ;数据字段为汉字点阵库, 在 HZDOTht.ASM; 文件中CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, ALBG0:MOV AX, 160MOV

6、SI, OFFSET HZDOThtBG1:CALL DISPADD SI, 2DEC AXJZ BG0JMP BG1显示汉字子程序; 入口参数 : SI = 存放汉字起始地址DISP:ML0:ML1:ML2:MOV CX, 000FH PUSH AXPUSH CX MOV BL, 01H MOV CX, 0008H MOV DX, ROW1 MOV AL, 00H OUT DX, AL MOV AL, SI not alMOV DX, COL1 OUT DX, AL INC SIMOV AL, SI not alMOV DX, COL2 OUT DX, AL INC SIMOV DX, RO

7、W1 MOV AL, BL OUT DX, AL ROL BL, 1CALL DELAY LOOP ML1MOV DX, ROW1 MOV AL, 00H OUT DX, ALMOV CX, 0008H MOV DX, ROW2 MOV AL, 00H OUT DX, AL MOV AL, SI not alMOV DX, COL1 OUT DX, AL INC SIMOV AL, SI not alMOV DX, COL2 OUT DX, AL INC SIMOV DX, ROW2;控制0-7 行;0-7 列;8-15列;控制0-7 行;控制 8-15行;0-7 列;8-15列;控制 8-1

8、5行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRETDELAY: PUSH CX;延时子程序MOV CX, 0100HDL1:PUSH AXPOP AXLOOP DL1POP CXRETCODE ENDSEND START此程序中 8255 芯片和点阵LED 单元的连接,用来实现在点阵LED 显示单元来显示汉字的功能。通过调用汉字存放单元的地址,在LED 单元中可以显示出流动的字体。此程序实现的字体是“友谊天长地久”

9、。2.此程序用来实现程序流程图中所示的功能,即通过开关来控制播放曲目的的切换和音调的改变。IOY3EQU 06C0HMY8254_COUNT0MY8254_COUNT1MY8254_COUNT2MY8254_MODEEQU IOY3+00HEQU IOY3+02HEQU IOY3+04HEQU IOY3+06H;8254 计数器0端口地址;8254 计数器1端口地址;8254 计数器2端口地址;8254 控制寄存器端口地址IOY0EQU 0600HMY8255_AEQUIOY0+00HMY8255_BEQUIOY0+02HMY8255_CEQUIOY0+04HMY8255MODEEQUIOY0

10、+06HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSFREQ_LISTDW371,495,495,495,624,556,495,556,624表DW495,495,624,742,833,833,833,742,624DW624,495,556,495,556,624,495,416,416,371DW495,833,742,624,624,495,556,495,556,833DW742,624,624,742,833,990,742,624,624,495DW556,495,556,624,495,416,416,371,495,0TIME_L

11、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_LIST1DW 330,371,416,330歌频率表DW 330,371,416,330DW 416,441,495DW 495,556,495,441,416,330DW 495,556,495,441,416,330DW 330,248,330DW 330,248,330,0DATA SEGMENT;

12、第一首歌频率; 第一首歌时间; 第二首TIME_LIST1 DB 4,4,4,4DB 4,4,4,4DB 4,4,8DB 4,4,8DB 2,2,2,2,4,4DB 2,2,2,2,4,4DB 4,4,8DB 4,4,8; 第二首歌时间表FREQ_LIST2 音后; 第一首歌频率表变TIME_LIST2;第一首歌时间表变音后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,6,2,4,4DB6,2,4,4,6,2,4,4,12;第二首歌频率表变

13、音后; 第二首歌时间表变音后FREQ_LIST3TIME_LIST3DB 4,4,4,4DB 4,4,4,4DB 4,4,8DB 4,4,8DB 2,2,2,2,4,4DB 2,2,2,2,4,4DB 4,4,8DB 4,4,8DATA ENDSCODESEGMENTASSUME CS:CODE, DS:DA TASTART:MOV AX, DATAMOV DS, AXMOV DX, MY8255_MODE;初始化 8254 工作方式INPUT:BEGIN:MOV AX,90HMOV DX,AX;A 口作为输入MOV DX, MY8254_MODE;初始化8254 工作方式MOV AL, 36

14、H;定时器0、方式3OUT DX, ALMOV DX, MY8255_A;检查输入,是否要设中断问题IN AL,DXCMP AL,80HJZ NEAR PTR BEGINCMP AL,81HJZ NEAR PTR BEGIN1CMP AL,82HJZ NEAR PTR BEGIN2CMP AL,83HJZ NEAR PTR BEGIN3JNZ INPUTMOV SI,OFFSET FREQ_LISTMOV DI,OFFSET TIME_LISTPLAY:; 装入频率表起始地址;装入时间表起始地址MOV DX,MY8255_AIN AL,DXCMP AL,80HJNZ NEAR PTR INPU

15、TMOV DX,0FH;输入时钟为 1MHz , 1M = 0F4240HMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,ALMOV DL,DICALL DALL Y;取出频率值计算计数初值, 0F4240H / 输出频率;装入计数初值;取出演奏相对时间,调用延时子程序ADD SI,2INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP PLAY; 判断是否到曲末?BEGIN1: MOV SI,OFFSET FREQ_LIST1MOV DI,OFFSET TIME_

16、LIST1PLAY1:MOV DX,MY8255_AIN AL,DXCMP AL,81HJNZ NEAR PTR INPUTMOV DX,0FHMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,ALMOV DL,DI CALL DALL YADD SI,2 INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP NEAR PTR PLAY1BEGIN2: MOV SI,OFFSET FREQ_LIST2MOV DI,OFFSET TIME_LIST2PLAY2:MOV

17、DX,MY8255_AIN AL,DXCMP AL,82HJNZ NEAR PTR INPUTMOV DX,0FHMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0; 装入频率表起始地址;装入时间表起始地址;输入时钟为1MHz , 1M = 0F4240H;取出频率值计算计数初值, 0F4240H / 输出频率;装入计数初值;取出演奏相对时间,调用延时子程序; 判断是否到曲末?; 装入频率表起始地址;装入时间表起始地址;输入时钟为1MHz , 1M = 0F4240H;取出频率值计算计数初值, 0F4240H / 输出频率OUT DX,AL;装入计数

18、初值MOV AL,AHOUT DX,ALMOV DL,DI;取出演奏相对时间,调用延时子程序; 判断是否到曲末?; 装入频率表起始地址;装入时间表起始地址;输入时钟为1MHz , 1M = 0F4240H;取出频率值计算计数初值, 0F4240H / 输出频率;装入计数初值;取出演奏相对时间,调用延时子程序; 判断是否到曲末?CALL DALL YADD SI,2INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP PLAY2BEGIN3: MOV SI,OFFSET FREQ_LIST3MOV DI,OFFSET TIME_LIST3PLAY3:MOV DX

19、,MY8255_AIN AL,DXCMP AL,83HJNZ NEAR PTR INPUTMOV DX,0FHMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,ALMOV DL,DICALL DALL YADD SI,2INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP PLAY3DALL Y PROC;延时子程序D0:MOV CX,0010HD1:MOV AX,0F00HD2:DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALL Y END

20、PDONE: MOV AX,4C00HINT 21HCODE ENDSEND START本程 序 中 , 分 别 设 定 了 TIME_LIST1 TIME_LIST2 TIME_LIST3 和 FREQ_LIST1FREQ_LIST2 FREQ_LIST3 ,其中 TIME_LIST 是歌曲时间表, FREQ_LIST 是歌曲频率表。当程序下载链接无误后,执行程序;如程序流程图所示;K0,K1 为控制开关,当外设输入为00 时,电子发声单元播放“友谊天长地久”的低音调;当为 01 时,播放“两只老虎”的低音调;当 10 时播放“友谊天长地久”的原调,当 11 时播放“两只老虎”的原调。在播放

21、每首歌曲时,程序通过一直扫描键盘的输入来判断键盘输入值是否发声变化,如果发声变化,则执行相应的程序,如果没有发生变化则一直播放当前播放的歌曲。六、电路的连接及调试1 .电路连接电路的连接与调试过程中,由于在试验箱中操作, 8254 8255 芯片已内置,所以对照着电路图,电路的连接比较容易完成。在完成8255 单元的连接时候,由于此处没有给出电路图,同过与小组成员的讨论,给出了电路连接方案,如图 2 所示。在电路的连接过程中,要注意系统的地址总线与芯片的地址总线相连,单元的 A0 、 A1分别于系统的 XA0 XA1 相连, IOW 与 WR、 IOR 与 RD 、 IOY 与 CS 相连。实

22、现第二个程序的时候, 由于要用到开关单元按键,因此8255 的程序总线 PA0-PA7 要分别与开关按键单元中的 K_0-K_7 连接。2 .程序调试在试验的调试过程中,会遇到不能加载的情况,检查后发现是因为试验箱与电脑的连接出现了问题:由于接口的松动,使得在端口测试的过程中总会出现接口通信失败的情况,此时不光要检查连接的接口是否松动, 还要在端口中选择合适的端口, 来完成试验箱与电脑的连接。还有,调试时会遇到没有按照程序设计的功能来完成的情况,在这种情况下,应该首先检查程序是否有错,如果没有,再检查试验箱中电路连接是否有错误。一般来说,错误都出现在连线上面: 或者程序总线插在了地址总线处,

23、或者连线的插口接反了。 这种情况都比较容易来处理。七、调试中出现的问题、原因及排除方法调试过程中出现的问题。1 、 在程序编译、加载、链接无误的情况下,下载程序后,单击运行,则程序会出现从START 直接跳到 END 的情况。遇到这种情况,最大的可能是程序中有问题,但不是明显的问题,并不是错误,但是运行会直接结束。首先就要从程序检查开始,一般这种错误的出现有可能就是长转指令的运用错误,或者在设定时间、判断程序是否执行方面出了问题。通过仔细检查程序和修改后,这类问题就能得到解决。2 、 调试过程中出现jump out of the range 的错误这种情况,是由于程序太长,超出了 JMP 跳转

24、的能力范围。解决这种问题的方法是 增加中间过渡指令,从而缩短每条指令的长度。3 、 LED 显示单元中显示的字体与实际字体相反。这种情况是由于把字的点阵的高低位与试验箱的显示方式弄反了,通过调整字的点阵的高低位的位置,就可以使此问题得到解决。4 、 在调试过程中还会出现一些原因不明的错误,如乱码,符号等错误。这类错误的出现是由于在复制程序代码时, 同时将程序的注释一起复制到了程序中,而有些汉字的编码不能被识别,从而出现了这些错误。解决的办法是将出现错误行的汉字注释删掉。八、收获和体会这次的课程设计,其实也就是考验我们是否能将所学知识与动手结合起来的一次很好的机会。微机原理这门课程我们在上学期学

25、过,学习这门课程的目的就是要将所学的汇编知识运用到实际当中来; 在这次的课程设计中, 有几个题目我们可以选择, 为了更好的重温学习过的知识,我选择了电子发声试验这个课题。整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的, 所以有些问题不但要深入地理解, 而且要不断地更正以前的错误思维。 一切问题必须要靠自己一点一滴的解决, 而在解决的过程当中你会发现自己在飞速的提升。 对于电子发声试验, 其程序是比较简单的, 主要是解决程序设计中的问题, 而程序设计是一个很灵活的东西, 它反映了你解决问题的逻辑思维和创新能力, 它才是一个设计的灵魂所在。因此在整个设计过程中 大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的, 但怎样衔接各个子程序才是关键的问题所在, 这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处, 虽然感觉理论上已经掌握, 但在运用到实践的过程中仍有意想不到的 困惑,经过一番努力才得以解决。生活就是这样,汗水预示着结果也见

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论