微型计算机音乐发生器,音乐发生器论文.doc

音乐发生器论文

音乐发生器的设计

1、 绪论

音乐发生器是由8255A可编程并行接口和可编程定时计数器8253芯片组成。用8253芯片产生一定频率的方波,通过控制输出方波时间的长短,声音的长短就得到控制。8255A具有多种功能的可编程并行接口电路芯片。

本次接口课程设计是音乐发生器的设计,用发生器能演奏一首完整的歌。主要是8253方式选择。以及如何使用MF2KP软件。首先我们利用定时器产生各种频率的声音,然后再对其进行修改,并编写以整首歌的代码,旋律及拍数可以按音乐简谱而定。需要编写对8253,8255进行初始化的程序及对8255芯片的PC0和PC6置0置1来选择歌曲,实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制发音的长短。8253用来实现将频率信号送到扬声器而发声。

通过编程选择计数器和设置工作方式,用MF2KP集成开发环境进行音乐发生器控制程序设计,调试直到听到正常的乐曲。要完成本次课程设计必须先对微机接口原理与接口技术有一个全面的了解。设计的主要目的使我们学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对危机应用的理解。

2、设计原理

音乐乐曲的两个基本要素是音高和节拍。因此要产生一个歌曲的音乐就要对音高和节拍进行控制。音高指每个音符发声的高低,即音符的频率。节拍指每个音符发声的长短,也就是音符的持续时间(延时)。因此组成乐曲的每个音符的频率值和持续时间是编写歌曲音乐所需要的两个数据。

符号频率对照表1

音符12345671(高音)频率262294330349390440494523音符延时对照表2

音符全音符二分音符四分音符八分音符时间1760ms880ms440ms220ms倍数321684音符的持续时间根据乐曲的速度每个音符的节拍数确定。在4/4拍中,四分音符为1拍,每小节4拍,全音符持续4拍,二分音符持续2拍,四分音符持续1拍,八分音符持续半拍。如给全音符分配1秒的时间,则二分音符的持续时间为0.5秒,四分音符持续时间为0.25秒,八分音符持续时间为0.125秒。

根据歌曲的简谱及征服的歌曲为4/4拍的得到

《征服》歌曲的简谱为:

5(低音) 5(低音) 1 1 2 2 1 2 3 5 3 3 5(低音) 6(低音) 6(低音)

公式1:计数初值(n)=

根据公式1所得《征服》歌曲的频率为:

196,196,262,262,294,294,262,294,330,392,330,330,196,220,

220;

本次课设主要用到的芯片有8255A,8253。8255的4个端口地址为300H~303H。其中A口=300H,B口=301H,C口=302H,命令口=303H。8253的四个端口地址为304H~307H。其中通道0为304H,通道1为305H,通道2为306H,命令口为307H。所得原理图如图1

图1原理设计图

通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。当与门打开后,经过放大器放大的作用,便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段子程序,之后再将扬声器切断。

8253的通道工作方式:8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。方式3:方波发生器工作方式3被称作方波发生器。使用8255A的PB1控制通道2的输出对扬声器产生控制的时间。主要应用到DOS的21H号中断调用。DOS的21H号中断调用用于单字符输入以及多字符输出显示。音乐演奏实现的一个主要步骤是乐谱编程。通过相应的频率表将乐谱中对应的音符转化为计数器的计数初值,节奏通过延时程序转化为对发音时间的控制,从而实现音符和节拍的数字化。

功能说明:8253为可编程的硬件定时/计数器,具有3个独立的16位计数器通道,每个计数器均可按二进制或二_十进制数,每个计数器的计数速率高达2MHZ,每个通道有六种工作方式,可由程序设计和改变,所有的输入和输出都与TTL兼容。

在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字来规定8253的工作方式。D0=0时为表示二进制数,D0=1时为BCD码。

8255有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值