计数定时控制器_第1页
计数定时控制器_第2页
计数定时控制器_第3页
计数定时控制器_第4页
计数定时控制器_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

9计数/定时控制器1/12/20231可编程计数/定时控制器8253定时控制在微机系统中极为重要定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔计数电路记录外设提供的具有一定随机性的脉冲信号时,主要反映脉冲的个数,又称为计数器定时功能的实现方法软件延时——利用微处理器执行一个延时程序段实现不可编程的硬件定时——采用分频器、单稳电路或简易定时电路控制定时时间可编程的硬件定时——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路1/12/202328253/8254定时计数器8253可与8086/8088CPU相连构成完整的定时、计数或脉冲发生器系统。3个独立的16位计数器通道每个计数器有6种工作方式按二进制或十进制(BCD码)计数1/12/202338253的内部结构和引脚D7~D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT21/12/202341.数据总线缓冲存储器 是8253与CPU之间的数据接口,由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。2.读/写控制电路 接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。

可接收的控制信号如下:

(1)A1A0——端口选择信号,由CPU输入。8253内部有3个独立的通道和一个控制字寄存器,它们构成8253芯片的4个端口,CPU可对3个通道进行读/写操作,对控制字寄存器进行写操作。这4个端口地址由最低2位地址码A1A0来选择。A1A0=00通道0A1A0=01通道1A1A0=10通道2A1A0=11控制字寄存器1/12/20235

(2)CS*——片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。

CS*A1A0I/O地址读操作RD*写操作WR*00000101001140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字(3)RD*、WR*——读/写控制命令,由CPU输入,低电平有效。RD*有效时,CPU读取由A1A0所选定的通道内计数器的内容。WR*有效时,CPU将计数值写入各个通道的计数器中,或者是将方式控制字写入控制字寄存器中。

1/12/202363.通道0~通道28253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时,最大计数值是FFFFH采用BCD码计数时,最大计数值是9999每个通道内设有一个16位计数值锁存器,可用来锁存计数值。当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中,被计数的事件应以脉冲方式从CLKi端输入,每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”,OUTi端将有输出,表示计数次数到。当某通道用作定时器时,由CLKi输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值,并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”,待计数值计到“0”,OUTi将有输出,表示定时时间到。允许从CLKi输入的时钟频率在1~2MHz范围内。1/12/20237任一通道作计数器用或作定时器用,其内部操作完全相同,区别在于前者是由计数脉冲进行减“1”计数,而后者是由时钟脉冲进行减“1”计数。作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:

定时系数=要求定时的时间/时钟脉冲的周期4.控制字寄存器

控制字寄存器用来存放由CPU写入8253的方式选择控制字,由它来定义8253中各通道的工作方式,其使用格式如下图所示。1/12/202381/12/20239SC1,SC0位用来选择通道。RL1,RL0位用来定义对所选通道中的计数器的操作RL1RL0=00时,将该通道中当前计数器的内容锁存到锁存器中,为CPU读取当前计数值作准备。RL1RL0=01时,表示只读/写计数器低字节,这是因为只使用计数器的低字节作计数用。RL1RL0=10时,表示只读/写计数器高字节,这是因为只使用计数器的高字节作计数用。RL1RL0=11时,表示先读/写计数器低字节,后读/写计数器高字节。BCD位用来定义是采用二进制计数还是十进制计数M2M1M0位用来定义所选通道的6种工作方式。1/12/202310计数器结构示意图预置寄存器GATECLKOUT减1计数器输出锁存器计数初值存于预置寄存器;在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值1/12/202311计数器的3个引脚CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号——控制计数器工作,可分成电平控制和上升沿控制两种类型

GATE作为各通道的门控信号,对于各种不同的工作方式,它所起的作用各不相同。在8253的应用中,必须正确使用GATE信号,才能保证各通道的正常操作。OUT计数器输出信号——当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号1/12/2023128253/8254的工作方式8253有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式每种工作方式的过程类似:⑴设定工作方式⑵设定计数初值〔⑶硬件启动〕⑷计数初值进入减1计数器⑸每输入一个时钟计数器减1的计数过程⑹计数过程结束1/12/202313方式0计数结束产生中断这是典型的事件计数用法,当计数单元的内容为0时,OUT信号变为高电平。利用OUT由低电平到高电平的变化作为计数/定时到的中断请求信号。所以,方式0称为计数/定时到达终值时的中断方式。1/12/202314方式0计数结束产生中断①②⑤④⑥GATEOUTCLK

