接口第5章接口技术ppt课件_第1页
接口第5章接口技术ppt课件_第2页
接口第5章接口技术ppt课件_第3页
接口第5章接口技术ppt课件_第4页
接口第5章接口技术ppt课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 5.4 可编程计数可编程计数/定时器定时器82535.4.1 8253的结构的结构5.4.2 8253的引脚功能的引脚功能5.4.3 8253的控制字和初始化编程的控制字和初始化编程5.4.4 8253的工作方式的工作方式获得定时信号可以用三种方法获得定时信号可以用三种方法: 1.软件定时:执行延时子程序,节省硬件,软件定时:执行延时子程序,节省硬件,CPU利利用率低,设计较麻烦用率低,设计较麻烦 2.不可编程的硬件定时:用元器件搭成的延时电路不可编程的硬件定时:用元器件搭成的延时电路使用不灵活使用不灵活 3.可编程的硬件定时:专用芯片。计数或定时时,可编程的硬件定时:专用芯片。计数或定时时

2、,不占用不占用CPU,大大提高,大大提高CPU的利用率的利用率 可编程计数器可编程计数器/定时器的工作原理定时器的工作原理 可编程计数器可编程计数器/定时器具有两种功能:定时器具有两种功能: 1.计数器:设置好初值后,计数器被启动计数器:设置好初值后,计数器被启动 ,每当计,每当计数脉冲到来,进展数脉冲到来,进展-1计数,当减到计数,当减到0时输时输出一信号。出一信号。 2.定时器:设置好定时常数后,定时器开始工作,在定时器:设置好定时常数后,定时器开始工作,在固定频率的时钟下,进展固定频率的时钟下,进展-1计数,按定计数,按定时常数不断输出时钟周期整数倍的定时时常数不断输出时钟周期整数倍的定

3、时间隔。间隔。两者的主要差别是:两者的主要差别是:作为计数器,在减到作为计数器,在减到“0之后输出一个信号,此之后输出一个信号,此次次 计数过程便结束了;计数过程便结束了;作为定时器,在减到作为定时器,在减到“0之后输出一个信号,接之后输出一个信号,接着自动重装计数初值开始下一个周期着自动重装计数初值开始下一个周期的定时,如此连续不断地产生信号。的定时,如此连续不断地产生信号。 特点:基于计数器的减特点:基于计数器的减1操作。操作。 典型的计数器典型的计数器/定时器的基本原理图定时器的基本原理图 决定计数速率决定计数速率门脉冲信号,对时门脉冲信号,对时钟的控制信号钟的控制信号当计数当计数=0时

4、,时,OUT输出信号输出信号控制计数器控制计数器/定时器的定时器的工作方式工作方式 计数器计数器/定时器的工作方式是指时钟脉冲和门脉冲如定时器的工作方式是指时钟脉冲和门脉冲如何配合来产生输出。何配合来产生输出。有以下几种工作方式:有以下几种工作方式:(1) 门脉冲控制时钟输入。门脉冲控制时钟输入。 门脉冲有效,时钟有效;门脉冲有效,时钟有效; 门脉冲结束,时钟无效。门脉冲结束,时钟无效。 用门脉冲重新启动计数。用门脉冲重新启动计数。 用门脉冲停止计数。用门脉冲停止计数。 计数器在不停地计数,当门脉冲到来时,计数停计数器在不停地计数,当门脉冲到来时,计数停止,并使止,并使OUT为高电平。为高电平

5、。 单一计数。单一计数。 与门脉冲无关,只要门脉冲为有效电平就可以。与门脉冲无关,只要门脉冲为有效电平就可以。计数器按给定的初值进行减计数器按给定的初值进行减1计数,到计数,到0时,输出时,输出停止。停止。 循环计数。循环计数。 每当计数值每当计数值=0时,给出一个输出信号,然后又时,给出一个输出信号,然后又从预置计数值寄存器获得计数初值,开始新的计从预置计数值寄存器获得计数初值,开始新的计数过程。数过程。 可编程定时可编程定时/计数器计数器8253的主要功能的主要功能l每个芯片内部有每个芯片内部有3个独立的个独立的16位计数器通道。位计数器通道。l每个计数通道都可以单独使用,都可按照二进制每

