电子发声设计实验

电子发声设计实验

ID:47850793

大小:45.50 KB

页数:4页

时间:2019-11-28

电子发声设计实验_第1页
电子发声设计实验_第2页
电子发声设计实验_第3页
电子发声设计实验_第4页
资源描述:

《电子发声设计实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1电子发声设计实验1.1实验内容根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。1.2实验原理一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。将一段乐曲的音符对应频率的方波依次送到扬声器,就可以演奏出这段乐曲。利用8254的方式3—“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。计数初值的计算如下:计数初值=输入时钟÷输出频例如输入时钟采用1MHz,要得到800Hz的频率,计数初值即为100

2、0000÷800。音符与频率对照关系如表1所示。对于每一个音符的演奏时间,可以通过软件延时来处理。首先确定单位延时时间程序(根据CPU的频率不同而有所变化)。然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序即可。下面提供了乐曲《友谊地久天长》实验参考程序。频率表和时间表是一一对应的,频率表的最后一项为0,作为重复的标志。根据频率表中的频率算出对应的计数初值,然后依次写入8254的计数器。将时间表中相对时间值带入延时程序来得到音符演奏时间。实验参考程序流程如图1所示。1.3实

3、验步骤1.参考图2所示连接实验线路;2.编写实验程序,经编译、连接无误后装入系统;3.运行程序,听扬声器发出的音乐是否正确。1.4程序代码1.4.1第一个程序IOY0EQU0600HMY8254_COUNT0EQUIOY0+00H;8254计数器0端口地址MY8254_COUNT1EQUIOY0+02H;8254计数器1端口地址MY8254_COUNT2EQUIOY0+04H;8254计数器2端口地址MY8254_MODEEQUIOY0+06H;8254控制寄存器端口地址STACK1SEGMENTSTA

4、CKDW256DUP(?)STACK1ENDSDATASEGMENTFREQ_LISTDW196,262,262,262,330,294,262,294,330,262,262,330,393;频率表DW441,441,393,330,330,262,294,262,294,330,262,221,221,196DW262,441,393,330,330,262,294,262,294,441,393,330,330,393DW441,525,393,330,330,262,294,262,294,33

5、0,262,221,221,196,262,0TIME_LISTDB4,6,2,4,4,6,2,4,4,6,2,4,4;时间表DB12,4,6,2,4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4,6,2,4,4,12DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8254_MODE;初始化8254工作方式MOVAL

6、,36H;定时器0、方式3OUTDX,ALBEGIN:MOVSI,OFFSETFREQ_LIST;装入频率表起始地址MOVDI,OFFSETTIME_LIST;装入时间表起始地址PLAY:MOVDX,0FH;输入时钟为1MHz,1M=0F4240HMOVAX,4240HDIVWORDPTR[SI];取出频率值计算计数初值,0F4240H/输出频率MOVDX,MY8254_COUNT0OUTDX,AL;装入计数初值MOVAL,AHOUTDX,ALMOVDL,[DI];取出演奏相对时间,调用延时子程序CAL

7、LDALLYADDSI,2INCDICMPWORDPTR[SI],0;判断是否到曲末?JEBEGINJMPPLAYDALLYPROC;延时子程序D0:MOVCX,0010HD1:MOVAX,0FF0HD2:DECAXJNZD2LOOPD1DECDLJNZD0RETDALLYENDPCODEENDSENDSTART1.4.2第二个程序【实验内容】按下键盘上的数字键1—7,使得扬声器发出音乐乐谱的1-7音【实验代码】IOY0EQU0600HMY8254_COUNT0EQUIOY0+00H;8254计数器0端

8、口地址MY8254_COUNT1EQUIOY0+02H;8254计数器1端口地址MY8254_COUNT2EQUIOY0+04H;8254计数器2端口地址MY8254_MODEEQUIOY0+06H;8254控制寄存器端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTtable1DW262,294,330,340,393,441,495infodb0ah,0dh,"Pleaseinp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。