微机基础原理与接口技术根据PROTEUS实现音乐播放器的设计.doc

收藏

编号:2603814    类型:共享资源    大小:149.35KB    格式:DOC    上传时间:2020-04-23
8
金币
关 键 词:
微机 基础 原理 接口 技术 根据 依据 proteus 实现 音乐 播放 设计
资源描述:
-/ 信息科学与技术学院 微机原理与接口技术课程设计报告 题目名称: 基于PROTEUS实现音乐播放器的设计 学生姓名: 王浩宇 关问鼎 徐然 冉启幸 学 号: 2013508305 2013508251 2013508224 2013508278 专业班级: 13 电信 指导教师: 刘恩博 2015年 7月 9 日 目录 一.课程设计题目 1 二.课程设计任务及要求 1 三.总体方案与设计说明 1 3.1 每个音符的对应频率 1 3.2 设计说明 1 四.硬件电路设计及描述 2 4.1 芯片介绍 2 五.软件设计流程(模块流程图)及描述 5 六.源程序代码(要有注释) 7 七.课程设计体会 9 参考文献 9 一.课程设计题目 基于PROTEUS实现音乐播放器的设计 二.课程设计任务及要求 设计要求:1.实现播放音乐; 2.实现多首音乐连续播放和选择播放; 3.要求通过PROTUES完成此项功能,并完成PCB电路图。 三.总体方案与设计说明 3.1 每个音符的对应频率 表1 每个音符的对应频率 音符 频率/HZ 半周期/us 音符 频率/HZ 半周期/us 低1DO 262 1908 #4FA# 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 高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 3.2 设计说明 该音乐播放器通过用8086中央处理器、74LS373地址锁存电路、74LS138译码电路、定时/计数器8253A来实现功能。 8086中央处理器输出地址码A16-A19和数据AD0-AD15,将AD0-AD7输入地址锁存器输出A0-A7,再将A0-A7通过译码器进行译码输出作为8253的片选信号,8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。 四.硬件电路设计及描述 4.1 芯片介绍 (1)8086中央处理器 8086中央处理器是Intel系列的16位微处理器,有16根数据线和20跟地址线。它主要由执行部件EU(Execution Unit)和总线接口部件BIU(Bus interface Unit)两部分组成。8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。 为了能够简单有效地进行对8086操作,故采用最小模式进行工作。要使8086处于最小模式,首先要将MN/MX端置为高电平。 (2)74LS373地址锁存电路 74LS373为D锁存器,AD0-AD7为输入数据,输出Ao0-Ao7。74LS373 的输出端 O0~O7 可直接与总线相连。   当三态允许控制端 OE 为低电平时,O0-O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0-O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。 引出端符号:   D0~D7 数据输入端   OE 三态允许控制端(低电平有效)   LE 锁存允许端 O0-O7 输出端 表2 74LS373真值表 Dn LE OE On H H L H L H L L X L L Q0 X X H 高阻态 (3) 74LS138译码电路 A0-A7通过译码电路输出作为8253的片选信号。 其工作原理如下: a.当一个选通端E1为高电平,另两个选通端E2和E3为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A0A1A2=110时,则Y6输出端输出低电平信号。 b.可用在8086的译码电路中,扩展内存。 在该电路中,除了A2A1其他几位是11110**0的时候才能给CS送一个有效电平,而当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从8253读取的状态信息,包括某时刻的实时计数值。 b..读/写控制逻辑 控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。 c.控制字寄存器 在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。 d.计数通道0#、1#、2#: 这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。 音乐播放器工作于方式3:方波发生器 当装入初值后,在GATE上升沿启动计数,OUT 输出高电平; 当计数完成一半时,OUT输出低电平。 计数过程: 当把方式3的控制字写入控制字寄存器后,输出端OUT变成高电平,作为初始电平。再将计数初值写入计数初值寄存器CR中,再经过一个时钟周期,计数初值被移入计数执行单元CE中,从下一个时钟脉冲开始作减1 计数,方式3的计数过程分为两种情况: 第一种情况:计数初值为偶数,当作减1计数减到N/2时,输出端OUT端变成低电平,减到0时,输出端OUT变成高电平,并重新从初值开始新的计数过程。若GATE为高电平,则一直重复同样的计数过程。可见,输出端OUT输出连续的方波,故称方波发生器。 第二种情况:计数初值为奇数,当作减1计数减到(N+1)/2以后,输出端OUT变成低电平,减到0时,输出端OUT又变成高电平。并重新从初值开始新的计数过程。这时输出端的波形为连续的近似方波。 门控信号的影响 工作在方式3时,门控信号GATE的功能与工作方式2一样,即GATE 为高电平时,允许计数;GATE为低电平时停止计数。GATE引脚上的信号从低电平跳到高电平时,将会重新把计数初值寄存器CR中的内容移入计数执行单元CE中,并以新装入的值重新开始计数。 五.软件设计流程(模块流程图)及描述 通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序。 SI指向曲中的频率,BP指向曲中的时间节拍。从SI的指向的音节表中取一个频率,只要不是0,即有效就再读取时间,然后转到start子程序,计算计数初值送入计数器,产生各种频率信号,再送至扬声器。 程序流程图 开始 写音乐文件程序 曲各音符频率设置 曲各音符时间设置 读取频率freq Y 频率=0 N 转到strat程序 读取时间节拍time 计算机计数次数送计算器,产生频率信号,再送至扬声器发出声音 结束 延时time 硬件电路图 图1 电路仿真图 六.源程序代码(要有注释) code segment assume 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) ;歌曲时间节拍值 dw 10000 reg dw 3 ;;;;;;;;;;;;;;;;;;;;;;计数器3遍;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; start1: mov ch,2 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,10010110B ;控制字 out dx,al ;;;;;;;;;;;;;;;频率计算并送8253;;;;;;;;;;;;;; mov dx,00h ;设置被除数 mov ax,5000 div di mov dx,0F4h out dx,al ;;;;;;;;;;;;;;;;;;;;;; mov ax,1 ;频率 out dx,ax mov bx,20000 ; 时间 wait1: mov cx,6 ;设循环次数6 delay1: 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,10010110B out dx,al code ends end start 七.课程设计体会 经过一个星期的课程设计,完成任务的效果和预想中有很大的出入,虽然中间遇到了一些问题,但经过我们的努力,还是把问题给解决了。 这次课程设计对我综合运用所学知识的能力的提高有不小的帮助,之前做的实验都是很简单的编程,跟硬件结合也没有这么复杂,实现的功能都比较简单,可是这次要实现的功能相对来说比较复杂,要求掌握的知识比较全面。 我们第一次做硬件设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8255A芯片的使用,PROTUES软件的应用技巧,对汇编语言掌握得不好……通过这次课程设计之后,我们把以前所学过的知识又重新温故了一遍,起到了课程设计的预期效果。参考文献 [1] 史嘉权•微型计算机及应用•第四版•清华大学出版社,2008 [2] 沈美明•IBM-PC汇编语言程序设计•第二版•清华大学出版社,2001 [3] 付家才•微型计算机及其接口技术指导与题典[M]•化学工业出版社,2004
展开阅读全文
提示  淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:微机基础原理与接口技术根据PROTEUS实现音乐播放器的设计.doc
链接地址:https://www.taowenge.com/p-2603814.html
关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

收起
展开