微型计算机技术及应用习题解答++戴梅萼(6)

2019-05-17 12:05

7864629.docxx - 24 - 作者:喻其山

7.31 设8259A工作于优先级循环方式,当前最高优先级为IR4,现在要使优先级最低的为IR1,则应该

再设置哪个操作命令字?具体的值是多少? 答:1.再设置OCW2操作命令字。

2.OCW2的具体的值是C1H(=11000001B),写入偶地址端口。 7.32 下面是一个对8259A进行初始化的程序段,请为下面程序段加上注释,并具体说明各初始化命令字

的含义。 PORT0 EQU 40H ;8259A的偶地址端口号 PORT1 EQU 41H ;8259A的奇地址端口号

┆ MOV AL,13H ;控制初始化命令字ICW1设为13H,中断请求为边沿触

;发方式,单片8259A,需写入ICW4

MOV DX,PORT0 ;取8259A的偶地址端口 OUT DX,AL ;设置ICW1 INC DX ;取8259A的奇地址端口 MOV AL,08H ;中断类型码初始化命令字ICW2设为08H,对应于

;IR0~IR7的中断类型码为08H~0FH

OUT DX,AL ;设置ICW2 MOV AL,06H ;方式控制初始化命令字ICW4设为06H,非特殊全嵌套

;方式,非缓冲方式,中断自动结束方式,工作于8080/8085 ;系统中

OUT DX,AL ;设置ICW4

答:初始化命令字的含义见注释。 7.33 下面是一个对主从式8259A系统进行初始化的程序段,请对以下程序段加详细注释,并具体说明各

初始化命令字的含义。 ;主片初始化程序 M82590 EQU 40H ;主片8259A的偶地址端口号 M82591 EQU 41H ;主片8259A的奇地址端口号

┆ MOV AL,11H ;控制初始化命令字ICW1设为11H,中断请求为边沿触

;发方式,多片8259A,需设置ICW4

MOV DX,M82590 ;取主片8259A的偶地址端口 OUT DX,AL ;设置ICW1 MOV AL,08H ;中断类型码初始化命令字ICW2设为08H,对应于

;IR0~IR7的中断类型码为08H~0FH

INC DX ;取主片8259A的奇地址端口 OUT DX,AL ;设置ICW2 MOV AL,04H ;ICW3设为04H,只有IR2连有从片8259A OUT DX,AL ;设置ICW3 MOV AL,01H ;方式控制初始化命令字ICW4设为01H,非特殊全嵌套

;方式,非缓冲方式,非中断自动结束方式,工作于 ;8086/8088系统中

OUT DX,AL ;设置ICW4

;从片初始化程序 S82590 EQU 90H ;从片8259A的偶地址端口号 S82591 EQU 91H ;从片8259A的奇地址端口号

┆ MOV DX,S82590 ;取从片8259A的偶地址端口 MOV AL,11H ;控制初始化命令字ICW1设为11H,功能同上 OUT DX,AL ;设置ICW1 MOV AL,70H ;中断类型码初始化命令字ICW2设为70H,对应于

;IR0~IR7的中断类型码为70H~77H

7864629.docxx - 25 - 作者:喻其山

;取从片8259A的奇地址端口 ;设置ICW2

; ICW3设为02H,表示本从片与主片的IR2相连 ;设置ICW3

;方式控制初始化命令字ICW4设为01H,非特殊全嵌套 ;方式,非缓冲方式,非中断自动结束方式,工作于 ;8086/8088系统中

OUT DX,AL ;设置ICW4

答:各初始化命令字的含义见注释。

7.34 8237A在进行单字节方式DMA传输和块方式DMA传输时,有什么区别?

答:区别在于:单字节方式时DMA每完成一个字节传输后,便释放系统总线,CPU至少可占用一

个总线周期。块传输方式时,只有当字节计数器减为0,从而在EOP端输出一个负脉冲或者外部I/O接口往DMA控制器的EOP端送一个低电平信号时,8237A才释放总线而结束传输。

7.35 下面是一个常驻内存的中断服务程序框架和它的装配程序,请对此程序的注释进行补充,以便得到

一个完整的注释清单。 STACK SEGMENT ;设置堆栈段 DW 256 DUP (?)

STACK ENDS

