问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...什么影响?当GATE=0时,哪几种计数方式会暂停计数?

发布网友 发布时间:2024-02-08 10:48

我来回答

2个回答

热心网友 时间:2024-07-25 17:31

微机系统常常需要处理机和外设提供时间标记,或对外部事件进行计数。例如,分时系统的程序切换,向外设定时、周期性地输出控制信号,外部事件的发生次数达到规定值后产生中断,以及统计外部事件发生的次数等,因此,需要解决系统的定时问题。
微机系统中的定时,可分为两类:一类是计算机本身运行的时间基准――内部定时,因而使计算机每种操作都是按照严格的时间节拍执行的;另一类是外部实现某种功能时,在外设与CPU之间或外设与外设之间的时间配合――外部定时。前者,计算机内部定时,已由CPU硬件结构确定了,有固定的时序关系,无法更改;后者,外部定时,由于外设或被控对象的任务不同,功能各异,无一定模式,因此,往往需要用户自己设定。当然,用户在考虑外设和CPU时,不能脱离计算机的定时要求,即应以计算机的时序关系为依据来设计外部定时机构,以满足计算机的时序要求,这叫做时序配合。至于在一个过程控制或工艺流程或监测系统中,各个控制环节或控制单元之间的定时关系完全取决于被处理、加工、制造和控制的对象的性质,可以按各自的规律独立地进行设计。由于定时的本质是计数,把若干小片的计时单元累加起来,就获得一段时间,因此,我们把计数作为定时的基础来讨论。目前用于定时/计数的可编程集成电路的芯片种类很多,在IBM PC系列微机中使用Intel 8253系列定时/计数器(记作T/C),下面对其进行介绍。
  7.3.1 可编程定时/计数器芯片8253(JAVA动画图说明)
  1.外部特性与内部逻辑
  (1)8253的特点
  ①有3个独立的16位计数器;
  ②每个计数器均可按二进制或者BCD码计数;
  ③每个计数器的计数速率:8253(2MHZ)、8253-5(5MHZ)、8254(8MHZ)、8254-5(5MHZ)、8254-2(10MHZ);
  ④各计数器都有6种不同的工作方式(由程序设定);
  ⑤24只管脚,双列直插式,单+5V电源;
  ⑥所有输入/输出都与TTL兼容。
  其引脚见图7-13。
  各引脚的功能定义如下:
  数据总线D0~D7:它们为三态输入/输出线,用于将8253与系统数据总线相连,是8253与CPU接口数据线,供CPU向8253读写数据、命令和状态信息。
  读信号RD:它为输入信号,低电平有效。它由CPU发出,用于对8253寄存器读操作。
  写信号WR:它为输入信号,低电平有效。它由CPU发出,用于对8253寄存器写操作。
  地址译码线A1A0:这两根线接到系统地址总线的A1A0上。当CS=0,8253被选中时,A1A0用于选择8253内部寄存器,以便对它们进行读写操作。8253内部寄存器与地址码A1A0的关系如表7-3所示。
  时钟信号CLK:CLK为输入信号。3个计数器,各有一独立的时钟输入信号,分别为CLK0、CLK1、CLK2。时钟信号的作用是在8253定时或计数工作时,每输入一个时钟信号CLK,便使定时或计数值减1。它是计量的基本时钟。
  门选通信号GATE:GATE信号为输入信号。3个通道,每一个都有自己的门选通信号,分别为GATE0、GATE1、GATE2。GATE信号的作用是用来禁止、允许或开始计数过程。对8253的6种不同工作方式,GATE信号的控制不同(参见后面的表7-4)。
  计数器输出信号OUT:OUT是8253向外输出信号。3个独立通道,每一个都有自己的计数器输出信号,分别为OUT0、OUT1、OUT2。OUT信号的作用是,计数器工作时,当定时或计数值减为0时,即在OUT线上输出OUT信号,用以指示定时或计数已到。这个信号可作为外部定时、计数控制信号引到I/O设备用来启动某种操作(开/关或启/停),也可作为定时、计数已到的状态信号供CPU检测,或作为中断请求信号使用。
  
  (2)内部逻辑结构(JAVA动画图说明)
  8253内部有6个模块,其结构框图如图7-14所示。
  ①数据总线缓冲器:数据总线缓冲器是一个三态双向8位寄存器,用于将8253与系统数据总线D7~D0相连。CPU通过数据总线缓冲器向8253写入数据、命令或从数据总线缓冲器读取数据和状态信息。
  数据总线缓冲器有3个基本功能:向8253写入确定8253工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。
  ②读/写逻辑:读/写逻辑由CPU发来的读、写信号和地址信号,选择读出或写入寄存器,并且确定数据传输的方向:是读出还是写入。
  ③控制字寄存器:控制字寄存器接受CPU送来的控制字。这个控制字用来选择计数器及相应的工作方式。控制字寄存器只能写入,不能读出,其内容将在后面讨论。
  ④计数器:82533个独立的计数通道,每个通道的内部结构完全相同,如图7-15所示。该图表示计数通道由16位减1计数器、16位计数初值寄存器和16位输出锁存器组成。初始化时,首先是将计数通道装入的计数初值送到计数初值寄存器中保存,然后送到减1计数器。计数器启动后(GATE允许),在时钟脉冲CLK的作用下,进行减1计数,直至计数值减到0,输出OUT信号,计数结束。计数初值寄存器的内容,在计数过程中保持不变。因此,若要了解计数初值,则可从计数初值寄存器直接读出。而如果要想知道计数过程中的当前计数值,则必须将当前锁存后,从输出锁存器读出,不能直接从减1计数器中读出当前值。
  2.读写操作及编程命令
  CPU对8253芯片的读写操作有以下3种情况:
  (1)写操作――芯片初始化
  芯片加电后,其工作方式是不确定的,为了正常工作,要对芯片进行初始化。初始化的工作有两点:一是向控制寄存器写入方式控制字,以选择计数器(三个中之一个),确定工作方式(六种方式之一),指定计数器计数初值的长度和装入顺序以及计数值的码制(BCD码或二进制码);二是向已选定的计数器按方式控制字的要求写入计数初值。
  工作方式命令字的格式如下:
  
  ①D7D6(SC1SC0):用于选择计数器。其中:
  SC1SC0=00――选择0号计数器 SC1SC0=01――选择1号计数器
  SC1SC0=10――选择2号计数器 SC1SC0=11――非法
  ②D5D4(RL1RL0):用来控制计数器读/写的字节数(1或2个字节)及读写高低字节的顺序。其中:
  RL1RL0=00――为一特殊命令(即锁存命令),把由SC1SC0指定的计数器的当前值锁存在锁存寄存器中,以便随时去读取它
  RL1RL0=01――仅读/写一个低字节
  RL1RL0=10――仅读/写一个高字节
  RL1RL0=11――读/写2个字节,先是低字节,后是高字节
  ③D3~D1(M2~M0):用来选择计数器的工作方式。其中:
  M2M1M0=000――方式0 M2M1M0=011――方式3
  M2M1M0=001――方式1 M2M1M0=100――方式4
  M2M1M0=010――方式2 M2M1M0=101――方式5
  ④D0(BCD):用来指定计数器的码制,是按二进制数还是按二-十进制数计数。其中:
  BCD=0(二进制) BCD=1(二-十进制)
  例如,选择2号计数器,工作在方式2,计数初值为533H(2个字节),采用二进制计数,其程序段为:
  TIMER EQU 040H ;0号计数器端口地址
  MOV AL,10110100B ;2号计数器的方式控制字
  OUT TIMER+3,AL ;写入控制寄存器
  MOV AX,533H ;计数初值
  OUT TIMER+2,AL ;先送低字节到2号计数器
  MOV AL,AH ;取高字节
  OUT TIMER+2,AL ;后送高字节到2号计数器
  (2)读当前计数值――锁存后读操作
  在事件计发器的应用中,需要读出计数过程中的计数值,以便根据这个值作计数判断。为此,8253内部逻辑提供了将当前计数值锁存后读操作功能。具体作法是,先发一条锁存命令(即方式控制字中的RL1RL0=00),当前计数值锁存到输出锁存器;然后,执行读操作,即可得到锁存器的内容。
  例如,要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值只有低8位),其程序段为:
  L:MOV AL, 01000000B ;1号计数器的锁存命令
  OUT TIMER+3,AL ;写入控制寄存器
  IN AL, TIMER+1 ;读1号计数器的当前计数值
  CMP AL, 0FFH ;比较
  JNE L ;非全“1”,再读
  HLT ;是全“1”,暂停
  (3)读装入的计数值――直接读操作
  8253内部还提供了一种功能,使程序员能在不干扰实际计数过程的情况下,读出装入的计数值,这只需对选定的计数器发现IN指令即可。分两次读,第1次从计数寄存器读出装入计数值的低字节,第2次读出高字节。但要注意的是:为了保证能稳定地读出装入计数值,所选的计数器的工作方式必须能被GATE电平输入禁止或者能禁止时钟输入的外部逻辑所禁止。
  3.工作方式及特点
  8253芯片的每个计数通道都有6种工作方式可供选用。区分这6种工作方式的主要标志有3点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号GATE对计数操作的影响不同。现结合各种操作实例,分别讨论不同工作方式的特点及编程方式。例如8253的3个计数器及控制器的端口地址分别是304H、305H、306H和307H。
  (1)方式0――计数结束时中断
  方式0有如下3个特点:
  ①当向计数器写完计数值时,开始计数,相应的输出信号OUT就开始变成低电平。当计数器减到零时,OUT立即输出高电平。
  ②当门控信号GATE为高电平时,计发器工作;当GATE为低电平时,计数器停止工作,其计数值保持不变。
  ③在计数器工作期间,如果重新写入新的计数值,则计数器将按新写入的计数值重新工作。
  方式0的上述工作特点可用如图7-16所示的时序来表示。
  (2)方式1――程序可控单稳
  方式1为可编程的单稳态工作方式。此方式设定后,输出OUT就变成高电平;写入计数值后,计数器并不立即开始工作,直到门控信号GATE出现之后的一个时钟周期的下降沿,才开始工作,使输出OUT变成低电平。计数值回零后,输出变高,见图7-17中的①。