031244方式0WR①设定工作方式②设定计数初值④计数值送入计数器⑤计数过程⑥计数结束1/12/202315方式0计数结束产生中断门控信号GATE用来控制减“1”计数操作是否进行当GATE=1时,允许减“1”计数;GATE=0时,禁止减“1”计数。计数到时,OUTi将输出正跳变可用作中断请求OUTi端输出的高电平一直维持到下次再写入计数值为止。1/12/202316利用工作方式0既可完成计数功能,也可完成定时功能。当用作计数器时,应将要求计数的次数预置到计数器中,将要求计数的事件以脉冲方式从CLKi端输入,由它对计数器进行减“1”计数,直到计数值为0,此刻OUTi输出正跳变,表示计数次数到。当用作定时器时,应把根据要求定时的时间和CLKi的周期计算出定时系数,预置到计数器中。从CLKi输入的应是一定频率的时钟脉冲,由它对计数器进行减“1”计数,定时时间从写入计数值开始,到计数值计到“0”为止,OUTi输出正跳变,表示定时时间到。1/12/202317任一通道工作在方式0情况下,计数器初值一次有效,经过一次计数或定时后如果需要继续完成计数或定时功能,必须重新写入计数器的初值。1/12/202318方式1可编程单脉冲发生器①②⑤④⑥①设定工作方式②设定计数初值③③硬件启动④计数值送入计数器⑤计数过程⑥计数结束GATEOUTCLK

031244方式1WR1/12/202319方式1可编程单脉冲发生器OUTi输出高电平计数过程的启动:计数值N装入后:GATE出现一个上升沿OUTi输出由高电平向低电平跳变,形成输出单脉冲的前沿计数值计到“0”OUTi输出由低电平向高电平跳变,形成输出单脉冲的后沿由方式1所能输出单脉冲的宽度为CLKi周期的n倍。1/12/202320注:如果在减“1”计数过程中,GATE由高电平跳变为低电平,这并不影响计数过程,仍继续计数;但若重新遇到GATE的上升沿,则从初值开始重新计数,其效果会使输出的单脉冲加宽。方式1下,计数值一次有效,每输入一次计数值,只产生一个负极性单脉冲。1/12/202321方式2频率发生器(分频器)03124GATEOUTCLK

4方式2031240312403124WR1/12/202322方式2频率发生器(分频器)进入工作方式2,OUTi输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUTi保持为高电平不变;待计数值减到“1”和“0”之间,OUTi将输出宽度为一个CLKi周期的负脉冲计数值为“0”时,自动重新装入计数初值n,实现循环计数OUTi将输出一定频率的负脉冲序列,其脉冲宽度固定为一个CLKi周期,重复周期为CLKi周期的n倍。1/12/202323如果在减“1”计数过程中,GATE变为无效(输入0电平),则暂停减“1”计数,待GATE恢复有效后,从初值n开始重新计数。如果在操作过程中要求改变输出脉冲的速率,CPU可在任何时候,重新写入新的计数值,它不会影响正在进行的减“1”计数过程,而是从下一个计数操作周期开始按新的计数值改变输出脉冲的速率。1/12/202324方式3方波发生器03124GATEOUTCLK

