计算机专接本之微机原理-9.可编程计数器8253_第1页
计算机专接本之微机原理-9.可编程计数器8253_第2页
计算机专接本之微机原理-9.可编程计数器8253_第3页
计算机专接本之微机原理-9.可编程计数器8253_第4页
计算机专接本之微机原理-9.可编程计数器8253_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、1第九章第九章 可编程计数可编程计数/定时器定时器825329.1 可编程计数可编程计数/定时控制器定时控制器8253定时控制在微机系统中极为重要定时控制在微机系统中极为重要 定时器定时器由数字电路中的计数电路构成,通过记录高精度晶由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔振脉冲信号的个数,输出准确的时间间隔 计数电路记录外设提供的具有一定随机性的脉冲信号时,计数电路记录外设提供的具有一定随机性的脉冲信号时,主要反映脉冲的个数(进而获知外设的某种状态)主要反映脉冲的个数(进而获知外设的某种状态),又称又称为为计数器计数器。定时功能的实现方法定时功能的实现方

2、法 软件延时软件延时利用微处理器执行一个延时程序段实现利用微处理器执行一个延时程序段实现。 不可编程的硬件定时不可编程的硬件定时采用分频器、单稳电路或简易定采用分频器、单稳电路或简易定时电路控制定时时间时电路控制定时时间。 可编程的硬件定时可编程的硬件定时软件硬件相结合、用可编程定时器软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路芯片构成一个方便灵活的定时电路。38253定时计数器定时计数器 8253可与可与8086/8088CPU相连构成完整的相连构成完整的定时定时、计数计数或或脉脉冲发生器冲发生器系统。系统。 3个独立的个独立的16位计数器通道位计数器通道 每个计数器有每个计

3、数器有6种工作方式种工作方式 按二进制或十进制(按二进制或十进制(BCD码)计数码)计数8254是是8253的改进型的改进型49.28253的内部结构和引脚的内部结构和引脚D7D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT251. 数据总线缓冲存储器数据总线缓冲存储器是是8253与与CPU之间的数据接口,由之间的数据接口,由8位双向三态缓冲存储器构位双向三态缓冲存储器构成,是成,是CPU与与8253之间交换信息的必经之路。之间交换信息的必经之路。2. 读读/写控制电路

4、写控制电路接收接收CPU送入的读送入的读/写控制信号,并完成对芯片内部各功能部件写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是的控制功能,因此,它实际上是8253芯片内部的控制器。芯片内部的控制器。 可接收的控制信号如下: (1) A1A0端口选择信号端口选择信号,接受接受CPU送来的地址信号送来的地址信号。8253内内部有部有3个独立的通道和一个控制字寄存器个独立的通道和一个控制字寄存器,它们构成,它们构成8253芯片的芯片的4个端个端口口,CPU可对可对3个通道进行读个通道进行读/写操作,对控制字寄存器进行写操作。写操作,对控制字寄存器进行写操作。这这4个端口地址由最低

5、个端口地址由最低2位地址码位地址码A1A0来选择。来选择。A1A0 = 00 通道0A1A0 = 01 通道1A1A0 = 10 通道2A1A0 = 11 控制字寄存器6(2) CS*片选信号片选信号,输入,低电平有效,通常由端口地址的高位,输入,低电平有效,通常由端口地址的高位地址译码形成。地址译码形成。 (3) RD*、WR*读读/写控制命令写控制命令,输入,低电平有效。,输入,低电平有效。RD*有有效时,效时,CPU读取由读取由A1A0所选定的通道内计数器的内容。所选定的通道内计数器的内容。WR*有效时,有效时,CPU将计数值写入各个通道的计数器中,或者是将方式控制字写入将计数值写入各个

6、通道的计数器中,或者是将方式控制字写入控制字寄存器中。控制字寄存器中。 0 1 0 0 1 0 0 00 00 1 0 0 1 0 0 10 10 1 0 0 1 0 1 01 00 1 0 0 1 0 1 11 10 0 1 0 0 1 0 00 00 0 1 0 0 1 0 10 10 0 1 0 0 1 1 01 0功功 能能对计数器对计数器0 0设置计数初值设置计数初值CSCSRDRDA A1 1A A0 0WRWR对计数器对计数器1 1设置计数初值设置计数初值对计数器对计数器2 2设置计数初值设置计数初值设置控制字设置控制字从计数器从计数器0 0读出计数值读出计数值从计数器从计数器1