6、个计数通道都可以单独使用,都可按照二进制或或BCD码计数。码计数。0000HFFFFH 216 65536 00009999 104 l每个计数器的计数速率可高达每个计数器的计数速率可高达2MHz,最高计数,最高计数速率为速率为2.6MHz。l每个计数器有每个计数器有6种工作方式,可由程序设置。种工作方式,可由程序设置。l所有输入输出与所有输入输出与TTL兼容。兼容。 5.4.1 8253的内部结构的内部结构三态、双向三态、双向8位寄存器。功能:位寄存器。功能:(1CPU通过其向通过其向8253写入确定工作方式的命令字。写入确定工作方式的命令字。(2向某个计数器写入计数初值。向某个计数器写入计

7、数初值。(3从某一计数器读取当前的计数初值。从某一计数器读取当前的计数初值。初始化编程时,由初始化编程时,由CPU写入控制字,写入控制字,以决定计数器的工作方式。只能写,以决定计数器的工作方式。只能写,不能读。不能读。用来对用来对3个计数器和控制寄存器进行个计数器和控制寄存器进行寻址,与寻址,与CPU的系统地址线相连。的系统地址线相连。 A1A0=00 选中计数器选中计数器0 A1A0=01 选中计数器选中计数器1 A1A0=10 选中计数器选中计数器2 A1A0=11 选中控制字寄存器选中控制字寄存器计数时钟,输入。用于输入定计数时钟,输入。用于输入定时脉冲或计数脉冲信号。时脉冲或计数脉冲信

8、号。门控信号,输入,由外部信号通过门控信号,输入,由外部信号通过GATE端控制计数器的启动计数和停止端控制计数器的启动计数和停止计数的操作。计数的操作。时间到或计数结束输出引脚。时间到或计数结束输出引脚。当计数器计数到当计数器计数到0时,在时,在OUT引脚有输出。引脚有输出。 每个计数器包含每个计数器包含(1)一个一个16位的初值寄存器位的初值寄存器 (2)一个一个16位计数执行部件位计数执行部件(3)一个一个16位输出锁存器位输出锁存器5.4.2 8253的外部引脚及功能的外部引脚及功能1. 数据总线缓冲器数据总线缓冲器8位、双向、三态的寄存器位、双向、三态的寄存器功能:功能:(1CPU通过

9、数据总线缓冲器向通过数据总线缓冲器向8253写入确定写入确定工作方式的命令字。工作方式的命令字。(2向某个计数器写入计数初值。向某个计数器写入计数初值。(3从某一计数器读取当前的计数初值。从某一计数器读取当前的计数初值。2. 读写逻辑电路读写逻辑电路 CS:片选信号,输入,低电平有效。:片选信号,输入,低电平有效。 A1、A0:输入信号,用来对:输入信号,用来对3个计数器和控制寄存器个计数器和控制寄存器进行寻址,与进行寻址,与CPU的系统地址线相连。的系统地址线相连。 A1A0=00 选中计数器选中计数器0 A1A0=01 选中计数器选中计数器1 A1A0=02 选中计数器选中计数器2 A1A

10、0=03 选中控制字寄存器选中控制字寄存器 WR:写引脚,输入,低电平有效。:写引脚,输入,低电平有效。 RD:读引脚,输入,低电平有效,:读引脚,输入,低电平有效,3. 计数通道计数通道 3个相互独立的计数器个相互独立的计数器0、计数器、计数器1和计数器和计数器2。每个计数器包含每个计数器包含(1)一个一个16位的初值寄存器位的初值寄存器 (2)一个一个16位计数执行部件位计数执行部件(3)一个一个16位输出锁存器位输出锁存器CLK:计数时钟,输入。用于输入定时脉冲或计数:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。脉冲信号。GATE:门控信号,输入,由外部信号通过:门控信号,输入,由外

11、部信号通过GATE端端控制计数器的启动计数和停止计数的操作。控制计数器的启动计数和停止计数的操作。OUT:时间到或计数结束输出引脚。当计数器计数:时间到或计数结束输出引脚。当计数器计数到到0时,在时,在OUT引脚有输出。引脚有输出。计数初值寄存器计数初值寄存器CRCR 用用OUTOUT指令设置。指令设置。 计数器执行部件计数器执行部件SRSR 是实际的减法计数是实际的减法计数器,起始值就是计数器,起始值就是计数初值初值 输出锁存器输出锁存器OLOL 用用ININ指令对它进行指令对它进行读操作,可了解计数读操作,可了解计数器瞬时值。器瞬时值。 内部总线内部总线CLK计数器内部结构计数器内部结构1

12、.1.先用先用OUTOUT给计数初给计数初值寄存器值寄存器CRCR赋初值,赋初值,若初值是若初值是8 8位二进制位二进制数,需写一次,若数,需写一次,若是是1616位,分两次写位,分两次写高高8位位低低8位位内部总线内部总线CLK计数器工作过程计数器工作过程高高8位位高高8位位低低8位位低低8位位1.1.先用先用OUTOUT给计数初给计数初值寄存器值寄存器CRCR赋初值,赋初值,若初值是若初值是8 8位二进制位二进制数,需写一次,若数,需写一次,若是是1616位,分两次写位,分两次写2. 2. 计数初值装入减计数初值装入减法计数器法计数器SRSR,在,在GATEGATE允许计数下,允许计数下,

13、SRSR进行减进行减1 1操作。操作。内部总线内部总线CLK计数器工作过程计数器工作过程1.1.先用先用OUTOUT给计数初值给计数初值寄存器寄存器CRCR赋初值,若赋初值,若初值是初值是8 8位二进制数,位二进制数,需写一次,若是需写一次,若是1616位,位,分两次写分两次写2. 2. 计数初值装入减法计数初值装入减法计数器计数器SRSR,在,在GATEGATE允允许计数下,许计数下,SRSR进行减进行减一操作。一操作。3. SR3. SR不断减不断减1 1计数,计数,每输入一个时钟脉冲每输入一个时钟脉冲减减1 1。SRSR的值送输出的值送输出锁存器锁存器OLOL中,中,OLOL的值的值随随

14、SRSR而变。而变。内部总线内部总线CLK高高8位位高高8位位低低8位位低低8位位计数器工作过程计数器工作过程高高8位位低低8位位2. 2. 计数初值装入减法计数初值装入减法计数器计数器SRSR,在,在GATEGATE允允许计数下,许计数下,SRSR进行减进行减一操作。一操作。3. SR3. SR不断减不断减1 1计数,计数,每输入一个时钟脉冲每输入一个时钟脉冲减减1 1。SRSR的值送输出的值送输出锁存器锁存器OLOL中,中,OLOL的值的值随随SRSR而变。而变。4. 4. 若在计数过程中发若在计数过程中发锁存命令,则锁存命令,则SRSR仍进仍进行减行减1 1计数,而计数,而OLOL的的值

15、锁住不变。值锁住不变。内部总线内部总线 CLK计数器工作过程计数器工作过程3. SR3. SR不断减不断减1 1计数,计数,每输入一个时钟脉冲每输入一个时钟脉冲减减1 1。SRSR的值送输出的值送输出锁存器锁存器OLOL中,中,OLOL的值的值随随SRSR而变。而变。4. 4. 若在计数过程中发若在计数过程中发锁存命令,则锁存命令,则SRSR仍进仍进行减行减1 1计数,而计数,而OLOL的的值锁住不变。值锁住不变。5. 5. 用用ININ读取锁存器的读取锁存器的值后,值后,OLOL又随又随SRSR而变。而变。8 8位二进制数一次读位二进制数一次读入,入,1616位两次读入。位两次读入。高高8位

16、位高高8位位低低8位位低低8位位内部总线内部总线CLK计数器工作过程计数器工作过程4.4.若在计数过程中发若在计数过程中发锁存命令,则锁存命令,则SRSR仍进仍进行减行减1 1计数,而计数,而OLOL的的值锁住不变。值锁住不变。5.5.用用ININ读取锁存器的读取锁存器的值后,值后,OLOL又随又随SRSR而变。而变。8 8位二进制数一次读位二进制数一次读入,入,1616位两次读入。位两次读入。6.SR6.SR减为减为0 0后,进行结后,进行结束处理。有些方式结束处理。有些方式结束计数,有些方式连束计数,有些方式连续计数。续计数。内部总线内部总线CLK计数器工作过程计数器工作过程1. 8253

17、初始化的顺序初始化的顺序(1) 先将控制字写入控制寄存器中。先将控制字写入控制寄存器中。(2) 写入定时或计数的初值。写入定时或计数的初值。若规定只写入低若规定只写入低8位,则写入的为计数值的低位,则写入的为计数值的低8位,位,高高8位自动置位自动置0;若规定只写入高若规定只写入高8位,则写入的为计数值的高位,则写入的为计数值的高8位,位,低低8位自动置位自动置0;若是若是16位计数值,则分两次写入,先写入低位计数值,则分两次写入,先写入低8位,再位,再写入高写入高8位。位。5.4.3 8253的控制字和初始化编程的控制字和初始化编程编程命令分两类:编程命令分两类:(1读出命令读出命令读取计数

18、器的当前值读取计数器的当前值(2写入命令写入命令包括写入控制字,写入计数包括写入控制字,写入计数 初初 值,写入锁存命令值,写入锁存命令读输出锁存器的顺序读输出锁存器的顺序(1) 输出锁存器锁存或停止计数以保存当前计数值。输出锁存器锁存或停止计数以保存当前计数值。读出当前的计数值有两种方法:读出当前的计数值有两种方法: 1把当前计数值输出到把当前计数值输出到 锁存器锁存锁存器锁存 2通过通过GATE门控信号发一低电平信号,使计数执行门控信号发一低电平信号,使计数执行部件不作减部件不作减1操作,计数过程停止。操作,计数过程停止。(2) 从输出锁存器读数从输出锁存器读数 留意:读留意:读8位和读位

19、和读16位的问题位的问题 若是读若是读16位的数据,需分两次读出。先读低字位的数据,需分两次读出。先读低字节,再读高字节,即执行两次输入指令。节,再读高字节,即执行两次输入指令。2. 控制字的格式控制字的格式方式方式0方式方式1方式方式2方式方式3方式方式4方式方式5工作方式选择工作方式选择8253有有6种工作方式,但总体说有两个功能。种工作方式,但总体说有两个功能。1. 计数器方式计数器方式 装入计数初值后,当装入计数初值后,当GATE变为高电平或给一触发变为高电平或给一触发脉冲时,可由外部事件进行减脉冲时,可由外部事件进行减1计数,当计数,当=0时,时,OUT输出信号。输出信号。CLK可以

20、是连续的、均匀的、周期精确可以是连续的、均匀的、周期精确的,也可以不是。的,也可以不是。2. 定时器方式定时器方式 装入计数初值后,当装入计数初值后,当GATE变为高电平时,由变为高电平时,由CLK脉冲触发定时器开始工作,定时器产生脉冲触发定时器开始工作,定时器产生CLK时钟周时钟周期整数倍的定时时间间隔。期整数倍的定时时间间隔。CLK必须是连续的、周必须是连续的、周期精确的时钟脉冲。期精确的时钟脉冲。5.4.4 8253的工作方式的工作方式(1) 控制字写入计数器时,所有的控制逻辑电路立即控制字写入计数器时,所有的控制逻辑电路立即复位,复位,OUT进入初始状态。进入初始状态。 (2) 初始值

21、写入初值寄存器后,要经过一个时钟周期初始值写入初值寄存器后,要经过一个时钟周期才能将值送入减才能将值送入减1计数器,减计数器,减1计数器从下一个计数器从下一个时钟开始进行计数。时钟开始进行计数。6种工作方式遵守的基本原则:种工作方式遵守的基本原则:5.4.4 8253的工作方式的工作方式(3) 在时钟脉冲的下降沿计数器进行计数。在时钟脉冲的下降沿计数器进行计数。 0是计数器所能容纳的最大初值是计数器所能容纳的最大初值 二进制中二进制中0相当于相当于216 BCD码中码中0相当于相当于104(4) 在在CLK的上升沿对的上升沿对GATE采样,各计数器的门控信采样,各计数器的门控信号的触发方式与工

22、作方式有关。号的触发方式与工作方式有关。 方式方式0、方式、方式4,电平触发;,电平触发; 方式方式1、方式、方式5,上升沿触发;,上升沿触发; 方式方式2、方式、方式3,可用电平触发,也可上升沿触发,可用电平触发,也可上升沿触发5.4.4 8253的工作方式的工作方式1. 方式方式0计数结束输出正跳变信号产生中断)计数结束输出正跳变信号产生中断) 1门控信号门控信号GATE决定计数的停止或继续,高电决定计数的停止或继续,高电平触发启动。平触发启动。 2当写入控制字后,当写入控制字后,OUT变为低电平,一直保持变为低电平,一直保持低电平,到计数器低电平,到计数器=0,OUT变为高电平。变为高电

23、平。 3只计数一遍,不自动重复计数,装入初值决定只计数一遍,不自动重复计数,装入初值决定计数过程重新开始。计数过程重新开始。5.4.4 8253的工作方式的工作方式 方式方式0计数结束产生中断计数结束产生中断2. 方式方式1可重触发的单稳态触发器可重触发的单稳态触发器 该方式是在门控信号的作用下才开始计数。当该方式是在门控信号的作用下才开始计数。当CPU写入控制字后写入控制字后 ,输出端变为高电平,由门控信,输出端变为高电平,由门控信号号GATE启动定时或计数上升沿触发),然后使输启动定时或计数上升沿触发),然后使输出端变为低电平,开场出端变为低电平,开场-1计数,直到计数器归计数,直到计数器

24、归0,OUT又变为高电平。又变为高电平。5.4.4 8253的工作方式的工作方式 方式方式1可重触发的单稳态触发器可重触发的单稳态触发器计数过程中,计数过程中,GATE又来一正脉又来一正脉冲,计数初值将重新装入计数器,冲,计数初值将重新装入计数器,重新计数。重新计数。 3. 方式方式2分频器分频器 有有“初值自动重装功能,能输出固定频率的脉初值自动重装功能,能输出固定频率的脉冲。冲。 写入控制字后,写入控制字后,OUT输出高电平,若输出高电平,若GATE为高为高电平,在装入计数值电平,在装入计数值n后开始作减后开始作减1计数,计数,OUT保持保持高电平不变。当减到高电平不变。当减到1时,时,O

25、UT输出将变为低电平,输出将变为低电平,持续一个时钟脉冲宽度后恢复为高电平,在计数值持续一个时钟脉冲宽度后恢复为高电平,在计数值为为0时,自动重新装入计数初值时,自动重新装入计数初值n,又开始重新计数,又开始重新计数过程。过程。5.4.4 8253的工作方式的工作方式 GATE=1,允许计数;,允许计数;GATE=0,停止计数。,停止计数。 fout=fin/n n=finT T输出周期输出周期 方式方式2的输出是输入时钟按照的输出是输入时钟按照N计数值分频后的一个计数值分频后的一个连续的脉冲。即每连续的脉冲。即每N个时钟脉冲输出一个脉冲。个时钟脉冲输出一个脉冲。5.4.4 8253的工作方式

26、的工作方式若在计数过程中若在计数过程中GATE=0,则暂,则暂停计数,待停计数,待GATE=1后,重新装后,重新装入计数初值并开始计数。入计数初值并开始计数。若在计数过程中改变计数值,不若在计数过程中改变计数值,不影响当前的减影响当前的减1计数过程,而是计数过程,而是在当前计数周期结束后才开始按在当前计数周期结束后才开始按新的计数值计数。新的计数值计数。 4. 方式方式3方波发生器方波发生器 有有“初值自动重装功能,初值自动重装功能, 写入控制字后,写入控制字后,OUT输出高电平,装入计数初值输出高电平,装入计数初值n后,后,OUT保持高电平。保持高电平。若若GATE=1,则开始计数。,则开始

27、计数。 若若n为偶数,每来一个为偶数,每来一个CLK脉冲,计数值减脉冲,计数值减2,减,减到到0时,时,OUT改变极性,计数初值又被自动重新装入,改变极性,计数初值又被自动重新装入,继续计数过程。由此得到对称的方波,方波的周期为继续计数过程。由此得到对称的方波,方波的周期为CLK周期的周期的n倍。倍。5.4.4 8253的工作方式的工作方式 若若n为奇数,在装入初值后的第一个为奇数,在装入初值后的第一个CLK脉冲减脉冲减1,其后每个脉冲减其后每个脉冲减2,减到,减到0时,时,OUT变为低电平,计数变为低电平,计数初值又被自动重新装入,第一个初值又被自动重新装入,第一个CLK脉冲减脉冲减3,其后

28、每,其后每个脉冲减个脉冲减2,减到,减到0时,时,OUT变为高电平。继续计数。变为高电平。继续计数。输出的高电平宽度为输出的高电平宽度为CLK周期的周期的n+1)/2倍,倍, 低电平宽度为低电平宽度为CLK周期的周期的n-1)/2倍倍5.4.4 8253的工作方式的工作方式2422422444422522545524224224244224255新计数值不影响新计数值不影响现行的计数过程。现行的计数过程。5.4.4 8253的工作方式的工作方式5.4.4 8253的工作方式的工作方式例:要求计数器例:要求计数器0工作于方式工作于方式3,输出方波的频率为,输出方波的频率为2KHz,计数脉冲的频率

29、为计数脉冲的频率为2.5MHz,采用,采用BCD计数,试写出初始计数,试写出初始化程序段。化程序段。 8253的端口地址为:的端口地址为:80H,81H,82H,83H。000111118253的方式控制字为:的方式控制字为:初始化程序:初始化程序:MOV AL,37H OUT 83H,AL MOV AL,50H OUT 80H,AL MOV AL,12H OUT 80H,ALn = 2.5MHz/2KHz=12505. 方式方式4软件触发选通方式软件触发选通方式 GATE门控信号只是用来允许或不允许定时操作,门控信号只是用来允许或不允许定时操作,定时的执行过程由装入的初值决定。方式设定后,定

30、时的执行过程由装入的初值决定。方式设定后, OUT输出高电平,写入计数值输出高电平,写入计数值n后,计数器开始减后,计数器开始减1计数,输出端一直保持为高电平,当计数到计数,输出端一直保持为高电平,当计数到0后,后,OUT变低,经过一个时钟脉冲后,变低,经过一个时钟脉冲后,OUT又变高,计又变高,计数停止。数停止。 5.4.4 8253的工作方式的工作方式2 GATE=1,允许计数;,允许计数;GATE=0,停止计数。,停止计数。改变计数值,按新的改变计数值,按新的计数值重新计数。计数值重新计数。6. 方式方式5硬件触发选通方式硬件触发选通方式 计数由外部上升沿触发。设定方式后,计数由外部上升

31、沿触发。设定方式后,OUT输出高电输出高电平,在设置计数值后并不计数,而是等到平,在设置计数值后并不计数,而是等到GATE出现上升出现上升沿才开始计数,即靠硬件触发选通计数器。当计数到沿才开始计数,即靠硬件触发选通计数器。当计数到0时,时, OUT输出一个输出一个CLK周期的低电平,然后恢复成高电平。周期的低电平,然后恢复成高电平。下次计数要靠门控脉冲再次触发才能进行。下次计数要靠门控脉冲再次触发才能进行。 此方式计数器可重新触发,即在任何时刻,当此方式计数器可重新触发,即在任何时刻,当GATE上升沿到来时,计数初值将重新装入,从头开始计数。上升沿到来时,计数初值将重新装入,从头开始计数。5.

32、4.4 8253的工作方式的工作方式改变计数值,若没有改变计数值,若没有GATE的的触发,不影响计数过程。触发,不影响计数过程。 8253小结:小结:l 输出端输出端OUT的初始状态的初始状态l 只有方式只有方式0是在写入控制字后输出为低,其它是在写入控制字后输出为低,其它均为高;均为高;l 计数值的设置计数值的设置l 任一种方式,只有在写入计数值后才能开始计任一种方式,只有在写入计数值后才能开始计数,方式数,方式0、2、3、4在写入计数值后,计数自动开在写入计数值后,计数自动开始,方式始,方式1、5需外部触发,才开始计数。需外部触发,才开始计数。l 门控信号的作用门控信号的作用l GATE输

33、入总是在输入总是在CLK输入时钟的上升沿被采样。输入时钟的上升沿被采样。在方式在方式0,2,3,4中,中,GATE输入是电平起作用。输入是电平起作用。在方式在方式1,2,3,5中中 GATE输入是上升沿起作用的。输入是上升沿起作用的。l计数到计数到0后计数器的状态后计数器的状态l 计数器减到计数器减到0后并不停止,在方式后并不停止,在方式0,1,4,5,计数器减到计数器减到0后从后从FFFF/9999继续计数。方式继续计数。方式2,3是连是连续计数,计数器自动装入计数值后,继续计数。续计数,计数器自动装入计数值后,继续计数。初始化程序:初始化程序: MOV AL,30H ;控制字送;控制字送A

34、L MOV DX,126H OUT DX,AL MOV AL,88H MOV DX,120H OUT DX,AL ;向计数器;向计数器0写入计数初值的低写入计数初值的低8位位 MOV AL,66H OUT DX,AL ;向计数器;向计数器0写入计数初值的高写入计数初值的高8位位例例1:设在:设在8086系统中有一片系统中有一片8253,其端口地址分别,其端口地址分别为:为:120H,122H,124H,126H。要求对计数器。要求对计数器0进行初始化,使其工作在方式进行初始化,使其工作在方式0,二进制计数,计,二进制计数,计数初值为数初值为6688H。例例2:假设:假设8253的计数器的计数器

35、0工作在方式工作在方式5,按二进制计数,按二进制计数,计数初值为计数初值为46H;计数器;计数器1工作在方式工作在方式1,按,按BCD码码计数,计数初值为计数,计数初值为4000,计数器,计数器2工作在方式工作在方式2,按二进制计数,计数初值为按二进制计数,计数初值为0304H。请将以上三种。请将以上三种情况的初始化程序写出。情况的初始化程序写出。8253芯片占用地址芯片占用地址04C0H、04C2H、04C4H、04C6H。程序:程序: MOV AL,1AH;计数器;计数器0,二进制,方式,二进制,方式5, 写低字节写低字节 00011010B MOV DX,04C6H;设置;设置8253控

36、制口地址控制口地址 OUT DX,AL;写入工作方式控制字;写入工作方式控制字MOV AL,73H;计数器;计数器1 ,BCD数,方式数,方式1, 计数初值为计数初值为4000 写写16位数位数 01110011BMOV DX,04C6H; 设置设置8253控制器地址控制器地址OUT DX,AL; 写入工作方式控制字写入工作方式控制字MOV AL,00H; 计数值低字节计数值低字节MOV DX,04C2H; 设置设置8253计数器计数器1地址地址OUT DX,AL; 写入计数值低字节写入计数值低字节MOV AL,46H; 计数值的低字节计数值的低字节MOV DX,04C0H; 设置设置8253

37、计数器计数器0地址地址OUT DX,AL; 写入计数值的低字节写入计数值的低字节MOV AL,40H;计数器高字节;计数器高字节OUT DX,AL;写入计数值高字节;写入计数值高字节MOV AL,0B4H;计数器;计数器2,二进制,方式,二进制,方式2, 计数初值为计数初值为0304H 写入写入16位数,位数, 10110100B MOV DX,04C6H;控制口地址;控制口地址OUT DX,ALMOV AL,04H;计数值低字节;计数值低字节MOV DX,04C4H;设置计数器;设置计数器2地址地址OUT DX,AL;写入计数值低字节;写入计数值低字节MOV AL,03H;计数值高字节;计数

38、值高字节OUT DX,AL;写入计数值高字节;写入计数值高字节例例3:设:设8253的四个端口地址分别为的四个端口地址分别为0E0H,0E2H,0E4H,0E6H,现将计数器,现将计数器0的的16位计数值读位计数值读出并存入出并存入AX中。中。程序如下:程序如下: MOV AL,00H;计数器;计数器0的锁存命令写入的锁存命令写入8253 OUT 0E6H,AL;的控制口;的控制口 IN AL,0E0H; 读计数器读计数器0的低的低8位数据位数据 MOV AH,AL; IN AL,0E0H ;读计数器;读计数器0的高的高8位数据位数据 XCHG AL,AH例例4:某:某8086系统中有一片系统

39、中有一片8253芯片,利用计数通芯片,利用计数通道道1完成对外部事件计数,计数满完成对外部事件计数,计数满250次向次向CPU发发出中断申请;利用计数通道出中断申请;利用计数通道2输出频率为输出频率为1KHz方方波,试编写波,试编写8253的初始化程序。(图的初始化程序。(图P148) 8253端口地址为端口地址为18H1EH分析:计数通道分析:计数通道1:方式:方式0 控制字控制字 01110001=71H 计数值计数值 250H (250次,次,BCD码)码)计数通道计数通道2:输出频率为:输出频率为1KHz方波,方式方波,方式3 控制字控制字 10110111=0B7H n=finTou

40、t =fin/ fout =2MHz/1KHz=2000 计数值计数值 2000H (BCD码)码)初始化程序:初始化程序:MOV AL,71H;计数通道;计数通道1OUT 1EH,ALMOV AL,50HOUT 1AH,ALMOV AL,02HOUT 1AH,ALMOV AL,0B7H;计数通道;计数通道2OUT 1EH,ALMOV AL,00HOUT 1CH,ALMOV AL,20HOUT 1CH,AL例例5:使用:使用8253计数器计数器0,采用工作方式,采用工作方式3,产生,产生1kHz的方波脉冲信号;通过计数器的方波脉冲信号;通过计数器1,采用工作方式,采用工作方式4,用用OUT1作

41、计数脉冲,计满作计数脉冲,计满100次向次向CPU发一次中断发一次中断申请,申请,CPU响应这一中断后继续写入计数值响应这一中断后继续写入计数值100,重新开始计数;通过计数器重新开始计数;通过计数器2,采用工作方式,采用工作方式0,每,每隔隔1秒钟向秒钟向CPU发一次中断请求,使发一次中断请求,使8个指示灯闪动。个指示灯闪动。试编写程序,并画出硬件连接图。试编写程序,并画出硬件连接图。(设设8253芯片地址芯片地址为为04C0H、04C2H、04C4H、04C6H,8259芯片地芯片地址为址为04B0H,04B2H,IR0中断类型码为中断类型码为50H,74LS373芯片地址芯片地址04A0

42、H。)硬件连接图硬件连接图 分析:分析:(1)由于由于CLK0=2.5MHz,T=0.4s,由计数器,由计数器0产生的产生的1kHz的方波信号,的方波信号,T=1ms,所以初值为,所以初值为2500,即,即09C4H。 fout=fin/n n=finT T输出周期输出周期 n=fin / fout =2.5MHz/ 1kHz=2500(2) 因为计数器因为计数器1和计数器和计数器2分别工作在方式分别工作在方式4和方式和方式0,当当GATE=1时,依靠计数初值启动定时或计数,时,依靠计数初值启动定时或计数,因而初始化时要先对因而初始化时要先对8259A初始化,再对计数器初始化,再对计数器1和计

43、数器和计数器2初始化,装入时间常数后立即执行。初始化,装入时间常数后立即执行。(3) CLK2与与OUT0连接在一起,输入时钟为连接在一起,输入时钟为1kHz,计数器计数器2每隔每隔1秒钟向秒钟向CPU发一次中断请求。发一次中断请求。 n=1kHz 1s=1000 定时工作时间常数等于定时工作时间常数等于1000。程序:程序: START CLI MOV DX,04C6H ;设置;设置8253控制口地址控制口地址 MOV AL,00110110B OUT DX,AL MOV DX,04C0H MOV AX,09C4H;计数器;计数器0的初值的初值09C4H OUT DX,AL MOV AL,A

44、H OUT DX,AL;写入初值高;写入初值高8位位 MOV BL,00H;灯亮或灭的标志;灯亮或灭的标志 BL=00亮亮 BL=01灭灭MOV DX,04B0H; 8259A的偶地址的偶地址MOV AL,00010011B;设置;设置8259初始化控制字初始化控制字ICW1OUT DX,AL; 写入写入ICW1MOV DX,04B2H; 8259A的奇地址的奇地址MOV AL,50H; 设置设置8259A初始化控制字初始化控制字ICW2OUT DX,AL; 写入写入ICW2MOV AL,00001101B; 设置设置8259A初始化控制字初始化控制字ICW4OUT DX,AL; 写入写入IC

45、W4MOV AL,0FCH; 设置设置IR0、IR1不可屏蔽,不可屏蔽,8259A 操作控制字操作控制字OCW1OUT DX,AL; 写入写入OCW1MOV AX,OFFSET INTR1;取中断服务程序;取中断服务程序INTR1 偏移地址偏移地址 MOV WORD PTR 140H,AX;中断向量表地址为;中断向量表地址为 50H4MOV AX,SEG INTR1;取中断服务程序;取中断服务程序INTR1的的 段地址段地址 MOV WORD PTR 142H,AXMOV AX,OFFSET INTR2;取中断服务程序;取中断服务程序INTR2 偏移地址偏移地址MOV WORD PTR 144

46、H,AX;中断向量表地址为;中断向量表地址为 51H4MOV AX,SEG INTR2;设置;设置INTR2所在段地址所在段地址MOV WORD PTR 146H,AXMOV DX,04C6H;设置;设置8253控制口地址控制口地址MOV AL,01011000B;二进制数,方式;二进制数,方式4,写低字节,写低字节, 计数器计数器1计数计数OUT DX,AL;将控制字写入计数器;将控制字写入计数器1的控制寄存器的控制寄存器MOV DX,04C2H ;设置;设置8253计数器计数器1地址地址MOV AL,64H;设置计数初值;设置计数初值100OUT DX,AL;计数初值写入;计数初值写入82

47、53计数器计数器1MOV DX,04C6H;设置;设置8253控制口地址控制口地址MOV AL,10110001B;BCD数,方式数,方式0,写,写16位数,位数, 计数器计数器2定时定时OUT DX,AL;控制字写入计数器;控制字写入计数器2的控制寄存器的控制寄存器 MOV DX,04C4H ;设置;设置8253计数器计数器2地址地址 MOV AL,00H ;写低字节;写低字节 OUT DX,AL ;计数值低字节写入计数器;计数值低字节写入计数器2 MOV AL,10H ;写高字节;写高字节 OUT DX,AL;计数值高字节写入计数器;计数值高字节写入计数器2 STI;开中断;开中断AA:H

48、LT ;等待中断;等待中断 JMP AAINTR1 PROC FAR CLI ;禁止中断;禁止中断 MOV DX,04C2H;设置;设置8253计数器计数器1地址地址 MOV AL,64H;置新初值;置新初值,启动工作启动工作 OUT DX,AL;计数值写入计数器;计数值写入计数器1 IRETINTR1 ENDP INTR2 PROC FAR CLI ;禁止中断;禁止中断 MOV DX,04A0H ;74LS373的地址的地址 CMP BL,00H ;灯闪烁判断;灯闪烁判断BL=00灯亮灯亮 JZ AA2 ; MOV AL,00H ;BL=01灯灭灯灭 OUT DX,AL MOV BL,00H ;重新设标志;重新设标志 JMP AA3 AA2 MOV AL,0FFH ;灯亮;灯亮 OUT DX,AL MOV BL,01H ;重新设标志;重新设标志 AA3 STI ;开中断;开中断 IRET INTR2 ENDP例例6:有一数据采集系统,时钟信号源为:有一数据采

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论