1、微机原理习题答案9章docx第9章定时/计数器8253应用设计1. 下列地址哪些能够分配给8253/8254的计数器0?为什么?(23H、54H、97H、51H、FCH、 59H)解:因为己经约定釆用A2,A1作为8253的内部地址线,而且计数器0的地址为00,所以在题中所给的地址中只有51H,59H的A2和A同时为0,即:A2A 1 =00.2. 如果计数器0设定为方式0, GATE0=l, CLK0=lMHz,时常数为N=1000,请画出OUTO的波形。如果计数器1设定为方式1,其它参数与计数器0相同,画出OUT1的波形。WRCI.K01 1 1 1Illi(;A1EO1 1 1 1 1-
2、1 1 1 1 1 1, 1 1 1 1 1Illi Illi 1 1 1 1()1 TON 11003 | 999 | 998 | 997 |I 2 I 1 0 iwni FFPfcJJ3. 编程实现:将8253计数器0设置成方式4,并置时常数10000,然后处于等待状态,直到CE的内容W1000后再向下执行。解:MOV AL.00111000B;设置计数器0的常数OUT DX, ALMOV DX,COUNTAMOV AX, 10000OUT DX,ALXCHG AL,AHOUT DX, ALMOV AL,OHOUT DX,ALMOV DX,COUNTA ;读入 CEIN AL,DXMOV
3、AH,ALIN AL,DXXCHG AL,AHCMP AX J 000 ;判别CE当前大小JAL14. 利用8253 nf以实现确定时间的延迟,编程实现延时10秒的程序段(设可以使用的基准 时钟为lMHz)o解:本题使用计数器0和计数器1,并且计数器0的输出OUTO作为计数器1的时钟输 入 CLK1.程序如下:MOVDX,COUNTD;写计数器0方式控制字MOVAL,00110I00BOUTDX,ALMOVDX,COUNTAMOVAX, 10000;写计数器0时常数,分频得到100Hz时钟频率OUTDX,ALXCHGAL,AHOUTDX,ALMOVDX,COUNTD;写计数器1方式控制字MOV
4、AL,01110000BOUTDX,ALMOVDX, COUNTBMOVAX,999 ;分频得到0.1Hz吋钟频率。(在方式0下,吋常数为N吋,9OUT输出的低电平宽度为N+1).OUT DX,ALXCHG AL,AHOUTDX,ALL1:;延吋MOVDX,COUNTD;当前CE的内容锁存到OLMOVAL,01000000BOUTDX,ALMOVDX,COUNTBINAL,DXMOVAH,ALINAL,DXXCHGAL,AHCMPAX,999JNALI;延吋结束,则继续执行,否则,跳到L1,继续延时5. 比较8254方式0与方式4、方式1与方式5的区别?方式0与方式4方式0 OUT端计数过程中
5、为低,计数值减为0吋,输出变高方式4 OUT端计数过程屮为高,计数值减为0时输出宽度为1个CLK的负脉冲方式1与方式5方式1 OUT端输出宽度为n个CLK的低电平,计数值减为0时,输出为高方式5 OUT端计数过程中为高,计数值减为0时输出宽度为1个CLK的负脉冲6. 在8088最小系统中,8253的端口地址为284H287H。系统提供的时钟为1MHz,要 求在OUTO输出周期为20微秒的方波,在OUT1输出周期为200微秒,其屮每周期为 负的时间是180微秒的信号。请编写8253的初始化程序。解:OUTO输出为20微妙方波,可用方式三直接产生,OUT1输11!波形与书中例9.2类似, 可用其屮
6、思想产生此信号。如果允许增加外部器件,也可在例9.1的基础上,将OUT 端信号通过与非门取反,这样即可产生题目要求信号。本例利用例9思想解答DD,CLKoRDGATEoWROUToAiIntelCLKiAoX253GATEiOUTiCLKjGATE?rsour:1MIIZWI MHZSVMOV DX,287H ;写计数器0控制方式字MOV AL,00()l()ll()BOUT DX,ALMOV DX,284HMOV AL,20OUR DX,ALMOV DX,287:写计数器0时常数;写计数器2控制方式字MOV AL,10010110BOUT DX,ALMOV DX,286HMOV AL,200
7、OUT DX,AL;写计数器2吋常数MOV DX,287HMOV AL,01010010BOUT DX,ALMOV DX,285HMOV AL,9OUT DX,AL:写计数器1控制方式字;写计数器1时常数7.通过8253计数器0的方式0产生中断请求信号,现需要延迟产生中断的时刻,可采用:A) 在OUTO变高之前重置初值;B) 在OUTO变高Z前在GATEO端加一负脉冲信号;C) 降低加在CLKO端的信号频率;D) 以上全是。解:DA:方式0下,在OUTO变高Z前重置初值,将在下一个CLK的下降沿使时常数从CR读 入CE并重新计数。B:在OUTO变高之前在GATEO端加一负脉冲信号可以延时一个时
8、钟周期,达到延时的冃 的。C:降低加在CLKO端的信号频率,可以增大吋钟周期,达到延长OUTO端低电平的吋间。(注:A中,如果重置的初值为1,则不会达到延时的效果)8. 己知8254计数器0的端口地址为4011,控制字寄存器的端口地址为4311,计数时钟频率为2MIk,利用这一通道设计当计数到0时发出中断请求信号,其程序段如下,则中断请求信号的周期是 32. 7675 ms。MOV AL, 00110010BOUT 43H, ALMOV AL, OFFHOUT 40H, ALOUT 40H, AL9. 若8254芯片可使用的8086端口地址为DODOHDODFH,试画出系统设计连接图。设加到8
9、254上的时钟信号为2MHz,(1)利用计数器02分别产生下列三种信号:周期为10us的对称方波每Is产生一个负脉冲10s后产生一个负脉冲每种情况下,说明8254如何连接并编写包扌舌初始化在内的程序段。(2)希望利用8086通过一专用接口控制8253的GATE端,当CPU使GATE有效开始,20us后在计数器0的OUT端产生一个正脉冲,试设计完成此要求的硬件和软件。解:(1)选用DODOHDODFH中的偶地址DODO, D0D2, D0D4, D0D6为基本地址作为8254的端口地址,设8086 1作在最小方式下。8254端口地址译码电路如下图:计数器0输入端加2MHz的吋钟信号,GATEo加
10、+5V电压,输出OUTo信号为周期为lOps的对称方波。初始化代码:MOV DX,0D0D6H ;写计数器0工作方式MOVAL,00010I10BOUT DX,ALMOV DX,0D0D0H ;写计数器0时常数MOV AL,20OUT DX,ALCLKo加2MHz的始终信号,GATEo,GATEi加+5V电压,OUTo输出加到CLK1做时 钟信号,OUT1输11!为每Is产生一个负脉冲。MOV DX,0D0D6HMOV AL,00010110BOUT DX,ALMOV DX,0D0D0HMOV AL, 100OUT DX,ALMOV DX,0D0D6HMOVAUOlllOlOOB;写计数器0的
11、工作方式;写计数器0的吋常数;写计数器1的工作方式初始代码:OUT DX,ALMOV DX,0D0D2H:写计数器1的时常数MOV AX,20000OUT DX,ALXCHG AL,AHOUT DX,ALCLKo加2MHz的始终信号,GATEo,GATEi加+5V电压,OUTo输出加到CLK2做时 钟信号,OUT2输出为10s后产生一个负脉冲。初始代码:MOV DX,0D0D6H;写计数器0的工作方式MOV AL,00110110BOUT DX,ALMOV DX,0D0D0H:写计数器0的时常数MOV AX, 1000OUT DX,ALXCHG AL,AHOUT DX,ALMOV DX,0D0
12、D6H;写计数器2的工作方式MOV ALJ0111000BOUT DX,ALMOV DX,0D0D4H;写计数器2的时常数MOV AX,20000OUT DX,ALXCHG AL,AHOUT DX,AL1) 选用地址DODO,DOD2,DOD4,DOD6为8253的端口地址,D0D8为GATE端口地址,该端口采用74LS373, 8253用方式4,在OUT输出端加非门实现脉冲功能。接口电路如图:初始代码为:MOV AL,0OUT DX,ALMOV AU00011000BOUT DX,ALMOV AL,40OUT DX,ALMOV DX,0D0D8HOUT DX,AL;使GATE变高有效MOV
13、AL J10. 若加到8254 的时钟频率为0. 5MI1Z,则一个计数器的最长定时时间是多少?若要求10 分钟产生一次定时中断,试提出解决方案。解:一个计数器的最长定吋吋间应该是置入吋常数0吋,此吋定吋吋间为:65536/0. 5*10飞s=131ms采用方式0即:计数达到终值时屮断来10分钟产生一次定时屮断,此时时常数CR为:10*60*0. 5*10 6二3*10 9.由于一个计数器最多分频65536,所以至少得使用2个计数器。我们采用计数器0 和计数器1.计数器0的吋常数CR0为60000,计数器1的吋常数CR1为50000.连接方式为:把0. 5MHz的时钟频率接到计数器0的CLK0
14、,然后把计数器0的0UT0 接到计数器1的CLKlo这样计数器1的0UT1端输出的就是10分钟产生一次的定时屮 断。11. 7 D08088rdCPUWR最小Al方式A0系统总线10/MA9AlAO译码:k电路图9.26织布机控制系统csI ntel8253A2RDWRU0CLK001T0GATEO织布机系统织布机控制系统如图9.26所示,已知织布机每织1米发出一个正脉冲,每织100米要 求接收到一脉冲,去触发剪裁设备把布剪开。(1)设8253的端口地址为80H83H, 编写对8253初始化程序。(2)假定系统提供的信号频率为1MHz,希望利用8253的其 余通道产生01秒的周期信号,编写初始
15、化程序。解:(1)MOVDX,83HMOVAL,00010100BOUTDX,ALMOVDX,80HMOVAL, 100OUTDX,AL将计数器1的输出OUT1信号作为计数器2的时钟输入CLK2,计数器1的时钟输入为系统提供1MHZ的信号MOVDX,83HMOVAL,01110100BOUTDX,ALMOVDX,81HMOVAX, 1000OUTDX,ALXCHGAL,AHMOVDX,ALMOVDX,83HMOVALJ 0010110BOUTDX,ALMOVDX,82HMOVALJ 00OUTDX,AL12. 在IBM PC系统中根据下列不同条件设计接口逻辑,利用8253完成对外部脉冲信号重复
16、 频率的测量。(1) 被测脉冲信号的重复频率在101000Hz范围内。(2) 被测脉冲信号的重复频率在0. 51. 5Hz范围内。(3) 被测脉冲信号重复频率在10100Hz范围内。(4) 被测是间歇脉冲信号,每次有信号时有100个脉冲,重复频率为0. 81. 2MIIz,间 歇频率大约每秒15次,要求测有信号时的脉冲重复频率。解:用两个计数器,计数器0的CLK接待测信号,GATE接半周期为10s的高电平信号,OUT接8259,同时取反接计数器1的GATE端。计数器1的CLK接系统时钟,半周期为T0。在这样的逻辑电路下,计数器0的功能是记录待测信号的脉冲数N0,计数器1的功能是记录在相同时间里
17、系统时钟信号的脉冲数N1。根据T=N1*TO/NO可计算出待测信号的周期。S (t)是待测信号,S (t)为给定的周期大于10s的 高电平信号。端口声明:COUNTA为计数器0的地址,COUNTB为计数器2的地址,COUNTD为控制器地址,COUNT为373地址程序如下:MOVDX,COUNTD;计数器1初始化MOVAU01110000BOUTDX, ALMOVDX, COUNTBOUTDX, ALMOVDX, COUNTBMOVAL,0OUTDX, ALMOVDX, COUNTD;计数器0初始化MOVAL,00010000BOUTDX, ALMOVDX, COUNTAMOVAL,0OUTDX
18、, ALOUTDX, ALSTI读两计数器的计数,并进行计算的屮断服务子程序:PUSH AXpush bxPUSH CXPUSH DXMOV DX, COUNTDMOV AL, OOOOOOOOBOUT DX, ALMOV DX,COUNTAIN AL, DXXCHG AL, AHIN AL, DXXCHG AL, AHNEG AXINC AXMOV BX, AXMOV DX, COUNTDMOV AL, OOO1OOOOBOUT DX, ALMOV DX, COUNTBIN AL, DXXCHG AL, AllIN AL, DXXCHG AL, AHNEG AXINC AXMOV CX, T
19、OMUL CXDIV BXMOV SER, AXPOP DXPOP exPOP BXPOP AXI RETSFR中保存结果即为待测信号的周期。对于(1)题,10*10不小于100, 10*1000不大于65535,可以用计数法。同理(3)也可用此方法。对于(2)题,可用周期法。逻辑电路图如下:程序如下:MOV DX, COUNTDMOV AL,0011 0100BOUT DX, ALMOV DX, COUNTAMOV AL, 0OUT DX, ALOUT DX, ALSTIPUSH AXPUSH BXPUSII DXMOVDX, COUNTDMOVAL, 0000 0000BOUTDX, AL
20、MOVDX, COUNTAIN /L, DXXCHG AL, AHIN AL, DXXCHG AL, AHNEGAXINCAXMOVBX, AXMOVDX, OOOFHMOVAX, 4240HDIVBXMOVSFR, AXPOPDXPOPBXPOPAXI RET(4)如图设计接口,计数器1用来记录在50个脉冲所用吋间,50个信号脉冲最多 用1/0. 8*50(约为63us)由于计数器1用1MHz CLK,故其计数个数N即为N us, 所以当N63时,则有低电平间隔计入,须重新计数。当N63时,则计算得待测 频率。程序如下:MOV DX, COUNTDMOV AL, OOHOUT DX, ALM
21、OV DX, COUNTDMOV AL, 0001 0000BOUT DX, ALMOV DX, COUNTAMOV AL, 50OUT DX, ALMOV DX, COUNTDMOV AL,0111 OOOOBOUT DX, ALMOV COUNTBMOV AL, 0OUT DX, ALOUT DX, ALL2: MOV DX, COUNT ;给GATEO和GATE1高电平,开始计数MOV AL,81HOUT DX, ALMOVDX, COUNTDMOVAL,00000000BOUTDX, ALMOVDX, COUNTAIN AL, DXMOVDX,COUNTAIN AL, DXANDAL, ALJNZLiMOVDX, COUNTMOVAL, OOHOUTDX, ALMOVDX, COUNTDMOVAL,01000000BOUTDX, ALMOVDX, COUNTBIN AL, DXXCHG AL, AHIN AL, DXXCHG AL, AllNEGAXLI: NOP;判断是否计完50个脉冲,若未计完继续等待:若计完则暂停计数;读计数器1结果INC AXCMP AX, 70HJA L2MOV BL, ALMOV AL, 50DIV BL;当AL大于70,则有间歇计入,重新测试MOV FREC, AL
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1