8253练习题及答案第1页共6页8353练习题及答案一、简答题1、8253的功能作用是什么?它有哪些工作方式?答案:8253起着计数或定时的作用,提供可编程的三个16位定时/计数器通道.它有方式0到方式5共6种工作方式,分别是:计数结束中断方式,可编程单程方式,频率发生器,方波发生器,软件触发的选通信号,硬件触发的选能信号.2、8253定时/计数器的定时与计数方式有什么区别?8254在方式0工作时,各通道的CLK、GATE信号有什么作用?各通道的控制字地址都相同,8254是怎样区分的?解:(1)8254作为计数器和定时器使用时的区别:用途不同:定时器用于产生连续的、周期恒定的信号;计数器用于对输入脉冲进行计数。对CLK输入的信号要求不同:用作定时器时,CLK输入的信号必须有相同的周期;用作计数器时,允许CLK输入的信号没有固定的周期;使用方式不同:定时器方式下计数的过程周而往复,重复进行;计数器方式下计数的过程只进行一次,除非重新初始化,或者用GATE重新触发;(2)8254工作在方式0时,CLK端输入计数用的脉冲信号;GATE信号为高电平时,对CLK端输入的脉冲进行计数;GATE信号为低电平时,暂停计数;GATE信号重新为高电平后,恢复原先的计数。(3)由8254的方式控制字中的D7、D6两位来选择计数通道。3、设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少?4、、设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。5、试简述微机系统中定时器/计数器的必要性和重要性,以及定时实现的常用方法。6、、可编程定时器/计数器8253/8254有几个通道?各通道有几种工作方式?各种工作方式的主要特点是什么?8254与8253有什么区别?7、8253芯片有哪几个计数通道?每个计数通道可工作于哪几种工作方式?这些操作方式的主要特点是什么?答:8253内部具有三个独立的16位计数通道:通道0、通道1、通道2.8253每个计数通道可工作于6中不同的工作方式:(1)方式0——计数结束中断方式(InterruptonTerminalCount),在写入控制字后,输出端即变低,计数结束后,输出端由低变高,常用该输出信号作为中断源。其余5种方式写入控制字后,输出均变高。方式0可用来实现定时或对外部事件进行计数。(2)方式1——可编程单稳态输出方式(ProgrammableOne-short),用来产生单脉冲。(3)方式2——比率发生器(RateGenerator),用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲周期相同。(4)方式3——方波发生器(SquareWaveGenerator),用于产生连续的方波。方式2和方式3都实现对时钟脉冲进行n分频。(5)方式4——软件出发选通(SoftwareTriggeredStrobe),由软件触发计数,在计数器回0后,从OUT端输出一个负脉冲,其宽度等于一个时钟周期。(6)方式5——硬件出发选通(HardwareTriggeredStrobe),由硬件触发计数,在计数器回0后,从OUT端输出一个负脉冲,其宽度等于一个时钟周期。6种方式中,方式0、1和4,计数初值装进计数器后,仅一次有效。如果要通道在此按此方式工作,8253练习题及答案第2页共6页必须重新装入计数值。对于方式2、3和5,在减1计数到0值后,8253会自动将计数值重装进计数器。8、对8253进行初始化编程分哪几步进行?答:(1)写入通道控制字,规定通道的工作方式;(2)写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,则低8位自动置0。若为16位计数值则分两次写入,先写低8位,后写高8位。D0:用于确定计数数制:0,二进制;1,BCD码二、编程题设有某微机控制系统,采用定时器8253产生定时中断信号.CPU响应中断后便执行数据采集,数字滤波和相应的控制算法,以控制输出.如图所示.采用两个计数器串联的方法实现定时控制.一旦定时时间到,OUT1信号由高变低,经反向后送8259A的IRO2.IRO2的中断类型号为0AH,中断处理程序首址存储在28H~2BH.8253端口地址为230H~233H.试编制8253的初始化及设置中断处理程序首地址程序段.见图0008答案:CS8253DW230TIMEDBXXH…MOVBX,DS:CS8253MOVDX,BXADDDX,03HMOVAL,14HOUTDX,ALMOVDX,BXMOVAL,0OUTDX,ALADDDX,03HMOVAL,54HOUTDX,ALADDBX,01HMOVDX,BXMOVAL,DS:BYTEPTRTIMEOUTDX,ALMOVDI,28HMOVAX,OFFSETINTERCLDSTOSWMOVAX,CSSTOSWMOVAL,98HOUT21H,ALSTI2、利用8253周期性地每隔20ms产生一次中断,试选择工作方式和参数,并编出相应程序.答案:选择工作方式0,若CLK为2MHz,则计数初值为40000.CS8253EQUXXH…MOVAL,00110000BOUTCS8253+3,ALMOVAX,40000OUTCS8253,ALMOVAL,AHOUTCS8253,ALSTI…TIMEINTPROCFARPUSHAX…MOVAX,40000OUTCS8253,ALMOVAL,AH8253练习题及答案第3页共6页OUTCS8253,ALSTI…POPAXIRETTIMEINTENDP3、对8253定时计数器三个通道进行初始化编程的顺序有没有要求?已知8253中0#、1#、2#计数器及控制寄存器地址分别为340H,342H,344H,346H,试对8253三个计数器进行编程使0#计数器设置为方式1,计数初值为2050H;1#计数器设置为方式2,计数初值为3000H;2#计数器设置为方式3,计数初值为1000。答案:一般在每个计数器独立使用时,对8253定时计数器三个通道进行初始化的顺序没有特定要求,如果几个计数器配合使用,则可能对三个通道初始化顺序会有一定要求。对每个计数器都应该先写入控制字然后再写初值。本题8253四个地址均为偶数,这是系统地址总线的A2、A1分别连接8253的A1、A0所致。初始化编程如下:MOVDX,346HMOVAL,32HOUTDX,ALMOVAL,74HOUTDX,ALMOVAL,0B7HOUTDX,ALMOVDX,340HMOVAL,50HOUTDX,ALMOVAL,20HOUTDX,ALADDDX,2MOVAL,00HOUTDX,ALMOVAL,30HOUTDX,ALADDDX,2MOVAL,00HOUTDX,ALMOVAL,10HOUTDX,AL4、若要采用一片8253产生近似为1Hz的对称方波,已知时钟频率为2MHz,8253地址为350-353H,试编写8253初始化程序,并说明通道引脚的连接方法。答案:时钟频率为2MHz,要分频至1Hz,分频系数为2000000。一个8253的计数器分频系数最大为65536,所以必须用两个计数器串联起来工作。0#计数器分频系数定为10000,1#计数器分频系数定为200。OUT0连接到CLK1,0#计数器输出的10000Hz波形作为1#计数器的时钟信号,经1#计数器10000分频后得到1Hz的波形。初始化程序如下:MOVDX,353HMOVAL,35HOUTDX,ALMOVAL,77HOUTDX,ALSUBDX,3MOVAL,00HOUTDX,ALOUTDX,ALINCDXMOVAL,00HOUTDX,ALMOVAL,02HOUTDX,AL5、设有某微机控制系统,采用定时器8253产生定时中断信号。CPU响应中断后便执行数据采集、数字滤波和相应的控制算法,以控制输出。如图0017所示,采用两个计数器串联的方法实现定时控制。一旦定时时间到,OUT1信号由高到低,经反向后送8259A的IRO2。IRO2的中断类型号为0AH,中断处理程序首址存储在28H-2BH。8253端口地址为230H-233H。试编制8253的初始化及设置中断处理程序首地址程序段。8253练习题及答案第4页共6页答案:CS8253DW230HTIMEDBxxH……MOVBX,DS:CS8253MOVDX,BXADDDX,03HMOVAL,14HOUTDX,ALMOVDX,BXMOVAL,0OUTDX,ALADDDX,03HMOVAL,54HOUTDX,ALADDBX,01HMOVDX,BXMOVAL,DS:BYTEPTRTIMEOUTDX,ALMOVDI,28HMOVAX,OFFSETINTERCLDSTOSWMOVAX,CSSTOSWMOVAL,98HOUT21H,ALSTI6、已知某8088微机系统包括8255A,8253两个可编程接口电路。其中8253三个计数器分别工作在不同的方式下,可以为A/D转换器提供可编程的采样频率和采样时间;8255A的PB0可用于检测按键开关的位置,PA7可根据PB0的状态决定是否点亮LED指示灯。设系统所要求有关硬件连线已经全部接好,如图0018所示,试完成下列各项要求。(1)分别列出8255A,8253各个端口的地址编码(2)写出接口初始化程序片段(3)设已知外部时钟频率为F,计数器0的计数初值为L(字节型),工作在方式2;计数器1的计数初8253练习题及答案第5页共6页值为M(字型),工作在方式1;计数器2的计数初值为N(字型),工作在方式3。L,M,N是在程序的其他地方已经定义的变量,L,M为二进制数,N为BCD码。试按上述要求完成8253的初始化程序片段。(4)设计一个程序片段,使8255A检测PB0的输入状态,当PB0=1时使LED灯亮。答案:(1)8255A的口地址码为08H,09H,0AH,0BH,8253的口地址码为0CH,0DH,0EH,0FH(2)8255A的初始化程序MOVAL,10000010BOUT0BH,AL(3)8253各通道的初始化程序片段MOVAL,14HOUT0FH,ALMOVAL,LOUT0CH,ALMOVAL,72HMOV0FH,ALMOVAX,MOUT0DH,ALMOVAL,AHOUT0DH,ALMOVAL,B7HOUT0FH,ALMOVAX,NOUT0EH,ALMOVAL,AHOUT0EH,AL7、设8253的端口地址为0240H~0243H,通道0输入的CLK频率为1MHz,为使通道0输出1KHz的方波,编写初始化程序。如果让通道0与通道1级联(即OUT0接CLK1)实现1秒钟定时,则初始化程序如何编制。解:(1)通道0输出1KHz的方波:计数初值为1MHz/1KHz=1000,等于十六进制数03E8H,控制字设定为先写低8位,后写高8位,方式3工作,二进制计数方式,所以控制字为36H。初始化程序如下:MOVAL,36H;MOVDX,243H;写入通道0的控制字OUTDX,AL;MOVDX,240H;MOVAL,0E8H;写入通道0的时间常数OUTDX,AL;MOVAL,03H;OUTDX,AL;(2)通道0与通道1级联实现1秒定时:要实现1秒定时,对1MHz输入脉冲进行分频的系数为1000000=5000×200。通道0工作在方式2,分频系数200,采用十进制计数,则通道0方式控制字为:25H。通道1工作在方式0,分频系数5000,也采用十进制计数,则通道1方式控制字为:61H。初始化程序如下:MOVAL,25H;通道0控制字:方式2,十进制计数,只写高8位MOVDX,243H;OUTDX,AL;MOVAL,61H;通道1控制字:方式0,十进制计数,只写高8位OUTDX,AL;MOVDX,0240H;MOVAL,02H;通道0时间常数(BCD数高8位)