7、 1读出计数值读出计数值从计数器从计数器2 2读出计数值读出计数值7采用二进制计数时,最大计数值是采用二进制计数时,最大计数值是FFFFH采用采用BCD码计数时,最大计数值是码计数时,最大计数值是9999每个通道内设有一个每个通道内设有一个16位计数值锁存器,可用来锁存计数值。位计数值锁存器,可用来锁存计数值。当当某通道用作计数器时某通道用作计数器时,应将要求计数的次数预置到该通道,应将要求计数的次数预置到该通道的计数器中,被计数的事件应以脉冲方式从的计数器中,被计数的事件应以脉冲方式从CLKi端输入,端输入,每输入一个计数脉冲,计数器内容减每输入一个计数脉冲,计数器内容减“1”,待计数值计到

8、,待计数值计到“0”,OUTi端将有输出,表示计数次数到。端将有输出,表示计数次数到。当当某通道用作定时器时某通道用作定时器时,由,由CLKi输入一定频率的时钟脉冲。输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值,并预置到计数根据要求定时的时间长短确定所需的计数值,并预置到计数器中,每输入一个时钟脉冲,计数器内容减器中,每输入一个时钟脉冲,计数器内容减“1”,待计数值,待计数值计到计到“0”,OUTi将有输出,表示定时时间到。将有输出,表示定时时间到。允许从允许从CLKi输入的时钟频率在输入的时钟频率在12MHz范围内范围内。计数器计数器8 任一通道任一通道可可作计数器用或作定

9、时器用,其内部操作完全相同,作计数器用或作定时器用,其内部操作完全相同,区别在于前者是由计数脉冲进行减区别在于前者是由计数脉冲进行减“1”“1”计数,而后者是由时计数,而后者是由时钟脉冲进行减钟脉冲进行减“1”“1”计数计数。作计数器时,要求计数的次数可直。作计数器时,要求计数的次数可直接作为计数器的初值预置到接作为计数器的初值预置到减减“1”“1”计数器计数器中。作定时器时,中。作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运算计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:才能得到:定时系数n=要求定时的时间T定时定时/时钟脉冲的周期TCLK控制字寄存器控制

10、字寄存器用来存放由用来存放由CPU写入写入8253的方式选择控制字,由的方式选择控制字,由它来定义它来定义8253中各通道的工作方式,其使用格式如下图所示。中各通道的工作方式,其使用格式如下图所示。98253的方式选择控制字的方式选择控制字108253的方式选择控制字的方式选择控制字-说明说明 SC1,SC0位用来选择通道。位用来选择通道。 RL1,RL0位用来定义对所选通道中的计数器的操作位用来定义对所选通道中的计数器的操作 RL1RL0=00时,将该通道中当前计数器的内容锁存到锁时,将该通道中当前计数器的内容锁存到锁存器中,为存器中,为CPU读取当前计数值作准备。读取当前计数值作准备。 R

11、L1RL0=01时,表示只读时,表示只读/写计数器低字节,这是因为只写计数器低字节,这是因为只使用计数器的低字节作计数用。使用计数器的低字节作计数用。 RL1RL0=10时,表示只读时,表示只读/写计数器高字节,这是因为只写计数器高字节,这是因为只使用计数器的高字节作计数用。使用计数器的高字节作计数用。 RL1RL0=11时,表示先读时,表示先读/写计数器低字节,后读写计数器低字节,后读/写计数写计数器高字节。器高字节。 BCD位用来定义是采用二进制计数还是十进制计数位用来定义是采用二进制计数还是十进制计数 M2M1M0位用来定义所选通道的位用来定义所选通道的6种工作方式。种工作方式。11计数

12、器结构示意图计数器结构示意图预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器n计数初值存于计数初值存于预置寄存器预置寄存器;n在计数过程中,在计数过程中,减法计数器减法计数器的值不断递减,而预置寄存器的值不断递减,而预置寄存器中的预置不变。中的预置不变。n输出锁存器输出锁存器用于写入锁存命令时,锁定当前计数值用于写入锁存命令时,锁定当前计数值12计数器的计数器的3个引脚个引脚l CLK时钟输入信号时钟输入信号在计数过程中,此引脚上每输入一在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减个时钟信号(下降沿),计数器的计数值减1l GATE门控输入