4方式3031240312403124WR1/12/202325方式3方波发生器任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1∶1的方波。进入工作方式3,OUTi输出低电平,装入计数值n后,OUTi立即跳变为高电平。如果当前GATE为高电平,则立即开始减“1”计数,OUTi保持为高电平,若n为偶数,则当计数值减到n/2时,OUTi跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUTi端输出的周期为n×CLKi周期,占空比为1∶1的方波序列;若n为奇数,则OUTi端输出周期为n×CLKi周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。1/12/202326如果在操作过程中,GATE变为无效,则暂停减“1”计数过程,直到GATE再次有效,重新从初值n开始减“1”计数。如果要求改变输出方波的速率,则CPU可在任何时候重新装入新的计数初值n,并从下一个计数操作周期开始改变输出方波的速率。1/12/202327方式4软件触发方式GATEOUTCLK031244方式42233310WR1/12/202328方式4软件触发方式进入工作方式4,OUTi输出高电平。装入计数值n后,如果GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUTi输出宽度为一个CLKi周期的负脉冲。由软件装入的计数值只一次有效,如果要继续操作,必须重新置入计数初值n。如果在操作过程中,GATE变为无效,则停止减“1”计数,到GATE再次有效时,重新从初值开始减“1”计数。1/12/202329利用这种工作方式可以完成定时功能,定时时间从装入计数值n开始,OUTi输出负脉冲表示定时时间到,其定时时间=n×CLK周期。这种工作方式也可完成计数功能,它要求计数的事件以脉冲的方式从CLKi输入,将计数次数作为计数初值装入后,由CLKi端输入的计数脉冲进行减“1”计数,直到计数值为“0”,由OUTi端输出负脉冲(表示计数次数到)。当然也可利用OUTi向CPU发出中断请求。因此工作方式4与工作方式0很相似,只是方式0在OUTi端输出正阶跃信号、方式4在OUTi端输出负脉冲信号。1/12/202330方式5硬件触发方式GATEOUTCLK031244方式522333110WR1/12/202331方式5硬件触发方式进入工作方式5,OUTi输出高电平,硬件触发信号由GATE端引入。 因此,开始时GATE应输入为0,装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”,OUTi将输出负脉冲,其宽度固定为一个CLKi周期,表示定时时间到或计数次数到。这种工作方式下,当计数值计到“0”后,系统将自动重新装入计数值n,但并不开始计数,一定要等到由GATE端引入的正跳沿,才会开始进行减“1”计数。1/12/202332这是一种完全由GATE端引入的触发信号控制下的计数或定时功能。如果由CLKi输入的是一定频率的时钟脉冲,那么可完成定时功能,定时时间从GATE上升沿开始,到OUTi端输出负脉冲结束。如果从CLKi端输入的是要求计数的事件,则可完成计数功能,计数过程从GATE上升沿开始,到OUTi输出负脉冲结束。如果需要改变计数初值,CPU可在任何时候用输出指令装入新的计数初值m,它将不影响正在进行的操作过程,而是到下一个计数操作周期才会按新的计数值进行操作。1/12/202333各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2

N/20/N0N01N01N011/12/2023348253/8254的编程8253加电后的工作方式不确定8253必须初始化编程,才能正常工作写入方式控制字D7D6D5D4D3D2D1D0写入控制字写入计数初值读取计数值1/12/2023351写入方式控制字计数器读写格式工作方式数制D7D6D5D4D3D2D1D000计数器001计数器110计数器211非法00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节000方式0001方式1010方式2011方式3100方式4101方式50二进制1十进制1/12/2023362写入计数值选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:0000~99990000代表最大值100001/12/2023373读取计数值对8位数据线,读取16位计数值需分两次读取计数值,要注意读写格式和计数数制计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8253写入锁存命令从计数器I/O地址:读取锁存的计数值1/12/2023388253计数/定时控制器应用举例例如,某8086系统中包含一片8253芯片,要求完成如下功能:利用通道0完成对外部事件计数功能,计满100次向CPU发出中断请求。利用通道1产生频率为1kHz的方波。利用通道2作标准时钟。1/12/2023391/12/2023408253的数据线(D7~D0)固定与8086CPU的高8位数据线(D15~D8)相连。图9.24中8253的端口地址码(A1A0)与8086CPU的A2A1相连,而8086的A0固定为“1”参加高位地址译码,以形成对8253的片选信号CS,以保证CPU访问8253的端口地址均为奇地址。根据图9.24的连接方式和对系统的要求:通道0定义为工作方式0,完成计数功能,其计数值为100=64H通道1应定义为工作方式3,输出频率为1kHz的方波,从CLK1输入2.5MHz的时钟脉冲,其重复周期为0.4μs,而输出方波的周期应为1ms。因此,通道1的计数初值应为2500=09C4H。通道2应定义为方式0,完成定时功能,每秒钟利用OUT2向CPU发出一次中断请求,由输入时钟频率为1kHz,计数初值应为1000。1/12/202341为完成上述功能,所需

温馨提示

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

评论

0/150

提交评论