微机原理与接口技术(钱晓捷1版)课后习题答案

〔习题7.19〕

中断控制器8259A中IRR,IMR和ISR三个寄存器的作用是什么? 〔解答〕

中断请求寄存器IRR:保存8条外界中断请求信号IR0~IR7的请求状态。Di位为1表示IRi引脚有中断请求;为0表示该引脚无请求。

中断屏蔽寄存器IMR:保存对中断请求信号IR的屏蔽状态。Di位为1表示IRi中断被屏蔽(禁止);为0表示允许该中断。

中断服务寄存器ISR:保存正在被8259A服务着的中断状态。Di位为1表示IRi中断正在服务中;为0表示没有被服务。 〔习题7.20〕

下面是IBM PC/XT机ROM-BIOS中的08号中断服务程序,请说明各个指令的作用。

int08h

int08h int08h

int08h

proc sti

push ds push ax push dx ?? ?? int 1ch mov al,20h out 20h,al pop ax pop dx pop ds iret endp proc far sti

push ds push ax push dx ?? ?? int 1ch mov al,20h out 20h,al pop ax pop dx pop ds iret endp

; 日时钟计时 ; 控制软驱马达

〔解答〕

; 远过程 ; 开中断 ; 保护现场

; 日时钟计时 ; 控制软驱马达 ; 调用1CH号中断

; 发送EOI中断结束命令 ; 恢复现场

; 中断返回

〔习题7.21〕

编写一个程序,将例题7-5的INT 80H内部中断服务程序驻留内存。然后在调试程序中或其他程序中执行INT 80H,看能否实现其显示功能。 〔解答〕

; 代码段

- -53

new80h

new1:

new2:

intmsg new80h

start:

tsrmsg jmp start

; 80H内部中断服务程序:显示字符串(以0结尾);DS∶DX=缓冲区首地址 proc ; 过程定义 sti ; 开中断 push ax ; 保护寄存器 push bx push si

mov si,offset intmsg mov al,cs:[si] ; 获取欲显示字符 cmp al,0 ; 为“0”结束 jz new2 mov bx,0 ; 采用ROM-BIOS调用显示一个字符 mov ah,0eh int 10h inc si ; 显示下一个字符 jmp new1 pop si ; 恢复寄存器 pop bx pop ax iret ; 中断返回

db 'A Instruction Interrupt !',0dh,0ah,0 ; 字符串(以0结尾) endp ; 中断服务程序结束 ; 主程序 mov ax,cs mov ds,ax ; 设置04H中断向量 mov dx,offset new80h cli

mov ax,2580h int 21h sti

mov eax,offset tsrmsg ; 显示安装信息 call dispmsg

mov dx,offset start ; 计算驻留内存程序的长度 add dx,15 shr dx,4 ; 调整为以“节”(16个字节)为单位 mov ax,3100h ; 程序驻留,返回DOS int 21h

db 'INT 80H Program Installed ! ',0dh,0ah,0

〔习题7.22〕

完成例题7-2显示当前日期同样的功能,请获得日期数据后转换成ASCII码,保存在缓冲区、利用DISPMSG子程序显示。 〔解答〕

; ex0722.asm in DOS include io16.inc .data date byte 'Today is 20xx-yy-zz',0 .code start: mov ebx,11

- -54

mov al,9 out 70h,al in al,71h mov dl,al shr al,4 add al,30h

mov date[ebx],al add ebx,1 and dl,0fh add dl,30h

mov date[ebx],dl add ebx,2 mov al,8 out 70h,al in al,71h mov dl,al shr al,4 add al,30h

mov date[ebx],al add ebx,1 and dl,0fh add dl,30h

mov date[ebx],dl add ebx,2 mov al,7 out 70h,al in al,71h mov dl,al shr al,4 add al,30h

mov date[ebx],al add ebx,1 and dl,0fh add dl,30h

mov date[ebx],dl mov eax,offset date call dispmsg exit 0 end start

; AL=9(准备从9号单元获取年代数据)

; 从70H的I/O地址输出,选择CMOS RAM的9号单元

; 从71H的I/O地址输入,获取9号单元的内容,保存在AL ; 转换高位BCD码为ASCII码 ; 保存到缓冲区

; 转换低位BCD码为ASCII码 ; 保存到缓冲

; AL=8(从8号单元获取月份数据)

; 转换高位BCD码为ASCII码 ; 保存到缓冲区

; 转换低位BCD码为ASCII码 ; 保存到缓冲

; AL=7(从7号单元获取日期数据)

; 转换高位BCD码为ASCII码 ; 保存到缓冲区

; 转换低位BCD码为ASCII码 ; 保存到缓冲 ; 显示

第8章 常用接口技术

〔习题8.1〕简答题

〔解答〕

① 方式1可以通过编程产生一个确定宽度的单稳脉冲,故称工作方式1为可编程单稳脉冲工作方式。

- -55

② 因为计数器是先减1,再判断是否为0,所以写入0实际代表最大计数值。

③ 通过控制字的D7位来区别:D7=1,该控制字为方式控制字;否则为位控制字。 ④ 8255的三种工作方式均可实现输出数据锁存,即数据输出后被保存在8255内部,可以读取出来,只有当8255再输出新一组数据时才改变。

⑤ Modem,称为调制解调器,将数字信号转换为适合在电话线路上传送的模拟信号(调制)以及将电话线路的模拟信号转换为数字信号(解调)。

⑥ 因绝大多数设备只使用RS-232C标准的其中9个信号,所以PC机上就配置9针连接器。

⑦ 两台微机进行短距离通信,可以不使用调制解调器,直接利用232C接口连接,被称为零调制解调器(Null Modem)连接。

⑧ UART表示通用异步接收发送器,主要功能是将并行数据转换为串行数据发送,以及实现串行数据转换为并行传送给处理器。

⑨ 采用多路开关,通过微型机控制,把多个现场信号分时地接通到A/D转换器上转换,达到共用A/D转换器以节省硬件的目的。

⑩ 处理器输出数据都只在输出指令OUT执行的极短时间内出现在数据总线上,慢速的外设不能及时获取,所以主机与DAC之间必须连接数据锁存器。 〔习题8.2〕判断题 〔解答〕

① 对 ⑥ 错

② 对 ⑦ 错

③ 对 ⑧ 对

④ 对 ⑨ 对

⑤ 对 ⑩ 对

〔习题8.3〕填空题

〔解答〕

① 3,16,6,低,写入计数初值(并进入减1计数器),脉冲输入CLK,减法计数器,计数器的计数值减为0,高

② 5(=1.5MHz÷300KHz),3

③ 24,PA0~PA7,PB0~PB7,PC0~PC7 ④ 10110110(=B6H,B7H) ⑤ OBF

⑥ 01H,1DH(=30),81H,9DH(=158) ⑦ TxD,RxD,GND

⑧ 通信线路控制(CLR),00011111B(1FH),2FBH ⑨ 10100000,01100000

⑩ 53H(=51≈51.2=2÷10×256) 〔习题8.4〕

8253芯片每个计数通道与外设接口有哪些信号线,每个信号的用途是什么? 〔解答〕

CLK时钟输入信号:在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1。

GATE门控输入信号:控制计数器工作,可分成电平控制和上升沿控制两种类型。 OUT计数器输出信号:当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号。

- -56

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4