13、信号门控输入信号控制计数器工作,可分成电平控控制计数器工作,可分成电平控制和上升沿控制两种类型制和上升沿控制两种类型。GATE作为各通道的门控信号,对于各种不同的工作作为各通道的门控信号,对于各种不同的工作方式,它所起的作用各不相同。在方式,它所起的作用各不相同。在8253的应用中,必须正的应用中,必须正确使用确使用GATE信号,才能保证各通道的正常操作信号,才能保证各通道的正常操作。l OUT计数器输出信号计数器输出信号当一次计数过程结束(计数值减当一次计数过程结束(计数值减为为0),),OUT引脚上将产生一个输出信号引脚上将产生一个输出信号。139.28253的工作方式的工作方式 8253

14、有有6种工作方式,由方式控制字确定种工作方式,由方式控制字确定 熟悉每种工作方式的特点才能根据实际应用问题,选择正熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式确的工作方式14方式方式0 计数结束产生中断计数结束产生中断l 方方式式0 0称为称为计数/定时到达终值时的中断方式。l 这是典型的事件计数用法,当计数单元的内容为这是典型的事件计数用法,当计数单元的内容为0 0时,时,OUTOUT信号由低电平变为高电平。利用信号由低电平变为高电平。利用OUTOUT由低电平到高电平的由低电平到高电平的变化作为计数变化作为计数/ /定时到的中断请求信号。定时到的中断请求信号。l 计数计数/

15、 /定时过程:定时过程:(1 1)当向计数器)当向计数器写完控制字写完控制字后,输出端后,输出端OUTOUT就变为就变为低电平低电平。写入计数值。写入计数值后延迟一个时钟周期,后延迟一个时钟周期,开始计数开始计数,输出端,输出端OUTOUT在计数过程中一直保持在计数过程中一直保持低电平低电平,当计数器,当计数器减到减到0 0时,时,OUTOUT立即变成立即变成高电平高电平。(2 2)门控信号)门控信号GATEGATE为高电平时,计数器工作;当为高电平时,计数器工作;当GATEGATE变为低电平时,计变为低电平时,计数器停止工作,其计数值保持不变。如数器停止工作,其计数值保持不变。如GATEGA

16、TE再次变高,计数器继续计再次变高,计数器继续计数。数。(3 3)在计数工作期间,如果重新写入新的计数值,计数器按新写入的的)在计数工作期间,如果重新写入新的计数值,计数器按新写入的的计数初值重新工作计数初值重新工作。15方式方式0的几点注意:的几点注意:l 门控信号门控信号GATE用来控制减用来控制减“1”计数操作是否进行计数操作是否进行GATE=1时,允许减时,允许减“1”计数;计数;GATE=0时,禁止减时,禁止减“1”计数。计数。l 计数到时,计数到时,OUTi将输出正跳变将输出正跳变可用作中断请求可用作中断请求OUTi端输出的高电平一直维持到下次再写入计数值为端输出的高电平一直维持到

17、下次再写入计数值为止。止。l 任一通道工作在方式任一通道工作在方式0情况下,情况下,计数器初值一次有效,经,经过一次计数或定时后如果需要继续完成计数或定时功能,过一次计数或定时后如果需要继续完成计数或定时功能,必须重新写入计数器的初值必须重新写入计数器的初值。16方式方式0 计数结束产生中断计数结束产生中断GATEOUTCLK 031244方式方式0WR设设定定工工作作方方式式设设定定计计数数初初值值计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束17方式方式0(演示)(演示)18方式0用作计数器或定时器 利用工作方式0既可完成计数功能,也可完成定时功能。 当用作计数器时,应将

18、要求计数的次数预置到计数器中,将要求计数的事件以脉冲方式从CLKi端输入,由它对计数器进行减“1”计数,直到计数值为0,此刻OUTi输出正跳变,表示计数次数到。 当用作定时器时,应把根据要求定时的时间和CLKi的周期计算出定时系数,预置到计数器中。从CLKi输入的应是一定频率的时钟脉冲,由它对计数器进行减“1”计数,定时时间从写入计数值开始,到计数值计到“0”为止,OUTi输出正跳变,表示定时时间到。19方式1 可编程单脉冲发生器 什么是什么是单脉冲?4个个CLK宽度的负宽度的负脉冲脉冲CLK20方式1 可编程单脉冲发生器计数过程的启动: 写入计数器初值后,计数器并不立即开始工作,直到门控写入

