版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8.1概述在计算机系统中经常要用到定时信号,如动态存储器的刷新定时、系统日历时钟的计时、系统定时中断以及喇叭的声源等都是用定时信号来产生的。又如,在计算机实时控制和处理系统中,可以在多任务的分时系统中提供精确的定时信号,以实现各任务的切换,计算机主机需要每隔一定的时间就对处理对象进行采样,再对采集到的数据进行比较处理,并按已知的控制规律,决定下一步的控制过程等,这些活动都离不开定时信号。微机控制系统中实现定时与计数的方法有以下三种。
(1)软件定时。如果用软件方法来进行定时,一般都是根据所需要的时间常数来设计一个延时子程序,延迟子程序中包含一定的指令,设计者要对这些指令的执行时间进行严密的计算或者精确的测试,以便确定延迟时间是否符合要求。当时间常数比较大时,常常将延迟子程序设计为一个循环程序,通过循环常数和循环体内的指令来确定延迟时间。这样,每当延迟子程序结束以后,可以直接转入下面的操作(如实时采样),也可以用输出指令输出一个信号作为定时输出。软件定时方法的优点是不需添加硬件设备,只需编制有关延时程序即可。缺点是CPU执行延时程序将占用CPU的工作时间,降低了CPU的利用率。同时,软件定时的时间随主机频率不同而发生变化,定时程序的通用性较差。
(2)不可编程的硬件定时。不可编程的硬件定时主要指用单稳延时电路或计数电路来实现延时和定时。在单稳延时电路中,用一个脉冲输入去触发一个单稳态电路,产生一个持续时间间隔恒定的单脉冲。单稳延时电路存在时间常数由外接的电阻电容RC值决定而不便加以改变的缺点。同时随着时间的延长,电阻电容器件老化,电阻电容值不稳定,导致单稳电路延时脉冲宽度随之改变。
(3)可编程定时/计数器芯片。在实际中很少采用单独的软件定时和硬件定时,而是采用软件硬件相结合的方法。用可编程定时/计数器芯片构成一个方便灵活的定时/计数电路。可编程定时/计数器的主要工作过程是:定时/计数器按照程序以设定方式进行工作,当定时/计数达到确定值时,可以自动产生一个定时输出。可编程定时/计数方法的优点是定时或计数时,不占用CPU空间,并且,利用定时/计数器产生的中断信号,还可以建立多作业环境,从而大大提高了CPU的利用率。
目前常用的可编程定时器和计数器芯片很多,如Z80系列的CTC定时/计数器芯片,Intel系列的8253、8254定时/计数器芯片。8.2可编程定时/计数器的工作原理8.2.1基本功能可编程定时/计数器芯片可以在许多场合用来定时和计数,如用作可编程方波频率发生器、分频器、程控单脉冲发生器等。下面以8253芯片为例来说明其基本功能。8253有以下特点:
(1) 3个计数器:每个8253芯片上有3个独立的16位计数通道。
(2) 2~10MHz的计数频率:每个计数器的计数频率范围为0~2MHz,其改进型8254-2的计数频率范围为0~10MHz。
(3) 2种数制计数:每个计数器都可以按照二进制或十进制计数。
(4) 6种工作方式:每个计数通道都有6种工作方式,可由程序设置或改变。
(5)与TTL兼容:所有输入/输出引脚都与TTL兼容。8.2.2基本工作原理图8-1定时/计数器的基本原理图
可编程定时/计数器的核心是一个减“1”计数器。当作为定时器时,在设置好定时常数后,定时器开始减1计数,并按定时常数不断地输出为时钟周期整数倍的定时间隔。当作为计数器时,在设置好计数初值(定时常数)后,计数器开始减1,直到计数器减为“0”时,输出一个信号,表示计数结束。从内部看,计数器和定时器二者的工作过程没有根本差别,都是基于计数器的减“1”工作的。图8-1是典型的定时/计数器的基本原理图。它由控制寄存器、初始值寄存器、计数输出寄存器、状态寄存器和一个计数器组成。
(1)控制寄存器。控制寄存器是从数据总线缓冲器中接收控制字,以确定计数器的操作方式。
(2)初始值寄存器。初始值寄存器用来存放计数器所需要的初始值。该值由程序写入,只要定时/计数器不被复位或没有向该寄存器中写入新的内容,原值将一直保持不变。图8-1定时/计数器的基本原理图
(3)计数输出寄存器。计数输出寄存器用来存放计数器中的内容,可由CPU读出。计数器中计数值的变化,在任何时候均可由计数输出寄存器反映,如果在程序中使用读指令,就能从该寄存器中准确地得到计数器中的值。
(4)状态寄存器。状态寄存器提供定时/计数器当前所处的状态,这些状态有利于了解计数器/定时器某时刻的内部情况。但是,有的定时/计数器中是不带状态寄存器的,如8253就是这样。因此,8253就不具备读取状态值的功能。
(5)计数器。计数器实际是一个具有减“1”功能的减法器。它接收来自初始值寄存器中的初值,在减“1”过程中,任何时刻计数器内容可由CPU经计数输出寄存器读出。计数器对外有三个重要信号,现说明如下:
①OUT信号。当计数器中内容减为“0”时,会在OUT信号线上产生一个输出信号,起到通知外界的作用,可以采用OUT信号申请中断的形式来完成对定时/计数器“时间到”的处理。②CLK信号。CLK是一个输入信号,它决定了计数速率。作外部事件计数器时,在CLK脚上所加的计数脉冲是由外部事件产生的,这些脉冲的间隔可以是不相等的。作定时器时,CLK引脚上应输入精确的时钟脉冲。这时,定时器所能实现的定时时间取决于计数脉冲的频率和计数器的初值,即:
定时时间=时钟脉冲周期×预置的计数初值
③GATE信号。GATE是一个门控输入信号,通常由外设提供。一般情况下,当GATE=0时,禁止计数器工作,而GATE=1时,允许计数器工作。8.3可编程定时/计数器8253
8253是Intel公司生产的一种通用的定时/计数器,它是采用NMOS工艺制成的,由单一电源+5V供电的24脚双列直插式封装芯片。8.3.1内部结构
8253的内部结构如图8-2所示,由数据总线缓冲器、读/写控制逻辑、控制字寄存器和计数器等部分组成。图8-28253的内部结构示意图
3.控制字寄存器
控制字寄存器是一个8位的寄存器,它的内容只能写入不能读出。对8253的任何操作都要先向控制字寄存器写一个1字节的控制字。控制字的内容包括3项:设置某个减法计数器作为二进制计数器还是十进制计数器用;设定某个减计数器工作在6种工作方式中的哪一种;设定以下对8253某个减计数器的操作,是给它送计数初值还是准备从其中读出当前的计数值。
4.计数器
8253有3个独立的计数器通道,每个通道的结构完全相同,如图8-3所示。每一个通道有一个16位减法计数器,还有对应的16位初值寄存器和输出锁存器。计数开始前写入的计数初值存于初值寄存器。计数过程中,减法计数器的值不断递减,而初值寄存器中的初值不变。输出锁存器则用于写入锁存命令时锁定当前计数值。图8-3计数器内部逻辑图8.3.2引脚信号图8-48253的引脚信号图
8253使用单一的+5 V电源,24引脚双列直插式封装,如图8-4所示。
1.与CPU的接口信号
D7~D0——三态双向数据线。与CPU数据总线相连,用于传送CPU与8253之间数据信息、控制信息和状态信息。
——片选信号,输入,低电平有效。表示8253被选中,允许CPU对其进行读/写操作。通常连接I/O端口地址译码电路输出端。8.3.38253计数器的计数启动方式和计数结束方式
8253的减计数器能进行减计数,使8253的减计数器开始减计数的方式分为两种:一种是当计数控制端GATE为1时,写入计数初值后,开始减计数,这种方式有的教材称之为软件启动计数方式;另一种是,写入计数初值后并不开始减计数,而是要由计数控制端GATE加一个从低电平到高电平变化的上跳沿后才开始减计数,这种方式有的教材称之为硬件启动计数方式。
另外,如减计数单元减至0后不能自动将原计数初值寄存器中的初值装入减计数单元,不能重新开始新的一轮计数,称之为一次性计数方式。如减计数单元减至0后,能自动将原初值寄存器中的初值自动装入减计数单元,并重新开始新的一轮计数,称为自动重装方式。是否为一次性计数方式,对于6种工作方式有所不同。8.3.48253的方式控制字
8253的方式控制字有4个主要功能:
(1)选择计数器的计数方式。
(2)确定计数器的工作方式。
(3)确定计数器数据的读/写格式。
(4)选择计数器。
方式控制字的格式如图8-5所示,其中,“×”表示无用位,通常设置为0。图8-58253控制字格式控制字的长度为1字节内容,每位含义如下:
(1)数制选择(D0)。D0位表示设置减计数器是否作为十进制计数器用,BCD即十进制数的意思,若是作为十进制计数器用,则设置D0=1,如(不是作为十进制计数器用)作为二进制计数器用,则设置D0=0。
在BCD时,写入初值范围为0000~9999,其中0000代表最大值10000。在二进制时,写入初值的范围为0000H~FFFFH,其中0000H是最大值,代表65536。因为计数器是先减1,再判断是否为0,所以写入0实际代表最大计数值。8.3.58253的工作方式
8253的每一个计数器都可以按照控制字的规定有6种不同的工作方式。即:
方式0:计数结束中断方式。
方式1:可编程单稳态触发器。
方式2:分频器。
方式3:方波发生器。
方式4:软件触发选通方式。
方式5:硬件触发选通方式。下面结合时序波形图介绍各种方式的工作过程。
1.方式0(计数结束中断方式)
方式0的工作时序如图8-6所示。
(1)计数过程。当写入方式0控制字后,OUT立即变为低电平,并且在计数过程中一直维持低电平。若GATE=1,写入初值后,CLK第1个下降沿到,计数值装入计数器,随后每一个CLK脉冲下降沿到,计数器减l。计数器减到零时,OUT输出变为高电平,并且一直保持到该通道重新装入计数值或重新设置工作方式为止。图8-6方式0波形图
(2) GATE信号的影响。门控信号GATE可以用来控制计数过程,GATE为高电平,允许计数;GATE为低电平,暂停计数,当GATE重新为高电平时又恢复计数。
(3)新的初值对计数过程的影响。方式0是写一次计数值,计一遍数,计数器不会自动重装初值重新开始计数。如果在计数过程中写入新的计数初值,则在写入新值后的下一个时钟下降沿计数器将按新的初值计数,即新的初值是立即有效的。
2.方式1(可编程单稳态触发器)
方式l的工作时序如图8-7所示。图8-7方式1波形图这种方式由外部门控信号GATE上升沿触发,产生一单拍负脉冲信号,脉冲宽度由计数初值决定。
(1)计数过程。写入控制字后,OUT输出为高电平。写入计数初值N后,计数器并不开始计数,而要等到GATE上升沿后的下一个CLK输入脉冲的下降沿,OUT输出变低,计数才开始。计数结束时,OUT输出变高,从而产生一个宽度为N个CLK周期的负脉冲。
(2) GATE信号的影响。方式1中,GATE信号的作用可从两个方面进行说明。第一,在计数结束后,若再来一个GATE信号上升沿,则下一个时钟周期的下降沿又从初值开始计数,而不需要重新写入初值。即门控信号可重新触发计数。第二,在计数过程中,若来一个门控信号的上升沿,也在下一个时钟下降沿从初值起重新计数,即终止原来的计数过程,开始新的一轮计数。
(3)新的初值对计数过程的影响。如果在计数过程中写入新的初值,不会立即影响计数过程。只有下一个门控信号到来后的第一个时钟下降沿,才终止原来的计数过程,按新值开始计数。若计数结束前没有触发信号,则原来计数过程正常结束,即新的初值下次有效。
3.方式2(分频器)
方式2的工作波形如图8-8所示。这种方式的功能如同一个N分频计数器,输出是输入时钟按照计数值N分频后的一个连续脉冲。图8-8方式2波形图
(1)计数过程。写入控制字后的时钟上升沿,输出端OUT变成高电平。若GATE=1,写入计数初值后的第一个时钟下降沿开始减1计数;减到1时,输出端OUT变为低电平;减到0时,输出OUT又变成高电平,同时从初值开始新的计数过程。因此,方式2能自动重装初值,输出固定频率的脉冲,称为分频器。
(2) GATE信号的影响。方式2中,GATE信号为低电平终止计数,而由低电平恢复为高电平后的第一个时钟下降沿重新从初值开始计数。由此可见,GATE一直维持高电平时;计数器为一个N分频器。
(3)新的初值对计数过程的影响。如果在计数过程中写入新的初值,且GATE信号一直维持高电平,则新的初值不会立即影响当前的计数过程,但在计数结束后的下一个计数周期将按新的初值计数,即新的初值下次有效。
4.方式3(方波发生器)
方式3的工作波形如图8-9所示。图8-9方式3波形图
(1)计数过程。方式3的计数过程按计数初值的不同分为两种情况:
①计数初值为偶数。写入控制字后的时钟上升沿,输出端OUT变成高电平。若GATE=1,写入计数初值后的第一个时钟下降沿开始减1计数。减到N/2时,输出端OUT变为低电平;减到0时,输出端OUT又变成高电平,并重新从初值开始新的计数过程。可见,输出端OUT的波形是连续的方波,故称方波发生器。
②计数初值为奇数。写入控制字后的时钟上升沿,输出端OUT变成高电平。若GATE=l,写入计数初值后的第一个时钟下降沿开始减1计数,减到(N+1)/2以后,输出端OUT变为低电平;减到0时,输出端OUT又变成高电平,并重新从初值开始新的计数过程。这时输出的波形为连续的近似方波。
(2) GATE信号的影响。GATE=1,允许计数,GATE=0,禁止计数,如果在输出端OUT为低电平期间,GATE变低,则OUT将立即变高,并停止计数。当GATE变高以后,计数器重新装入初值并重新开始计数。
(3)新的初值对计数过程的影响。如果在计数过程中写入新的初值,而GATE信号一直维持高电平,则新的初值不会立即影响当前的计数过程,只有在计数结束后的下一个计数周期,才按新的初值计数。若写入新的初值后,遇到门控信号的上升沿,则终止现行计数过程,从下一个时钟下降沿开始按新的初值进行计数。
5.方式4(软件触发选通方式)
方式4的工作波形如图8-10所示。
(1)计数过程。写入方式控制字后,OUT输出高电平。若GATE=1,写入初值后的下一个CLK脉冲开始减1计数,计数到达0值(注意:不是减到1),OUT输出为低电平,持续一个CLK脉冲周期后再恢复到高电平。
(2)门控信号的影响。GATE=1时,允许计数;GATE信号变低,禁止计数,输出维持当时电平。这种方式依赖于装入计数值触发工作,因此,称为软件触发选通方式。
(3)新的初值对计数过程的影响。在计数过程中改变计数值,则在写入新值后的下一个时钟下降沿计数器将按新的初值计数,即新值是立即有效的。图8-10方式4的波形图
6.方式5(硬件触发选通方式)
方式5的工作波形如图8-11所示。
(1)计数过程。写入控制字后,输出OUT即为高电平。写入计数初值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发。计数结束(计数器减到0),输出一个持续时间为一个TCLK的负脉冲,然后输出恢复为高电平,直到GATE信号再次触发。
输出负脉冲可以用作选通脉冲,它是通过硬件电路产生的门控信号上升沿触发得到的,所以叫硬件触发选通方式。图8-11方式5波形图
(2)门控信号的影响。若在计数过程中,又有一个门控信号的上升沿,则立即终止当前计数过程,且在下一个时钟下降沿,又从初值开始计数,如果计数过程结束后,来一个门控上升沿,计数器也会在下一个时钟下降沿,又从初值开始减1计数,即门空信号上升沿任何时候到来都会立即触发一个计数过程。
(3)新的初值对计数过程的影响。如果在计数过程中写入新的初值,则新的初值不会立即影响当前的计数过程,只有到下一个门控信号上升沿到来后,才从新的初值开始减1计数,即新的计数初值在下一个门控信号上升沿触发后有效。8.4定时器/计数器应用实例8.4.18253的编程逻辑当初始化8253某个计数通道时,首先把相应的方式控制字写入到控制字寄存器中,再根据控制字数据读/写格式(D5D4)的规定,写入计数初值到对应的计数通道。
8253的3个计数通道是完全独立的。使用时,每个计数器都要进行这样的初始化操作。8253工作过程中,任一通道的计数值,CPU可用输入指令读取。CPU读到的是执行输入指令瞬间计数器的当前值,但8253的计数器是16位的,所以要分两次读至CPU。因此,若不锁存的话,在前后两次执行输入指令的过程中,计数值可能已经变化了。锁存当前计数值有下面两种方法:
(1)利用GATE信号使计数过程暂停。向8253写入一个方式控制字,令8253通道的锁存器锁存。8253的每个通道都有一个16位锁存器,平时它的值随着通道计数器的值变化。当向通道写入锁存的控制字时,它把计数器的当前值锁存(计数器可继续计数),于是CPU读取的就是锁存器的值。当对计数器重新编程,或读取计数值后,自动解除锁存状态,它的值又随计数器变化。
(2)可编程定时器/计数器8253可与各种微型计算机系统相连并构成完整的定时、计数或脉冲发生器。使用8253时,要先根据实际应用要求,设计一个包含8253的硬件逻辑电路或接口,再对8253进行初始化编程,只有初始化后8253才可以按要求正常工作。8.4.28253的实际应用
1.8253定时功能的应用
在计算机应用中,经常会遇到隔一定的时间重复某一个动作的应用。
【例8-1】设某应用系统中,系统提供一个频率为10 kHz的时钟信号,要求每隔10 ms完成一次扫描键盘的工作。为了提高CPU的工作效率,采用定时中断的方式进行键盘的扫描。
在系统中,采用8253定时器的通道0来实现这一要求。将8253芯片的CLK0接到系统的10 kHz时钟上,OUT0输出接到CPU的中断请求线上,8253的端口地址为10H~13H,如图8-12所示。图8-128253用于定时中断
1)选择工作方式
由于系统每隔10 ms完成一次动作,则扫描键盘的动作频率为100 Hz,可选用方式2来实现。当8253定时器工作在方式2时,在写入控制字与计数初值后,定时器就启动工作,每到10 ms时间,即计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,完成键盘扫描,同时按原设定值重新开始计数,实现了计数值的自动重装。
3)初始化编程
根据以上要求,可确定8253通道0的方式控制字为00010100B,即14H。
初始化程序段如下:
MOV AL,14H
;通道0,写入初值低8位,高8位置0,方式2,二进制计数
OUT l3H,AL ;写入方式到控制字寄存器
MOV AL,64H
OUT 10H,AL ;写入计数初值低8位到通道0
2.8253计数功能的应用
【例8-2】通过PC机系统总线在外部扩展一个8253,利用其通道0记录外部事件的发生次数,每输入一个高脉冲表示事件发生1次。当事件发生100次后就向CPU提出中断请求(边沿触发),假设8253片选信号的I/O地址范围为200H~203H,如图8-13所示。图8-138253用于外部时间的计数根据要求,可以选择方式0来实现,计数初值N=100。8253初始化程序段如下:
MOV DX,203H ;设置方式控制字
MOV AL,10H
;设定为工作方式0,二进制,只写入低字节计数值
OUT DX,AL
MOV DX,200H ;设置计数初值
MOV AL,64H ;计数初值为100
OUT DX,AL 图8-148253通道的级连设计数器初值N1=500,N2=20000,使用方式2,二进制计数,则通道l、2的初始化程序如下:
MOVDX,323H
MOVAL,74H
;01110100B,通道1,写入16位初值,方式2,二进制计数
OUT DX,AL ;写入通道1方式字
MOVDX,321H
MOVAX,500
OUT DX,AL ;写入初值低8位入通道1
MOVAL,AH
OUT DX,AL ;写入初值高8位入通道1
MOVDX,323H
MOVAL,0B4H
;10110100B,通道2,写入16位初值,方式2,二进制计数
OUT DX,AL ;写入通道2方式字
MOVDX,322H
MOVAX,20000
OUT DX,AL ;写入通道2初值低8位
MOVAL,AH
OUT DX,AL ;写入通道2初值高8位
4.8253在PC机中的应用
IBMPC/XT机中使用了1个8253,系统中8253的端口地址为40H~43H,3个通道的时钟输入频率为1.19 318 MHz(系统时钟PCLK的二分频)。3个计数通道分别用于日时钟计时,DRAM刷新定时和扬声器的音调控制。8253在PC/XT机中的定时逻辑如图8-15所示。图8-158253在PC/XT中的应用上电后BIOS对8253计数器0的初始化程序段为:
MOVAL,36H ;计数器0的控制字,先写低字节,后写高字节,方式3,二进制计数
OUT 43H,AL ;控制字写入控制口
MOVAL,00H ;计数初值设定为65536
OUT40H,AL ;写入低字节
OUT 40H,AL ;写入高字节上电后系统BIOS对计数器l的初始化程序段为:
MOVAL,54H
;计数器1的控制字,只写低8位,方式2,二进制计数
OUT 43H,AL ;控制字写入控制口
MOVAL,12H ;预置计数初值低8位
OUT 41H,AL ;低8位写入计数器1
3)计数器2
计数通道2的输出加到扬声器上,控制其发声,作为机器的报警信号或伴音信号。门控GATE2接并行接口8255的PB0位,用它控制通道2的计数过程。输出OUT2经一个与门,这个与门受8255的PB1位控制。所以,扬声器可由PB0或PB1分别控制发声。由于8255还要控制其他设备,在控制扬声器发声的程序中要注意保护PB端口原来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电工合金熔炼及热变形工岗前综合素养考核试卷含答案
- 2025年全国计算机等级考试(NCRE)二级C语言试题与答案
- 2025年上半年教师资格考试《小学综合素质》真题及答案解析
- 2025年教师资格证考试真题及答案解析(全科汇-总)
- 2025年初级会计资格考试真题及答案
- 2026年秋季开学高三瓶颈突破心理减压课件
- 2026年秋季开学大学就业形势党团活动课件
- 2025计算机二级wps考试题库及答案
- 2026浙江省烟草招聘考试(申论)历年参考题库含答案详解3卷
- 2026浙江教师招聘考试(数学)历年参考题库含答案详解3卷
- 江西新华发行集团有限公司招聘笔试题库2026
- 电子制造技术
- 北森行测题库及答案2026
- 文书模板-单位无法派出足够的人员参加培训情况说明
- 智能灌溉自动化灌溉设备运行管理方案
- 第四版国际压力性损伤溃疡预防和治疗临床指南解读 4
- 2024年压力性损伤诊疗及护理规范
- GB/T 45845.1-2025智慧城市基础设施整合运营框架第1部分:全生命周期业务协同管理指南
- 合作种植天麻协议书
- 唐宋八大家文学精讲
- 小麦种植技术试题及答案
评论
0/150
提交评论