在计数器工作期间,当GATE又出现一个负脉冲的上升沿时,计数器重新装入原计数初值并重新开始计数,见图7-17中的②。如果工作期间对计数器写入新的计数值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数值开始工作,见图7-17中的③。
程序中把T2设定成仅读/写低8位计数初值,高8位自动补0。
  (3)方式2――频率发生器
  方式2是一种具有自动装入时间常数的N分频器。其工作特点如下:
  ①计数器计数期间,输出OUT为高电平,计数器回零后,输出为代电平并自动重新装入原计数值,低电平维持一个时钟周期后,输出又恢复高电平,并重新作减法计数。
  ②在计数器工作期间,如果向此计数器写入新的计数值,则计数器仍按原计数值计数,直到计数器回零并在输出一个时钟周期的低电平之后,才按新写入的计数值计数。
  ③门控信号GATE为高电平时允许计数。若在计数期间,门控信号变为低电平,则计数器停止计数,待GATE恢复高电平后,计数器将按原设定的计数值重新开始计数,工作时序如图7-18所示。
  (4)方式3――方波频率发生器
  工作方式3与工作方式2基本相同,也具有自动装入时间常数的能力,不同之处在于:
  ①工作在方式3对OUT引脚输出的不是一个时钟周期的低电平,而是占空比为1:1或近似于1:1的方波,当计数初值为公里数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平。
  ②当计数初值为奇数时,在前一半加1的计数过程中,输出为高电平,后一半减1的计数过程中为低电平。例如,若计数初值设为5,则在前3个时钟周期中,引脚OUT输出高电平,而在后2个时钟周期中则输出低电平。8253的方式2和方式3都是最为常用的工作方式,工作时序如图7-19所示。
  (5)方式4――软件触发
  方式4是一种由软件启动的闸门式计数方式,即由写入计数值触发工作。其特点是:
  ①此方式设定后,输出OUT就开始变成高电平;写完计数值后,计数器开始计数,计数完毕,计数回零结束时,输出变为低电平;低电平维持一个时钟周期后,输出又恢复高电平,但计数器不再计数,输出也一直保持高电平不变。
  ②门控信号GATE为高电平时,允许计数器工作;为低电平时,计数器停止计数。在其恢复高电平后,计数器又从原设定的计数值开始作减1计数,工作时序如图7-20所示。
  ③计数工作期间,若向计数器写入新的计数值,则不影响当前的计数状态,仅在当前计数值计完回零时,计数器才接新写入的计数值开始计数,一旦计数完毕,计数器将停止工作。
  (6)方式5――硬件触发
  方式5的工作特点在于由外部上升沿触发计数器,即:
  ①在工作方式5下,写入计数初值后,计数器并不立即开始计数,而要由门控信号出现的上升沿启动计数。计数器计数回零后,将在输出一个时钟周期的低电平后恢复高电平。
  ②在计数过程中(或者计数结束后),如果门控再次出现上升沿,则计数器将从原设定的计数初值重新计数。其他特点基本与方式4相同,工作时序如图7-21所示。
  (7)6种工作方式的比较(JAVA动画图说明)
  上面分别说明了8253六种方式的工作过程,现在来对比分析这6种方式的特点和彼此之间的差别,以便在应用时,有针对性地加以选择。
  ①方式0(计数结束中断)和方式1(可控单稳)
  这两种方式的输出波形类似,它们的OUT在计数开始变为低电平,在计数过程中保持低电平,计数结束立即变为高电平,此输出作为计数结束的中断请求信号,或作单稳延时,两者均无自动重装能力。它们的不同点主要在于启动计数器的触发信号,方式0由写信号WR的上升沿触发,方式1由门控信号GATE上升沿触发。
  ②方式2(频率发生器)和方式3(方波发生器)
  这两种方式共同的特点是具有自动再加载(装入)能力。即减1至0时初值寄存器的内容又被自动装入减1计数器继续计数,于是OUT可输出连续的波形。输出信号的频率都是(fCLK/初值)。两者的区别在于:方式2在计数过程中输出高电平,而在每当减1至0时输出宽度为1TCLK的负脉冲。方式3是在计数过程中,输出1/2初值×TCLK(若初值为奇数,则是1/2(初值+1)×TCLK)的高电平,然后输出1/2初值×TCLK(若初值为奇数,则是1/2(初值-1)×TCLK)的低电平,于是,OUT的信号是占空比为1:1的方波(或近似方波)。
  ③方式4(软件触发延时选通)和方式5(硬件触发延时选通)
  这两种方式的OUT输出波形相同,在计数器过程中OUT为高电平,在计数结束后OUT输出一个宽度为1 TCLK的负脉冲,这个脉冲可作为在延时(初值×TCLK)后的选通脉冲。它们无自动重新装入能力。两者的区别是计数启动的触发信号不同,前者由写信号WR启动计数;后者从GATE的上升沿开始计数。
  从以上对比分析可知,一般,方式0、1和方式4、5选作计数器用(输出一个电平或一个脉冲),而方式2、3选作定时器用(输出周期脉冲或周期方波)。
  

                  <<back  top  next>>
上翻 下翻

热心网友 时间:2024-07-25 17:37

友情提示:)))):请在15天内为您的问题选择满意答案,要不服务器扣除10分
。积分能换Q币哦:)
...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在筋骨堂治疗腰椎间盘突出一个疗程后已有好转,隔了三、四天又疼上了... 美的3⃣️匹柜机空调为什么不制热是什么原因? 小票打印机不出字的原因及解决方法如何解决小票打印机无法打印字的问题... 电脑打单打印机出不了小票超市收银台电脑键盘怎么用 交易房屋如何分类 城市规划用途分类该怎么做 规划用途的分类 ...打火机散件设备公司 值得信赖么 ?是不是《骗子》皮包公司? 希望给予... 哈尔滨农垦太阳神打火机散件厂是否骗人 有没有人知道网上那些打火机加工的广告是不是真是可靠?做打火机反销... 车床上小滑板转多少个圈是一豪米 微信帐号和是一个意思吗? 《怎样学好牛津英语 配修订版教材》六年级第一学期164页-168页的... 苹果手机怎么改第二次修改技巧 怎样在没有手机号的情况下申请? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 晚上剪指甲有风险? wxid开头的是什么意思 个人债务纠纷要哪些证据 原创模仿方文山《兰亭序》评价一下吧!谢谢啦! &quot; wxid&quot;开头的是什么意思? 请问一下胜芳大悲寺真的要拆除吗 如何一年内强制二次修改? 修改没到一年怎么改? 改过一次,就只能等一年后再进行第二次修改了吧? 一年内怎么改第二次 核心期刊包括哪些 ...对方知道我的,密码,绑定手机号,支付密码,想找回怎么办... ...然后扫描检测硬件改动也没有用 咋办[em]e136[/em] 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 银行卡号是否就是账号 越南联通客服是多少号 怎样学好牛津英语试卷版6上答案 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 正式老师不到退休年龄辞职对将来的退休金有影响吗? 51单片机方式寄存器TMOD中的GATE说计数器受外部中断信号控制,具体怎么... 修改没到一年怎么改? 亲戚拿我身份证在建筑公司挂了职然后每年工资由亲戚领取影响吗如果被公... wxid开头的不是自已的,一登陆就是wxid开头,怎么才 ... wxid的都什么人(有的人是wxid) wxid开头的是什么意思 5.5kw立式管道泵机械密封是多少 微信怎么设置显示更多信息 打了瘦脸针得第三个星期。右边注射得地方有一块黄黄得印子 医生说没吸... 修改不满一年能有什么办法再修改吗 修改一年内如何二次修改吗苹果 家居布线有技巧 赶紧Get起来 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 微博抽奖抽中了,那它是什么物流公司送货呢?若我不想让他送货上门,怎么... 72X4X25=23X(),这是运用了()。