《微机原理及接口技术基于PROTEUS实现音乐播放器的设计.doc》由会员分享,可在线阅读,更多相关《微机原理及接口技术基于PROTEUS实现音乐播放器的设计.doc(11页珍藏版)》请在课桌文档上搜索。
1、. . . . . .专业 . .微机原理与接口技术课程设计报告微机原理与接口技术课程设计报告目录目录一课程设计题目一课程设计题目 1 1二课程设计任务及要求二课程设计任务及要求 1 1三总体方案与设计说明三总体方案与设计说明 1 13.1 每个音符的对应频率 13.2 设计说明 1四硬件电路设计及描述四硬件电路设计及描述 1 14.1 芯片介绍 1五软件设计流程五软件设计流程模块流程图模块流程图及描述及描述 1 1六源程序代码六源程序代码要有注释要有注释1 1七课程设计体会七课程设计体会 1 1参考文献参考文献 1 1一课程设计题目一课程设计题目基于 PROTEUS 实现音乐播放器的设计二课
2、程设计任务及要求二课程设计任务及要求设计要求:1.实现播放音乐;2.实现多首音乐连续播放和选择播放;3.要求通过 PROTUES 完成此项功能,并完成 PCB 电路图。三总体方案与设计说明三总体方案与设计说明3.13.1 每个音符的对应频率每个音符的对应频率表 1 每个音符的对应频率音符频率半周期/us音符频率半周期/us/HZ/HZ低1DO2621908#4FA#7400676#1DO#2771805中5SO784 0638低 2RE2941700#5SO#8310602#2RE#3111608中6LA8800568低 3M3301516#6LA#9320536低 4FA3491433中 7
3、SI9880506#4FA#3701350高1DO10460478低 5SO3921276#DO#11090451#5SO#4151205高2RE11750426低 6LA4401136#2RE#12450402#6LA#4661072高 3M13180372低 7SI4941012高139703584FA中 1DO5230956#4FA#14800338#1DO#5540903高5SO15680319中 2RE5780842#5S0#16610292#2RE#6220804高6LA17600284中 3M6590759#6LA#18650268中 4FA6980716高 7SI1976025
4、33.23.2 设计说明设计说明该音乐播放器通过用 8086 中央处理器、74LS373 地址锁存电路、74LS138 译码电路、定时/计数器 8253A 来实现功能。8086 中央处理器输出地址码 A16-A19 和数据 AD0-AD15,将 AD0-AD7 输入地址锁存器输出 A0-A7,再将 A0-A7 通过译码器进展译码输出作为 8253 的片选信号,8253 产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。四硬件电路设计及描述四硬件电路设计及描述4.14.1 芯片介绍芯片介绍(1)8086 中央处理器8086 中央处理器是 Intel 系列
5、的 16 位微处理器,有 16 根数据线和 20 跟地址线。它主要由执行部件 EUExecution Unit和总线接口部件 BIUBus interface Unit两局部组成。8086 拥有四个 16 位的通用存放器,也能够当作八个 8 位存放器来存取,以及四个 16 位索引存放器(包含了堆栈指标)。资料存放器通常由指令隐含地使用,针对暂存值需要复杂的存放器配置。它提供 64K 8 位元的输出输入(或 32K 16 位元),以及固定的向量中断。大局部的指令只能够存取一个存位址,所以其中一个操作数必须是一个存放器。运算结果会储存在操作数中的一个。为了能够简单有效地进展对 8086 操作,故采
6、用最小模式进展工作。要使8086 处于最小模式,首先要将 MN/MX 端置为高电平。(2)74LS373 地址锁存电路 74LS373 为 D 锁存器,AD0-AD7 为输入数据,输出 Ao0-Ao7。74LS373 的输出端 O0O7 可直接与总线相连。当三态允许控制端 OE 为低电平时,O0-O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0-O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。引出端符号:D0D7 数据输入端OE 三态允许
7、控制端低电平有效LE 锁存允许端O0-O7 输出端表 2 74LS373 真值表DnLEOEOnHHLHLHLLXLLQ0XXH高阻态(3) 74LS138 译码电路A0-A7 通过译码电路输出作为 8253 的片选信号。其工作原理如下:a.当一个选通端 E1 为高电平,另两个选通端 E2 和 E3 为低电平时,可将地址端A0、A1、A2的二进制编码在 Y0 至 Y7 对应的输出端以低电平译出。比方:A0A1A2=110 时,那么 Y6 输出端输出低电平信号。b.可用在 8086 的译码电路中,扩展存。在该电路中,除了 A2A1 其他几位是 11110*0 的时候才能给 CS 送一个有效电平,
8、而当 A1A2=00,01,10,11 之时即为 F0H,F2H,F4H,F6H 分别对应的是通道0,1,2,3 的运行。(4) 定时/计数器 8253A主要功能:a.每片上有 3 个独立的 16 位的减计数器通道。b.对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。c.每个通道都有 6 种工作方式,都可以通过程序设置或改变。8253 的部构造如下图,它主要包括以下几个主要局部:图 3.2.5 8253 的部构造a.数据总线缓冲器实现 8253 与 CPU 数据总线连接的 8 位双向三态缓冲器,用以传送 CPU 向 8253的控制信息、数据信息以及 CPU
9、 从 8253 读取的状态信息,包括某时刻的实时计数值。b.读/写控制逻辑控制 8253 的片选及对部相关存放器的读/写操作,它接收 CPU 发来的地址信号以实现片选、部通道选择以及对读/写操作进展控制。c控制字存放器在 8253 的初始化编程时,由 CPU 写入控制字,以决定通道的工作方式,此存放器只能写入,不能读出。d计数通道 0#、1#、2#:这是三个独立的,构造一样的计数器/定时器通道,每一个通道包含一个 16 位的计数存放器,用以存放计数初始值,一个 16 位的减法计数器和一个 16 位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到 CPU 发来的读计数值命令时,用
10、以锁存计数值,供 CPU 读取,读取完毕之后,输出锁存器又跟随减 1 计数器变化。音乐播放器工作于方式 3:方波发生器当装入初值后,在 GATE 上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT 输出低电平。计数过程:当把方式 3 的控制字写入控制字存放器后,输出端 OUT 变成高电平,作为初始电平。再将计数初值写入计数初值存放器 CR 中,再经过一个时钟周期,计数初值被移入计数执行单元 CE 中,从下一个时钟脉冲开场作减 1 计数,方式 3的计数过程分为两种情况:第一种情况:计数初值为偶数,当作减 1 计数减到 N/2 时,输出端 OUT 端变成低电平,减到 0 时,输出端 OU
11、T 变成高电平,并重新从初值开场新的计数过程。假设 GATE 为高电平,那么一直重复同样的计数过程。可见,输出端 OUT输出连续的方波,故称方波发生器。第二种情况:计数初值为奇数,当作减 1 计数减到N+1/2 以后,输出端OUT 变成低电平,减到 0 时,输出端 OUT 又变成高电平。并重新从初值开场新的计数过程。这时输出端的波形为连续的近似方波。门控信号的影响工作在方式 3 时,门控信号 GATE 的功能与工作方式 2 一样,即 GATE 为高电平时,允许计数;GATE 为低电平时停顿计数。GATE 引脚上的信号从低电平跳到高电平时,将会重新把计数初值存放器 CR 中的容移入计数执行单元
12、CE中,并以新装入的值重新开场计数。五软件设计流程五软件设计流程模块流程图模块流程图及描述及描述通过给 8253 定时器装入不同的计数值,可以使其输出不同频率的波形。便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序。SI 指向曲中的频率,BP 指向曲中的时间节拍。从 SI 的指向的音节表中取一个频率,只要不是 0,即有效就再读取时间,然后转到 start 子程序,计算计数初值送入计数器,产生各种频率信号,再送至扬声器。程序流程图硬件电路图开场写音乐文件程序曲各音符频率设置曲各音符时间设置读取频率 freq频率=0转到 strat 程序读取时间节拍 time计
13、算机计数次数送计算器,产生频率信号,再送至扬声器发出声音延时 time完毕NY图 1 电路仿真图六源程序代码六源程序代码要有注释要有注释code segmentassume cs:code ;音乐文件;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 (10000,10000,20000) dw 12 dup (9000) dw 6 dup(18000)
14、 ;歌曲时间节拍值 dw 10000 reg dw 3;计数器 3 遍;start1: mov ch,2jmp startstart: 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,10010110B ;控制字out dx,al;频率计算并送 8253;mov dx,00h ;设置被除数mov ax,5000div dimov dx,0F4hout
15、 dx,al;mov ax,1 ;频率out dx,axmov bx,20000 ; 时间wait1:mov cx,6 ;设循环次数 6delay1:loop delay1dec bx ;循环持续 bx 次,即传进来的节拍时间jnz wait1;定位到下一个音符;dec bxjnz wait1 add si,2 add bp,2 mov di,cs:si cmp di,0 je start mov bx,bp jmp music ;程序完毕;endd:mov dx,0F6hmov al,10010110Bout dx,alcode endsend start七课程设计体会七课程设计体会经过一个
16、星期的课程设计,完成任务的效果和预想中有很大的出入,虽然中间遇到了一些问题,但经过我们的努力,还是把问题给解决了。这次课程设计对我综合运用所学知识的能力的提高有不小的帮助,之前做的实验都是很简单的编程,跟硬件结合也没有这么复杂,实现的功能都比拟简单,可是这次要实现的功能相对来说比拟复杂,要求掌握的知识比拟全面。我们第一次做硬件设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够结实,比方说 8255A 芯片的使用,PROTUES 软件的应用技巧,对汇编语言掌握得不好通过这次课程设计之后,我们把以前所学过的知识又重新温故了一遍,起到了课程设计的预期效果。参考文献1 史嘉权微型计算机及应用第四版清华大学,20082 美明IBM-PC 汇编语言程序设计第二版清华大学,20013 付家才微型计算机及其接口技术指导与题典M化学工业,2004