19、计数器初值后,计数器并不立即开始工作,直到门控信号信号GATE出现一个上升沿出现一个上升沿后后。 OUTi输出由高电平向低电平跳变,输出由高电平向低电平跳变,此时开始计数,此时开始计数,并在并在计数过程中一直保持低电平计数过程中一直保持低电平。形成输出单脉冲的前沿形成输出单脉冲的前沿。当此方式设定后此方式设定后:OUTi输出高电平输出高电平计数值计到“0”:OUTi输出由低电平向高电平跳变,形成输出单脉冲的后沿输出由低电平向高电平跳变,形成输出单脉冲的后沿n 由方式1所能输出单脉冲的宽度为CLKi周期的n倍。(n为计数值为计数值)21方式方式1 可编程单脉冲发生器可编程单脉冲发生器设设定定工工

20、作作方方式式设设定定计计数数初初值值硬硬件件启启动动计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束GATEOUTCLK 031244方式方式1WR22方式方式1的几点注意:的几点注意: 如果在减如果在减“1”“1”计数过程中,计数过程中,GATEGATE由高电平跳变为低电平,由高电平跳变为低电平,这这并不影响计数过程,仍继续计数;,仍继续计数;( (触发计数开始的条件触发计数开始的条件是是GATEGATE的上升沿的上升沿) ) 但若重新遇到但若重新遇到GATEGATE的上升沿,则的上升沿,则从初值开始重新计数,其效,其效果会使输出的单脉冲加宽。果会使输出的单脉冲加宽。 方式1

21、下,计数值一次有效,每输入一次计数值,只产生一个负极性单脉冲。仅产生1个负脉冲23方式方式1(演示)(演示)24方式方式2 频率频率发生器(分频器)发生器(分频器)03124GATEOUTCLK 4方式方式2031240312403124WR25方式方式2 频率频率发生器(分频器)发生器(分频器)n 当当工作方式工作方式2设定后设定后:OUTi输出高电平输出高电平。n 计数过程的启动:装入计数值装入计数值n后如果后如果GATE为高电平,则立即开始为高电平,则立即开始计数计数,OUTi保持为高电平不变;保持为高电平不变;n 待计数值减到待计数值减到“1”和和“0”之间之间:OUTi将输出宽度为一

22、个将输出宽度为一个CLKi周期的负脉冲周期的负脉冲。n 计数值为计数值为“0”时时,自动重新装入计数初值,自动重新装入计数初值n,实现循环,实现循环计数计数 OUTi将输出一定频率的负脉冲序列,其脉冲宽度固定为将输出一定频率的负脉冲序列,其脉冲宽度固定为一个一个CLKi周期,重复周期为周期,重复周期为CLKi周期的周期的n倍。倍。26方式方式2的几点注意:的几点注意: 如果在减如果在减“1”计数过程中,计数过程中,GATE变为无效变为无效(输入输入0电平电平),则暂停减则暂停减“1”计数,待计数,待GATE恢复有效后,从初值恢复有效后,从初值n开始开始重新计数。重新计数。 如果在操作过程中要求

23、改变输出脉冲的速率,如果在操作过程中要求改变输出脉冲的速率,CPU可在任可在任何时候,重新写入新的计数值,它不会影响正在进行的减何时候,重新写入新的计数值,它不会影响正在进行的减“1”计数过程,而是从下一个计数操作周期开始按新的计计数过程,而是从下一个计数操作周期开始按新的计数值改变输出脉冲的速率。数值改变输出脉冲的速率。27方式方式2(演示)(演示)28方式方式3 方波发生器方波发生器03124GATEOUTCLK 4方式方式3031240312403124WR 任一通道工作在方式任一通道工作在方式3,在,在计数值计数值n为偶数为偶数时时,则可输出重,则可输出重复周期为复周期为n、占空比为、

24、占空比为1 1的方波。的方波。29n 进入工作方式进入工作方式3,OUTi输出低电平输出低电平。装入计数值装入计数值n后,后,OUTi立即跳变为高电平。立即跳变为高电平。n 计数过程的启动:计数过程的启动:如果当前如果当前GATE为高电平,则立即开始减为高电平,则立即开始减“1”计数,计数,OUTi保持为高电平保持为高电平。若若n为偶数,则当计数值减到为偶数,则当计数值减到n/2时,时,OUTi跳变为低电跳变为低电平,一直保持到计数值为平,一直保持到计数值为“0”,系统才自动重新置入计,系统才自动重新置入计数值数值n,实现循环计数。这时,实现循环计数。这时OUTi端输出的周期为端输出的周期为n

25、CLKi周期,占空比为周期,占空比为1 1的方波序列;的方波序列; 若若n为奇数,则为奇数,则OUTi端输出周期为端输出周期为nCLKi周期,占周期,占空比为空比为(n+1)/2)/(n-1)/2)的近似方波序列。的近似方波序列。方式方式3 方波发生器方波发生器例如,计数初值为例如,计数初值为5,则在前,则在前3个时钟周期个时钟周期OUT为高电平,后为高电平,后2个时钟周期个时钟周期OUT为低电平为低电平30方式方式3的几点注意:的几点注意: 如果在操作过程中,如果在操作过程中,GATE变为无效,则暂停减变为无效,则暂停减“1”计数计数过程,直到过程,直到GATE再次有效,重新从初值再次有效,

26、重新从初值n开始减开始减“1”计计数。数。 如果要求改变输出方波的速率,则如果要求改变输出方波的速率,则CPU可在任何时候重新可在任何时候重新装入新的计数初值装入新的计数初值n,并从下一个计数操作周期开始改变,并从下一个计数操作周期开始改变输出方波的速率。输出方波的速率。31方式方式3(演示)(演示)32方式方式4 软件触发方式软件触发方式GATEOUTCLK031244方式方式42233310WR软件触发软件触发的的单次负脉冲输出单次负脉冲输出称为软件触发,是因为计数过程是由软件把计数初值装入计数器来触发的称为软件触发,是因为计数过程是由软件把计数初值装入计数器来触发的33方式方式4 软件触

27、发方式软件触发方式n 进入工作方式进入工作方式4:OUTi输出高电平。输出高电平。n 计数过程的启动:计数过程的启动:装入计数值装入计数值n后,如果后,如果GATE为高电平,则立即开始为高电平,则立即开始减减“1”计数计数。n 直到计数值减到直到计数值减到“0”:OUTi输出宽度为一个输出宽度为一个CLKi周期的周期的负脉冲。负脉冲。 由软件装入的计数值只一次有效由软件装入的计数值只一次有效,如果要继续操作,必,如果要继续操作,必须重新置入计数初值须重新置入计数初值n。 如果在操作过程中,如果在操作过程中,GATE变为无效,则停止减变为无效,则停止减“1”计计数,到数,到GATE再次有效时,重

28、新从初值开始减再次有效时,重新从初值开始减“1”计数。计数。34方式方式4的几点注意:的几点注意: 利用这种工作方式可以完成利用这种工作方式可以完成定时功能定时功能,定时时间从装入,定时时间从装入计数值计数值n开始,开始,OUTi输出负脉冲表示定时时间到,其定输出负脉冲表示定时时间到,其定时时间时时间=nCLK周期。周期。 这种工作方式也可完成这种工作方式也可完成计数功能计数功能,它要求计数的事件以,它要求计数的事件以脉冲的方式从脉冲的方式从CLKi输入,将计数次数作为计数初值装入输入,将计数次数作为计数初值装入后,由后,由CLKi端输入的计数脉冲进行减端输入的计数脉冲进行减“1”计数,直到计

29、计数,直到计数值为数值为“0”,由,由OUTi端输出负脉冲端输出负脉冲(表示计数次数到表示计数次数到)。当然也可利用当然也可利用OUTi向向CPU发出中断请求。发出中断请求。 因此工作方式因此工作方式4与工作方式与工作方式0很相似,只是方式很相似,只是方式0在在OUTi端端输出正阶跃信号、方式输出正阶跃信号、方式4在在OUTi端输出负脉冲信号端输出负脉冲信号。35方式方式4(演示)(演示)36方式方式5 硬件触发方式硬件触发方式GATEOUTCLK031244方式方式522333110WR硬件硬件触发触发的的单次负脉冲输出单次负脉冲输出称为硬件触发,是因为由称为硬件触发,是因为由GATEGAT

30、E上升沿触发计数器开始工作的上升沿触发计数器开始工作的37方式方式5 硬件触发方式硬件触发方式n 进入工作方式进入工作方式5 5:OUTi输出高电平,输出高电平,n 计数过程的启动:计数过程的启动:硬件触发信号由硬件触发信号由GATE端引入。端引入。因此,开始时因此,开始时GATE应应输入为输入为0,装入计数初值,装入计数初值n后,减后,减“1”计数并不工作,一定要计数并不工作,一定要等到硬件触发信号由等到硬件触发信号由GATE端引入一个端引入一个上升沿信号上升沿信号,减,减“1”计数才会开始计数才会开始。n 待计数值计到待计数值计到“0”:OUTi将输出负脉冲,其宽度固定为一将输出负脉冲,其

31、宽度固定为一个个CLKi周期,表示定时时间到或计数次数到。周期,表示定时时间到或计数次数到。 这种工作方式下,当计数值计到这种工作方式下,当计数值计到“0”后,系统将自动重新后,系统将自动重新装入计数值装入计数值n,但并不开始计数,一定要等到由,但并不开始计数,一定要等到由GATE端引端引入的正跳沿,才会开始进行减入的正跳沿,才会开始进行减“1”计数。计数。38方式方式5的几点注意:的几点注意: 这是一种完全由这是一种完全由GATE端引入的触发信端引入的触发信号控制下的计数号控制下的计数或定时功能或定时功能。如果由。如果由CLKi输入的是一定频率的时钟输入的是一定频率的时钟脉冲,那么可完成脉冲

32、,那么可完成定时功能定时功能,定时时间从,定时时间从GATE上升上升沿开始,到沿开始,到OUTi端输出负脉冲结束。如果从端输出负脉冲结束。如果从CLKi端端输入的是要求计数的事件,则可完成计数功能,计数输入的是要求计数的事件,则可完成计数功能,计数过程从过程从GATE上升沿开始,到上升沿开始,到OUTi输出负脉冲结束。输出负脉冲结束。 如果需要改变计数初值,如果需要改变计数初值,CPU可在任何时候用输出指可在任何时候用输出指令装入新的计数初值令装入新的计数初值m,它将不影响正在进行的操作,它将不影响正在进行的操作过程,而是到下一个计数操作周期才会按新的计数值过程,而是到下一个计数操作周期才会按

33、新的计数值进行操作。进行操作。39方式方式5(演示)(演示)40各种工作方式的输出波形各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 141讨论:计数开始的时刻讨论:计数开始的时刻u任一种方式,只有在写入计数值后才能开始计数任一种方式,只有在写入计数值后才能开始计数。u方式方式0、2、3、4在写入计数值后,计数自动开始在写入计数值后,计数自动开始。u方式方式1、5需外部触发,才开始计数。需外部触发,才开始计数。42计数值计数值n与输出波形的关系与输出波形的关系436种工作方式的

34、比较种工作方式的比较 只有方式只有方式0是在写入控制字后是在写入控制字后OUT为低,其它均为高为低,其它均为高 方式方式0,1,4计数初值仅一次有效,方式计数初值仅一次有效,方式2,3,5能自动重装。能自动重装。 一般方式一般方式0 ,1,4,5选作计数器用(输出一个电平或一个脉选作计数器用(输出一个电平或一个脉冲),而方式冲),而方式2 ,3选作定时器用(输出周期脉冲或周期方波)选作定时器用(输出周期脉冲或周期方波)448253工作过程总结工作过程总结每种工作方式的过程类似:每种工作方式的过程类似: 设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启动 计数初值进入减计数初值

35、进入减1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1的计数过程的计数过程 计数过程结束计数过程结束459.3 8253的编程的编程l 82538253加电后的工作方式不确定加电后的工作方式不确定l 82538253必须初始化编程,才能正常工作必须初始化编程,才能正常工作写入方式控制字写入方式控制字写入计数初值写入计数初值读取计数值读取计数值461.写入方式控制字写入方式控制字00:计数器锁存 01:只读/写低字节10:只读/写高字节11:先读/写低字节 后读/写高字节0:二进制计数1:十进制计数000:方式0001:方式1010:方式2011:方式3100:方式4101:方式5

36、00:计数器001:计数器110:计数器211:非法472.写入计数值写入计数值 选择二进制时选择二进制时 计数值范围:计数值范围:0000HFFFFH 0000H是最大值,代表是最大值,代表65536 选择十进制(选择十进制(BCD码)码) 计数值范围:计数值范围:00009999 0000代表最大值代表最大值10000483.读取计数值读取计数值 对对8位数据线,读取位数据线,读取16位计数值需分两次位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然后读计数在不断进行,应该将当前计数值先行锁存,然后读取:取: 向控制字向控制字I/O地址:给地址:给8253写入锁存命令写入锁存命