DATA 8259P0 8259P1 DATA CODE START1: INTSUB

SEGMENT EQU 40H EQU 41H ┆ ENDS

;设置数据段 ;8259A的偶地址端口号 ;8259A的奇地址端口号

INC OUT MOV OUT MOV DX DX,AL AL,02H DX,AL AL,01H

SEGMENT ;设置代码段 ASSUME CS:CODE,DS:DATA,SS:STACK ;段说明 JMP PROC STI PUSH PUSH PUSH PUSH PUSH PUSH ┆ POP POP POP POP POP POP MOV MOV OUT IRET ENDP MOV MOV MOV MOV

START2 FAR ES DS AX BX SI DI DI SI BX AX DS ES

AL,20H DX,8259P0 DX,AL

;程序开始,直接转START2执行

;定义一个远过程(段外子程序)INTSUB ;开中断 ;保护现场 ;中断处理内容 ;恢复现场

;发一般的中断结束命令 ;取8259A偶地址 ;中断返回 ;远过程定义结束

;程序开始,取数据段的段地址送DS ;设置中断向量的系统功能调用的入口条件 INTSUB START2:

AX,DATA DS,AX AL,45H AH,25H

7864629.docxx - 26 - 作者:喻其山

MOV DX,OFFSET INTSUB INT 21H MOV AL,0 MOV DX,8259P1 OUT DX,AL STI MOV AX,3100H MOV DX,$–INTSUB INT 21H

CODE ENDS

END START1

答:注释见程序清单的下划线部分。

;设置中断向量

;OCW1=00H,开放8259A的所有中断 ;取8259A的奇地址号

;开中断

;终止用户程序并驻留内存的入口条件 ;程序驻留退出 ;代码段结束 ;程序结束 7.36 8259A在采用边沿触发方式时,为了防止IR端有毛刺产生中断,因此通常也要求有足够的脉冲宽

度,这一点由8259A的内部性能所决定。所以,中断控制器的初始化命令字虽用边沿触发,但是,中断请求信号却是某个脉冲信号。你认为,这种情况下,设置边沿触发方式和设置电平触发方式相比,有什么优点?

答:电平触发方式时,中断请求信号必须在第一个INTA脉冲结束之前保持高电平,而此时的中断

请求信号却是某个脉冲信号,不一定能满足电平触发方式的要求,可能会造成中断请求得不到响应。而此信号能满足边沿触发方式对中断请求信号的要求,可基本保证能得到中断响应(IF=1)。 7.37 下面是一个8253的初始化程序段。8253的控制口地址为46H,3个计数器端口地址分别为40H、

42H、44H。在8253初始化前,先将8259A的所有中断进行屏蔽,8259A的奇地址端口为82H。请对下面程序段加详细注释,并以十进制数表示出各计数器的值。 INI: CLI ;CPU关中断

MOV AL,0FFH ;8259A屏蔽中断 OUT 82H,AL MOV AL,36H ;设置计数器0控制字,工作于模式3 OUT 46H,AL MOV AL,0 ;设置计数器0的计数初值为4000H=16384 OUT 40H,AL MOV AL,40H OUT 40H,AL MOV AL,54H ;设置计数器1控制字,工作于模式2,低8位字节读/写 OUT 46H,AL MOV AL,18H ;设置计数器1的计数初值为18H=24 OUT 42H,AL MOV AL,0A6H ;设置计数器2控制字,工作于模式3,高8位字节读/写 OUT 46H,AL MOV AL,46H ;设置计数器2的计数初值为4600H=17920 OUT 44H,AL MOV AL,80H ;修改计数器2的计数初值为8000H=32768 OUT 44H,AL

答:注释见程序清单,计数器初值的十进制值也见注释。 7.38 下面是一个用8253作为定时器的发音程序,程序中已加了部分注释。请对8253的有关程序段加上

注释,并画出整个程序的流程图。8253的控制口地址为46H,3个计数器端口地址分别为40H、42H、44H。8255A的B端口接扬声器驱动电路,B端口的地址为62H。 SOUND: PUSHF

CLI OR DH,DH ;DH中为发长音的个数 JZ K3 ;如不发长音,则转K3

K1: MOV BL,6 ;如发长音,则置长音计数器

