音乐播放器设计与仿真Word文件下载.docx
- 文档编号:20324791
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:19
- 大小:509.27KB
音乐播放器设计与仿真Word文件下载.docx
《音乐播放器设计与仿真Word文件下载.docx》由会员分享,可在线阅读,更多相关《音乐播放器设计与仿真Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
1.设计目的
◆掌握接口电路的应用和设计技术。
◆掌握汇编语言的设计思路。
◆学会针对不同的要求设计汇编程序代码。
◆掌握8086的控制流程,以及8255和8253芯片的功能。
◆用汇编程序完成键控音乐播放器的,用8253定时器来产生声音。
2.设计正文
2.1音乐播放器的设计原理
所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各
个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然
后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
音乐播放器属于接口电路的连接使用,本设计是以8253芯片为核心的发生系统。
8086CPU在形成系统总线后,通过和8253及8255的连接使用可以很好的驱动扬声器发音。
系统初始化后,8255通过B通道,从控制开关读取所需的控制字,并送入8086CPU中进行
判断,选择不同的播放音乐。
使8253的通过0号计数器工作在方式3,发出不同频率的方
波。
当给定不同的计数初值时可以使扬声器发出不同频率的音响,并根据时间表播放不同的
时间,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。
74LS373主要用于所存8086的输出地址。
因为8286引脚0-15是地址与数据复用的因
此需要在8086输出地址后对地址进行所存以便更好地传输数据,经74LS373锁存后的地址
信号可以在访问存储器操作期间始终保持不变,为外部提供稳定的地址信号。
由上可知本播放器的设计用到的主要芯片有CPU8086,计数器/定时器8253、I/O选择
控制器8255A,地址锁存器74LS373。
2.28253、8255A以及CPU8086芯片介绍
2.2.1芯片8253简介
在计算机应用系统中,计数与定时具有极其重要的作用,有时需要通过定时来实现某种
操作,如定时中断、定时检测、定时扫描等;
它需要某种外界事件进行计数。
实现定时的方
法有两种:
软件定时、不可编程的软件定时。
8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的结构
完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号
输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还
有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
1、8253外部引脚介绍
8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图1所示。
8253
芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,8253的外部引脚图如图
1所示,各个引脚功能介绍如下:
图18253外部引脚图
(1)D7~D0:
双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信
息。
(2)RD:
来自于CPU的读控制信号输入引脚,低电平有效。
(3)WR:
来自于CPU的写控制信号输入引脚,低电平有效。
(4)CS:
芯片选择信号输入引脚,低电平有效。
(5)A1、A0:
地址信号输入引脚,用以选择8254芯片的通道及控制字寄存器。
(6).VCC
及GND:
+5V电源及接地引脚。
(7)CLKi:
i=0,1,2,第i个通道的计数脉冲输入引脚,8254规定,加在CLK引脚的输入
时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。
(8)GATEi:
i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方
式有关。
(9)OUTi:
i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的
工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。
2、8253内部结构介绍
它由数据总线缓冲器、读/写逻辑、控制字寄存器以及3个独立的16位计数器组成。
8253内部结构如图2所示
图28253内部结构图
(1)数据总线缓冲器
数据总线缓冲器与系统总线连接,8位双向,与CPU交换信息的通道。
这是8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。
(2)控制寄存器
控制寄存器用来保存来着CPU的控制字。
每个计数器都有一个控制命令寄存器,用来保存该计数器的控制信息。
控制字将决定计数器的工作方式、计数器形式以及输出方式,亦决定计数器的工作方式、计数形式以及输出方式,亦决定如何装入计数初值。
8253的3个控制寄存器只占用一个地址号,而靠控制字的最高两位来决定将控制信息送入哪个计数器的控制寄存器中保存。
控制寄存器只能写入不能读出。
(3)读/写逻辑
读/写逻辑的任务是接受来着CPU的控制信号,完成对8253内部的操作控制。
这些控制信号包括读信号/RD、写信号/WR、片选信号/CS以及用于片内寄存器寻址的地址信号A0、A1。
当片选信号有效,即/CS=0时,读写逻辑才能正常工作。
该控制逻辑根据读/写命令即送来的地址信息,决定3个计数器和控制寄存器中哪一个工作,并控制内部总线上数据传送的方向。
8253共占用4个I/O端口,CPU可对写操作。
这4个端口地址由最低2位地址码A1A0来选择。
如表一所示。
表一8253端口地址以及内部操作
3、8253作为定时器与计数器时的功能介绍
(1)作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件
应以脉冲方式从CLK端输入,每输入一个计数脉冲,计数器内容减“1”,待计数值计
到“0”。
OUT端将有输出。
表示计数次数到。
当某个通道用作定时器时。
由CLK输
入一定频率的时钟脉冲。
根据要求定时的时间长短确定所需的计数值。
并预置到计数
器中,每输入一个时钟脉冲,计数器内容减“1”,待计数值计到“0”。
OUT将有输出,
表示定时时间到。
允许从CLK输入的时钟频在1~2MHz范围内。
因此,任一通道作计
数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”
计数。
而后者是内时钟脉冲进行减“1”计数。
作计数器时,要求计数的次数可直接
作为计数器的初值预置到减“1”计数器中。
(2)作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运
算才能得到:
定时系数=需要定时的时间/时钟脉冲周期
①设置通道:
向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的
通道及工作方式;
②计数/定时:
向通道写入计数值,启动计数操作;
③读取当前的计数值:
向指定通道读取当前计数器值时,8253将计数器值存入锁
存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。
④计数到:
当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。
计
数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。
锁存器
在非锁存状态,其值随计数器的变化而变化;
一旦锁存了计数器的当前值,直到锁存
器值被读取后才能解除锁存状态。
4、方式选择控制字
8253的方式控制字如图3所示
图38253的方式控制字
5、8253的工作方式
(1)方式0:
计数结束产生中断方式
当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变
成高电平。
(2)方式1:
可编程单次脉冲方式
当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。
(3)方式2:
频率发生器方式
当初值装入时,OUT变为高;
计数结束,OUT变为低。
该方式下如果计数未结束,但
GATE为低时,立即停止计数,强制OUT变高,当GATE再变高时,便启动一次新的计数
周期。
(4)方式3:
方波发生器
当装入初值后,在GATE上升沿启动计数,OUT输出高电平;
当计数完成一半时,
OUT输出低电平。
方式3与方式2的工作方式类似,也是在初始化完成后能重复循环计数,
只是输出的波形不同。
(5)方式4:
软件出发选通方式
进入工作方式4,OUTi输出高电平。
装入计数值n后,如果GATE为高电平,则立
即开始减“1”计数,直到计数值减到“0”为止,OUTi输出宽度为一个CLKi周期的负脉
冲。
由软件装入的计数值只有一次有效,如果要继续操作,必须重新置入计数初值n。
如
果在操作的过程中,GATE变为无效,则停止减“1”计数,到GATE再次有效时,重新从
初值开始减“1”计数。
(6)方式5:
硬件触发方式计数
进入工作方式5,OUTi输出高电平,硬件触发信号由GATE端引入。
因此,开始
时GATE应输入为0,装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信
号由GATE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”,OUTi将
输出负脉冲,其宽度固定为一个CLKi周期,表示定时时间到或计数次数到。
2.2.2芯片8255的介绍
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具
有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
1、8255A外部引脚介绍
8255A外部引脚图如图4所示
图48255A外部引脚图
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄
存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,
允许8255与CPU进行通讯;
/CS=1时,8255无法与CPU做数据传输。
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过
数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数
据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输
出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传
送。
8255具有3个相互独立的输入/输出通道端口,PA0~PA7:
端口A输入输出线,
一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口
B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲
器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一
个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信
号输入端口。
2、8255A内部结构介绍
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据
线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255
可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接
部分、与外设连接部分、控制部分。
8255A的内部结构图如图5所示
图58255A的内部结构图
(1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故
地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片
选、复位、读、写信号。
各信号的引脚编号如下:
①数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
②地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
③控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进
行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号
对8255进行读或写数据的操作。
(2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连
接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制
24路开关。
各通道的引脚编号如下:
①A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
②B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
③C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255
工作于应答I/O方式时,C口用于应答信号的通信。
(3)控制器
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~
PC3组成B组。
如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组
控制器的作用如下:
①A组控制器:
控制A口与上C口的输入与输出。
②B组控制器:
控制B口与下C口的输入与输出。
3、8255的工作方式
8255有三种工作方式分别如下
方式0—基本输入输出方式,即无需联络就可以直接进行8255A与外设之间的数
据输入输出操作。
A口、B口、C口的高4位与低四位4、可设置为方式0、
方式1—选通输入输出方式,此时8255A的A口和B口与外设之间进行输入或
输出操作时,需要C口的部分I/O端口提供联络信号。
只有A口和B口可工作于方
式1。
方式2—选通双向输入/输出方式,即同一端口的I/O线既可以输入也可以输出,
只有A口可工作于方式2.此种情况下需要C口的部分I/O线提供联络信号。
4、8255A控制字
①工作方式选择控制字
8255A的工作方式可由CPU写一个方式控制字到8255A的控制选择寄存器来选择。
其
格式如图6所示。
图68255A的工作方式字
②C口按位置位/复位控制字
8255A的C口均有位控功能,即端口C的8位中任意一位都可以通过CPU向
8255A的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的
状态不变,其格式如图7所示。
图7端口C按位置位/复位控制字
应注意8255A的C口复位/置位控制字必须跟在方式选择字之后写入控制字寄存
器,即使仅使用该功能,也应先选送一个方式控制字。
方式选择控制字只需写入
一次,之后既可以多次使用C口按位置位/复位控制字对C口的某些位进行置1
或清0操作。
音乐播放器的设计过程中只利用了8255A的方式0即基本输入输出方式。
2.2.3CPU芯片8086介绍
1、8086简介
Intel8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以
及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使用,针对
暂存值需要复杂的寄存器配置。
它提供64K8位元的输出输入(或32K16位元),以
及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个操作数必
须是一个寄存器。
运算结果会储存在操作数中的一个。
2、8086外部引脚介绍
8086外部引脚图如图8所示
图88086外部引脚图
(1)AD15~AD0:
地址/数据总线,双向,三态。
这是一组采用分时的方法传送地址或数据的复用引脚。
根据不同时钟周期的要求,决定
当前是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高
阻状态。
(2)A19/S6~A16/S3:
地址/状态信号,输出,三态。
这是采用分时的方法传送地址或状态的复用引脚。
其中A19~A16为20位地址总线的
高4位地址,S6~S3是状态信号。
(3)BHE(低)/S7:
允许总线高8位数据传送/状态信号,输出,三态。
为总线高8位数据允许信号,当低电平有效时,表明在高8位数据总线D15~D8上传
送1个字节的数据。
S7为设备的状态信号。
(4)RD:
读信号,输出,三态,低电平有效。
信号低电平有效时,表示CPU正在进行读存储器或读I/O端口的操作。
(5)READY:
准备就绪信号,输入,高电平有效。
READY信号用来实现CPU与存储器或I/O端口之间的时序匹配。
(6)INTR:
可屏蔽中断请求信号,输入,高电平有效。
8086CPU在每条指令执行到最后一个时钟周期时,都要检测INTR引脚信号。
INTR为
高电平时,表明有I/O设备向CPU申请中断,若IF=1,CPU则会响应中断,停止当前的操
作,为申请中断的I/O设备服务。
(7)TEST:
等待测试控制信号,输入,低电平有效。
信号用来支持构成多处理器系统,实现8086CPU与协处理器之间同步协调的功能,只
有当CPU执行WAIT指令时才使用。
(8)NMI:
非屏蔽中断请求信号,输入,高电平有效。
(9)RESET:
复位信号,输入,高电平有效。
3、8086内部结构介绍
8086内部结构如图9所示。
图98086内部结构图
8286芯片内部从功能上讲可以分为两大部分:
总线接口单元BIU和执行单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 播放 设计 仿真