微机原理与接口技术 顾晖 习题参考答案(7)

2020-02-20 18:05

MOV DS,AX LEA SI,BUF MOV CX,100

INPUT: MOV DX,0FFE2H IN AL,DX ;读状态端口

TEST AL,01H ;测输入状态D0位 JZ INPUT ;未“准备好”转INPUT MOV DX,0FFE0H ;读取输入字符 IN AL,DX

MOV [SI],AL ;输入字符存缓冲区 INC SI 30

LOOP INPUT

MOV AH,4CH ;返回DOS INT 21H CODE ENDS END START 7. LED0 IOW LED1 LED7 OE G Q0

74LS373 D0~D7 Q1 Q7

. .

...

Y ≥1 D0~D7

CODE SEGMENT ASSUME CS:CODE MAIN PROC FAR START: PUSH DS MOV AX,0

31

PUSH AX

MOV DX,200H ;设I/O 端口为200H AGAIN: MOV AH,1 ;读键盘缓冲区字符 INT 16H

CMP AL,1BH ;若为“Esc”键,则退出 JZ EXIT

MOV AL,0FFH ;灯全亮 OUT DX,AL ;输出控制LED

MOV BX,5 ;向子程序传递参数,实现50ms 软延时 CALL DELAY ;子程序DELAY 实现10ms 延时 NOT AL ;灯全灭

MOV BX,2 ;向子程序传递参数,实现20ms 软延时 CALL DELAY JMP AGAIN EXIT: RET MAIN ENDP

DELAY PROC NEAR PUSH CX

WAIT0: MOV CX,2801 WAIT1: LOOP WAIT1 DEC BX JNZ WAIT0 POP CX 31 RET

DELAY ENDP CODE ENDS END START 8.

CODE SEGMENT ASSUME CS:CODE MAIN PROC FAR START: PUSH DS MOV AX,0 PUSH AX

MOV DX,200H ;设I/O端口为200H MOV CL,01H ;设置输出初值

AGAIN: MOV AH,1 ;读键盘缓冲区字符 INT 16H

CMP AL,1BH ;若为“Esc”键,则退出 JZ EXIT MOV AL,CL

OUT DX,AL ;输出控制LED

MOV BX,50 ;向子程序传递参数,实现0.5s软延时

32

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


微机原理与接口技术 顾晖 习题参考答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于成立江东区治安防范志愿者大队的通知

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: