当前位置:首页 > 微机原理与接口技术习题集
计数初始值n=TOUT/TCLK 其中:TOUT为输出信号的周期,TCLK为输入时钟的周期。
计数初始值n= fCLK/fOUT
或者 其中:fOUT 为输出信号的频率,fCLK 为输入时钟的频率。
根据题目的要求可知:计数通道0应工作与方式2,可按二进制计数;计数通道2应工作与方式3,也可按二进制计数。 计算计数通道的计数初始值n:
计数初始值n= fCLK/fOUT=2MHz/40KHz=2000/40=50
计数通道2:已知fCLK=1MHz,fOUT=10KHz,所以,
计数初始值n= fCLK/fOUT=1MHz/10KHz=1000/10=100
3.计数通道的方式控制字:
计数通道0:(1)计数初始值n=50。(按二进制计数时可转化为十六进制数0032H)
(2)方式控制字为
计数通道0:已知fCLK=2MHz,fOUT=40KHz, 所以,
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 1 0 1 0 0 (14H)
计数通道2:(1)计数初始值n=100。(按二进制计数时可转化为十六进制数0064H)
(2)方式控制字为
D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 1 0 1 1 0 (96H)
;计数通道0的初始化程序 MOV AL,14H;设置方式控制字
MOV AL,50;设置计数初始值n,可将指令中的50改写为32H
4.各个计数通道的初始化程序:
OUT 83H,AL;将方式控制字写入计数通道0的控制字寄存器
OUT 80CH,AL;只将计数初始值n=50写入计数通道0的计数初始值寄存器CR的低字节,该寄存器的高字节自动清零。
MOV AL,96H;设置方式控制字
MOV AL,100;设置计数初始值n,可将指令中的100改写为64H
;计数通道2的初始化程序
OUT 83H,AL;将方式控制字写入计数通道2的控制字寄存器
OUT 82H,AL;只将计数初始值n=50写入计数通道2的计数初始值寄存器CR的低字节,该寄存器的高字节自动清零。
3. 在某产品包装流水线中,一个包装箱能装入24个罐。在装箱时,希望在流水线上每通过24罐时,流水线要暂停4s以等待装箱完毕,
然后继续装箱。试利用一片8253-5完成包装流水线控制中的定时和计数功能。假设8253-5的计数通道0、计数通道1、计数通道2及控制字寄存器的端口地址为8CH~8FH,采用的时钟频率为2KHz,试说明实现方法,并编制8253-5的初始化程序。
解:1.基本思路:根据题意,可用8253-5的一个计数通道作为计数器,用于对24个 罐的计数;用另一个计数通道作为定时器,定时时间为4s。用作为计数器用的计数通道输出的负脉冲信号的上升沿启动用作为定时器用的计数通道的定时器定时4s,同时使流水线暂停;用定时器的定时时间到的信号重新启动流水线。
2.实现方法:将8253-5的计数通道1作为计数器,按方式2工作,使门控信号GATE1=1(高电平,允许计数),二进制计数,计数初始
值为24;计数通道2作为定时器,计数输入时钟CLK2的频率为2KHz,按方式1工作,二进制计数,定时时间4s。利用流水线的传感器得到的罐的计数脉冲,加到8253-5的CLK1端,当计数值到达23时,计数通道1的输出OUT1为低电平,在第24个罐通过流水线的传感器时,计数通道1的输出OUT1为高电平,利用计数通道1的输出端OUT1输出信号的上升沿来触发计数通道2的定时器开始定时,同时使流水线暂停。
3.编制初始化程序:
计数通道1:计数初始值n=24(转化为十六进制数为0018H), 方式控制字为
方式控制字为
;8253-5初始化程序 ;计数通道1的初始化程序
MOV AL,54H;设置方式控制字
OUT 8FH,AL;将方式控制字写入计数通道1的控制字寄存器
D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 1 0 1 0 0 (54H)
计数通道2:计数初始值n=TOUT/TCLK=4s/(1/2KHz)=8000
D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 0 0 1 0 (0B2H)
MOV AL,24;设置计数初始值n=24(转化为十六进制数为0018H)
OUT 8DH,AL;只将计数初始值的低字节18H写入计数通道1的计数初始值寄存器CR的低字节,该寄存器的高字节自动清零。 ;计数通道2的初始化程序 MOV AL,0B2H;设置方式控制字
OUT 8FH,AL;将方式控制字写入计数通道2的控制字寄存器 MOV AX,8000;设置计数初始值n=8000
OUT 8EH,AL;先将计数初始值的低字节写入计数通道2的计数初始值寄存器CR的低字节 MOV AL,AH;设置计数初始值的高字节
OUT 8EH,AL;再将计数初始值的高字节写入计数通道2的计数初始值寄存器CR的高字节
一、单项选择题:
1.D 2.B 3.C 4.A 5.B 6.C 二、 判断说明
1.√ 2.×;改正:··是可以读写计数初始值缓冲器;往控制寄存器设置控制字。
3×;改正:···及控制寄存器。 4×;改正:??为00111B时,表示往计数器2写入控制字或命令。
5.×;改正:。。。表示选择计数器2。 6×;改正:?,计数执行部件要经过一个时钟上升沿和一个下降沿,才开始计数。 7.√ 8.×;改正:。。。最小值是1 9 ×;改正:?OUT一直为低电平,直到计数值为0时输出OUT为高电平。
10 ×;改正:?·那么写第一个字节时,原来的计数即中止,并使输出OUT仍维持低电平,写完第二个字节后的下一个时钟脉冲下降沿时,计数执行部件获得新的计数值,并按新的计数初值开始计数。
11×;改正:··。·上升沿触发,使之工作。 12 ×;改正:?·,再经过一个时钟周期,便送到计数执行部件CE中。 13。√ 14。√ 15.×;改正:??负脉冲。 16 。×; 改正:··计数值为 1时输出一个CLK的负脉冲。 17. ×;改正:?·OUT变为高电平。
18.×;改正:?·减到1时,输出变低,经过一个CLK周期输出又变为高电平后,重新装入计数值再重复计数过程。
19 。 ×;改正:?·,若GATE一直维持高电平,则输出 OUT将不受影响,但在下一个输出周期中,将按新的计数值进行计数。 20.√ 21.√ 22. ×;改正:?·,则负脉冲宽度不等于正脉冲宽度。23.√ 24.√
25.×;改正:??,那么,写入第一个字节时,计数不受影响,写入第二个字节后的下一个时钟周期。计数执行部件获得新的计数值。并从新计数值开始重新计数。 26.√ 27.√ 28.√ 29 。改正:。。。,则高 8位自动为 0。 30×;改正:?··,则低8位自动为0。 3l。√ 三、简答题
1答:实际应用中常常需要外部实时时钟,以实现延时或定时;另外要求对外部事件计数的计数器。可以通过如下方法实现。
(1)设计数字逻辑电路实现计数或定时。用硬件电路实现的计数器/定时器,若改变计数/定时的要求,就要修改电路参数。这种方法,通用性、灵活性较差。
(2)设计一段程序,用软件实现计数器和定时要求。这种方法通用性好,灵活性好,但占用微处理器资源,这是极大浪费。 (3)可编程定时器/计数器,可以用程序灵活设计。与微处理器可以并行工作。不占用微处理器时间。
2.答:(l)门控脉冲控制时种输入。当门控脉冲GATE到来时,时钟CLK有效,进行计数操作。当门控脉冲结束。时钟无效,计数停止。 (2)用门控脉冲重新启动计数器。 (3)用门控脉冲停止计数器工作。 (4)单次计数。门控信号为高电平。
(5)循环计数。每当计数执行单元计数为零时,输出OUT输出一个信号,同时又重新装入计数初值寄存器内容到外数执行单元,重复原来的计数过程,在输出瑞OUT上可以输出周期性脉冲信号。
3.答:16 位的定时器/计数要原理结构是有四个寄存器组成,如控制寄存器、初始值寄存器CR,计数输出镇存寄存OL、和计数执行单元 CE。除执行单元 CE外,其他都可被微处理器访问。其中:
控制寄存器:用来控制定时器/计数器的工作方式,也就是控制时钟脉冲信号CLK与门控信号GATE适当配合产生输出OUT端的输出信号波形,可以通过程序设置。
初始值寄存器CR:16位初始值寄存器,用于存放计数初值,可以通过程序设置。
计数执行单元CE:它是一个16位减1计数器。它的初值是由初始值寄存器提供,它只对时钟CLK计数,一旦计数器启动后,每出现一个CLK脉冲,计数执行单元计数值减l。当减到零时,通过输出OUT指示信号,表示计数执行单元已为零。
计数输出镇存器OL:通常跟随计数执行单元的内容而变化.当接收微处理器发来的锁存命令时,就锁存当前的计数值,不再踉随计数执行单元变化,直到微处理器从中读取锁存值后,才恢复到跟随计数执行单元变化的状态,从而避免微处理器直接读计数执行单元时干扰计数工作的可能。 有的定时器/计数器内部还有状态寄存器。
4.答:计数输出锁存器OL用来锁存计数执行部件CE的内容,从而使微处理器可以对此进行读操作。
5.答:8253-5内部基本结构是由计数器、数据总线缓冲器、读/写逻辑电路及控制寄存器组成
7.D 8.A 9.B 10.C 11.c 12.A
13.D 14.A 15.C 16.B
17.D18.A19.C
20.A 21.D 22.B 23.D 24.B 25.A 26.C 27.D 28.C 29.B 30.D 31.C 32.A 33.D 34.A
计数器:8253-5内部有3个计数器,0、l、2号。它们是互相独立,各自按照不同的方式工作。每个计数器内部都有一个16位初始值寄存器、一个计数执行部件和一个计数输出锁存器。计数初始值寄存器内容通过程序进行设置,其内容装入计数执行部件CE中,作为初始值进行减1计数,此时锁存器跟随计数执行部件的内容变化。当有锁存命令到来时,锁存器使锁定当前计数,直到被读走后,再跟随计数执行部件动作。
数据总线缓冲器:有三个方面功能,即:往计数器装入设置的计数初值,从计数器中读取计数值;往控制寄存器中设置控制字。 读/写逻辑电路:读/写逻辑电路从系统控制总线接收输入信号,经过组合可以产生对8253—5各部分的控制。
控制寄存器:当A1A0=11时,通过读/写控制逻辑电路选中控制寄存器,微处理器可以写入控制字。以便实现控制定时器/计数器的工作方式。
6.答:8253-5初始化编程规定:
(1)对计数器设置初始值前必须先写控制字。
(2)初始值设置时,要按照控制字中的格式规定,如只写低位字节或是写高8位,或是高低位字节都写,控制字中一旦设定,计数初始值设定就要一致。
7.答:初始化编程有两类命令:
(l)读出命令:用来读取计数器当前的值。。 (2)写入命令:
(a)设置控制字命令:一个计数器在工作之前,需要先设置控制字,用来选择计数器,设定工作模式和计数模式。
(b)设置初始命令:用来给出计数的初始值、初始值可为8位,也可以为16位,若为16位,则要用两条输出指令完成初值设置。 (C)锁存命令:配合读出命令使用的命令,在读计数值时,必须先用锁存命令将当前计数值在输出锁存器中锁存,否到,读数时,计数器的数值可能处在改变过程中。这样,会得到一个不确定结果。
当锁存命令到来时,计数执行部件计到某一值,输出锁存器是跟随计数执行部件工作的,所以,锁存器中为同一个值。此时,这一计数值被锁住。当微处理器将此锁定值读走后、锁存器自动失锁,,于是又跟随计数执行部件变化。在锁存和读出计数值的过程中,计数执行部件仍在不停地作减1计数。因而允许计数器内容在运行中被读出而不影响计数的进行。
8.答:8253-5有6种工作方式,不论哪种工作方式。都要遵守以下几条基本原则: (1)控制字写入计数器时,所有的控制逻辑电路立即复位。输出端OUT进入初始状态。 (2)初始值写入后,要经过一个时钟的上升沿和一个下降沿。计数执行部件才开始进行计数。
(3)通常,在时钟脉冲CLK的上升沿时,门控信号GATE被采样。对于某一种给定的工作方式中,门控信号的触发方式有具体规定的,即用电平触发,或者用边沿触发,有的触发方式采用电平触发,又可以采用边沿触发方式。 (4)时钟脉冲下降时作减1计数。 9.答:方式0的特点:
(1)计数过程是由软件启动。每写入一次计数初值,就启动一次计数过程。 (2)GATE作用是开始计数或禁止计数。
(3)OUT由低变高表示计数过程结束,若计数初值为N,则已出现N+l个CLK脉冲信号。 应用场合: (l)用于事件计数。 (2)OUT信号可作为中断请求信号。 10.答:方式1的特点:
(1)计数器的启动只能由门控脉冲的上升沿产生,也就是只能用硬件启动计数器,不能用软件启动计数器。 (2)输出OUT为一单稳态负脉冲,其脉冲宽度为计数初值N个CLK时钟脉冲的周期之和。 (3)形成单稳态脉冲过程中,可以重复触发,使OUT输出的负脉冲加宽。 (4)初始值由程序写入,所以改变计数初值就可以改变输出负脉冲的OUT宽度。
11.答:输出宽度取决于计数初值N,输出OUT负脉冲宽度为计数初值N个CLK脉冲周期之和。
欲改变自脉冲宽度方法为(1)改变计数初始值N(2)在形成单稳态脉冲过程中,若在GATE端再一次产生由低变高的触发信号,则又将CR内容装入CE,又从初始状态开始计数过程,到输出OUT端将延长输出负脉冲宽度。 12答:方式2的特点如下:
(1)方式2工作过程中,计数初始值寄存器的内容能自动地、重复地装入执行部件CE中,只要时钟脉冲周期CLK是周期性脉冲序列,在输出瑞OUT上就能连续地输出周期性分频信号。
(2)方式2的启动计数器可以使用软件方法,也可以使周硬件方法。
(3)在某一已知的频率CLK脉冲信号下,改变计数初值,可以获得不同速率的OUT输出信号。 (4)方式2输出负脉冲宽度为一个CLK脉冲周期,正脉冲宽度为计数初值N-1个CLK脉冲周期之和。
方式2的应用: 方式2主要应用于作为分频器和时基信号,它能方便地从系统时钟中获得符合某种频率要求的标准信号,供系统使用。 13.答:方式3的特点如下:
(1)方式3计数过程是计数执行单元内容减2。
(2)方式3的工作过程中,计数初始值寄存器CR内容(偶数)或计数初始值寄存器CR-l的内容(奇数)能自动装入计数执行单元CE中,
只要时钟脉冲周期CLK是周期性脉冲序列、则输出端将连续输出方波,从而实现一个方波发生器的输出要求。 (3)计数器启动过程也是软件启动和硬件启动两种。
(4)改变计数初值,OUT端将输出不同频率的方波,从而实现方波发生器输出的要求。
方式3应用: 主要用于方波脉冲发生器和波特率发生器,串行通信中所需要的时钟信号,可用8253-5方式3提供。
14.答:当初始值寄存器中的初始值N可是偶数时,减法计数过程变为减2计数,即每来一个CLK脉冲,CE内容城2。经过N/2个CLK脉冲后,CE为零,使输出OUT为低电平。同时又将CR内容装入 CE并继续减2计数过程,又经过 N/2个CLK脉冲后.CE又为零,使输出OUT又变成高电平,如此重复上述过程,在输出瑞OUT上输出对称方波。
15.答:当初始值寄存器中的初始值N是奇数时,当输出OUT由低变高时, CR内容先减 1后装入CE中,然后对 CLK脉冲实行减2计数,直到CE为零时输出OUT不立即变低电平,而是再经过一个CLK脉冲后才变为低电平,此时OUT保持高电平的时间为1+(N-1)/2个CLK脉冲周期之和。当输出OUT输出由高变低时,CR内容减 1后再装入 CE中,然后对 CLK脉冲进行减 2计数,直到CE为零时立即使输出OUT输出变为高电平,OUT保持低电平时
间为(N-1)/2个CLK脉冲周期之和,重复上述过程,在OUT端输出的波形近似方波。 16.答:方式4特点如下:
(1)写入控制字后输出OUT变为高电平作为初始电平,写入初始值后,计数执行获得初值开始计数过程。当执行部件CE减到0时,输出变为低电平,此低电平持续一个时钟周期,然后自动变为高电平,并一直维持高电平。 (2)计数初始值N要经过N个时钟脉冲周期CLK后,才输出一负脉冲作为选通脉冲。
(3)GATE=l,进行计数,GATE=0停止计数。维持当时电平,只有计数值减为0时,才产生负脉冲。
(4)计数过程中又写入新的计数值。在下一个时钟周期时,此计数值被写入执行部件,并按新的计数值进行计数过程。常称软件触发信号发生器。
17.答:(l)OUT输出负脉冲宽度不同,方式0是N+ 1个 CLK脉冲周期之和;方式4是一个CLK脉冲周期。 (2)计数期间输出极性相反,方式0是低电平输出,方式4是高电平输出。 18答:方式5特点:
(1)写入控制字后,输出OUT为高电平。写入计数初始值后,必须有上升沿GATE才在下一个 CLK下降沿装入 CE,从而进行计数过程。计数为0时输出一个CLK宽度负脉冲,自动变为高电平,持续不变。
(2)若计数值为N,遇到GATE上升沿时再经过1个CLK下降沿时进行计数过程,再过N时钟周期,输出OUT才出现选通负脉冲。
(3)若计数过程又有上升沿 GATE触发。则再经过下一个CLK下降沿后重新获得计数值,进行计数过程。
(4)如果计数过程中,写入新的计数值,如果无触发脉冲GATE输出不受影响,结束当前计数过程后、再受触发电平时,将按新的计数值开始计数过程。
19.答:方式 5与方式 1比较区别如下:.
两者均为硬件触发启动计数器工作方式,但OUT输出的负脉冲宽度不同,方式1负脉冲宽度为计数初值N个CLK 脉冲之和、而方式5的输出负脉冲宽度仅为一个CLK脉冲周期。 四、填空题
1.可编程定时/计数器;可编程间隔定时器。2.程序,并行 3.计数执行;0 4.外围设备;时钟 12.010; 42H
19。01;低8
16
4
5。控制;中断请求
11。00l;4lH
6.输入/输出设备;输入/输出 7.3;计数器 8.独立;控制字;9.减法;初始值寄存器10.000:40H
13.011; 43H 14.100;111
15.BCD;二进制 16.010; 110 17。011;111 18.00;领存”
20. 10;高8 21.低 8;高 8 22.初始值命令;计数值命令 23.复位;初始(高/低电平)24.最大值; 2 25、最大值; 10 26.计数结束产生中断;高 27.低;高28.下降沿;下降沿 29.高;低 30.下一个CLK下降沿;新的计数值31.可重复触发的单稳电路; GATE 32.高;高 33。上升沿;下降沿 34.不受影响;新的计数值 35.周期性;分频器
36.高电平;高电平 37.000lH;CLK周期
38.同一;自动 39.1;0 40.停止;下一个CLK下降沿 41.变高电和新计数值 42.偶数;对称方波 43.奇;近似对称方波 44 减 2; N/2 45。减1;减2 46.减1;减2 47.N/2; N/2 48.(N-1)/2;(N-1)/2 49。允许计数;停止计数 50.不启动;启动 51。0;低 52.软件触发的选通信号发生器;硬件触发的选通信号发生器 53.0;负 54。 不受影响; GATE上升沿 55.无;不受 56.GATE触发;下降沿
共分享92篇相关文档