汇编语言第17章定时及音响程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《汇编语言第17章定时及音响程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 17 定时 音响 程序设计 课件
- 资源描述:
-
1、第十七章 定时及音响程序设计17.1 概述17.2 8253/8254可编程定时/计数器17.3 时钟程序设计17.4 音响程序设计17.1 概述 CPU通过接口电路产生时间符合要求的信号的过程,称为定时。该接口电路称为定时器。CPU通过接口电路对外部事件的数量进行统计的过程称为计数。实现计数的接口电路称为计数器。在微型机里,把定时器和计数器做成一片大规模集成电路,称为定时器/计数器。17.1 概述输入脉冲输出(分频)声音的产生:声音的产生:对输出方波整形变成正弦波,经放大处理接到扬声器上,产生不同声音的波形。若选择标准输入脉冲,例1KHz,则当输入1000个标准输入脉冲,需要1s,则当计数值
2、为1000时,输出端每隔1s输出一个脉冲,实现了定时定时。17.1 概述 实现定时/计数有三种不同的方法:(1)软件定时:执行一个具有固定延迟时间的循环程序。优点:不需外加硬件,灵活,定时较准确。缺点:在定时过程中CPU不能做任何其它工作。总结:适用于定时时间短的场合。(2)硬件定时:采用中规模TTL或CMOS芯片外家阻容件来实现的。不同的时间间隔主要是通过配接不同的阻容值达到的。优点:不占用CPU时间。缺点:变换定时较难。总结:适用于定时时间间隔固定的场合。(3)可编程的定时:综合了上述两种方法的优点,采用固定的硬件,通过编程(写控制字)实现不同的要求。既不占用CPU的时间,又有灵活性。17
3、.2 8253/8254可编程定时/计数器17.2.1 8253/8254的基本功能和内部结构17.2.2 8253的工作方式17.2.3 8253/8254在IBM PC系列机中的应用17.2.1 8253/8254的基本功能和内部结构 (1)8253的基本功能 8253有3个独立的16位计数器。每个计数器的主要功能有:1)按照二进制或二十进制计数;2)计数速率可高达2MHz;3)可以由程序确定按照6种不同的方式工作;4)所有的输入输出都与TTL兼容。17.2.1 8253/8254的基本功能和内部结构 (2)8253的内部结构 8253主要由一个控制寄存器和三个计数器及相应的控制电路所组成
4、。控制寄存器负责对三个计数器设定工作方式。三个计数器的操作是完全独立的,每个计数器都可以对其时钟输入端的始终脉冲按照二进制或二十进制从预置的初值开始减1计数。当预置的初值减到0时,从OUT输出端输出一个脉冲信号。在计数开始和计数的过程中,计数器可以受门控输入端输入的门控信号的控制。计数器的初始值必须在开始计数之前,由CPU用输出指令预置。在计数过程中,CPU随时可以用输入指令将任意一个计数器的当前数值读出,而不必中断计数器的时钟输入,也不会影响计数器的继续计数。控制寄存器MSB LSB锁存器0计数器0#0OUT0时钟0门控0MSB LSB锁存器1计数器1#0OUT1时钟1门控1MSB LSB锁
5、存器2计数器2#0OUT2时钟2门控2锁存器用来保存写入到计数器的初始值。计数器是16位的,然而,系统只给其分配一个地址,因此只能按字节进行存取,写入计数值时,要分两次写。在我们对计数器进行读写时,实际上是读写锁存器的值。因此,当计数到某一时刻时,若想要了解计数器的值,则要先把计数器的值送到锁存器中,然后再读写锁存器的值。17.2.1 8253/8254的基本功能和内部结构 (3)8253的控制字7 6 5 4 3 2 1 00=二进制,1=BCD码工作方式000=方式0001=方式1010=方式2011=方式3100=方式4101=方式5读/写锁存器00=锁存计数器值01=读/写MSB10=
6、读/写LSB11=先读/写LSB,后读/写MSB00=编写通道001=编写通道110=编写通道217.2.2 8253的工作方式 8253有6种工作方式:方式0方式5。对于每一种工作方式,由时钟输入信号CLK确定计数器递减的速率。门控信号GATE用于允许或禁止计数器计数。计数结束时在输出线OUT上产生一个信号。无论采用哪一种工作方式,都会遵循下面几条原则:(1)控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始态(高电平或低电平)。(2)计数初值写入后,要经过一个时钟上升沿和一个下降沿,计数执行部件才开始计数。(3)在时钟脉冲CLK的上升沿时,门控信号被采样。(4)在时钟脉冲
7、CLK的下降沿时,计数器作减1计数,输出端OUT的波形也都是在时钟周期的下降沿时产生电平的变化。17.2.2 8253的工作方式 (1)方式)方式0计数结束时中断计数结束时中断 当控制字写入控制寄存器后,计数器的输出OUT立即变低,即使未给计数器赋予初值,也未开始计数,只要方式0一确定,输出就为低。计数值送入计数器且门控信号为高时,计数器开始计数。在计数器开始计数和整个计数过程中,OUT都保持为低,直到计数到0,OUT才变高。时钟写计数值=5 5 4 3 2 1 0门控OUT停止计数17.2.2 8253的工作方式 方式0的工作特点是:(1)计数器只计一遍。当计数到0时,计数器并不恢复初始值重
8、新开始计数(输出保持为高),直到CPU又写入一个新的计数值,输出立即变低,计数器按照新的数值开始计数。(2)方式0的计数过程可由门控信号控制暂停。当门控信号为低时,计数器暂停计数。门控信号变高后,计数器继续计数。在计数过程中,GATE信号的变化不影响OUT输出的状态。(3)在计数的过程中,可重写或改变计数值,写入新的计数值后,计数器将按新的计数值重新开始计数,改变计数值立即有效。17.2.2 8253的工作方式 (2)方式)方式1可编程的单拍脉冲可编程的单拍脉冲 这种方式是由外部门控脉冲(硬件)触发启动定时或计数,使输出变低,单拍脉冲开始,在经过固定的时间间隔或计数之后,输出变高,单拍脉冲结束
9、,硬件再次触发,输出可再发一个同样的单拍脉冲。门控信号变低,可停止计数,门控信号变高后,重新开始计数。时钟写计数值=55 4 5 4 3 2 1 0门控OUT重新计数17.2.2 8253的工作方式 方式1的工作特点是:(1)写入控制字后,输出端OUT立即变低,知道外部门控信号GATE的上升沿启动之后的CLK下降沿开始计数,OUT变低,并在计数到达0之前一直维持低电平。当计数到0时,OUT变为高电平,并在下一次门控信号触发启动后的第一个时钟脉冲到来之前一直保持高电平。若外部再次触发启动,则可在OUT上再次产生一个单拍脉冲。(2)当计数到0后,可再次由外部门控信号GATE的上升沿触发启动。(3)
10、即使在计数的过程中,也可用门控脉冲进行再触发,在再触发脉冲上升沿之后的一个CLK脉冲的下降沿,计数器将重新开始计数,而不管原来计数到什么地方。在再触发时,输出的状态将保持不变。在任何一次再触发之后,输出OUT都将继续保持低电平。(4)在计数的过程中,CPU可改变计数值,这时候计数过程和输出都不受影响,计数到0后,输出为高。若再次触发计数器,计数器将按新输入的计数值计数。17.2.2 8253的工作方式 (3)方式)方式2速率发生器速率发生器 这种方式的功能如同一个N分频计数器,输出是输入时钟按照N计数值分频后的一个连续脉冲。如果计数值为N,结果是输入N个脉冲,输出一个脉冲。时钟写计数值=44
11、3 2 1 0(4)3 2 1 0(4)3 2 1 0(4)门控OUT重新计数17.2.2 8253的工作方式 方式2的工作特点是:(1)当CPU输出控制字后,OUT将为高。在写入计数值后的下一个CLK开始减1计数。在计数过程中,OUT保持为高。直到计数值减至1时,OUT变为低,保持一个CLK周期,又恢复为高,重新开始计数。(2)不用重新设置计数值,通道能够连续工作,输出端送出固定频率的脉冲。(3)计数过程可以由门控脉冲GATE控制。当GATE变低时就暂停计数,OUT仍保持高电平,在GATE变高后的下一个时钟脉冲,使计数器恢复初值,重新计数。这种利用门控信号使计数器开始工作(即同步)的方法成为
12、硬件同步。(4)在计数过程中可以改变计数值,这对计数过程没有影响,但在计数变到1时,输出变低,过一个CLK周期输出又变高,计数器将按新的计数值开始计数,可见改变计数值是在下一次有效。17.2.2 8253的工作方式 (4)方式)方式3方波速率发生器方波速率发生器 方式3和方式2都是周期性的,但方式3输出的是对称的方波。输入时钟脉冲与输出脉冲频率之比等于加载的计数值。时钟写计数值=44 3 2 1 0(4)3 2 1 0(4)3 2 1 0(4)门控OUT重新计数17.2.2 8253的工作方式 方式3的工作特点是:(1)设置控制字后,OUT将为高。在写入计数值后的下一个CLK开始减1计数。当计
13、数到一半计数值时,OUT变为低,直到计数值变为0,输出又为高,再重新开始计数。(2)当计数值N为偶数时,输出端的高低电平持续时间相等,为完全对称的方波。当计数值N为奇数时,则输出端的高电平持续时间比低电平持续时间多一个时钟周期,即高电平持续(N+1)/2,而低电平持续(N-!)/2,输出为矩形波,整个输出周期仍为N个时钟脉冲周期。(3)GATE信号能使计数过程重新开始,GATE=1时,计数进行;GATE=0时,计数停止。如果在OUT为低期间,GATE变低,则OUT会立即变为高电平,此时计数停止。在GATE又变为高电平后,下一个时钟脉冲来到时,重新开始计数。(4)若在计数其间写入一个新的计数值,
14、并不影响现行的计数过程。但是如果在输入新的计数值后,又受到门控信号上升沿的触发,就会结束当前输出的周期,而在下一个时钟周期时,计数的执行部件按新值开始计数。17.2.2 8253的工作方式 (5)方式)方式4软件触发选通软件触发选通 当控制字写入控制寄存器后输出开始为高,当设置完计数值后,计数器立即开始计数。当计数到0后,输出变低,持续一个输入时钟周期,然后又恢复为高,计数器停止计数。这种计数也是“一次性有效”,每次计数都要靠这种重新设置计数值进行“软件触发”。时钟写计数值=5重新计数5 4 3 2 1 0门控OUT停止计数17.2.2 8253的工作方式 方式4的工作特点是:(1)门控信号变
15、低,可暂停计数,门控信号变高后,继续计数。(2)若在计数过程中改变计数值,新值写入后的下一个CLK周期开始从新的计数值开始重新计数。通过写入新的计数值使计数器从头工作,叫软件再触发。17.2.2 8253的工作方式 (6)方式)方式5硬件触发选通硬件触发选通 方式5输出初始状态为该。在设置计数值之后,计数器并不立即开始计数,而是要等到门控脉冲的上升沿出现才开始计数,即靠硬件触发选通计数。当计数到0时,输出变低,持续一个输入时钟周期,然后又恢复为高,计数器停止计数。下次门控脉冲触发后才能再重新开始计数。时钟OUT写计数值=55 4 5 4 3 2 1 0门控重新计数17.2.2 8253的工作方
16、式 方式5的工作特点是:(1)若在计数过程中使用门控脉冲,则使计数器重新开始计数,但对输出状态没有影响。(2)若在计数过程中改变计数值,只要没有门控信号的触发,则当前输出周期不受影响。当计数到0后,若有新的门控信号出发,见按新的计数值开始计数。如果在写入了新的计数值后,在未计到0之前,又有新的门控信号触发,则立即按新的计数值开始计数。17.2.2 8253的工作方式 (7)8253各种工作方式小结各种工作方式小结 几种方式比较 方式2,4,5输出的波形是一样的,都是宽度为一个CLK时钟周期的低有效脉冲。主要区别是:方式2连续不停地计数和输出;方式4每次都要由程序设置计数值才能计数;方式5不用每
17、次设置,但每次都要由门控脉冲触发启动才能计数。即:计到0后,方式2不用触发,方式4要软件触发,方式5要硬件触发,才能继续计数。方式1与方式5中的门控脉冲的作用和计数中改变计数值的结果都是相同的,只是输出波形不同。方式1的输出信号从开始计数的整个过程都为低,而方式5的输出从开始计数的整个过程都为高;方式1输出的低有效脉冲宽度为N个输入时钟脉冲的宽度,而方式5输出的低有效脉冲宽度为一个输入时钟脉冲的宽度。输出端OUT的初始状态 只有方式0在置入控制字后,OUT立即变低,其它5种方式OUT初始态均为高电平。17.2.2 8253的工作方式 启动计数与重复计数的条件 计数值写入后,并不立即开始工作,需
18、要一定的条件才能开始工作。有些方式计数到0后,则停止工作,要重复计数同样也需要某些条件。8253启动计数和重复计数的条件 方式功能 启动条件重复条件 0 计完最后一个数中断 写计数值 1 硬件再触发大案拍脉冲 外部触发 外部触发 2 速率发生器 3 方波速率发生器 4 软件触发选通写计数值 5 硬件触发选通 外部触发外部触发 方式2和方式3是连续工作,输出是周期性的,不用重复启动再次触发,这两种方式一经写入计数值,计数器就开始不停顿地工作,直到CPU重新写入控制字为止。17.2.2 8253的工作方式 门控信号的作用.8253门控信号GATE的作用GATE低或变为低 上升沿 高禁止计数禁止计数
19、立即使OUT为高计数停止立即使OUT为高禁止计数启动计数下一个CLK脉冲使输出变低重新装入计数值启动计数启动计数启动计数进行计数进行计数进行计数方式 改变计数值0(电平触发)1(脉冲)2(电平、脉冲)3(电平、脉冲)4(电平)5(脉冲)进行计数立即有效外部触发后有效计数到1后有效a.外部触发后有效b.计数到0后有效立即有效外部触发后有效17.2.2 8253的工作方式 在计数过程中改变计数值 新的计数值何时起作用因方式不同而有差别。在8253的某一计数通道的计数过程中,要读取它的瞬间计数值,可以利用门控信号GATE使其计数过程暂停,然后分两次将16的当前计数值读入CPU;也可以给该通道送去一个
20、锁存命令,将当前计数值在输出锁存器中锁存,而此时计数照常进行,这时分两次读取计数值送往CPU,输入指令过后,锁存器解除锁存。17.2.3 8253/8254在IBM PC系列机中的应用 在IBM PC和PC/XT中,使用的是8253-5。在IBM PC/AT中使用的是8254。8253-5,8254在内部结构及功能上与8253完全一样,其编程方法也完全一样,其差别只是最高计数速率不同。8253的最高计数速率是2MHz,8253-5是5MHz,8254为10MHz。在PC系列机上,系统分配给8253/8254的地址是40H43H,其中43H是控制寄存器的地址,40H、41H、42H分别为计数器0
展开阅读全文