CALL DELAY ;子程序DELAY实现10ms延时 ROL CL,1 ;循环左移1位 JMP AGAIN EXIT: RET MAIN ENDP
DELAY PROC NEAR PUSH CX
WAIT0: MOV CX,2801 WAIT1: LOOP WAIT1 DEC BX JNZ WAIT0 POP CX RET
DELAY ENDP CODE ENDS END START 32
第9章 习题答案
1.答:
可编程芯片具有灵活的多种工作方式,其工作方式的设置通过软件编程实现。 2.答:
8255A的内部结构如图9-1所示,它由数据总线缓冲器,数据端口A、端口B和端口C, A组和B组控制电路和读/写控制逻辑4部分组成。
3.8255A有几种工作方式?简述各种工作方式的特点。(2分) 答:
8255A有方式0、方式1、方式2三种工作方式。8255A方式0是基本输入/输出方式。在方式0下,每一个端口都可作为基本的输入或输出口,端口C的高4位和低4位以及端口A、端口B都可独立地设置为输入口或输出口。方式1是单向选通输入/输出方式。8255A在工作方式1时,把3个数据端口分为A、B两组,分别称为A组控制和B组控制。此时,端口A和端口B仍作为数据的输入或输出口,而端口C作为联络控制信号,被分成两部分,一部分作为端口A和端口B的联络信号,另一部分仍可作为基本的输入/输出口。8255A方式2是双向选通输入/输出方式,只有端口A可以工作于方式2。8255A端口A工作于方式2时,可使8255A与外设进行双向通信,可采用查询方式或中断方式进行传输。 4.答:通过JMP AGAIN指令实现循环检测。 5.答:
软件定时和硬件定时。软件定时是通过执行一段循环程序来实现的。通过调整循环次数可以控制定时间隔的长短。其特点是:不需要专用硬件电路、成本低,但是耗费CPU的时间,降低了CPU的工作效率。硬件定时是采用定时/计数器或单稳延时电路实现的。其特点是:定时时间长、使用灵活而且不占用CPU的时间,适用范围广。 6.答:
由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用于任何一种微处理
33
器系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器或单脉冲发生器等。每片8253定时/计数器有3个独立的16位计数通道,每个计数通道最高计数速率可达2.6MHz。每个计数器可编程设定6种工作方式,使用时可以根据需要选择其中的一种工作方式。每个计数通道可按二进制或十进制来计数。
7.8253有几种工作方式?简述各种工作方式的特点。(2分) 答:
8253的每个计数器都有6种工作方式:方式0~方式5。采用方式0工作方式,8253可完成计数功能,且计数器只计一遍。方式1是硬件触发单稳态方式,采用这种工作方式可在输出端OUT输出单个负脉冲信号,脉冲的宽度可通过编程来设定。采用方式2可产生连续的负脉冲信号,可用作频率发生器。采用方式3可产生连续的方波信号, 可用作方波发生器。方式4是软件触发的选通方式。采用方式4可产生单个负脉冲信号,负脉冲宽度为一个时钟周期,由OUT指令触发。方式5是硬软件触发的选通方式。采用方式5可产生单个负脉冲信号,负脉冲宽度为一个时钟周期。由GATE的上升沿触发。
8.8253初始化编程时需要遵循的原则是什么?(2分) 答:
因此8253在初始化编程时,必须遵守两条原则:
① 在对某个计数器设置初值之前,必须先写入控制字;
② 在设置计数初始值时,要符合控制字的规定,即只写低位字节,还是只写高位字节,还是高、低位字节都写(分两次写,先低字节后高字节)。
9.答:
8253初始化编程步骤是:先写控制字到8253的控制端口,再写计数器初值到相应的计数器端口。
10.试按如下要求分别编写初始化程序,已知8253计数器0—2和控制端口地址依次为200H~203H。
1)使计数器1工作在方式0,仅用8位二进制数计数,计数初值为120. 2)使计数器0工作在方式1,按BCD码计数,计数值为2011。
3)使计数器2工作在方式2,按二进制数计数,计数值为F050H。(4分) 答:
(1)MOV DX,203H MOV AL,50H OUT DX,AL MOV DX,201H MOV AL,120 OUT DX,AL
(2)MOV DX,203H
MOV AL,33H ;00110011B OUT DX,AL MOV DX,200H MOV AX,2011H OUT DX,AL MOV AL,AH OUT DX,AL
(3)MOV DX,203H
34
MOV AL,B4H ;10110100B OUT DX,AL MOV DX,202H MOV AX,0F050H OUT DX,AL MOV AL,AH OUT DX,AL 11.答:
8253初始化程序段:
MOV AL,36H ;方式控制字00110110B=36H
OUT 43H,AL ;将控制字送入8253A控制端口43H,即控制寄存器中MOV AX,11932 ;初值送AX寄存器
OUT 40H,AL ;将初值的低8位输出计数通道0端口40H MOV AL,AH ;初值的高8位送AL寄存器
OUT 40H,AL ;将初值的高8位输出计数通道0端口40H 中断服务程序在第十章学完后再做,参考程序如下: 在主程序中数据段定文变量N: N DB 100 M DB 01H
中断服务程序: INT_SER PROC PUSH AX PUSH DX 34 DEC N JNZ RENT MOV N,100 MOV DX,350H XOR M,01H MOV AL,M OUT DX,AL POP DX POP AX RENT: IRET INT_SER ENDP
12.答:参考程序段:
MOV AL,31H ;方式控制字00110001B=31H MOV DX,403H OUT DX,AL MOV DX,400H MOV AX,1000H OUT DX,AL MOV AL,AH OUT DX,AL
35
LEA BX, VALUE MOV AL,01H MOV DX,403H OUT DX,AL MOV DX,400H IN AL, DX MOV CL,AL IN AL, DX MOV CH,AL MOV [BX],CX INC BX INC BX CMP CX,0 JNZ LOP1 ??
13.答:参考程序段: ??
MOV AL ,90H MOV DX,203H OUT DX,AL
AGAIN:MOV DX,200H IN AL,DX
TEST AL,03H ; JZ EXIT 35
TEST AL,01H JZ DIAP_1 TEST AL,02H JZ DIAP_2 JMP AGAIN
DIAP_2:MOV AL,06H MOV DX,201H OUT DX,AL JMP AGAIN
DIAP_1:MOV AL,3FH MOV DX,201H OUT DX,AL JMP AGAIN EXIT: ??
14.什么是同步通信方式?什么是异步通信方式?(2分) 答:
根据在串行通信中数据定时和同步的不同,串行通信方式分为同步串行通信和异步串行通信。
36