37、令 从计数器从计数器I/O地址:读取锁存的计数值地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制读取计数值,要注意读写格式和计数数制499.4 8253计数计数/定时控制器应用定时控制器应用 例如,某例如,某8086系统中包含一片系统中包含一片8253芯片,要求芯片,要求完成如下功能:完成如下功能: 利用通道利用通道0完成对外部事件计数功能,计满完成对外部事件计数功能,计满100次向次向CPU发出中断请求。发出中断请求。 利用通道利用通道1产生频率为产生频率为1kHz的方波。的方波。501.利用通道0完成对外部事件计数功能,计满100次向CPU发出中断请求。2.利用通道1产生频率为1

38、kHz的方波。51 8253的数据线的数据线(D7D0)固定与固定与8086 CPU的高的高8位数据线位数据线(D15D8)相连。图中相连。图中8253的端口地址码的端口地址码(A1A0)与与8086 CPU的的A2A1相连,而相连,而8086的的A0固定为固定为“1”参加高位地址参加高位地址译码,以形成对译码,以形成对8253的片选信号的片选信号CS,以保证,以保证CPU访问访问8253的端口地址均为奇地址。的端口地址均为奇地址。 根据图的连接方式和对系统的要求根据图的连接方式和对系统的要求: 通道通道0定义为工作方式定义为工作方式0,完成计数功能,其计数值为,完成计数功能,其计数值为100

39、=64H 通道通道1应定义为工作方式应定义为工作方式3,输出频率为,输出频率为1kHz的方波,的方波,从从CLK1输入输入2.5MHz的时钟脉冲,的时钟脉冲, 其重复周期为其重复周期为0.4s,而输出方波的,而输出方波的周期应为周期应为1ms。因此,通道。因此,通道1的计数初值应为的计数初值应为2500=09C4H。52为完成上述功能,所需要的初始化程序如下:为完成上述功能,所需要的初始化程序如下:STT: MOV DX,8253控制端口地址控制端口地址MOV AL,10H;定义通道;定义通道0工作在方式工作在方式0OUT DX,ALMOV DX,通道,通道0端口地址端口地址MOV AL,64

40、H;给通道;给通道0送计数值送计数值OUT DX,ALMOV DX,8253控制端口控制端口MOV AL,76H ;定义通道;定义通道1为方式为方式3OUT DX,ALMOV DX,通道,通道1端口端口MOV AX,09C4HOUT DX,AL ;给通道;给通道1送计数初值送计数初值MOV AL,AHOUT DX,AL53A4A3A0A5M/IOA7A6A9A8G1G2BG2ACBAY4A2A1RDWRD7D0GATE0OUT0CLK0CLK1CLK2GATE1OUT1GATE2OUT2A1A0RDWRD7D0CS1MHz方波5V2KHz方波480s的负脉冲单脉冲8086CPU74LS138例

41、例1 1:用:用82538253产生各种定时波形。产生各种定时波形。54例1:用8253产生各种定时波形。8253基地址为310H,3通道所用时钟脉冲频率为1MHz。要求:(1)通道0工作于方式3,输出频率为2KHz的方波;(2)通道1产生宽度为480S的负脉冲;(3)通道2以硬件方式触发,输出单脉冲时间常数为26分析:通道0工作于方式3,控制端GATE0接+5V,时间常数N0=T定时/T时钟=(1/2KHz)/(1/1MHz)=500;通道1工作于方式1,由控制端GATE1的正跳变触发,OUT1输出负脉冲的宽度由时间常数决定,单次触发,时间常数N1= 480S /0.001ms=480;通道

42、2工作于方式5,由控制端GATE2的正跳变触发,可连续触发,时间常数N2=2655;通道;通道0 0初始化程序初始化程序MOV DXMOV DX,316H316HMOV ALMOV AL, 0011011100110111B BOUT DXOUT DX,ALALMOV DXMOV DX,310H310H MOV ALMOV AL,0000H HOUT DXOUT DX,ALALMOV ALMOV AL,0505H HOUT DXOUT DX,ALAL;通道;通道1 1初始化程序初始化程序MOV DXMOV DX,316H316HMOV ALMOV AL, 01110011B01110011BOUT DXOUT DX,ALALMOV DXMO

温馨提示

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

最新文档

评论

0/150

提交评论