第9章定时计数控制器1.ppt
第第9章章 定时定时/计数控制器计数控制器教学重点教学重点l定时器定时器/计数器基本原理计数器基本原理l可编程定时器可编程定时器/计数器芯片计数器芯片8253的基本结构的基本结构l8253的的6种工作方式及各自特点种工作方式及各自特点l8253的编程方法的编程方法l定时器定时器/计数器的综合应用计数器的综合应用9.1 定时定时/计数的基本概念计数的基本概念定时与计数技术在计算机系统中具有极其重要的作用。定时与计数技术在计算机系统中具有极其重要的作用。微机系统都需要为微机系统都需要为CPU和外部设备提供定时控制或对外和外部设备提供定时控制或对外部事件进行计数。例如,分时系统的程序切换,向外部部事件进行计数。例如,分时系统的程序切换,向外部设备输出周期性定时控制信号,定时时间到发出中断申设备输出周期性定时控制信号,定时时间到发出中断申请或外部事件统计达到规定值发出控制信号或提出中断请或外部事件统计达到规定值发出控制信号或提出中断请求等。因此微机系统都必须有定时技术。请求等。因此微机系统都必须有定时技术。为获得稳定准确的定时,必须有稳定准确的时间基准。为获得稳定准确的定时,必须有稳定准确的时间基准。定时的本质是计数,把若干小片的时间单元累加起来,定时的本质是计数,把若干小片的时间单元累加起来,就获得一段时间。就获得一段时间。1.定时定时/计数定义计数定义定时(计数):就是通过硬件或软件的方法产生一个时定时(计数):就是通过硬件或软件的方法产生一个时间基准,以此来实现对系统的定时或延时控制。要实现间基准,以此来实现对系统的定时或延时控制。要实现定时或延时控制,有三种主要方法:软件定时、纯硬件定时或延时控制,有三种主要方法:软件定时、纯硬件定时及可编程的硬件定时器定时及可编程的硬件定时器/计数器。计数器。软件定时方法:利用软件定时方法:利用CPU执行指令需要若干指令周期执行指令需要若干指令周期的原理,运用软件编程,循环执行一段程序产生延时,的原理,运用软件编程,循环执行一段程序产生延时,配合简单输出接口向外送出定时控制信号。配合简单输出接口向外送出定时控制信号。(1)软件定时方法软件定时方法缺点:是执行延时程序会增加缺点:是执行延时程序会增加CPU的时间开销,浪费的时间开销,浪费CPU的资源。的资源。优点:是不需要增加硬件或硬件很简单,只需要编制优点:是不需要增加硬件或硬件很简单,只需要编制相应的延时程序以备调用。相应的延时程序以备调用。纯硬件定时:采用固定的电路,如可以采用小规模集纯硬件定时:采用固定的电路,如可以采用小规模集成电路成电路555,外接电阻和电容构成单稳延时电路。这样,外接电阻和电容构成单稳延时电路。这样的定时电路简单,而且通过改变电阻和电容,可以使的定时电路简单,而且通过改变电阻和电容,可以使定时在一定的范围内调整。但它由纯硬件来完成,给定时在一定的范围内调整。但它由纯硬件来完成,给使用带来不便。使用带来不便。(2)纯硬件定时纯硬件定时这是目前在控制系统中广泛使用的方法,它通过编程这是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围,功能强,使用灵活。来控制电路的定时值及定时范围,功能强,使用灵活。在计算机系统中,象定时中断、定时检测、定时扫描在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。等等都是用可编程定时器来完成定时控制的。(3)可编程硬件定时器可编程硬件定时器/计数器计数器2.计数器计数器/定时器的基本原理定时器的基本原理可编程计数器可编程计数器/定时器的功能体现定时器的功能体现一一是是计计数数功功能能,由由程程序序对对计计数数器器设设置置好好计计数数初初值值,启启动动后后便便对对外外部部事事件件开开始始减减“1”计计数数,减减为为“0”时,输出一个信号;时,输出一个信号;二二是是定定时时功功能能:也也是是由由程程序序设设置置好好定定时时常常数数后后进进行行减减“1”计计数数,按按定定时时常常数数,不不断断输输出出为为时时钟钟周周期整数倍的定时间隔。期整数倍的定时间隔。计数器计数器/定时器有以下用途:定时器有以下用途:在多任务的分时系统中,用来作为中断信号实在多任务的分时系统中,用来作为中断信号实现程序的切换;现程序的切换;可以给外部设备提供精确的定时信号;可以给外部设备提供精确的定时信号;作为可编程的波特率发生器;作为可编程的波特率发生器;实现时间延时。实现时间延时。9.2 可编程定时可编程定时/计数器计数器Intel 8253可编程计数器可编程计数器/定时器定时器8253用软、硬技术相结合方法实用软、硬技术相结合方法实现定时和计数控制,主要特点:现定时和计数控制,主要特点:1.8253的主要性能的主要性能(1)3个独立的个独立的16位计数器,每个计数器均以减法计数位计数器,每个计数器均以减法计数(3)每个计数器都可由程序设置)每个计数器都可由程序设置6种工作方式种工作方式(4)每个计数器计数速度可达)每个计数器计数速度可达2.6 MHz(2)每个计数器都可按二进制计数或十进制计数)每个计数器都可按二进制计数或十进制计数(5)所有)所有I/O都可与都可与TTL兼容兼容2.Intel 8253的内部结构的内部结构D7D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2每个计数器通过每个计数器通过3个引脚和外部联系:一个时钟输个引脚和外部联系:一个时钟输入端入端CLK、一个门控信号输入端一个门控信号输入端GATE和一个输出和一个输出端端OUT,每个计数器内部有一个每个计数器内部有一个8位的控制寄存器,位的控制寄存器,还有一个还有一个16位的计数初值寄存器位的计数初值寄存器CR、一个计数执一个计数执行部件和一个输出锁存器。行部件和一个输出锁存器。8253内部有内部有3个计数器,分别称为计数器个计数器,分别称为计数器0、计数器、计数器1和计数器和计数器2,它们的结构完全相同。,它们的结构完全相同。数据总线缓冲器:通过数据总线缓冲器:通过数据总线缓冲器,数据总线缓冲器,CPU可以可以对对8253写入初始化命令字、写入初始化命令字、写入计数初值、读取计数值。写入计数初值、读取计数值。所以与数据总线缓冲器相连所以与数据总线缓冲器相连的外部引脚的外部引脚D7D0接系统数接系统数据总线的低据总线的低8位。位。高8位 低8位高8位 低8位高8位 低8位初值计数器减法计数器输出锁存器 计数器计数器0、计数器、计数器1和计数器和计数器2:三个互相独立的计:三个互相独立的计数器,各自可按不同的方式工作。数器,各自可按不同的方式工作。计计数数器器0、1、2三三个个计计数数器器/定定时时器器内内部部每每个个都都由由一一个个16位位的的可可预预置置值值的的减减法法计计数数器器构构成成。每每个个计计数数器器操操作作独独立立,其其内内部部结结构构相相同同,减减法法计计数数器器由由计计数数器器初初值值寄寄存存器器装装入入初初值值,计计数数初初值值寄寄存存器器通通过过程程序序设设置置,输输出出寄寄存存器器用用于于锁存计数器的内容。锁存计数器的内容。读读/写写逻逻辑辑电电路路:读读/写写逻逻辑辑电电路路从从系系统统总总线线接接收收输输入信号,经过组合产生对入信号,经过组合产生对8253的控制信号。的控制信号。控制寄存器:写入控制字,决定计数器的工作方式控制寄存器:写入控制字,决定计数器的工作方式计数器计数器每个计数通道都有每个计数通道都有CLK和和GATE两根输入引脚和两根输入引脚和OUT一根输出引脚。从编程的角度看,每个计数通一根输出引脚。从编程的角度看,每个计数通道的结构如图所示。道的结构如图所示。计数初值存于计数初值存于预置寄存器预置寄存器;在计数过程中,在计数过程中,减法计数器减法计数器的值不断递减,的值不断递减,而预置寄存器中的预置不变。而预置寄存器中的预置不变。输出锁存器输出锁存器用于写入锁存命令时,用于写入锁存命令时,锁定当前计数值锁定当前计数值3.8253的外部引脚的外部引脚D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND8253的引脚图的引脚图8253123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1GATE1OUT1D0D7:三态双向数据线,和:三态双向数据线,和CPU数据总线相连,用于传数据总线相连,用于传递递CPU与与8253之间的数据信息、控制信息和状态信息。之间的数据信息、控制信息和状态信息。WR:写信号,输入,低电平有效。用于控制:写信号,输入,低电平有效。用于控制CPU对对8253的写操作,可和的写操作,可和A1、A0信号配合以决定是写入控制字还是信号配合以决定是写入控制字还是计数初值。计数初值。CS:片选信号,输入,低电平有效,表示:片选信号,输入,低电平有效,表示8253被选中,允被选中,允许许CPU对其进行读,写操作。此脚连接译码电路输出端。对其进行读,写操作。此脚连接译码电路输出端。RD:读信号,输入,低电平有效。用于控制:读信号,输入,低电平有效。用于控制CPU对对8253的的读操作,可和读操作,可和Al、A0信号配合读确定的计数器。信号配合读确定的计数器。A0,A1:地址输入线,用来寻址:地址输入线,用来寻址8253内部的内部的4个端个端口,即口,即3个计数器和个计数器和1个控制字寄存器。与个控制字寄存器。与CPU系统系统地址线相连。地址线相连。无操作无操作1 1 0 0 1读读2#计数器当前计数值计数器当前计数值1 0 0 0 1读读1#计数器当前计数值计数器当前计数值0 1 0 0 1读读0#计数器当前计数值计数器当前计数值0 0 0 0 1向控制字寄存器写控制字向控制字寄存器写控制字1 1 0 1 0计数初值写入计数初值写入2#计数器计数器1 0 0 1 0计数初值写入计数初值写入1#计数器计数器0 1 0 1 0计数初值写入计数初值写入0#计数器计数器0 0 0 1 0操操 作作A1 A0 CS RD WRCLK0.1.2:时钟脉冲输入端,用于输入定时脉冲或计数脉:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。冲信号。CLK可以是系统时钟脉冲,也可以由系统时钟分可以是系统时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。当用于定时时,这个脉冲必须是频或者其他脉冲源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。可以是不均匀的、断续的、周期不定的。GATE0.1.2:门控输入端,用于外部控制计数器的启动计数:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计数器连用时,可用和停止计数的操作。两个或两个以上计数器连用时,可用此信号来同步,也可用于与外部某信号的同步。此信号来同步,也可用于与外部某信号的同步。OUT0.1.2:计数输出端,当计数器从初值开始完成计数操:计数输出端,当计数器从初值开始完成计数操作时,作时,OUT引脚上输出相应的信号引脚上输出相应的信号(详见详见8253工作方式工作方式)。4.8253的控制字的控制字8253的控制字格式如图所示。控制字分为的控制字格式如图所示。控制字分为4个功能段,设个功能段,设定计数方式段、设定工作方式段、写入定计数方式段、设定工作方式段、写入/读取初值格式段读取初值格式段和计数器选择段(相当于特征位)。和计数器选择段(相当于特征位)。8253初始化的工作有两个内容:初始化的工作有两个内容:(1)向命令寄存器写入方式命令,以选择器()向命令寄存器写入方式命令,以选择器(3个计数个计数器之一),确定工作方式(器之一),确定工作方式(6种方式之一),指定计数器种方式之一),指定计数器计数初值的长度和装入顺序以及计数值的码制(计数初值的长度和装入顺序以及计数值的码制(BCD或或二进制码)二进制码)(2)向已选定的计数器按方式命令要求写入计数初值)向已选定的计数器按方式命令要求写入计数初值关于的控制字说明:关于的控制字说明:(1)8253只有一个工作方式控制字,但是对每个计数器只有一个工作方式控制字,但是对每个计数器而言,它们的工作方式控制字内容一定各不相同(前两而言,它们的工作方式控制字内容一定各不相同(前两位不同),所用各计数器的控制字需要分别设置,先后位不同),所用各计数器的控制字需要分别设置,先后不计。不计。(3)在工作方式控制字被设置之后,随后必须紧接着给)在工作方式控制字被设置之后,随后必须紧接着给计数器预设置计数初值,计数器方可开始工作。计数器预设置计数初值,计数器方可开始工作。(2)8253的工作方式的工作方式控制字控制字的特殊形式可用于对计数器的特殊形式可用于对计数器的当前计数值进行锁存。的当前计数值进行锁存。5.8253的工作方式的工作方式8253是一个可编程的计数器是一个可编程的计数器/定时器,有定时器,有6种工作方式可种工作方式可供选择。供选择。应遵守的基本规则有:应遵守的基本规则有:通常,在时钟脉冲通常,在时钟脉冲CLK的上升沿时,门控制信号的上升沿时,门控制信号GATE被采样。被采样。初始值写入以后,要经过一个时钟上升沿和一个下降初始值写入以后,要经过一个时钟上升沿和一个下降沿,计数器才开始进行计数。沿,计数器才开始进行计数。当控制字写入计数器时,所有的控制逻辑电路立即复当控制字写入计数器时,所有的控制逻辑电路立即复位,输出端位,输出端OUT进入初始状态电平。进入初始状态电平。在时钟脉冲的下降沿,计数器作减在时钟脉冲的下降沿,计数器作减1计数。计数器所能计数。计数器所能容纳的最大初始值为容纳的最大初始值为0,而在二进制时,而在二进制时,0相当于相当于216,用,用BCD码时,码时,0相当于相当于104。每种工作方式的过程类似:每种工作方式的过程类似:A.设定工作方式设定工作方式B.设定计数初值设定计数初值C.硬件启硬件启动动D.计数初值进入减计数初值进入减1计数计数器器D.每输入一个时钟计数器减每输入一个时钟计数器减1的计数过的计数过程程E.计数过程结束计数过程结束1.方式方式0计数结束产生中断方式计数结束产生中断方式 GATE=1CLKOUTN 43210FFCW写写入入控控制字制字n=4写入写入初值初值4开始计数开始计数计数计数结束结束产生产生中断中断 通常,在时钟脉冲通常,在时钟脉冲CLK的上升沿时,门控制信号的上升沿时,门控制信号GATE被采样。被采样。方式0 计数结束产生中断GATEOUTCLK 031244方式方式0WR设设定定工工作作方方式式设设定定计计数数初初值值计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束工作特点:工作特点:初值为初值为n时,时,OUT在在n+1个时钟后产生高电平。个时钟后产生高电平。只计一遍数,不重复,直到写入新的控制字为止。只计一遍数,不重复,直到写入新的控制字为止。计数过程中,可改变计数初值,写入新初值后,计数过程中,可改变计数初值,写入新初值后,重新开始计数。重新开始计数。GATE=0时写入初值,到时写入初值,到GATE变变1时才开始计数。时才开始计数。计数时计数时GATE=1,若,若GATE变为低电平停止计数。变为低电平停止计数。2.方式方式1可重触发的单稳态触发器可重触发的单稳态触发器FFCWCLKGATEOUT321032n=3写入写入初值初值门控门控触发触发开开始始计计数数进进入入暂稳态暂稳态计计数数时时间间到到,回回到到稳态稳态再次再次触发触发方式1可编程单稳态触发器设设定定工工作作方方式式设设定定计计数数初初值值硬硬件件启启动动计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束GATEOUTCLK 031244方式方式1WR计数过程中,可改变计数初值,这时当前计数不受计数过程中,可改变计数初值,这时当前计数不受影响,回影响,回0后后OUT为高电平,若再次触发,则按新为高电平,若再次触发,则按新的初值进行计数。的初值进行计数。计数过程中,又来一个门控信号,则再下一时钟脉计数过程中,又来一个门控信号,则再下一时钟脉冲后,又重新从初值开始计数,冲后,又重新从初值开始计数,OUT仍维持为低仍维持为低电平,这样使输出脉冲比原来延长了。电平,这样使输出脉冲比原来延长了。重复周期重复周期写入写入初值初值开始开始计数计数重复周期重复周期CWn=3CLKGATE=1OUT3213213213.方式方式2频率频率发生器(分频器)发生器(分频器)可重复,不用重写初值。输出可重复,不用重写初值。输出n-1个高,个高,1个低电平脉冲波形个低电平脉冲波形计数过程中,如果改变计数初值,当前计数不受影响,在下计数过程中,如果改变计数初值,当前计数不受影响,在下一个输出周期中,将按新的计数值进行计数,这是一个输出周期中,将按新的计数值进行计数,这是GATE门门一直有效的情况一直有效的情况4.方式方式3方波发生器方波发生器 CWn=4W重复周期重复周期CLKGATE=1OUT432143214负半周负半周正半周正半周负负半半周周写入写入初值初值开始开始计数计数正正半半周周OUT543215432重复重复周期周期l当输入控制字以后,输出端当输入控制字以后,输出端OUT出现高电平。出现高电平。工作特点:工作特点:l当计数值当计数值N为偶数时,输出为完全对称的方波;当计数为偶数时,输出为完全对称的方波;当计数值值N为奇数时,高电平持续为奇数时,高电平持续(N+1)/2,而低电平持续,而低电平持续(N1)/2,这样,输出为矩形波。,这样,输出为矩形波。lGATE=1时,计数进行;时,计数进行;GATE=0时,计数停止。时,计数停止。l如果门控如果门控GATE一直为高电平,那么,在写入控制和计一直为高电平,那么,在写入控制和计数值后,将在下一个时钟脉冲时,计数执行部件获得计数值后,将在下一个时钟脉冲时,计数执行部件获得计数初值并开始计数,这种情况称为软件同步。数初值并开始计数,这种情况称为软件同步。l正在计数时,如果写入新的计数值,那么,将不影响当正在计数时,如果写入新的计数值,那么,将不影响当前输出周期。前输出周期。5.方式方式4软件触发选通软件触发选通 写入写入初值初值开始开始计数计数计数结束计数结束FF FFCWn=5CLKGATE=1OUT543210若计数初值为若计数初值为n,写入初值写入初值n+1个时钟周期后,输出一个时个时钟周期后,输出一个时钟宽度的负脉冲。钟宽度的负脉冲。GATE=1时,允许计数,时,允许计数,GATE=0时,禁止计数,时,禁止计数,OUT端不受端不受影响,维持当时的电平。影响,维持当时的电平。6.方式方式5硬件触发选通硬件触发选通 计计数数时时间到间到写入写入初值初值门控门控触发触发开开始始计数计数再次再次触发触发CWn=3CLKGATEOUT3210FF 321开开始始计数计数在计数过程中,使用在计数过程中,使用GATE上升沿,可使计数器获得初上升沿,可使计数器获得初值重新开始计数。值重新开始计数。如果在计数过程中写入新的计数初值,并且在当前周期如果在计数过程中写入新的计数初值,并且在当前周期结束又受到结束又受到GATE的触发,则在下一个时钟周期,计的触发,则在下一个时钟周期,计数器按新初值开始计数。数器按新初值开始计数。8253工作方式小结工作方式小结 工作方式工作方式 GATE=0下降沿下降沿 GATE上升沿上升沿 GATE=1 方式方式0(计数结束中断计数结束中断)停止计数停止计数 无意义无意义 允许计数允许计数 方式方式1(单脉冲单脉冲)无意义无意义 从初值开始重新计数从初值开始重新计数 无意义无意义 方式方式2(分频器分频器)停止计数停止计数 从初值开始重新计数从初值开始重新计数 允许计数允许计数 方式方式3(方波发生器方波发生器)停止计数停止计数 从初值开始重新计数从初值开始重新计数 允许计数允许计数 方式方式4(软件触发软件触发)停止计数停止计数 从初值开始重新计数从初值开始重新计数 允许计数允许计数 方式方式5(硬件触发硬件触发)无意义无意义硬件触发信号硬件触发信号 无意义无意义8253的输出波形都是在时钟的输出波形都是在时钟CLK周期的下降沿时产生变化。周期的下降沿时产生变化。GATE作为各通道的门控信号,对于各种工作方式,作为各通道的门控信号,对于各种工作方式,GATE所所起的作用不同,起的作用不同,作为计数器时,进行减作为计数器时,进行减1计数;作为定时器时,减到终值时,计数;作为定时器时,减到终值时,又自动装入初值,重新作减又自动装入初值,重新作减1计数,计数,9.3 8253的应用举例的应用举例1.8253的编程原则的编程原则对计数器设置初值前,必须先写控制字,以指出计数值是对计数器设置初值前,必须先写控制字,以指出计数值是二进制还是十进制、工作方式、对哪个计数器的哪些字节二进制还是十进制、工作方式、对哪个计数器的哪些字节进行操作等规定。进行操作等规定。在读计数器值时必须先用锁存命令,锁住当前计数值,再在读计数器值时必须先用锁存命令,锁住当前计数值,再进行读操作,否则在读数时,计数器的数值可能处在改变进行读操作,否则在读数时,计数器的数值可能处在改变过程中,这样,读出的计数值是一个不确定的数值。过程中,这样,读出的计数值是一个不确定的数值。初始值设置时,要符合控制字中的格式,否则就会出错。初始值设置时,要符合控制字中的格式,否则就会出错。2.8253的实例的实例例:假设一个例:假设一个8253在某系统中的端口地址在某系统中的端口地址40H43H,如,如果要将计数器果要将计数器0设置为设置为工作方式设置为设置为工作方式3,计数初值为,计数初值为3060H,采用二进制计数法,则初始化方法如下:采用二进制计数法,则初始化方法如下:MOVAL,36H;设置控制字;设置控制字00110110(计数(计数器器0,方式,方式3,写两个字节,二进制计数),写两个字节,二进制计数)OUT43H,AL;写入控制寄存器;写入控制寄存器MOVAX,3060H;设置计数值;设置计数值OUT40H,AL ;写低;写低8位至计数器位至计数器0MOVAL,AHOUT40H,AL ;写高;写高8位至计数器位至计数器0例:在例:在PC机中,机中,8253主要提供系统时钟中断、动态主要提供系统时钟中断、动态RAM的刷新定时及喇叭发声控制等功能。的刷新定时及喇叭发声控制等功能。8253的初始化是在计的初始化是在计算机启动时由算机启动时由BIOS完成的。应用的示意图如下:完成的。应用的示意图如下:从从8284时钟发生器来的频率时钟发生器来的频率2.386364MHZ经二分频后作为经二分频后作为8253三个计数器的时钟输入,三个计数器的时钟输入,8253在在IBM-PC/XT中的端中的端口地址为口地址为40H43H,这三个计数器在系统中的初始化程,这三个计数器在系统中的初始化程序如下:序如下:计数器计数器0用于定时中断(约用于定时中断(约55ms)MOV AL,36H ;计数器;计数器0,方式,方式3,写两个字节,二进制计数,写两个字节,二进制计数OUT43H,AL ;控制字送控制字寄存器;控制字送控制字寄存器MOV AL,0 ;计数值为最大值;计数值为最大值OUT40H,AL ;写低;写低8位位OUT40H,AL ;写高;写高8位位计数器计数器1用于定时(用于定时(15s)DMA请求请求MOV AL,54H ;计数器;计数器1,方式,方式2,只写低,只写低8位,二进制计数位,二进制计数OUT43,ALMOV AL,12H ;初值为;初值为18OUT41H,AL 计数器计数器3用于产生约用于产生约900HZ的方波送至扬声器的方波送至扬声器MOV AL,B6H ;计数器;计数器3,方式,方式3,写两字节,二进制计数,写两字节,二进制计数OUT43,ALMOV AX,0533H ;计数初值为;计数初值为533HOUT42H,AL ;写低;写低8位位MOV AL,AHOUT42H,AL ;写高;写高8位位例:要求例:要求8253完成下列功能:完成下列功能:用通道用通道0对外部事件计数,计满对外部事件计数,计满100向向CPU发出中断请求发出中断请求 利用通道利用通道1产生频率为产生频率为1kHz的方波的方波示示波波器器或或其其它它波波形形接收设备接收设备外部事件外部事件产生源产生源IR7 INT 8259 IR0CLK1=2.5MHz D7D0 A2 8086 A1 CPU A0 A3 A15 M/IO INTRD7D0 通道通道1 A1 A0 通道通道2 8253 通道通道0 GATE1CLK2GATE2OUT2OUT1CLK GATE0OUT0地址地址译码译码器器分析:分析:通通道道0定定义义为为工工作作方方式式0,完完成成计计数数功功能能,实实 际际 计计 数数 值值 为为100(64H););通通道道1定定义义为为方方式式3;计计 数数 初初 值值 应应 为为2.5MHz/1kHz,等等于于2500=09C4H STT:MOVDX,336H ;8253控制端口控制端口 MOV AL,10H ;定义通道定义通道0工作在方式工作在方式0 OUT DX,AL MOV DX,330H;给给8253通道通道0送初值送初值 MOV AL,64H OUT DX,AL MOV DX,336H;8253控制端口控制端口 MOV AL,76H ;定义通道定义通道1为方式为方式3 OUT DX,AL MOV DX,332H;8253通道通道1端口地址端口地址 MOV AX,094CH;给通道给通道1送计数初值送计数初值 OUT DX,AL 设设8253通道通道0计数器的地址为计数器的地址为330H,通道通道1计数器的计数器的地址为地址为332H,通道通道2计数器的地址为计数器的地址为334H,控制端控制端口地址为口地址为336H,初始化程序如下:初始化程序如下:MOV AL,AHOUT DX,ALMOV DX,420H;8259H偶地址端口偶地址端口MOV AL,13H;对中断控制器对中断控制器8259进行初始化进行初始化OUT DX,ALMOV DX,422H;8259H奇地址端口奇地址端口MOV AL,50HOUT DX,ALMOV AL,03HOUT DX,ALMOV AL,0FAHOUT DX,ALSTI 例:采用例:采用8253控制一个发光二极管闪亮,要求启动控制一个发光二极管闪亮,要求启动8253后,使发光二极管亮后,使发光二极管亮0.5秒后再灭秒后再灭0.5秒,如此重复。时秒,如此重复。时钟脉冲源为钟脉冲源为2MHz,端口地址为:端口地址为:80H83H。要求:要求:设计接口电路;设计接口电路;编写初始化程序。编写初始化程序。分析:因为要求亮分析:因为要求亮0.5秒后再灭秒后再灭0.5秒,恰为一个方波,秒,恰为一个方波,周期为周期为1秒,由秒,由1s=1s0.5s=2000000,大于一个通道能大于一个通道能提供的最大计数值提供的最大计数值65536。所以要采用级连方式来完成。通道所以要采用级连方式来完成。通道0工作于方式工作于方式2,即,即频率发生器方式,产生一个脉冲波,设脉冲波周期为频率发生器方式,产生一个脉冲波,设脉冲波周期为4ms(250Hz),所以计数值所以计数值N0=4ms0.5s=8000;控制控制字为:字为:001101000B,通道通道1工作于方式工作于方式3,即产生方波,周期为,即产生方波,周期为1s,其输入其输入为为CLK1接接OUT0,所以计数值所以计数值N1=1s4ms=250,并使并使OUT1经过一个反相驱动器去控制发光二极管。经过一个反相驱动器去控制发光二极管。编写初始化程序如下:编写初始化程序如下:MOV AL,34HOUT 83H,ALMOV AX,8000 OUT 80H,ALMOV AL,AHOUT 80H,ALMOV AL,56H OUT 83H,ALMOV AL,250 OUT 81H,ALD7D6D5D4D3D2D1D0RDWRA1A08253CLK0CLK1CLK2GARE0GARE1GARE2OUT0OUT1OUT2GNDVCCCS+5VD7D6D5D4D3D2D1D0IORIOWA1A080H2MHz总线例:设例:设8253计数器计数器0工作在方式工作在方式5,按二进制计数,计数初,按二进制计数,计数初始值为始值为100;计数器;计数器1工作在方式工作在方式1,BCD码计数,计数初始码计数,计数初始值为值为4000;计数器;计数器2工作在方式工作在方式2,按二进制计数,计数初,按二进制计数,计数初始值为始值为600。8253占用端口地址占用端口地址200H到到203H。MOV DX,203H ;控制寄存器地址送控制寄存器地址送DXMOV AL,00011010B ;计数器计数器0,写低字节写低字节,方式方式5,二进制计数二进制计数OUT DX,AL ;写控制字寄存器写控制字寄存器MOV DX,200H ;计数器计数器0的地址送的地址送DXMOV AL,100 ;计数初始值为计数初始值为100OUT DX,AL ;写入计数初始值写入计数初始值MOV DX,203H ;控制寄存器地址送控制寄存器地址送DX MOV AL,01100011B ;计数器计数器1,写高字节写高字节,方式方式1,十进制计数十进制计数OUT DX,AL ;写控制字寄存器写控制字寄存器MOV DX,201H ;计数器计数器1的地址送的地址送DX MOV AL,40H ;计数初始值为计数初始值为4000H,只写高只写高8位即可位即可OUT DX,AL ;写入计数初始值写入计数初始值MOV DX,203H ;控制寄存器地址送控制寄存器地址送DX MOV AL,10110100B ;计数器计数器2,16位初始值位初始值,方式方式1,二进制计数二进制计数OUT DX,AL ;写控制字寄存器写控制字寄存器MOV DX,202H ;计数器计数器2的地址送的地址送DXMOV AX,600 ;计数初始值为计数初始值为600OUT DX,AL ;先写低先写低8位位MOV AL,AHOUT DX,AL ;再写高再写高8位位1.微机系统中的外部定时有哪两种方法?其特点如何?2.8253计数/定时器有哪些特点?38253初始化编程包括哪两项内容?4.8253有哪几种工作方式?区分不同工作方式的特点体现在哪几方面?5.设8253芯片的计数器0、计数器2和控制口地址分别为04B0H、04B2H、04B6H。定义计数器0工作方式2,CLK0为5MHZ,要求输出OUT0为1KHZ方波;定义计数器2用OUT0作计数脉冲,计数值为1000,计数器计到0时向CPU发出中断请求,CPU响应这一中断请求后继续写入计数值1000,开始重新计数,保持每一秒钟向CPU发出一次中断请求。试写出对8253的初始化程序,并画出硬件连接图。习题与思考题习题与思考题6将8253计数器0设为方式3(方波发生器),计数器1设为方式2(分频器)。要求计数器0的输出脉冲作为计数器1的时钟输入,CLK0连接总线时钟4.77MHZ,定时器1输出OUT1约为40MHZ,试编一段程序。7在一个定时系统中,8253的端口地址范围是480H-483H,试对8253的三个计数器进行编程。其中,计数器0的工作方式1,计数初值为3680H,计数器2工作在方式3,计数初值为1080H。8怎样读出8253计数器的当前计数值?