7864629.docxx - 27 - 作者:喻其山

CALL BEEL ;调用发音程序

K2: LOOP K2 ;两音之间留一点间隙

DEC DH ;长音发完否 JNZ K1 ;否,则继续

K3: MOV BL,1 ;如发完长音,则置短音计数器

CALL BEEL ;调用发音程序

K4: LOOP K4 ;两音之间留一点间隙

DEC DL ;继续发短音吗 JNZ K3 ;是,则继续

K5: LOOP K5 ;否,则留一点间隙

POPF ;标志恢复 RET ;返回

BEEL: MOV AL,B6H ;发音子程序开始

OUT 46H,AL ;8253的计数器2工作于模式3 MOV AX,533H ;计数初值为533H OUT 44H,AL ;送初值低位 MOV AL,AH OUT 44H,AL ;送初值高位 IN AL,62H ;取扬声器驱动信息 MOV AH,AL OR AL,03 ;接通扬声器 OUT 62H,AL ;扬声器驱动 SUB CX,CX ;一次发音时间设定

K7: LOOP K7

DEC BL ;BL中为发音计数值 JNZ K7 ;如未结束,则继续发音 MOV AL,AH ;如发音结束,则恢复B端口信息 OUT 62H,AL RET

答:补充的注释见程序清单中的下划线部分。程序流程图如下所示。 SOUND开始 BEEL开始

保护标志,关中断 8253计数器2初始化为

模式3,计数初值为

533H

Y 发长音吗? 取扬声器驱动信息并送N AH中保护起来 置长音计数器,调发音

子程序,并延时

接通扬声器并使其发音

N 长音发完吗?

Y 延时

置短音计数器,调发音

子程序,并延时 音发完了吗?

N Y 短音发完吗? 发音结束,关掉扬声器 Y

延时并恢复标志 RET返回

RET返回 N 7864629.docxx - 28 - 作者:喻其山

第 8 章 模/数和数/模转换

8.1

什么叫分辨率?什么叫相对转换精度? 答:1.在D/A转换时,将最低位增1所引起的增量和最大输入量的比称为分辨率。即:分辨率=1/(2n-1)。

2.用绝对转换精度相对于满量程输出的百分数表示的精度即为相对转换精度。有时也用最低位(LSB)的几分之几表示。 在T型电阻网络组成的D/A转换器中,设开关K0、K1、K2、K3、K4分别对应一位二进制数,当二进制数据为10110时,流入运算放大器的电流为多少?画出这个T型网络。 答:1.流入运算放大器的电流I为:(n=5)

8.2

I?VREFVREFVREF11VREF?N??(10110B)??22?。N5516R2R2R2RRo - + K1 2R 2R K2 2R K3 2R K4 2.T型网络如下图:

K0

2R R

2R 8.3

Vo R R R VREF 用带两级数据缓冲器的D/A转换器时,为什么有时要用三条输出指令才完成16位或12位数据转换?

答:因为一般第一次将低8位数据送输出低位的第一级数据缓冲器,第二次输出高4位或高8位数

据到高位的第一级数据缓冲器。第三次执行一次伪输出,将第一级数据缓冲器的内容打入第二级数据缓冲器从而实现高于8位的D/A转换。因此要用3条输出指令才能完成一次16位或12位数据转换。以避免出现错误的中间结果。 使用DAC0832进行数/模转换时,有哪两种方法可对数据进行锁存?

答:第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在不锁存状态。第二种方法

是使输入寄存器工作在不锁存状态,而DAC寄存器工作在锁存状态。 在数字量和模拟量并存的系统中,地线连接时要注意什么问题?

答:首先各个模拟地连在一起,各个数字地连在一起;其次模拟地和数字地只能且必须用一个共地

点连起来,以防干扰。 设计一个电路和相应程序完成一个锯齿波发生器的功能,使锯齿波呈负向增长,并且锯齿波的频率可调。

答:① 电路如下图所示: 数据总线 D7~D0 REB WR1 IOUT1 WR DAC - Vo 0832 + IOUT2 地址总线 XFER 译 CS WR2 码 器M/IO DGND 8.4

8.5

8.6


微型计算机技术及应用习题解答++戴梅萼(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:创建模范教职工之家活动方案 - 1

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

马上注册会员

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