电子发声设计实验及电子表计时显示电路.doc

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

1电子发声设计实验

1.1实验内容

根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。

1.2实验原理

一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。将一段乐曲的音符对应频率的方波依次送到扬声器,就可以演奏出这段乐曲。利用8254的方式3—“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。计数初值的计算如下:

计数初值 = 输入时钟 ÷ 输出频

例如输入时钟采用1MHz,要得到800Hz的频率,计数初值即为1000000÷800。音符与频率对照关系如表1所示。对于每一个音符的演奏时间,可以通过软件延时来处理。首先确定单位延时时间程序(根据CPU的频率不同而有所变化)。然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序即可。

下面提供了乐曲《友谊地久天长》实验参考程序。

频率表和时间表是一一对应的,频率表的最后一项为0,作为重复的标志。根据频率表中的频率算出对应的计数初值,然后依次写入8254的计数器。将时间表中相对时间值带入延时程序来得到音符演奏时间。实验参考程序流程如图1所示。

1.3实验步骤

1. 参考图2所示连接实验线路;

2. 编写实验程序,经编译、连接无误后装入系统;

3. 运行程序,听扬声器发出的音乐是否正确。

1.4程序代码

1.4.1第一个程序

IOY0 EQU 0600H

MY8254_COUNT0 EQU IOY0+00H ;8254计数器0端口地址

MY8254_COUNT1 EQU IOY0+02H ;8254计数器1端口地址

MY8254_COUNT2 EQU IOY0+04H ;8254计数器2端口地址

MY8254_MODE EQU IOY0+06H ;8254控制寄存器端口地址

STACK1 SEGMEN

最近下载