《微机原理与接口技术基于PROTEUS实现音乐播放器的设计.pdf》由会员分享,可在线阅读,更多相关《微机原理与接口技术基于PROTEUS实现音乐播放器的设计.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、信息科学与技术学院 微机原理与接口技术课程设计报告 题目名称:基于PROTEU实现音乐播放器的设计 _ 学生姓名:王浩宇 关问鼎 徐然 冉启幸 学 号:05 51 24 78 专业班级:13 电信 指导教师:刘恩博 2015年7月9日 目录一课程设计题目 基于PROTEUS现音乐播放器的设计 二课程设计任务及要求 设计要求:1.实现播放音乐;2.实现多首音乐连续播放和选择播放;3.要求通过PROTUE完成此项功能,并完成PCB电路图 三总体方案与设计说明 每个音符的对应频率 表1 每个音符的对应频率 音符 频率/HZ 半周期/us 音符 频率/HZ 半周期/us 低1DO 262 1908#4
2、FA#740 0676#1DO#277 1805 中5SO 784 0638 低2RE 294 1700#5SO#831 0602#2RE#311 1608 中6LA 880 0568 低3M 330 1516#6LA#932 0536 低4FA 349 1433 中7SI 988 0506#4FA#370 1350 高1DO 1046 0478 低5SO 392 1276#DO#1109 0451#5SO#415 1205 高2RE 1175 0426 低6LA 440 1136#2RE#1245 0402#6LA#466 1072 高3M 1318 0372 低7SI 494 1012 高
3、4FA 1397 0358 中1DO 523 0956#4FA#1480 0338#1DO#554 0903 高5SO 1568 0319 中2RE 578 0842#5S0#1661 0292#2RE#622 0804 高6LA 1760 0284 中3M 659 0759#6LA#1865 0268 中4FA 698 0716 高7SI 1976 0253 设计说明 该音乐播放器通过用8086中央处理器、74LS373地址锁存电路、74LS138译码 电路、定时/计数器8253A来实现功能。8086中央处理器输出地址码 A16-A19和数据AD0-AD15将AD0-AD7输入地址锁 存器输
4、出A0-A7,再将A0-A7通过译码器进行译码输出作为 8253的片选信号,8253 产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计 出一个功能完整的音乐播放器。四硬件电路设计及描述 芯片介绍(1)8086 中央处理器 8086中央处理器是 Intel 系列的 16位微处理器,有 16根数据线和 20跟 地址线。它主要由执行部件 EU(Execution Unit)和总线接口部件 BIU(Bus interface Unit)两部分组成。8086 拥有四个 16 位的通用寄存器,也能够当作 八个 8 位寄存器来存取,以及四个 16 位索引寄存器(包含了堆栈指标)。资料寄 存器
5、通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供 64K 8 位元的输出输入(或 32K 16 位元),以及固定的向量中断。大部分的指令只能够 存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在 操作数中的一个。为了能够简单有效地进行对 8086操作,故采用最小模式进行工作。要使 8086 处于最小模式,首先要将 MN/MX端置为高电平。(2)74LS373 地址锁存电路 74LS373 为D锁存器,AD0-AD7为输入数据,输出 Ao0-Ao7。74LS373的输 出端 O0O7 可直接与总线相连。当三态允许控制端 OE 为低电平时,O0-O7 为正常逻辑状态
6、,可用来驱动负 载或总线。当 OE 为高电平时,O0-O7 呈高阻态,即不驱动总线,也不为总线的 负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。引出端符号:D旷D7数据输入端 OE三态允许控制端(低电平有效)LE锁存允许端 00-07输出端 表2 74LS373真值表 Dn LE OE On H H L H L H L L X L L Q0 X X H 高阻态 74LS138译码电路 A0-A7通过译码电路输出作为8253的片选信号。其工作原理如下:a.当一个选通端E1为高电平,另两个选通端 E2
7、和E3为低电平时,可将地址端(A0 A1、A2)的二进制编码在 Y0至Y7对应的输出端以低电平译出。比如:AOA1A2=110寸,则丫6输出端输出低电平信号。b.可用在8086的译码电路中,扩展内存。在该电路中,除了 A2A1其他几位是11110*0的时候才能给CS送一个有效电平,而当A1A2=00,01,10,11之时即为F0H,F2H,F4H,F6H分别对应的是通道 0,1,2,3的运行。定时/计数器8253A 主要功能:a.每片上有3个独立的16位的减计数器通道。b.对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进 制或十进制来计数。c.每个通道都有6种工作方式,都可
8、以通过程序设置或改变8253的内部结构如图所示,它主要包括以下几个主要部分:图8253的内部结构 a.数据总线缓冲器 实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的 控制信息、数据信息以及 CPU从 8253读取的状态信息,包括某时刻的实时计数 值。b.读/写控制逻辑 控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号 以实现片选、内部通道选择以及对读/写操作进行控制。c.控制字寄存器 在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存 器只能写入,不能读出。d.计数通道0#、1#、2#:这是三个独立的,结构相
9、同的计数器/定时器通道,每一个通道包含一个16位的 计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存 器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读 计数值命令时,用以锁存计数值,供 CPU卖取,读取完毕之后,输出锁存器又跟 随减1计数器变化。音乐播放器工作于方式3:方波发生器 当装入初值后,在GATEt升沿启动计数,OUT输出高电平;当计数完成一半时,OUT俞出低电平。计数过程:DT*D 当把方式3的控制字写入控制字寄存器后,输出端 OUT变成高电平,作为初始 电平。再将计数初值写入计数初值寄存器 CR中,再经过一个时钟周期,计数初 值被移入
10、计数执行单元CE中,从下一个时钟脉冲开始作减1计数,方式3的计 数过程分为两种情况:第一种情况:计数初值为偶数,当作减1计数减到N/2时,输出端OUT端变成低 电平,减到0时,输出端OUT变成高电平,并重新从初值开始新的计数过程。若 GATE为高电平,则一直重复同样的计数过程。可见,输出端 OUT输出连续的方 波,故称方波发生器。第二种情况:计数初值为奇数,当作减 1 计数减到(N+1)/2 以后,输出端 OUT 变成低电平,减到0时,输出端OUT又变成高电平。并重新从初值开始新的计数 过程。这时输出端的波形为连续的近似方波。门控信号的影响 工作在方式3时,门控信号GATE勺功能与工作方式2
11、一样,即GATE为高电平 时,允许计数;GATE为低电平时停止计数。GATE引脚上的信号从低电平跳到高 电平时,将会重新把计数初值寄存器 CR中的内容移入计数执行单元 CE中,并以 新装入的值重新开始计数。五软件设计流程(模块流程图)及描述 通过给 8253 定时器装入不同的计数值,可以使其输出不同频率的波形。便可驱 动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段 延时程序。SI指向曲中的频率,BP指向曲中的时间节拍。从SI的指向的音节表中取一个频 率,只要不是 0,即有效就再读取时间,然后转到 start 子程序,计算计数初值 送入计数器,产生各种频率信号,再送至扬声
12、器。程序流程图 硬件电路图 开始 U1 A.:=:際巴j冬血 图1电路仿真图 六源程序代码(要有注释)code segme nt assume cs:code .音乐文件 j j j j j j j j j j j j j j j j j j j.H.I I j j j j j j j j j j j j j j j freq dw 2 dup(262,294,330,262)dw 2 dup(330,349,392)dw 2 dup(392,440,392,349,330,262)dw 2 dup(294,196,262),0;time dw 8 dup(10000)dw 2 dup(100
13、00,10000,20000)dw 12 dup(9000)dw 6 dup(18000);dw 10000 reg dw 3;计数器 3 遍;start1:mov ch,2 歌曲频率 歌曲时间节拍值 -ADL0.TI-74L-373 CLKO QUTD CLICI CnkTE1 0UT1 CLK2 MTE2 OUT.2 TEST NUI CLK USJL 74L5C:r-T U V B 3DUNDEH E:T RESET f?FAIX ihFA/CSl IKR _ _ HOLjOTT eg HLDWrm DTJRfBTI DENTS:阳士土 iiiioJeT OOM LQP SEC=Qrf?
14、0W Ain 曲仁 切1*r HR A YD Q V1 c ri Y3 Yfl El YS E2 0 E3 7 T-4LS138 ADI.AD;5n AD3 5 1*MJE 2 i/1 二 丄雪2J l 宀;-=:21J AL Al 2 5 M 12 5 R5 曲 J jmp start start:dec reg;cmp reg,0 je endd lea si,freq lea bp,time lea sp,reg mov di,cs:si;减一计数 循环三次结束 频率 mov bx,bp jmp music music:mov dx,0F6h;控制端口 mov al,B;控制字 out
15、dx,al 频率计算并送 8253;设置被除数 mov ax,1 out dx,ax mov bx,20000 wait1:mov cx,6 频率 时间 设循环次数 6delay1:loop delay1 dec bx;循环持续 bx 次,即传进来的节拍时间 jnz wait1;定位到下一个音符 dec bx jnz wait1 add si,2 add bp,2 mov di,cs:si cmp di,0 je start mov bx,bp jmp music 程序结束;endd:mov dx,0F6h mov al,B out dx,al code ends end start 七课程设
16、计体会 经过一个星期的课程设计,完成任务的效果和预想中有很大的出入,虽然中间遇 到了一些问题,但经过我们的努力,还是把问题给解决了。mov dx,00h mov ax,5000 div di mov dx,0F4h out dx,al 这次课程设计对我综合运用所学知识的能力的提高有不小的帮助,之前做的实验 都是很简单的编程,跟硬件结合也没有这么复杂,实现的功能都比较简单,可是 这次要实现的功能相对来说比较复杂,要求掌握的知识比较全面。我们第一次做硬件设计,难免会遇到过各种各样的问题,同时在设计的过程中发 现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8255A芯片的使用,PROTUE软件的应用技巧,对汇编语言掌握得不好 通过这次课程设计之后,我们把以前所学过的知识又重新温故了一遍,起到了课 程设计的预期效果。参考文献 1 史嘉权?微型计算机及应用?第四版?清华大学出版社,2008 2 沈美明?IBM-PC 汇编语言程序设计?第二版?清华大学出版社,2001 3 付家才?微型计算机及其接口技术指导与题典 M?化学工业出版社,2004