微机原理与接口技术.doc_第1页
微机原理与接口技术.doc_第2页
微机原理与接口技术.doc_第3页
微机原理与接口技术.doc_第4页
微机原理与接口技术.doc_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

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

文档简介

第9章 定时/计数技术 本章重点l Intel 8253的基本功能、工作方式和初始化编程l 8253的应用9.1 定时与计数定时的方法有3种:软件定时、不可编程的硬件定时和可编程的定时。1.软件定时根据CPU执行每条指令需要一定的时间,重复执行一些指令就会占用一段固定的时间,通过适当地选取指令和循环次数便很容易实现定时功能,这种方法不需要增加硬件,可通过编程来控制和改变定时时间,灵活方便,节省费用。2.不可编程的硬件定时这种方法采用数字电路中的分频器将系统时钟进行适当的分频产生需要的定时信号;也可以采用单稳电路或简易定时电路(如常用的555定时器)由外接RC电路控制定时时间。3.可编程的定时在微机系统中,常采用软件、硬件相结合的方法,用可编程定时计数器芯片构成一个方便灵活的定时计数电路。这种电路不仅定时值和定时范围可用程序确定和改变,而且具有多种工作方式,可以输出多种控制信号,它由微处理器的时钟信号提供时间基准,故计时也精确稳定。Intel 8253定时器/计数器就是这样一种可编程序间隔定时器芯片。9.2 Intel 8253可编程定时器/计数器9.2.1 8253的基本功能和内部结构1.8253 PIT的基本功能(1)3个独立的16位计数器,最大计数范围为065535;(2)每个计数器均可以按二进制或二十进制计数;(3)计数器速率可达2MHz;(4)可编程6种不同的工作方式;(5)所有输入和输出都与TTL兼容。8253具有较好的通用性和使用灵活性,几乎适合于任何一种微处理器组成的系统。2.8253的内部结构8253的内部结构如图9.1所示,由数据总线缓冲器、控制寄存器、读/写控制逻辑和计数器等部分组成。图9.1 8253的内部结构示意图(1)数据总线缓冲器该缓冲器为8位双向三态的缓冲器,8根数据线D0D7可直接挂在CPU数据总线上。(2)读/写控制逻辑它是8253内部操作的控制部分,它决定三个计数器和控制字寄存器中哪一个能进行工作,并控制内部总线上数据传送的方向。(3)控制字寄存器接收从CPU来的控制字,并由控制字的D7、D6位的编码决定该控制字写入哪个计数器的控制寄存器,控制寄存器只能写入,不能读出。(4)计数器8253有3个独立的计数器通道,每个通道的结构完全相同,如图9.2所示。每一个通道有一个16位减法计数器,还有对应的16位初值寄存器和输出锁存器。每个计数器都可以对其CLK输入端输入的脉冲按照二进制或BCD码从预置的初值开始进行减1计数,当减至0时,从OUT端输出一个信号。计数的开始由软件启动或硬件门控信号GATE控制。计数开始前写入的计数初值存于初值寄存器。计数过程中,减法计数器的值不断递减,而初值寄存器中的初值不变。输出锁存器则用于写入锁存命令时锁定当前计数值。图9.2 计数器内部逻辑图内部总线9.2.2 8253的引脚信号8253是一片具有3个独立通道的16位计数器/定时器芯片,使用单一+5V电源,24引脚双列直插式封装,如图9-3所示。图9.3 8253 PIT管脚图1与CPU的接口信号(1)D0D7三态双向数据线。与CPU数据总线相连,用于传递CPU与8253之间的数据信息、控制信息和状态信息。(2)片选信号(Chip Select),输入,低电平有效。表示8253被选中,允许CPU对其进行读/写操作。通常连接I/O端口地址译码电路输出端。(3)写信号,输入,低电平有效,用于控制CPU对8253的写操作,可与A1,A0信号配合以决定是写入控制字还是计数初值。(4)读信号,输入,低电平有效。用于控制CPU对8253的读操作,可与A1,A0信号配合读取某个计数器的当前计数值。(5)A0,A1地址输入线。用于8253内部寻址的4个端口,即3个计数器和一个控制字寄存器。一般与CPU低位的地址线相连。如果8253与8位数据总线的微机相连,只要将A1A0分别与地址总线的最低两位A1A0相连即可。比如,在以8088为CPU的PC/XT机中,地址总线高位部分(A9A4)用于I/O端口译码,形成选择各I/O芯片的片选信号,低位部分(A3A0)用于各芯片内部端口的寻址。若8253的端口基地址为40H,则通道0,1,2和控制字寄存器端口的地址分别为40H,41H,42H和43H。如果系统采用的是8086CPU,则数据线总线为16位。CPU在传送数据时,总是将低8位数据送往偶地址端口,将高8位数据送到奇地址端口。当仅具有8位数据总线的存储器或I/O接口芯片与8086的16位数据总线相连时,既可以连到高8位数据总线,也可以接在低8位数据总线上。在实际设计系统时,为了方便起见,常将这些芯片的数据线D7D0接到系统数据总线的低8位,这样,CPU就要求芯片内部的各个端口都使用偶地址。2.与外部设备的接口信号CLK0(CLK1,CLK2)时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。GATE0(GATE1,GATE2)门控输入端,用于外部控制计数器的启动或停止计数的操作。OUT0(OUT1,OUT2)计数输出端。在不同工作方式中,当计数器计数到0时,OUT引脚上必输出相应的信号。9.2.3 8253的工作方式8253是一种面向微机系统的专用接口芯片,它的每一个计数器都可以按照控制字的规定有6种不同的工作方式,如下所述。1方式0计数结束时中断方式(Interrupt on Terminal Count)方式0的工作时序如图9.4所示。图中,CW表示8253的控制字,LSB表示低8位计数值。如果是16位计数方式,则还有高8位计数值MSB。(1)计数过程当写入方式0控制字后,OUT立即变为低电平,并且在计数过程中一直维持低电平。若GATE=1,写入初值后,在信号上升沿之后的下一个CLK脉冲计数值装入计数器,并开始计数,计数器减到零时,OUT输出变为高电平,且一直保持到该通道重新装入计数值或重新设置工作方式为止,此信号可用于申请中断。按方式0计数时,计数器只计一遍。(2)GATE信号的影响门控信号GATE可以用来控制计数过程,GATE为高电平,允许计数;GATE为低电平,暂停计数;当GATE重新为高电平时又恢复计数。(3)新的初值对计数过程的影响方式0是写一次计数值,计一遍数,计数器不会自动重装初值重新开始计数。如果在计数过程中写入新的计数初值,则在写入新值后的下一个时钟下降沿计数器将按新的初值计数,即新的初值是立即有效的。CW=10H LSB=4WRCLKGATEOUT43210FF(a) 方式0正常计数CW=10H LSB=3WRCLKGATEOUT32221(b) 方式0GATE信号的作用0CW=10H LSB=3 LSB=2WRCLKGATEOUT32121FF(c) 方式0计数过程中改变计数值0图9.4 方式0波形图2方式1可编程单稳态触发器(Programmable Oneshort)方式1的工作波形如图9.5所示。这种方式由外部门控信号GATE上升沿触发,使输出端变为低电平,产生一单拍负脉冲信号,脉冲宽度由计数值决定。CW=12H LSB=3WRCLKGATEOUT32103(a) 方式1正常计数FF2CW=12H LSB=3WRCLKGATEOUT32131(b) 方式1GATE信号的作用20CW=12H LSB=2 LSB=4WRCLKGATEOUT2104(c) 方式1计数过程中改变计数值FE3FF图9.5 方式1波形图(1)计数过程写入控制字后,OUT输出为高电平。写入计数初值N后,计数器并不开始计数,而要等到GATE上升沿后的下一个CLK输入脉冲的下降沿,OUT输出变低,计数才开始。计数结束时,OUT输出变高,从而产生一个宽度为N个CLK周期的负脉冲。(2)GATE信号的影响方式1中,GATE信号的作用可从两个方面进行说明。第一,在计数结束后,若再来一个GATE信号上升沿,则下一个时钟周期的下降沿又从初值开始计数,而不需要重新写入初值,即门控信号可重新触发计数。第二,在计数过程中,若来一个门控信号的上升沿,也在下一个时钟下降沿从初值起重新计数,即终止原来的计数过程,开始新的一轮计数。(3)新的初值对计数过程的影响如果在计数过程中写入新的初值,不会立即影响计数过程。只有下一个门控信号到来后的第一个时钟下降沿,才终止原来的计数过程,按新值开始计数。若计数结束前没有GATE触发信号,则原来计数过程正常结束。即新的初值下次有效。3方式2速率发生器、分频器(Rate Generator)方式2的工作波形如图9.6所示。这种方式的功能如同一个N分频计数器,输出是输入时钟按照计数值N分频后的一个连续脉冲。CW=14H LSB=3WRCLKGATEOUT321321(a) 方式2正常计数3WRCLKGATEOUTCW=14H LSB=3322321(b) 方式2GATE信号的作用3CW=14H LSB=4 LSB=5WRCLKGATEOUT4321543图9.6 方式2波形图(c)方式2-计数过程中改变计数值(1)计数过程写入控制字后的时钟上升沿,输出端OUT变成高电平。若GATE=1,写入计数初值后的第一个时钟下降沿开始减1计数。减到1时,输出端OUT变为低电平,减到0时,输出OUT又变成高电平,从初值开始新的计数过程,,即方式2能自动重装初值,输出固定频率的脉冲。因此若装入计数初值为N,则OUT引脚上每隔N个时钟脉冲就输出一个负脉冲,其频率为输入时钟脉冲频率的1/N,故方式2也称为分频器。(2)GATE信号的影响方式2中,GATE信号为低电平终止计数,而由低电平恢复为高电平后的第一个时钟下降沿重新从初值开始计数。由此可见,GATE一直维持高电平时,计数器方能作为一个N分频器。(3)新的初值对计数过程的影响如果在计数过程中写入新的初值,且GATE信号一直维持高电平,则新的初值不会立即影响当前的计数过程,但在计数结束后的下一个计数周期将按新的初值计数,即新的初值下次有效。4方式3方波发生器(Square Wave Generator)方式3的工作波形如图9.7所示。(a) 方式3计数值为偶数时的波形CW=16H LSB=4WRCLKGATEOUT4321432143(b) 方式3计数值为奇数时的波形CW=16H LSB=5WRCLKGATEOUT5432154321(c) 方式3GATE信号的作用CW=16H LSB=4WRCLKGATEOUT4321444321CW=16H LSB=5 LSB=4WRCLKGATEOUT5432143(d)方式3计数过程中改变计数值图9.7 方式3波形图(1)计数过程方式3的计数过程按计数初值的不同分为两种情况:计数初值为偶数。写入控制字后的时钟上升沿,输出端OUT变成高电平。若GATE=1,写入计数初值后的第一个时钟下降沿开始减1计数。减到N/2时,输出端OUT变为低电平;减到0时,输出端OUT又变成高电平,并重新从初值开始新的计数过程。可见,输出端OUT的波形是连续的完全对称的方波,故称方波发生器。计数初值为奇数。写入控制字后的时钟上升沿,输出端OUT变成高电平。若GATE=1,写入计数初值后的第一个时钟下降沿开始减1计数,减到(N+1)/2以后,输出端OUT变为低电平;减到0时,输出端OUT又变成高电平,并重新从初值开始新的计数过程。这时输出波形的高电平宽度比低电平宽度多一个时钟周期,为连续的近似方波。(2)GATE信号的影响GATE=1,允许计数,GATE=0,禁止计数,如果在输出端OUT为低电平期间,GATE变低,则OUT将立即变高,并停止计数。当GATE变高以后,计数器重新装入初值并重新开始计数。(3)新的初值对计数过程的影响如果在计数过程中写入新的初值,而GATE信号一直维持高电平,则新的初值不会立即影响当前的计数过程,只有在计数结束后的下一个计数周期,才按新的初值计数。若写入新的初值后,遇到门控信号的上升沿,则终止现行计数过程,从下一个时钟下降沿开始按新的初值进行计数。5方式4软件触发选通方式(Software Triggered Strobe)方式4的工作波形如图9.8所示。图9.8 方式4波形图CW=18H LSB=3WRCLKGATEOUT3210(a) 方式4正常计数FF(b) 方式4GATE信号的作用CW=18H LSB=3WRCLKGATEOUT333201(c)方式4计数过程中改变计数值2110CW=18H LSB=3 LSB=2WRCLKGATEOUTFF32(1)计数过程写入方式控制字后,OUT输出高电平。若GATE=1,写入初值的下一个CLK脉冲开始减1计数,计数到达0值(注意:不是减到1),OUT输出为低电平,持续一个CLK脉冲周期后再恢复到高电平。方式4之所以称为软件触发选通方式,是因为计数过程是由软件把计数初值装入计数寄存器来触发的,计数初值n仅一次有效。若要继续计数,则需重新装入初值。(2)门控信号的影响GATE=1,允许计数;GATE信号变低,禁止计数,输出维持当时的电平,直到GATE变成高电平后继续计数,从OUT端输出一个负脉冲。(3)新的初值对计数过程的影响在计数过程中改变计数值,则在写入新值后的下一个时钟下降沿计数器将新的初值计数,即新值是立即有效的。6方式5硬件触发选通方式(Hardware Triggered Strobe)方式5的工作波形如图9.9所示。图9.9 方式5波形图CW=1AH LSB=3WRCLKGATEOUT32103(a) 方式5正常计数FF(b) 方式5GATE信号的作用3CW=1AH LSB=3WRCLKGATEOUT2321FF03210CW=1AH LSB=3 LSB=4WRCLKGATEOUTFF(c)方式5计数过程中改变计数值4 3(1)计数过程写入控制字后,输出OUT即为高电平。写入计数初值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发。计数结束(计数器减到0)时输出一个持续时间为一个TCLK的负脉冲,然后输出恢复为高电平。直到GATE信号再次触发。(2)门控信号的影响若在计数过程中,又有一个门控信号的上升沿,则立即终止当前的计数过程,且在下一个时钟下降沿,又从初值开始计数,如果计数过程结束后,来一个门控上升沿,计数器也会在下一个时钟下降沿,又从初值开始减1计数,即门控信号上升沿任何时候到来都会立即触发一个计数过程。(3)新的初值对计数过程的影响如果在计数过程中写入新的初值,则新的初值不会立即影响当前的计数过程,只有到下一个门控信号上升沿到来后,才从新的初值开始减1计数。即新的计数初值在下一个门控信号上升沿触发后有效。9.2.4 8253的控制字与初始化编程18253的控制字8253的控制字有4个主要功能* 选择计数器;* 确定计数器数据的读写格式;* 确定计数器的工作方式;* 确定计数器计数的数制。控制字的格式如图9.10所示D7D6D5D4D3D2D1D0计数器读/写格式工作方式数制0二进制1二-十进制(BCD)000方式0001方式110方式211方式3100方式4101方式500计数器锁存命令10只读/写高8位01只读/写低8位11先读/写低8位 后读/写高8位00选择计数器001选择计数器110选择计数器211非法选择图9.10 8253控制字格式注:图中可以是0,也可以是1,一般取0(1) 计数器选择(D7D6)控制字的最高两位决定这个控制字是哪一个通道的控制字。由于3个通道的工作是完全独立的,所以需要有3个控制寄存器分别规定相应通道的工作方式。但它们的地址是同一个,即A1A0=11(控制字寄存器的地址)。所以需要由这2位来决定是哪一个通道的控制字。注:控制字中的计数器选择与通道计数器的地址是两个概念,通道计数器是用作CPU向计数器写初值,或从计数器读取计数的当前值。(2)读/写格式(D5D4)CPU向计数通道写入初值和读取它们的当前状态时,有几种不同的格式。例如,写数据时,是写入8位数据还是16位数据。若是8位计数,可以令D5D4=01只写低8位,则高8位自动置0;若是16位计数,而低8位为0,则可令D5D4=10,只写入高8位,低8位就自动为0;令D5D4=11,则先写入低8位,后写入高8位;令D5D4=00,则把当前计数值锁存,以后再读取。(3)工作方式(D3D2 D1)8253的每个通道可以有6种不同的工作方式,由D3D2 D1这3位决定。(4)数制选择(D0)8253的每个通道都有两种计数制:二进制和二十进制(BCD码)计数,由D0位决定。在二进制时,写入初值的范围为0000HFFFFH,其中0000H是最大值,代表65536。在二十进制时,写入初值范围为00009999,其中0000代表最大值10000。因为计数器是先减1,再判断是否为0,所以写入0实际代表最大计数值。28253的初始化编程刚接通电源时,诸如8253之类的可编程外围接口芯片通道都处于未定义状态,在使用之前,必须用程序把它们初始化为所需的特定模式,这个过程称为初始化编程。对8253芯片进行初始化编程时,需按下列步骤进行:(1)写入控制字(2)写入计数初值8253工作过程中,CPU可用输入指令读取任一通道的计数值。CPU读到的是执行输入指令瞬间计数器的当前值。但8253的计数器是16位,所以要分2次读至CPU。因此,若不锁存的话,在前后两次执行输入指令的过程中,计数值可能已经变化了。锁存当前计数值有下面两种方法:利用GATE信号使计数过程暂停。向8253写入一个方式控制字,令8253通道的锁存器锁存。8253的每个通道都有一个16位锁存器,平时它的值随着通道计数器的值变化。当向通道写入锁存的控制字时,它把计数器的当前值锁存(计数器可继续计数),于是CPU读取的就是锁存器的值。当对计数器重新编程,或读取计数值后,自动解除锁存状态,它的值又随计数器变化。在计数初值写入8253后,还要经过一个时钟脉冲的上升沿和下降沿,才能将计数初值装入实际的计数器,然后在门控信号GATE的控制下,对从CLK引脚输入的脉冲进行递减计数。9.2.5 8253应用举例18253定时功能的应用在计算机应用中,经常会遇到隔一定时间重复某一个动作的应用。例9-1设某应用系统中,系统提供一个频率为10kHz的时钟信号,要求每隔100ms采集一次数据。在系统中,采用8253定时器的通道0来实现这一要求。将8253芯片的CLK0接到系统的10kHz时钟上,OUT0输出接到CPU的中断请求线上,8253的端口地址为10H13H,如图9.11所示。图9.11 8253用于定时中断中断请求信号CPU总线OUT0(1)选择工作方式由于系统每隔100ms定时中断一次,则采样频率为10Hz,可选用方式2来实现。当8253定时器工作在方式2时,在写入控制字与计数初值后,定时器就启动工作,每到100ms时间,即计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,CPU在中断服务程序中完成数据采集,同时按原设定值重新开始计数,实现了计数值的自动重装。(2)确定计数初值已知fCLK0=10kHz,则TCLK0=0.1ms,所以,计数初值N=TOUT0/TCLK0=100ms/0.1ms=1000=03E8H(3)初始化编程根据以上要求,可确定8253通道0的方式控制字为00110100B,即34H。初始化程序段如下:MOV AL,34H;通道0,16位计数,方式2,二进制计数OUT 13H,AL;写入方式控制字到控制字寄存器MOV AL, 0E8H; 计数初值低8位OUT 10H,AL;写入计数初值低8位到通道0MOV AL, 03H; 计数初值高8位OUT 10H,AL;写入计数初值高8位到通道028253计数功能的应用例9-2通过PC机系统总线在外部扩展一个8253,利用其通道0记录外部

温馨提示

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

最新文档

评论

0/150

提交评论