石河子大学电信11级微机原理与接口课程设计软件仿真音乐播放器.docx
- 文档编号:30407328
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:23
- 大小:177.21KB
石河子大学电信11级微机原理与接口课程设计软件仿真音乐播放器.docx
《石河子大学电信11级微机原理与接口课程设计软件仿真音乐播放器.docx》由会员分享,可在线阅读,更多相关《石河子大学电信11级微机原理与接口课程设计软件仿真音乐播放器.docx(23页珍藏版)》请在冰豆网上搜索。
石河子大学电信11级微机原理与接口课程设计软件仿真音乐播放器
信息科学与技术学院
微机原理与接口技术
课程设计报告
题目名称:
软件仿真音乐播放器
学生姓名:
胡海鹏
学号:
2011508152
专业年级:
电信11级1班
指导教师:
周涛
时间:
2013.12.31
附:
原理图asm和exe文件汇报ppt
另附:
单片机版音乐播放器
点击XX网盘超链接下载
1.设计任务和技术要求2
2.方案选择2
3.硬件原理电路图的设计及分析2
3.18086中央处理器2
3.274LS373地址锁存电路5
3.374LS138译码电路5
3.4定时/计数器8253A6
4.软件设计流程图10
5.音乐代码实现10
6.系统仿真和评价12
7.心得体会13
8.参考文献14
9.附录14
9.1附录一:
元器件清单14
9.2附录二:
汇编程序源代码14
1.设计任务和技术要求
要求:
实现音乐播放
扩展功能:
实现多首音乐选择播放
2.方案选择
该音乐播放器通过用8086中央处理器、74LS373地址锁存电路、74LS138译码电路、定时/计数器8253A来实现功能。
8086中央处理器输出地址码A16-A19和数据AD0-AD15,将AD0-AD7输入地址锁存器输出A0-A7,再将A0-A7通过译码器进行译码输出作为8253的片选信号,8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。
3.硬件原理电路图的设计及分析
3.18086中央处理器
8086中央处理器是Intel系列的16位微处理器,有16根数据线和20跟地址线。
它主要由执行部件EU(ExecutionUnit)和总线接口部件BIU(BusinterfaceUnit)两部分组成。
8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。
它提供64K8位元的输出输入(或32K16位元),以及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。
运算结果会储存在操作数中的一个。
8086有四个内存区段(segment)寄存器,可以从索引寄存器来设定。
区段寄存器可以让CPU利用特殊的方式存取1MB内存。
8086把段地址左移4位然后把它加上偏移地址。
大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。
尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,,使在编程中使用指针(如C编程语言)变得困难。
它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。
更坏的是,这种方式产生要让内存扩充到大于1MB的困难。
而8086的寻址方式改变让内存扩充较有效率。
8086处理器的时钟频率介于4.77MHz(在原先的IBMPC)和10MHz之间。
8086没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。
Intel8087是标准版本。
为了能够简单有效地进行对8086操作,故采用最小模式进行工作。
要使8086处于最小模式,首先要将MN/MX*端假如高电平。
具体各端口及其功能如下所示:
图3.18086引脚图
(1)AD19~AD0(addressdatabus):
地址/数据总线,双向,三态。
这是一组采用分时的方法传送地址或数据的复用引脚。
根据不同时钟周期的要求,决定当前是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高阻状态。
(2)A19/S6~A16/S3(address/status):
地址/状态信号,输出,三态。
这是采用分时的方法传送地址或状态的复用引脚。
其中A19~A16为20位地址总线的高4位地址,S6~S3是状态信号。
S6表示CPU与总线连接的情况,S5指示当前中断允许标志IF的状态。
S4,S3的代码组合用来指明当前正在使用的段寄存器。
S4,S3的代码组合及对应段寄存器的情况。
(3)BHE(低)/S7(bushighenable/status):
允许总线高8位数据传送/状态信号,输出,三态。
为总线高8位数据允许信号,当低电平有效时,表明在高8位数据总线D15~D8上传送1个字节的数据。
S7为设备的状态信号。
(4)(read):
读信号,输出,三态,低电平有效。
信号低电平有效时,表示CPU正在进行读存储器或读I/O端口的操作。
(5)READY(ready):
准备就绪信号,输入,高电平有效。
READY信号用来实现CPU与存储器或I/O端口之间的时序匹配。
当READY信号高电平有效时,表示CPU要访问的存储器或I/O端口已经作好了输入/输出数据的准备工作,CPU可以进行读/写操作。
当READY信号为低电平时,则表示存储器或I/O端口还未准备就绪,CPU需要插入若干个“TW状态”进行等待。
(6)INTR(interruptrequest):
可屏蔽中断请求信号,输入,高电平有效。
8086CPU在每条指令执行到最后一个时钟周期时,都要检测INTR引脚信号。
INTR为高电平时,表明有I/O设备向CPU申请中断,若IF=1,CPU则会响应中断,停止当前的操作,为申请中断的I/O设备服务。
(7)(test):
等待测试控制信号,输入,低电平有效。
信号用来支持构成多处理器系统,实现8086CPU与协处理器之间同步协调的功能,只有当CPU执行WAIT指令时才使用。
(8)NMI(non-maskableinterrupt):
非屏蔽中断请求信号,输入,高电平有效。
当NMI引脚上有一个上升沿有效的触发信号时,表明CPU内部或I/O设备提出了非屏蔽的中断请求,CPU会在结束当前所执行的指令后,立即响应中断请求。
(9)RESET(reset):
复位信号,输入,高电平有效。
RESET信号有效时,CPU立即结束现行操作,处于复位状态,初始化所有的内部寄存器。
复位后各内部寄存器的状态,当RESET信号由高电平变为低电平时,CPU从FFFF0H地址开始重新启动执行程序。
(10)CLK(clock):
时钟信号,输入。
CLK为CPU提供基本的定时脉冲信号。
8086CPU一般使用时钟发生器8284A来产生时钟信号,时钟频率为5MHz~8MHz,占空比为1:
3。
(11)VCC电源输入引脚。
8086CPU采用单一+5V电源供电。
(12)GND:
接地引脚。
(13)(minimum/maximum):
最小/最大模式输入控制信号。
(1)(memoryI/Oselect):
存储器、I/O端口选择控制信号。
信号指明当前CPU是选择访问存储器还是访问I/O端口。
为高电平时,访问存储器,表示当前要进行CPU与存储器之间的数据传送。
为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。
(14)(write):
写信号,输出,低电平有效。
信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。
(15)(interruptacknowledge):
可屏蔽中断响应信号,输出,低电平有效。
CPU通过信号对外设提出的可屏蔽中断请求做出响应。
为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。
(16)ALE(addresslockenable):
地址锁存允许信号,输出,高电平有效。
CPU利用ALE信号可以把AD15~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。
(17)DT/(datatransmitorreceive):
数据发送/接收信号,输出,三态。
DT/信号用来控制数据传送的方向。
DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。
(18)(dataenable):
数据允许控制信号,输出,三态,低电平有效。
信号用作总线收发器的选通控制信号。
当为低电平时,表明CPU进行数据的读/写操作。
(19)HOLD(busholdrequest):
总线保持请求信号,输入,高电平有效。
在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。
(20)HLDA(holdacknowledge):
总线保持响应信号,输出,高电平有效。
HLDA是与HOLD配合使用的联络信号。
在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。
3.274LS373地址锁存电路
74LS373为八D锁存器,AD0-AD7为输入数据,输出A0-A7。
引脚图如下所示:
3.2.274LS373引脚图
74LS373的输出端O0~O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
引出端符号:
D0~D7数据输入端
OE三态允许控制端(低电平有效)
LE锁存允许端
O0~O7输出端
Dn
LE
OE
On
H
H
L
H
L
H
L
L
X
L
L
Q0
X
X
H
高阻态
3.2.374LS373真值表
3.374LS138译码电路
A0-A7通过译码电路输出作为8253的片选信号。
引脚图如下所示:
3.2.474LS138引脚图
其工作原理如下:
1当一个选通端(E1)为高电平,另两个选通端(E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
比如:
A0A1A2=110时,则Y6输出端输出低电平信号。
2利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
3若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
4可用在8086的译码电路中,扩展内存。
在该电路中,除了A2A1其他几位是11110**0的时候才能给CS送一个有效电平,而当A1A2=00,01,10,11之时即为F0H,F2H,F4H,F6H分别对应的是通道0,1,2,3的运行。
3.4定时/计数器8253A
主要功能:
(1)每片上有3个独立的16位的减计数器通道。
(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
(3)每个通道都有6种工作方式,都可以通过程序设置或改变。
(4)每个计数器的速率可高达2MHz。
最高的计数时钟频率为2.6MHz。
8253的内部结构如图所示,它主要包括以下几个主要部分:
(1).数据总线缓冲器
实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。
(2).读/写控制逻辑
控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。
(3).控制字寄存器
在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。
(4).计数通道0#、1#、2#:
这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。
8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8253芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:
(1).D7~D0:
双向、三态数据线引脚,与系统数据线连接,传送控制、数据及状态信息。
(2).
:
来自于CPU的读控制信号输入引脚,低电平有效。
(3).
:
来自于CPU的写控制信号输入引脚,低电平有效。
(4).
:
芯片选择信号输入引脚,低电平有效。
图3.4-18253的引脚
(5).A1、A0:
地址信号输入引脚,用以选择8253芯片的通道及控制字寄存器。
(6).VCC及GND:
+5V电源及接地引脚
(7).CLKi:
i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。
(8).GATEi:
i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。
(9).OUTi:
i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。
图3-4-28253A端口地址
8253A既可作定时器又可作计数器:
(1)计数:
计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,由OUT端输出一个标志信号。
(2)定时:
计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。
除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。
图3.2.88253A控制字
说明:
(1)8253A每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输出一个信号。
(2)8253A编程时先写控制字,再写时间常数。
8253A工作方式如下:
(1)方式0:
计数结束产生中断方式
当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。
(2)方式1:
可编程单次脉冲方式
当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。
(3)方式2:
频率发生器方式
当初值装入时,OUT变为高;计数结束,OUT变为低。
该方式下如果计数未结束,但GATE为低时,立即停止计数,强制OUT变高,当GATE再变高时,便启动一次新的计数周期。
(4)方式3:
方波发生器
当装入初值后,在GATE上升沿启动计数,OUT输出高电平;当计数完成一半时,OUT输出低电平。
方式3与方式2的工作方式类似,也是在初始化完成后能重复循环计数,只是输出的波形不同。
<1>计数过程
当把方式3的控制字写入控制字寄存器后,输出端OUT变成高电平,作为初始电平。
再将计数初值写入计数初值寄存器CR中,再经过一个时钟周期,计数初值被移入计数执行单元CE中,从下一个时钟脉冲开始作减1计数,方式3的计数过程分为两种情况:
第一种情况:
计数初值为偶数,当作减1计数减到N/2时,输出端OUT端变成低电平,减到0时,输出端OUT变成高电平,并重新从初值开始新的计数过程。
若GATE为高电平,则一直重复同样的计数过程。
可见,输出端OUT输出连续的方波,故称方波发生器。
第二种情况:
计数初值为奇数,当作减1计数减到(N+1)/2以后,输出端OUT变成低电平,减到0时,输出端OUT又变成高电平。
并重新从初值开始新的计数过程。
这时输出端的波形为连续的近似方波。
<2>门控信号的影响
工作在方式3时,门控信号GATE的功能与工作方式2一样,即GATE为高电平时,允许计数;GATE为低电平时停止计数。
GATE引脚上的信号从低电平跳到高电平时,将会重新把计数初值寄存器CR中的内容移入计数执行单元CE中,并以新装入的值重新开始计数。
<3>新的计数初值对计数过程的影响
如果在计数过程中写入新的初值,而GATE信号一直维持高电平,则新的初值不会影响当前的计数过程,只有在计数结束后的下一个计数周期,才按新的初值计数。
若写入新的初值后,遇到门控信号的上升沿,则结束现行的计数过程,从下一个时钟脉冲下降沿开始按新的计数初值进行计数。
可见,工作在方式3时,当计数初值为偶数,OUT端输出连续的标准方波;当计数初值为奇数,在每个计数周期内,有(N+1)/2个周期输出高电平,(N-1)/2个时钟周期输出低电平,OUT端输出连续的近似的方波。
4.软件设计流程图
5.音乐代码实现
每个音符的对应频率
音符 频率/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
程序调试步骤如下:
1.建立汇编源程序.
2.建立连接。
3.编译为目标文件
4.调试。
5.不通过,重新修改(语句错误、音调频率不准、音调节拍不符合)
6.重新修改、调试。
7.正确运行。
举例:
歌曲《送别》
;;;;;;;;;;;;;;;;;;;音乐文件;;;;;;;;;;;;;;;;;;;;
freqdw392,329,392,523
dw440,523,392
dw340,261,293,329,293,261,293
dw392,329,392,523,494
dw440,523,392
dw340,293,329,349,250,261,
dw440,523,523
dw494,440,494,523,
dw440,494,523,440,440,392,329,261,293
dw392,329,392,523,494
dw440,523,392
dw440,293,329,349,250,261,0
timedw10000,5000,5000,20000
dw10000,10000,20000
dw10000,5000,5000,10000,5000,5000,20000
dw10000,7000,3000,15000,5000
dw10000,10000,20000
dw10000,5000,5000,15000,8000,20000
dw10000,10000,20000
dw10000,5000,5000,20000
dw8dup(5000)
dw20000
dw10000,5000,5000,15000,5000
dw10000,10000,20000
dw10000,5000,5000,15000,5000,25000
歌曲《茉莉花》
;;;;;;;;;;;;;;;;;;;音乐文件;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
freqdw659,587,659,784,880,1046,880,784,659,784,880
dw1046,1175,1318,1174,1046,880,1046,784
dw784,659,784,880,1046,1175,1318,1046,880,784
dw784,587,659,784,659,587,523,440,523
dw659,587,523,587,659,784,880,1046,880,783
dw784,587,659,784,659,587,523,587,440,523
dw587,659,523,587,523,440,523,440,392
dw1,523,587,659
dw784,880,784,659,659,587,659,587,523
dw659,784,659,784
dw880,1046,1046,880,784,880,784,880,784
dw659,784,659,784
dw880,1175,1318,1175,1046,1046,880,784
dw784,659,784,880,1046,1175,1318,1046,880,784,0
timedw10dup(5000),20000,10000,10000,6dup(5000),40000,5000,5000,20000,10000,10000
dw4dup(20000),50000,10000,10000,10000
dw6dup(30000),7500,5000,5000,10000,15000,5000,10000,5000,5000,10000,10000
dw10000,10000,6dup(5000),20000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 石河子 大学 电信 11 微机 原理 接口 课程设计 软件 仿真 音乐 播放