1第八章习题与思考题典型例题解析一、填空题1.当8253工作在周期性方波输出方式时,若计数初值为偶数,则输出①方波,若计数初值为奇数,则输出②方波。分析:8253工作于方式3时输出连续方波,当计数初值n为偶数时,输出方波的高、低电平持续时间均为nTCLK/2,当计数初值n为奇数时,输出方波的高电平持续时间为(n+1)TCLK/2,低电平持续时间为(n+1)TCLK/2。答:①对称②非对称2.8253内部寄存器地址有①个I/O端口,其中②个是定时/计数通道端口。分析:8253有两条地址线A1、A0,用来选中片内4个端口,其中3个是计数通道地址。答:①4②33.8253的计数通道0(端口地址为POTR0)用于计数,要求计满30输出一信号,假定计数器工作于BCD计数方式,则写入计数初值的指令为MOVL,和OUTPORT0,AL分析:8253在初始化写入计数初值时,若采用BCD码计数,计数初值必须以计数结果的十进制数加上“H”表示。例如计数值为10,必须写为10H。答:30H二、选择题1.8253的哪种工作方式能产生连续方波输出()。A.方式0B.方式1C.方式2D.方式3分析:8253有6种工作方式,其中产生连续波形的是方式2和方式3,方式3产生连续方波答:D2.8253每个计数器的最大计数初值是()。A.65536B.FF00HC.0000HD.FFFFH分析:8253每个计数器的计数范围是1~65536,当计数初值为0000H时,计满65536,减1计数器减为0。答:C3.若8253定时/计数器处于计数过程中,当CPU对它装入新的计数初值时,其结果将是()。A.8253定时/计数器禁止编程B.8253定时/计数器允许编程,并改变当前的计数过程C.8253定时/计数器允许编程,但不改变当前的计数过程D.8253定时/计数器允许编程,是否影响当前的计数过程随工作方式而变2分析:8253定时/计数器具有3个独立的16位计数通道,它们可以分别工作在6种不同的工作方式。有的工作方式在计数过程中,如果CPU装入新的初值,则将立即影响本次计数过程,如方式0、方式4;有的工作方式将等待本次计数过程结束后才有效,如方式2、方式3;而有的工作方式将由外部的触发信号触发后才有效答:D4.当8353定时/计数器工作在()下时,需要由外部脉冲触发开始计数。A.方式0B.方式1C.方式2D.方式3E.方式4F.方式5分析:8253的任何一种工作方式都是在写入计数初值后才开始计数。方式0、2、3和4是在写入计数初值后,立即开始计数过程。而方式1和方式5需要由外部触发脉冲触发启动才能开始计数,即所谓“硬件启动”。答:BF三、简答题1.试述可编程定时/计数器8253的特点。答:8253是一种可编程定时/计数器,有3个16位计数器,称为3个计数通道。每个计数通道有3个引脚──计数输入CLK,作为计时基准输入或计数脉冲输入;门控输入GATE,用作启动或禁止计数器工作;输出信号OUT,以相应的电平或脉冲波形指示计数的完成。8253有6种工作方式,不同的工作方式可以由方式控制字选择。8253有两种计数方式──二进制计数,计数范围为1~65536(写入计数初值0时,为65536);十进制计数,计数范围为1~10000(写入计数初值0时,为10000)。在6种工作方式中,只有方式2和方式3的输出波形是连续波形。2.试比较8253方式0与方式4、方式1与方式5有什么区别?答:方式0为计数结束产生中断方式,方式4为软件触发选通方式。两种方式下的计数方式基本相同,门控信号GATE的作用也是相同的。两种方式的区别在于输出信号OUT的波形。在方式0下,当写入控制字时,OUT信号变为低电平,在计数期间内一直保持低电平,当计数到0时,输出才变为高电平,并且一直保持到重新装入初值和复位时为止。而方式4下,写入控制字时,OUT信号变为高电平,当计数到0时,输出维持一个时钟周期的负脉冲,再恢复为高电平。方式1为可编程单稳脉冲方式,方式5为硬件触发选通方式。两种方式的区别在于输出信号OUT的波形。在方式1下,当写入控制字时,OUT信号变为高电平,并保持不变,在门控信号GATE出现上升之后的下一个时钟周期的下降沿,OUT信号变为低电平,并一直保持到计数到0时才恢复为高电平。而方式5下,写入控制字时,OUT信号变为高电平,并一直保持高电平,当计数到0时,输出维持一个时钟周期的负脉冲,再恢复为高电平。四、应用题例8-1将8253的计数器1作为5ms定时器,设输入时钟频率为200kHz,试编写8253的初始化程序。设计数器1的端口地址为3F82H,控制口地址为3F86H。解:(1)计算计数初值n计数初始值n与要求定时的时间t及时钟脉冲周期TCLK之间的关系是:3n=t/TCLK=t×CLK已知输入时钟CLK频率为200kHz,则计数初值n为:n=5ms×200kHz=1000(2)确定控制字按题意选计数器1,按BCD码计数,工作于方式0,由于计数初值n=1000,D5D4应为11,于是8253的控制字为:01110001B=71H。(3)初始化程序如下:MOVAL,71H;置计数器1控制字MOVDX,3F68H;控制口地址OUTDX,AL;写入方式控制字MOVDX,3F82H;计数器1端口地址MOVAL,00;先写低字节OUTDX,ALMOVAL,10H;再写高字节OUTDX,AL例8-2写出读8253的计数器2的16位计数器当前值的程序,设8253的端口地址为90H~93H。解:要读8253计数器当前值,必须先发锁存命令,按8253的方式控制字规定,读计数器2的锁存命令为:10000000=80H计数器号锁存计数值任意程序如下:MOVAL,80H;发锁存命令OUT93H,ALINAL,92H;读计数值低8位MOVBL,ALINAL,92H;读计数值高8位MOVBH,AL例8-3在某产品包装流水线中,一个包装箱能装入24个罐。在装箱时,希望在流水线上每通过24罐时,流水线暂停4秒,等待封箱打包完毕,然后继续装箱。试用一片8253完成包装流水线控制中的定时和计数功能。假设8253端口地址为8CH~8FH,采用的时钟频率为2KHz。试说明实现方法,并编制8253的初始化程序。(1)分析根据题意,有两个工作要做:一是对24罐计数;一是对4秒钟停顿定时,并且两者之间又是相互关联的。因此,可用8253的一个计数通道作为计数器,用于对24个罐的计数;用另一个通道作为定时器,定时时间为4秒。用作为计数器用的通道输出的负脉冲信号的上升沿,启动作为定时器用的通道定时4秒,同时使流水线暂停;用定时器的定时时间到的信号重新启动流水线。4(2)实现方法选用8253的计数通道1作为计数器,按方式2工作,使门控信号GATE=1(高电平,允许计数),十进制计数,计数初值为24;计数通道2作为定时器,按方式1工作,十进制计数,时钟频率CLK2为2KHz,定时时间4秒。将通道1的输出端OUT1连到通道2的GATE2,即GATE2由通道1的输出OUT1控制。利用流水线的传感器得到的罐的计数脉冲,加到CLK1端,,当计数值达到23时,通道1的输出OUT1为低电平,在第24个罐通过流水线的传感器时,OUT1变高,使GATE2变高,计数通道2开始进行4秒钟的定时。OUT2的下降沿使流水线暂停,通道1也停止计数,经4秒钟后变高,其上升沿使流水线重新启动,继续工作,通道1又开始计数。(3)初始化程序计数通道1:计数初值n=24方式控制字:01010101B=55H计数通道2:定时常数n=t×CLK=4s×2KHz=8000方式控制字:10110011B=B3HMOVAL,55H;置计数器1方式控制字OUT8FH,AL;写入方式控制字MOVAL,24H;写入计数初值24OUT8DH,ALMOVAL,B3H;置计数器2方式控制字OUT8FH,AL;写入方式控制字MOVAX,8000H;写入计数初值8000OUT8EH,AL;先写低字节MOVAL,AHOUT8EH,AL;再写高字节本例是8253作计数器使用同时又作定时器使用,并且把计数器的结束信号去启动定时器的开始,两者相互作用。8253的这种组合在实际应用中很常见。例8-4采样频率可编程的数据采集系统设计。要求采样频率可选,并且采样次数也可选。分析:(1)采样频率。可利用定时器的输出信号(OUT)作为A/D转换器的转换启动信号(START)进行控制。为此,把计数器0设置为方式2,其输出OUT0引脚连到A/D转换器的START上,作为转换启动信号(脉冲启动转换),进行采样。若设输入时钟频率CLK0=F,计数初值为L,则输出信号OUT0的频率为F/L,这也就是A/D的采样频率fAD=F/L(8.2)(2)采样持续时间的控制。把计数器1设置为方式1,其输出OUT1经非门反相后连到计数器0的门控信号GATE0上,作为采样定时控制,高电平允许采样,低电平禁止采样。另外,将计数器2设置为方式3,其输出OUT2作为计数器1的时钟(即计数器1、2为级联),对采样持续时间的定时进行调节。若设计数器1和计数器2的计数初值分别为M和N,则根据这两个计数器之间的关系(CLK1=OUT2),可得采样持续时间5TAD=MN/F(8.3)(3)采样次数。将采样持续时间与采样频率相乘,就得到采样次数nAD=fAD×TAD=MN/L(8.4)由此可知:要利用定时/计数器作数据采集,对数据采集系统的采样速度和采样次数进行控制,只需使用式(8.2)求出A/D的采样频率;使用式(8.4)求出采样的次数。设计:(1)硬件设计。使用1片定时/计数器8253来实现对A/D转换器的控制,其电路原理如图8.4所示。图中的开关K作为系统启动。将开关K打向+5V时,就会启动8253的3个计数器同时开始工作,从而触发A/D转换器以每秒F/L个采样点的频率进行数据采集,采样MN/L次后自动停止。采样的模拟信号经A/D转换送到8255A中,用中断或查询方式读入CPU。8.48253用于数据采集系统(2)软件设计。设8253的端口地址为80H~83H,初始值L、N小于256;M为16位,计数格式均为二进制码。对此8253进行初始化的程序段如下:MOVAL,14H;设计数器0为工作方式2,只送低字节,二进制码OUT83H,ALMOVAL,L;写入计数器0的计数初值LOUT80H,ALMOVAL,72H;设计数器1为工作方式2,送高/低字节,二进制码OUT83H,ALMOVAX,M;写入计数器1的计数初值MOUT81H,AL;先送低字节MOVAL,AHOUT81H,AL;后送高字节6MOVAL,96H;设计数器2为工作方式3,只送低字节,二进制码OUT83H,ALMOVAL,N;写入计数器1的计数初值NOUT82H,AL本例是将8253作频率发生器同时作定时器使用。其中,计数器0作频率发生器,其输出脉冲作A/D的转换启动信号;计数器1和计数器2串联起来用作定时器,提供A/D转换持续时间的定时。习题与思考题一、填空题1.8253芯片称之为芯片。2.定时/计数器用于内部定时是指,用于外部定时是指。3.定时方法通常有和。4.软件定时的方法就是。5.利用可编程定时/计数器来实现定时或延时属于方法。6.Intel8253具有个独立的位计数器。7.8253每个计数器有种不同的工作方式,由控制字的位确定。8.8253每个计数器的计数值为位。9.可编程定时/计数器8253的控制字为个字节。10.8253中的每个计数器可以作为二进制和进制计数器用。11.在对8253进行任何操作前,都必须先向8253写入一个,以确定8253的工作方式。12.8253共有()个端口地址。13.可编程定时/计数器8253中,每个计数器具有相同的结构,都由3个模块组成,它们分别是、、和。14.定时/计数器的门控信号是由送来的,可作为对的控制信号。15.采用可编程定时/计数器,其定时与计算功能可由设定,设定后与微处理器工作。16.8253在进行计数时,实际上是对信号线上的信号进行计数。17.