资源描述:
《最新8254定时器计数器设计实验-电子发声设计资料》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、微机原理与汇编语言程序设计8254定时器/计数器设计实验—电子发声设计一、实验目的学习用8254定时/计数器是扬声器发声的编程方法。二、实验设备PC微机一台、TD-PIT实验系统一套。三、实验内容根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。四、实验原理8254是Intel公司生产的可编程间隔定时器。它具有以下基本功能:(1)有3个独立的16位计数器;(2)每个计数器可接二进制或十进制(BCD)计数;(3)每个计数器可编程工作于6种不同工作方式;(4)8254每个计数器允许
2、的最高频率为10MHZ;(5)8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为n=f(clki)/f(outi),其中f(clki)是输入时钟脉冲的频率,f(outi)是输出波形的频率。8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。(2)方式1:硬件可重触发单稳方式。(3)方式2:频率发生器方式。(4)方式3:方波发生器。(5)方式4:软件触发选通方式。(6)方式5:硬件触发选通方式。五、实验说
3、明及步骤一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。音符与频率对照关系见下表所示。将一段乐曲的音符对应频率的方波依次送到扬声器,就可以发出这段乐曲的声音。音符与频率对照表(单位:HZ)利用8254的方式三—“方波发生器”,将相应一种频率的计数初值写入计数器,就可以产生对应频率的方波。计数初值的计算如下:计数初值=输入时钟÷输出频率例如输入时钟采用系统总线上CLK(1.04166MHZ),要得到800HZ的频率,计数初值即为104166/800.对于每一个音符的演奏时间,可以通过软件
4、延时来处理。首先确定单位延时时间程序(这个要根据PC机的CPU频率做相应的调整)。然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序中即可。;单位延时时间DALLYPROCD0:MOVCX,200HD1:MOVAX,0FFFFHD2:DECAXJNED2LOOPD1RETDALLYENDP;N个单位延时时间表(N送至DL)DALLYPROCD0:MOVCX,200HD1:MOVAX,0FFFFHD2:DECAXJNED2LOOPD1DECDLJNED0DALLYENDP下面提供了乐曲《友谊天长地
5、久》的频率和时间表。频率表是将曲谱中的音符对应的频率值依次记录下来。时间表是将各个音符发音的相对时间记录下来。FREQ_LISTDW371,495,495,495,624,556,495,556,624;频率表DW495,495,624,742,833,833,833,742,624DW624,495,556,495,556,624,495,416,416,371DW495,833,742,624,624,495,556,495,556,833DW742,624,624,742,833,990,742,624,624,49
6、5DW556,495,556,624,495,416,416,371,495,0TIME_LISTDB4,6,2,4,4,6,2,4,4;时间表DB6,2,4,4,12,1,3,6,2DB4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4DB6,2,4,4,12,4,6,2,4,4DB6,2,4,4,6,2,4,4,12频率表和时间表是一一对应的,频率表的最后一项为0,作为重复的标志。根据频率表中的频率计算出对应的计数初值,然后依次写入8254的计数器。将时间表中的相对时间值带入延时程序来得
7、到音符的演奏时间。实验参考程序流程如下:电子发声设计实验参考接线图六、心得经过本次实验,自己对8254有了更深的了解,使自己对8255的各种工作方式比较熟练的应用。